In This Topic ▼

CameraSettingsChanged Event

Summary
Occurs when the user moves or rotates the camera with the mouse using the RotateCamera or MoveCamera actions.
Syntax
C#
VB
C++
public event EventHandler<Medical3DCameraEventArgs> CameraSettingsChanged 
  
Public Event CameraSettingsChanged As EventHandler(Of Medical3DCameraEventArgs) 
public: 
event EventHandler<Medical3DCameraEventArgs^>^ CameraSettingsChanged 
Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.MedicalViewer; 
using Leadtools.Medical3D; 
 
public void Medical3DControlExample() 
{ 
   Medical3DLoadDICOMSeriesExamples LoadObject = new Medical3DLoadDICOMSeriesExamples(); 
   MedicalViewerSeriesManager output = LoadObject.LoadJamesHead(); 
 
   MainForm1 form = new MainForm1(output); 
   form.ShowDialog(); 
} 
 
// MainForm1 will be the owner of the medical viewer control. 
class MainForm1 : Form 
{ 
   private Medical3DControl _medical3DControl; 
 
   public MainForm1(MedicalViewerSeriesManager output) 
   { 
      RasterCodecs _codecs = new RasterCodecs(); 
      RasterImage _image; 
 
      CodecsImageInfo codecsInformation; 
 
      _medical3DControl = new Medical3DControl(); 
      this.SizeChanged += new EventHandler(MainForm1_SizeChanged); 
      this.FormClosing += new FormClosingEventHandler(MainForm1_FormClosing); 
 
 
      _medical3DControl.ObjectsContainer.Objects.Add(new Medical3DObject()); 
 
      int index; 
 
      codecsInformation = _codecs.GetInformation((string)output.Stacks[0].Items[0].Data, true); 
 
 
      int width = codecsInformation.Width; 
      int height = codecsInformation.Height; 
      int depth = 256; 
 
      _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientInit(depth); 
 
      for (index = 0; index < depth; index++) 
      { 
 
         _image = _codecs.Load((string)output.Stacks[0].Items[index].Data, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1); 
         _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientSetFrame(_image, index, output.Stacks[0].Items[index].ImagePosition, true); 
      } 
 
      string spearator = ("\\"); 
      string[] test = output.Stacks[0].Items[0].ImageOrientation.Split(spearator.ToCharArray()); 
      float[] orientation = new float[6]; 
      int i; 
      for (i = 0; i < 6; i++) 
      { 
         orientation[i] = (float)Convert.ToDouble(test[i]); 
      } 
 
      _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientEnd(orientation, output.Stacks[0].PixelSpacing); 
 
      _medical3DControl.ObjectsContainer.Camera.ProjectionMethod = Medical3DProjectionMethod.Orthogonal; 
 
      _medical3DControl.AddAction(MedicalViewerActionType.Rotate3DCamera); 
      _medical3DControl.SetAction(MedicalViewerActionType.Rotate3DCamera, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); 
 
      _medical3DControl.AddAction(MedicalViewerActionType.Translate3DCamera); 
      _medical3DControl.SetAction(MedicalViewerActionType.Translate3DCamera, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); 
 
      _medical3DControl.SetTag(1, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, ""); 
      _medical3DControl.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, ""); 
      _medical3DControl.SetTag(3, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, ""); 
      _medical3DControl.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, ""); 
 
      _medical3DControl.CameraSettingsChanged += new EventHandler<Medical3DCameraEventArgs>(_medical3DControl_CameraSettingsChanged); 
 
      Controls.Add(_medical3DControl); 
   } 
 
   void _medical3DControl_CameraSettingsChanged(object sender, Medical3DCameraEventArgs e) 
   { 
      _medical3DControl.EditTag(1, MedicalViewerTagAlignment.TopLeft, new MedicalViewerTagInformation(1, MedicalViewerTagAlignment.TopLeft, 
                                "X =  " + _medical3DControl.ObjectsContainer.Camera.XOffset.ToString() + 
                                "  Y =  " + _medical3DControl.ObjectsContainer.Camera.YOffset.ToString() + 
                                "  Z =  " + _medical3DControl.ObjectsContainer.Camera.ZOffset.ToString(), MedicalViewerTagType.UserData)); 
 
      _medical3DControl.EditTag(2, MedicalViewerTagAlignment.TopLeft, new MedicalViewerTagInformation(2, MedicalViewerTagAlignment.TopLeft, 
                                "XRotation =  " + _medical3DControl.ObjectsContainer.Camera.XRotation.ToString() + 
                                "  YRotation =  " + _medical3DControl.ObjectsContainer.Camera.YRotation.ToString() + 
                                "  ZRotation =  " + _medical3DControl.ObjectsContainer.Camera.AxialRotation.ToString(), MedicalViewerTagType.UserData)); 
 
      _medical3DControl.EditTag(3, MedicalViewerTagAlignment.TopLeft, new MedicalViewerTagInformation(3, MedicalViewerTagAlignment.TopLeft, 
                                "Projection Method =  " + _medical3DControl.ObjectsContainer.Camera.ProjectionMethod.ToString(), MedicalViewerTagType.UserData)); 
 
      _medical3DControl.EditTag(4, MedicalViewerTagAlignment.TopLeft, new MedicalViewerTagInformation(4, MedicalViewerTagAlignment.TopLeft, 
                                "Zoom =  " + _medical3DControl.ObjectsContainer.Camera.Zoom.ToString(), MedicalViewerTagType.UserData)); 
   } 
 
   void MainForm1_FormClosing(object sender, FormClosingEventArgs e) 
   { 
      _medical3DControl.Dispose(); 
   } 
 
 
   void MainForm1_SizeChanged(object sender, EventArgs e) 
   { 
      if (_medical3DControl != null) 
         _medical3DControl.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom); 
   } 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.MedicalViewer 
