SagittalFrame Property

Summary
Gets or sets the control that will be used to display the MPR sagittal frame.
Syntax
C#
C++/CLI
public MedicalViewerMPRCell SagittalFrame { get; set; } 
public: 
property MedicalViewerMPRCell^ SagittalFrame { 
   MedicalViewerMPRCell^ get(); 
   void set (    MedicalViewerMPRCell^ ); 
} 

Property Value

The control that will be used to display the MPR sagittal frame.

Remarks
  • When moving the 3D MPR sagittal plane, the control will be updated automatically to display the corresponding sagittal frame
  • The SagittalFrame control will not display any image if the source Medical3DControl volume type is set to SSD.
  • To change the volume type to MPR set the property VolumeType to MPR.
Example
C#
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. 
public class MainForm1 : Form 
{ 
   private Medical3DControl _medical3DControl; 
   private MedicalViewerMPRCell _axial; 
   private MedicalViewerMPRCell _coronal; 
   private MedicalViewerMPRCell _saggital; 
 
   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); 
 
 
      _axial = new MedicalViewerMPRCell(); 
      _coronal = new MedicalViewerMPRCell(); 
      _saggital = new MedicalViewerMPRCell(); 
 
      // set Medical 3DControl to viewer cell 
      _medical3DControl.AxialFrame = _axial; 
      _medical3DControl.SagittalFrame = _saggital; 
      _medical3DControl.CoronalFrame = _coronal; 
 
      // Fit image to cell 
      _axial.FitImageToCell = true; 
      _saggital.FitImageToCell = true; 
      _coronal.FitImageToCell = true; 
 
      // Show Cross hair lines 
      _axial.ShowMPRCrossHair = true; 
      _saggital.ShowMPRCrossHair = true; 
      _coronal.ShowMPRCrossHair = true; 
 
      // Show cell boundaries 
      _axial.ShowCellBoundaries = true; 
      _saggital.ShowCellBoundaries = true; 
      _coronal.ShowCellBoundaries = true; 
 
      // Enable slab option 
      _medical3DControl.ObjectsContainer.Objects[0].Slab.Enabled = true; 
 
      _axial.ShowSlabBoundaries = true; 
      _saggital.ShowSlabBoundaries = true; 
      _coronal.ShowSlabBoundaries = true; 
 
      // invert the axial image 
      _axial.InvertImage(); 
 
      _medical3DControl.ApplyWindowLevelOnAllCells = true; 
 
      _medical3DControl.AddAction(MedicalViewerActionType.Rotate3DObject); 
      _medical3DControl.SetAction(MedicalViewerActionType.Rotate3DObject, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); 
 
      _medical3DControl.AddAction(MedicalViewerActionType.WindowLevel); 
      _medical3DControl.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); 
 
      this.Controls.Add(_medical3DControl); 
      this.Controls.Add(_axial); 
      this.Controls.Add(_coronal); 
      this.Controls.Add(_saggital); 
   } 
 
   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 / 2, this.ClientRectangle.Bottom / 2); 
 
      if (_axial != null) 
         _axial.Size = new Size(this.ClientRectangle.Right / 2, this.ClientRectangle.Bottom / 2); 
 
      if (_saggital != null) 
         _saggital.Size = new Size(this.ClientRectangle.Right / 2, this.ClientRectangle.Bottom / 2); 
 
      if (_coronal != null) 
         _coronal.Size = new Size(this.ClientRectangle.Right / 2, this.ClientRectangle.Bottom / 2); 
 
      _axial.Location = new Point(this.ClientRectangle.Right / 2, 0); 
      _saggital.Location = new Point(0, this.ClientRectangle.Bottom / 2); 
      _coronal.Location = new Point(this.ClientRectangle.Right / 2, this.ClientRectangle.Bottom / 2); 
   } 
} 
Requirements

Target Platforms

Help Version 22.0.2023.1.24
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Medical3D Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.