This tutorial teaches you how to use the slab feature with a 3D object and three MPR orthogonal slices (Axial, Sagittal and Coronal).
This tutorial attains similar results to Creating a 3D object with MPR view but without the cross-hair. To remove the cross-hair, we need to edit the InitClass() method to set the ShowMPRCrossHair Property of all cells to false.
axialCell.ShowMPRCrossHair = falsecoronalCell.ShowMPRCrossHair = falsesagittalCell.ShowMPRCrossHair = false
axialCell.ShowMPRCrossHair = false;coronalCell.ShowMPRCrossHair = false;sagittalCell.ShowMPRCrossHair = false;
Enable the slab property by adding the following line at the end of the method InitClass()
control3D.ObjectsContainer.Objects(0).Slab.Enabled = True
control3D.ObjectsContainer.Objects[0].Slab.Enabled = true;
The InitClass() method should look as follows:
Private Sub InitClass()Dim MY_LICENSE_FILE As String = "d:\temp\TestLic.lic"' Unlock DICOM supportDim MY_DicomDEVELOPER_KEY As String = "xyz123abc"RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);' Unlock Medical supportDim MY_MedicalDEVELOPER_KEY As String = "abc123xyz"RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);' Unlock Medical 3D supportDim MY_3DDEVELOPER_KEY As String = "123xyzabc"RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);' Create a new instance of the Codecs class, which will be used to load the images.Dim _codecs As RasterCodecs = New RasterCodecs()' Create a new instance of the Medical Viewer. The layout will be divided to 2X2.Dim viewer As MedicalViewer = New MedicalViewer(2, 2)' Fit the view to the whole formviewer.Dock = DockStyle.Fill' Create the 3D control that will hold the 3D object.Dim control3D As Medical3DControl = New Medical3DControl()control3D.AddAction(MedicalViewerActionType.WindowLevel)control3D.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)Dim object3D As Medical3DObject = New Medical3DObject()' Add the newly created 3D object to the control.control3D.ObjectsContainer.Objects.Add(object3D)object3D.Image = _codecs.Load("C:\Users\Public\Documents\LEADTOOLS Images\image1.dcm")' Add the cell above to the MedicalViewer.viewer.Cells.Add(control3D)Controls.Add(viewer)' Create a new cell that will hold the axial frame.Dim axialCell As MedicalViewerMPRCell = New MedicalViewerMPRCell()' adjust some properties to view the cross hair.axialCell.ShowMPRCrossHair = FalseaxialCell.DistinguishMPRByColor = True' Assign this cell (axialCell) to the AxialFrame property of the Medical 3D controlcontrol3D.AxialFrame = axialCell' add the axial cell to the viewerviewer.Cells.Add(axialCell)' Create a new cell that will hold the coronal frame.Dim coronalCell As MedicalViewerMPRCell = New MedicalViewerMPRCell()' adjust some properties to view the cross hair.coronalCell.ShowMPRCrossHair = FalsecoronalCell.DistinguishMPRByColor = True' Assign this cell (coronalCell) to the CoronalFrame property of the Medical 3D controlcontrol3D.CoronalFrame = coronalCellviewer.Cells.Add(coronalCell)' Create a new cell that will hold the sagittal frame.Dim sagittalCell As MedicalViewerMPRCell = New MedicalViewerMPRCell()' adjust some properties to view the cross hair.sagittalCell.ShowMPRCrossHair = FalsesagittalCell.DistinguishMPRByColor = True' Assign this cell (sagittalCell) to the SagittalFrame property of the Medical 3D controlcontrol3D.SagittalFrame = sagittalCellviewer.Cells.Add(sagittalCell)' Add the viewer as a child to the form.Me.Controls.Add(viewer)control3D.ObjectsContainer.Objects(0).Slab.Enabled = True
void InitClass(){string MY_LICENSE_FILE = "d:\\temp\\TestLic.lic";// Unlock DICOM supportstring MY_DicomDEVELOPER_KEY = "xyz123abc";RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DicomDEVELOPER_KEY);// Unlock Medical supportstring MY_MedicalDEVELOPER_KEY = "abc123xyz";RasterSupport.SetLicense(MY_LICENSE_FILE, MY_MedicalDEVELOPER_KEY);// Unlock Medical 3D supportstring MY_3DDEVELOPER_KEY = "123xyzabc";RasterSupport.SetLicense(MY_LICENSE_FILE, MY_3DDEVELOPER_KEY);// Create a new instance of the Codecs class, which will be used to load the images.RasterCodecs _codecs = new RasterCodecs();// Create a new instance of the Medical Viewer. The layout will be divided to 2X2.MedicalViewer viewer = new MedicalViewer(2, 2);// Fit the view to the whole formviewer.Dock = DockStyle.Fill;// Create the 3D control that will hold the 3D object.Medical3DControl control3D = new Medical3DControl();control3D.AddAction(MedicalViewerActionType.WindowLevel);control3D.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);Medical3DObject object3D = new Medical3DObject();// Add the newly created 3D object to the control.control3D.ObjectsContainer.Objects.Add(object3D);object3D.Image = _codecs.Load(@"C:\Users\Public\Documents\LEADTOOLS Images\image1.dcm");// Add the cell above to the MedicalViewer.viewer.Cells.Add(control3D);Controls.Add(viewer);// Create a new cell that will hold the axial frame.MedicalViewerMPRCell axialCell = new MedicalViewerMPRCell();// adjust some properties to view the cross hair.axialCell.ShowMPRCrossHair = false;axialCell.DistinguishMPRByColor = true;// Assign this cell (axialCell) to the AxialFrame property of the Medical 3D controlcontrol3D.AxialFrame = axialCell;// add the axial cell to the viewerviewer.Cells.Add(axialCell);// Create a new cell that will hold the coronal frame.MedicalViewerMPRCell coronalCell = new MedicalViewerMPRCell();// adjust some properties to view the cross hair.coronalCell.ShowMPRCrossHair = false;coronalCell.DistinguishMPRByColor = true;// Assign this cell (coronalCell) to the CoronalFrame property of the Medical 3D controlcontrol3D.CoronalFrame = coronalCell;viewer.Cells.Add(coronalCell);// Create a new cell that will hold the sagittal frame.MedicalViewerMPRCell sagittalCell = new MedicalViewerMPRCell();// adjust some properties to view the cross hair.sagittalCell.ShowMPRCrossHair = false;sagittalCell.DistinguishMPRByColor = true;// Assign this cell (sagittalCell) to the SagittalFrame property of the Medical 3D controlcontrol3D.SagittalFrame = sagittalCell;viewer.Cells.Add(sagittalCell);// Add the viewer as a child to the form.this.Controls.Add(viewer);control3D.ObjectsContainer.Objects[0].Slab.Enabled = true;}
Run the program and you should see four windows: One for the 3D object and the other three for the orthogonal frames. There should be a green dotted line surrounding the three orthogonal plane cells. Resize the rectangle by clicking-and- dragging the green border.
Note: Now you will need to have DICOMDIR files for the next step. You can download a sample from our site. Download the file from here (Download chest_ct_compressed_subset_for_3d_tutorial.zip), and extract the file to "C:\Leadtools_DICOMDIR". For more information on building 3D objects from a DICOMDIR, please see Loading a DICOMDIR To Create a 3D Object.
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