Imports Leadtools.Medical3D 
 
Public Sub Medical3DControlExample() 
   Dim LoadObject As Medical3DLoadDICOMSeriesExamples = New Medical3DLoadDICOMSeriesExamples() 
   Dim output As MedicalViewerSeriesManager = LoadObject.LoadJamesHead() 
 
   Dim form As MainForm1 = New MainForm1(output) 
   form.ShowDialog() 
End Sub 
 
' MainForm1 will be the owner of the medical viewer control. 
Private Class MainForm1 : Inherits Form 
   Private _medical3DControl As Medical3DControl 
 
   Public Sub New(ByVal output As MedicalViewerSeriesManager) 
      Dim _codecs As RasterCodecs = New RasterCodecs() 
      Dim _image As RasterImage 
 
      Dim codecsInformation As CodecsImageInfo 
 
      _medical3DControl = New Medical3DControl() 
      AddHandler SizeChanged, AddressOf MainForm1_SizeChanged 
      AddHandler FormClosing, AddressOf MainForm1_FormClosing 
 
 
      _medical3DControl.ObjectsContainer.Objects.Add(New Medical3DObject()) 
 
      Dim index As Integer 
 
      codecsInformation = _codecs.GetInformation(CStr(output.Stacks(0).Items(0).Data), True) 
 
 
      Dim width As Integer = codecsInformation.Width 
      Dim height As Integer = codecsInformation.Height 
      Dim depth As Integer = 256 
 
      _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientInit(depth) 
 
      index = 0 
      Do While index < depth 
 
         _image = _codecs.Load(CStr(output.Stacks(0).Items(index).Data), 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1) 
         _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientSetFrame(_image, index, output.Stacks(0).Items(index).ImagePosition, True) 
         index += 1 
      Loop 
 
      Dim spearator As String = ("\") 
      Dim test As String() = output.Stacks(0).Items(0).ImageOrientation.Split(spearator.ToCharArray()) 
      Dim orientation As Single() = New Single(5) {} 
      Dim i As Integer 
      For i = 0 To 5 
         orientation(i) = CSng(Convert.ToDouble(test(i))) 
      Next i 
 
      _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientEnd(orientation, output.Stacks(0).PixelSpacing) 
 
      _medical3DControl.ObjectsContainer.Camera.ProjectionMethod = Medical3DProjectionMethod.Orthogonal 
 
      _medical3DControl.AddAction(MedicalViewerActionType.Rotate3DCamera) 
      _medical3DControl.SetAction(MedicalViewerActionType.Rotate3DCamera, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) 
 
      _medical3DControl.AddAction(MedicalViewerActionType.Translate3DCamera) 
      _medical3DControl.SetAction(MedicalViewerActionType.Translate3DCamera, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active) 
 
      _medical3DControl.SetTag(1, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "") 
      _medical3DControl.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "") 
      _medical3DControl.SetTag(3, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "") 
      _medical3DControl.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "") 
 
      AddHandler _medical3DControl.CameraSettingsChanged, AddressOf _medical3DControl_CameraSettingsChanged 
 
      Controls.Add(_medical3DControl) 
   End Sub 
 
   Private Sub _medical3DControl_CameraSettingsChanged(ByVal sender As Object, ByVal e As Medical3DCameraEventArgs) 
      Dim myString As String = "X =  " & _medical3DControl.ObjectsContainer.Camera.XOffset.ToString() & "  Y =  " & _medical3DControl.ObjectsContainer.Camera.YOffset.ToString() 
      myString = myString & "  Z =  " & _medical3DControl.ObjectsContainer.Camera.ZOffset.ToString() 
      _medical3DControl.EditTag(1, MedicalViewerTagAlignment.TopLeft, New MedicalViewerTagInformation(1, MedicalViewerTagAlignment.TopLeft, myString, MedicalViewerTagType.UserData)) 
 
      myString = "XRotation =  " & _medical3DControl.ObjectsContainer.Camera.XRotation.ToString() & "  YRotation =  " & _medical3DControl.ObjectsContainer.Camera.YRotation.ToString() 
      myString = myString & "  ZRotation =  " & _medical3DControl.ObjectsContainer.Camera.AxialRotation.ToString() 
      _medical3DControl.EditTag(2, MedicalViewerTagAlignment.TopLeft, New MedicalViewerTagInformation(2, MedicalViewerTagAlignment.TopLeft, myString, MedicalViewerTagType.UserData)) 
 
      myString = "Projection Method =  " & _medical3DControl.ObjectsContainer.Camera.ProjectionMethod.ToString() 
      _medical3DControl.EditTag(3, MedicalViewerTagAlignment.TopLeft, New MedicalViewerTagInformation(3, MedicalViewerTagAlignment.TopLeft, myString, MedicalViewerTagType.UserData)) 
 
      myString = "Zoom =  " & _medical3DControl.ObjectsContainer.Camera.Zoom.ToString() 
      _medical3DControl.EditTag(4, MedicalViewerTagAlignment.TopLeft, New MedicalViewerTagInformation(4, MedicalViewerTagAlignment.TopLeft, myString, MedicalViewerTagType.UserData)) 
   End Sub 
 
   Private Sub MainForm1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) 
      _medical3DControl.Dispose() 
   End Sub 
 
 
   Private Sub MainForm1_SizeChanged(ByVal sender As Object, ByVal e As EventArgs) 
      If Not _medical3DControl Is Nothing Then 
         _medical3DControl.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom) 
      End If 
   End Sub 
End Class 
Help Version 21.0.2021.6.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Medical3D Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.