LEADTOOLS Medical (Leadtools.Medical3D assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.30
Medical3DContainer Constructor()
See Also  Example
Leadtools.Medical3D Namespace > Medical3DContainer Class > Medical3DContainer Constructor : Medical3DContainer Constructor()



Initializes a new instance of the class Medical3DContainer with default parameters.

Syntax

Visual Basic (Declaration) 
Public Function New()
Visual Basic (Usage)Copy Code
Dim instance As New Medical3DContainer()
C# 
public Medical3DContainer()
C++/CLI 
public:
Medical3DContainer();

Example

Visual BasicCopy Code
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 _medical3DControl;

   Private _control As Control
   Private mycontainer As Medical3DContainer

   Public Sub New(ByVal output As MedicalViewerSeriesManager)
      Dim _codecs As RasterCodecs = New RasterCodecs()
      Dim _image As RasterImage

      Dim codecsInformation As CodecsImageInfo

      _control = New Control()

      AddHandler SizeChanged, AddressOf MainForm1_SizeChanged
      AddHandler FormClosing, AddressOf MainForm1_FormClosing

      mycontainer = New Medical3DContainer()

      mycontainer.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

      mycontainer.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)
         mycontainer.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

      mycontainer.Objects(0).MemoryEfficientEnd(orientation, output.Stacks(0).PixelSpacing)

      Controls.Add(_control)

      AddHandler _control.Paint, AddressOf _control_Paint
      AddHandler _control.SizeChanged, AddressOf _control_SizeChanged

   End Sub

   Private Sub MainForm1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
      container.Dispose()
   End Sub

   Private Sub _control_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
      mycontainer.Render(_control)
   End Sub

   Private Sub _control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
      mycontainer.Render(_control)
   End Sub



   Private Sub MainForm1_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
      If Not _control Is Nothing Then
         _control.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
         mycontainer.Render(_control)
      End If
   End Sub
End Class
C#Copy Code
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;

    private Control _control;
    private Medical3DContainer container;

    public MainForm1(MedicalViewerSeriesManager output)
    {
        RasterCodecs _codecs = new RasterCodecs();
        RasterImage _image;

        CodecsImageInfo codecsInformation;

        _control = new Control();

        this.SizeChanged += new EventHandler(MainForm1_SizeChanged);
        this.FormClosing += new FormClosingEventHandler(MainForm1_FormClosing);

        container = new Medical3DContainer();

        container.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;

        container.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);
            container.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]);
        }

        container.Objects[0].MemoryEfficientEnd(orientation, output.Stacks[0].PixelSpacing);

        Controls.Add(_control);

        _control.Paint += new PaintEventHandler(_control_Paint);
        _control.SizeChanged += new EventHandler(_control_SizeChanged);

    }

    void MainForm1_FormClosing(object sender, FormClosingEventArgs e)
    {
        container.Dispose();
    }

    void _control_SizeChanged(object sender, EventArgs e)
    {
        container.Render(_control);
    }

    void _control_Paint(object sender, PaintEventArgs e)
    {
        container.Render(_control);
    }



    void MainForm1_SizeChanged(object sender, EventArgs e)
    {
        if (_control != null)
        {
            _control.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
            container.Render(_control);
        }
    }
}

Remarks

  • A folder called "Temp3DFolder" will be added to the C: drive which will contain the temporary 3D data.
  • In case of any unexpected errors which prevents the program of freeing the temporary data, You must remove this temporary data manually

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also

Leadtools.Medical3D requires a Document or Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features