Normal Property

Summary
Gets or sets the point that represents the plane normal.
Syntax
C#
C++/CLI
public Point3D Normal { get; set; } 
public: 
property Point3D Normal { 
   Point3D get(); 
   void set (    Point3D ); 
} 

Property Value

Leadtools.MedicalViewer.Point3D that represents the plane normal.

Remarks

The Normal is a vector that is perpendicular to the clipping plane surface.

normal.jpg

The angle of the plane can be controlled and determined by specifying the 3D "Normal" vector property of the plane which reflects the direction of the plane in the space.

For example, if you need an oblique plane to have a 90º with X-axis and 0º with Z-axis, you can specify its normal vector to be (sin(90º), cos(90º), 0).

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. 
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.VolumeType = Medical3DVolumeType.MPR; 
 
      //Initialize the plane point and normal 
      Point3D Normal = new Point3D(1, 0, 0); 
      Point3D Point = new Point3D(0, 0, 0.0f); 
      _medical3DControl.ObjectsContainer.Objects[0].MPR.Planes[2].Point = Point; 
      _medical3DControl.ObjectsContainer.Objects[0].MPR.Planes[2].Normal = Normal; 
      _medical3DControl.ObjectsContainer.Objects[0].MPR.Planes[2].Enabled = true; 
      _medical3DControl.ObjectsContainer.Objects[0].MPR.Planes[2].Space = Medical3DSpace.Object; 
      _medical3DControl.ObjectsContainer.Objects[0].MPR.Planes[2].Axis = Medical3DAxis.X; 
 
      // move and rotate plane[2]    
      _medical3DControl.ObjectsContainer.Objects[0].MPR.Planes[2].Move(-0.2f); 
      _medical3DControl.ObjectsContainer.Objects[0].MPR.Planes[2].Rotate(60.0f); 
 
      _medical3DControl.AddAction(MedicalViewerActionType.TranslatePlane); 
      _medical3DControl.SetAction(MedicalViewerActionType.TranslatePlane, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); 
 
      _medical3DControl.AddAction(MedicalViewerActionType.RotatePlane); 
      _medical3DControl.SetAction(MedicalViewerActionType.RotatePlane, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); 
 
      Controls.Add(_medical3DControl); 
   } 
 
   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); 
   } 
} 
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.