// Draw xyz axis
        private void xyzToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (null == axesWidget)
            {
                vtkAxesActor axes = new vtkAxesActor();
                axesWidget = new vtkOrientationMarkerWidget();
                axesWidget.SetOutlineColor(0.9300, 0.5700, 0.1300);
                axesWidget.SetOrientationMarker(axes);
                axesWidget.SetInteractor(Interactor);
                axesWidget.SetViewport(0.0, 0.0, 0.2, 0.2);
                axesWidget.SetEnabled(1);
                axesWidget.InteractiveOn();

                // Begin mouse interaction
                Interactor.Start();
            }
            else if (axesWidget.GetEnabled() != 0)
            {
                axesWidget.EnabledOff();
            }
            else
            {
                axesWidget.EnabledOn();
            }
            m_Renderer.ResetCamera();
            m_RenderWindow.Render();
        }
 //绘制坐标轴
 private void DrawAxes()
 {
     m_RenderWindowInteractor = this.renderWindowControl1.RenderWindow.GetInteractor();
     m_AxesActor = new vtkAxesActor();
     m_OrientationMarkerWidget = new vtkOrientationMarkerWidget();
     m_OrientationMarkerWidget.SetOrientationMarker(m_AxesActor);
     m_OrientationMarkerWidget.SetInteractor(m_RenderWindowInteractor);
     m_OrientationMarkerWidget.On();
     m_OrientationMarkerWidget.SetInteractive(0);
 }
예제 #3
0
        private void Axes()
        {
            vtkSphereSource sphereSource = vtkSphereSource.New();

            sphereSource.SetCenter(0.0, 0.0, 0.0);
            sphereSource.SetRadius(0.5);

            //create a mapper
            vtkPolyDataMapper sphereMapper = vtkPolyDataMapper.New();

            sphereMapper.SetInputConnection(sphereSource.GetOutputPort());

            // create an actor
            vtkActor sphereActor = vtkActor.New();

            sphereActor.SetMapper(sphereMapper);

            // a renderer and render window
            vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow;
            vtkRenderer     renderer     = renderWindow.GetRenderers().GetFirstRenderer();

            renderer.SetBackground(0.2, 0.3, 0.4);

            // add the actors to the scene
            renderer.AddActor(sphereActor);

            vtkAxesActor axes = vtkAxesActor.New();
            // The axes are positioned with a user transform
            vtkTransform transform = vtkTransform.New();

            transform.Translate(0.75, 0.0, 0.0);
            axes.SetUserTransform(transform);
            // properties of the axes labels can be set as follows
            // this sets the x axis label to red
            // axes.GetXAxisCaptionActor2D().GetCaptionTextProperty().SetColor(1,0,0);

            // the actual text of the axis label can be changed:
            // axes.SetXAxisLabelText("test");

            renderer.AddActor(axes);
            // we need to call Render() for the whole renderWindow,
            // because vtkAxesActor uses an overlayed renderer for the axes label
            // in total we have now two renderer
            renderWindow.Render();
        }
예제 #4
0
        void DrawAxes()
        {// 设置坐标轴
            if (null == m_marker)
            {
                vtkAxesActor axes = new vtkAxesActor();
                axes.SetShaftTypeToLine();
                axes.SetXAxisLabelText("x");
                axes.SetYAxisLabelText("y");
                axes.SetZAxisLabelText("z");
                axes.SetTotalLength(0.6, 0.6, 0.6);
                m_marker = new vtkOrientationMarkerWidget();

                m_marker.SetInteractor(m_iren);
                m_marker.SetOrientationMarker(axes);
                m_marker.SetViewport(-0.2, -0.2, 0.3, 0.3);
                m_marker.SetEnabled(1);
                m_marker.SetInteractive(0);
            }
        }
예제 #5
0
        private void CreateAxes()
        {
            //  -------------------- Axes of Coordinate system --------------------------------------------
            Axes = new vtkAxesActor();
            Axes.GetXAxisShaftProperty().SetLineWidth((float)3.0);
            Axes.GetYAxisShaftProperty().SetLineWidth((float)3.0);
            Axes.GetZAxisShaftProperty().SetLineWidth((float)3.0);
            Axes.GetXAxisShaftProperty().SetRepresentationToSurface();
            Axes.GetYAxisShaftProperty().SetRepresentationToSurface();
            Axes.GetZAxisShaftProperty().SetRepresentationToSurface();

            Axes.GetXAxisCaptionActor2D().GetCaptionTextProperty().SetFontSize(25);
            Axes.GetXAxisCaptionActor2D().GetCaptionTextProperty().SetBold(0);
            Axes.GetXAxisCaptionActor2D().GetCaptionTextProperty().ItalicOff();
            Axes.GetXAxisCaptionActor2D().GetCaptionTextProperty().ShadowOff();
            Axes.GetXAxisCaptionActor2D().GetTextActor().SetTextScaleModeToNone();

            Axes.GetYAxisCaptionActor2D().GetCaptionTextProperty().SetFontSize(25);
            Axes.GetYAxisCaptionActor2D().GetCaptionTextProperty().SetBold(0);
            Axes.GetYAxisCaptionActor2D().GetCaptionTextProperty().ItalicOff();
            Axes.GetYAxisCaptionActor2D().GetCaptionTextProperty().ShadowOff();
            Axes.GetYAxisCaptionActor2D().GetTextActor().SetTextScaleModeToNone();

            Axes.GetZAxisCaptionActor2D().GetCaptionTextProperty().SetFontSize(25);
            Axes.GetZAxisCaptionActor2D().GetCaptionTextProperty().SetBold(0);
            Axes.GetZAxisCaptionActor2D().GetCaptionTextProperty().ItalicOff();
            Axes.GetZAxisCaptionActor2D().GetCaptionTextProperty().ShadowOff();
            Axes.GetZAxisCaptionActor2D().GetTextActor().SetTextScaleModeToNone();

            Widget = new vtkOrientationMarkerWidget();
            Widget.SetOrientationMarker(Axes);
            Widget.SetInteractor(renderWindow.GetInteractor());
            Widget.SetViewport(0.7, 0.7, 1.2, 1.2);
            Widget.SetEnabled(1);
            Widget.InteractiveOff();
        }
        public void DisplayXYZ()
        {
            if (CompleteScreening == null) return;

            int DescX = this.comboBoxDescriptorX.SelectedIndex;
            int DescY = this.comboBoxDescriptorY.SelectedIndex;
            int DescZ = this.comboBoxDescriptorZ.SelectedIndex;

            if (DescX < 0) DescX = 0;
            if (DescY < 0) DescY = 0;
            if (DescZ < 0) DescZ = 0;

            int[] Pos = new int[2];
            Pos[0] = 0;
            Pos[1] = 0;

            if (CurrentWorld == null)
            {
                CurrentWorld = new c3DWorld(new cPoint3D(1000, 1000, 1000), new cPoint3D(ListScales[DescX], ListScales[DescY], ListScales[DescZ]), this.renderWindowControl1, Pos, CompleteScreening);
            }

            CurrentWorld.SetBackgroundColor(Color.Black);
            CurrentWorld.ren1.RemoveAllViewProps();

            //  if (widget != null) widget.SetEnabled(0);

            Series CurrentSeries = new Series("ScatterPoints");

            double MinX = double.MaxValue;
            double MinY = double.MaxValue;
            double MinZ = double.MaxValue;
            double MaxZ = double.MinValue;
            double MaxX = double.MinValue;
            double MaxY = double.MinValue;

            double TempX, TempY, TempZ;
            int Idx = 0;

            cExtendPlateList ListPlate = new cExtendPlateList();

            cMetaBiologicalObjectList ListMeta = new cMetaBiologicalObjectList("Test");
            cBiologicalSpot CurrentSpot1 = new cBiologicalSpot(Color.White, new cPoint3D(0, 0, 0), 1, 4);
            cMetaBiologicalObject Plate3D = new cMetaBiologicalObject("Data", ListMeta, CurrentSpot1);

            if (!IsFullScreen)
                ListPlate.Add(CompleteScreening.GetCurrentDisplayPlate());
            else
                ListPlate = CompleteScreening.ListPlatesActive;

            vtkUnsignedCharArray colors = vtkUnsignedCharArray.New();
            colors.SetName("colors");
            colors.SetNumberOfComponents(3);
            vtkPoints Allpoints = vtkPoints.New();

            cExtendedList ListPtX = new cExtendedList();
            cExtendedList ListPtY = new cExtendedList();
            cExtendedList ListPtZ = new cExtendedList();

            for (int i = 0; i < ListPlate.Count; i++)
            {
                cPlate CurrentPlate = ListPlate[i];
                for (int IdxValue = 0; IdxValue < CompleteScreening.Columns; IdxValue++)
                    for (int IdxValue0 = 0; IdxValue0 < CompleteScreening.Rows; IdxValue0++)
                    {
                        cWell TmpWell = CurrentPlate.GetWell(IdxValue, IdxValue0, true);
                        if (TmpWell != null)
                        {

                            TempX = TmpWell.ListDescriptors[DescX].GetValue();
                            if (TempX < MinX) MinX = TempX;
                            if (TempX > MaxX) MaxX = TempX;

                            TempY = TmpWell.ListDescriptors[DescY].GetValue();
                            if (TempY < MinY) MinY = TempY;
                            if (TempY > MaxY) MaxY = TempY;

                            TempZ = TmpWell.ListDescriptors[DescZ].GetValue();
                            if (TempZ < MinZ) MinZ = TempZ;
                            if (TempZ > MaxZ) MaxZ = TempZ;

                            //   cBiologicalSpot CurrentSpot = new cBiologicalSpot(TmpWell.GetColor(), new cPoint3D(TempX, TempY, TempZ), 1, 4);

                            List<char> Col = new List<char>();

                            Col.Add((char)(TmpWell.GetColor().R));
                            Col.Add((char)(TmpWell.GetColor().G));
                            Col.Add((char)(TmpWell.GetColor().B));

                            // IntPtr unmanagedPointer = Marshal.UnsafeAddrOfPinnedArrayElement(Col.ToArray(), 0);

                            //colors.InsertNextTupleValue(unmanagedPointer);
                            colors.InsertNextTuple3(Col[0], Col[1], Col[2]);

                            ListPtX.Add(TempX);
                            ListPtY.Add(TempY);
                            ListPtZ.Add(TempZ);

                            //     CurrentSpot.Name = TmpWell.AssociatedPlate.Name + " - " + TmpWell.GetPosX() + "x" + TmpWell.GetPosY() + " :" + TmpWell.Name;
                            //    CurrentSpot.ObjectType = TmpWell.AssociatedPlate.Name + " - " + TmpWell.GetPosX() + "x" + TmpWell.GetPosY() + " :" + TmpWell.Name;
                            //    Plate3D.AddObject(CurrentSpot);
                            // CurrentWorld.AddBiological3DObject(CurrentSpot);
                            //CurrentSeries.Points.Add(TempX, TempY);

                            //                                if (IsFullScreen)
                            //                                    CurrentSeries.Points[Idx].ToolTip = TmpWell.AssociatedPlate.Name + "\n" + TmpWell.GetPosX() + "x" + TmpWell.GetPosY() + " :" + TmpWell.Name;
                            //                                else
                            //                                    CurrentSeries.Points[Idx].ToolTip = TmpWell.GetPosX() + "x" + TmpWell.GetPosY() + " :" + TmpWell.Name;

                            Idx++;
                        }
                    }
            }

            double MinValueX = ListPtX.Min();
            double MaxValueX = ListPtX.Max();
            cExtendedList NormX = ListPtX.Normalize(MinValueX, MaxValueX);

            double MinValueY = ListPtY.Min();
            double MaxValueY = ListPtY.Max();
            cExtendedList NormY = ListPtY.Normalize(MinValueY, MaxValueY);

            double MinValueZ = ListPtZ.Min();
            double MaxValueZ = ListPtZ.Max();
            cExtendedList NormZ = ListPtZ.Normalize(MinValueZ, MaxValueZ);

            for (int IdxPt = 0; IdxPt < ListPtX.Count; IdxPt++)
                Allpoints.InsertNextPoint(NormX[IdxPt], NormY[IdxPt], NormZ[IdxPt]);

            vtkPolyData polydata = vtkPolyData.New();
            polydata.SetPoints(Allpoints);
            polydata.GetPointData().SetScalars(colors);
            vtkSphereSource SphereSource = vtkSphereSource.New();
            SphereSource.SetRadius(RadiusSphere);
            vtkGlyph3D glyph3D = vtkGlyph3D.New();
            glyph3D.SetColorModeToColorByScalar();
            glyph3D.SetSourceConnection(SphereSource.GetOutputPort());

            glyph3D.SetInput(polydata);
            glyph3D.ScalingOff();
            glyph3D.Update();

            vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
            mapper.SetInputConnection(glyph3D.GetOutputPort());
            vtkActor actor = vtkActor.New();
            actor.SetMapper(mapper);

            CurrentWorld.ren1.AddActor(actor);

            if ((CompleteScreening.GetCurrentDisplayPlate().ListDRCRegions != null) && (CompleteScreening.GlobalInfo.OptionsWindow.checkBoxConnectDRCPts.Checked))
            {
                foreach (cDRC_Region TmpRegion in CompleteScreening.GetCurrentDisplayPlate().ListDRCRegions)
                {
                    int cpt = 0;

                    cWell[][] ListWells = TmpRegion.GetListWells();

                    foreach (cWell[] item in ListWells)
                    {
                        for (int IdxWell = 0; IdxWell < item.Length - 1; IdxWell++)
                        {
                            //cWell TmpWell0 = CompleteScreening.GetCurrentDisplayPlate().GetWell(item[IdxWell], IdxValue0, true);

                            if ((item[IdxWell] != null) && (item[IdxWell + 1] != null) && (item[IdxWell].GetClass() >= -1))
                            {

                                double StartX = (item[IdxWell].ListDescriptors[DescX].GetValue() - MinValueX) / (MaxValueX - MinValueX);
                                double StartY = (item[IdxWell].ListDescriptors[DescY].GetValue() - MinValueY) / (MaxValueY - MinValueY);
                                double StartZ = (item[IdxWell].ListDescriptors[DescZ].GetValue() - MinValueZ) / (MaxValueZ - MinValueZ);
                                double EndX = (item[IdxWell + 1].ListDescriptors[DescX].GetValue() - MinValueX) / (MaxValueX - MinValueX);
                                double EndY = (item[IdxWell + 1].ListDescriptors[DescY].GetValue() - MinValueY) / (MaxValueY - MinValueY);
                                double EndZ = (item[IdxWell + 1].ListDescriptors[DescZ].GetValue() - MinValueZ) / (MaxValueZ - MinValueZ);

                                cPoint3D StartPt = new cPoint3D(StartX, StartY, StartZ);
                                cPoint3D EndPt = new cPoint3D(EndX, EndY, EndZ);

                                c3DLine NewLine = new c3DLine(StartPt, EndPt);

                                CurrentWorld.AddGeometric3DObject(NewLine);
                            }

                        }
                    }
                    /*List<cDRC> ListDRC = new List<cDRC>();
                    for (int i = 0; i < CompleteScreening.ListDescriptors.Count; i++)
                    {
                        if (CompleteScreening.ListDescriptors[i].IsActive())
                        {
                            cDRC CurrentDRC = new cDRC(TmpRegion, CompleteScreening.ListDescriptors[i]);

                            ListDRC.Add(CurrentDRC);
                            cpt++;
                        }

                    }
                    */
                    //cDRCDisplay DRCDisplay = new cDRCDisplay(ListDRC, GlobalInfo);

                    //if (DRCDisplay.CurrentChart.Series.Count == 0) continue;

                    //DRCDisplay.CurrentChart.Location = new Point((DRCDisplay.CurrentChart.Width + 50) * 0, (DRCDisplay.CurrentChart.Height + 10 + DRCDisplay.CurrentRichTextBox.Height) * h++);
                    //DRCDisplay.CurrentRichTextBox.Location = new Point(DRCDisplay.CurrentChart.Location.X, DRCDisplay.CurrentChart.Location.Y + DRCDisplay.CurrentChart.Height + 5);

                    //WindowforDRCsDisplay.LChart.Add(DRCDisplay.CurrentChart);
                    //WindowforDRCsDisplay.LRichTextBox.Add(DRCDisplay.CurrentRichTextBox);
                }
            }

            // vtkAxesActor axis = vtkAxesActor.New();
            vtkAxisActor axisX = vtkAxisActor.New();
            axisX.SetPoint1(0, 0, 0);
            axisX.SetPoint2(1, 0, 0);
            axisX.SetTickLocationToBoth();
            axisX.SetDeltaMajor(0.1);
            axisX.SetMajorTickSize(0);
            axisX.MinorTicksVisibleOff();
            //axisX.Maj
            CurrentWorld.ren1.AddActor(axisX);

            vtkAxisActor axisY = vtkAxisActor.New();
            axisY.SetPoint1(0, 0, 0);
            axisY.SetPoint2(0, 1, 0);
            axisY.SetTickLocationToBoth();
            axisY.SetDeltaMajor(0.1);
            axisY.SetMajorTickSize(0.05);
            axisY.MinorTicksVisibleOff();
            CurrentWorld.ren1.AddActor(axisY);

            vtkAxisActor axisZ = vtkAxisActor.New();
            axisZ.SetPoint1(0, 0, 0);
            axisZ.SetPoint2(0, 0, 1);
            axisZ.SetTickLocationToBoth();
            axisZ.SetDeltaMajor(0.1);
            axisZ.SetMajorTickSize(0.05);
            axisZ.MinorTicksVisibleOff();
            CurrentWorld.ren1.AddActor(axisZ);

            if (widget == null)
            {
                widget = vtkOrientationMarkerWidget.New();

               axes = vtkAxesActor.New();
                widget.SetOutlineColor(0.9300, 0.5700, 0.1300);

                widget.SetInteractor(CurrentWorld.iren);
                widget.SetViewport(0.0, 0.0, 0.4, 0.4);
                 widget.SetEnabled(0);
              //  widget.InteractiveOn();

                if (this.comboBoxDescriptorX.SelectedItem == null)
                    axes.SetXAxisLabelText(this.comboBoxDescriptorX.Items[0].ToString());
                else
                axes.SetXAxisLabelText(this.comboBoxDescriptorX.SelectedItem.ToString());

                if (this.comboBoxDescriptorY.SelectedItem == null)
                    axes.SetYAxisLabelText(this.comboBoxDescriptorY.Items[0].ToString());
                else
                    axes.SetYAxisLabelText(this.comboBoxDescriptorY.SelectedItem.ToString());

                if (this.comboBoxDescriptorZ.SelectedItem == null)
                    axes.SetZAxisLabelText(this.comboBoxDescriptorZ.Items[0].ToString());
                else
                    axes.SetZAxisLabelText(this.comboBoxDescriptorZ.SelectedItem.ToString());

                widget.SetOrientationMarker(axes);

            }
            else
            {
                if(this.comboBoxDescriptorX.SelectedItem!=null)
                axes.SetXAxisLabelText(this.comboBoxDescriptorX.SelectedItem.ToString());

                if (this.comboBoxDescriptorY.SelectedItem != null)
                axes.SetYAxisLabelText(this.comboBoxDescriptorY.SelectedItem.ToString());

                if (this.comboBoxDescriptorZ.SelectedItem != null)
                axes.SetZAxisLabelText(this.comboBoxDescriptorZ.SelectedItem.ToString());

                widget.SetOrientationMarker(axes);

            }
            //

            //vtkCameraWidget Wid = vtkCameraWidget.New();
            //Wid.SetInteractor(CurrentWorld.iren);
            //Wid.SetEnabled(1);
            //  Wid.InteractiveOn();

            //vtkDistanceWidget distanceWidget = vtkDistanceWidget.New();
            //distanceWidget.SetInteractor(CurrentWorld.iren);
            //distanceWidget.SetEnabled(1);
            //distanceWidget.CreateDefaultRepresentation();
            //((vtkDistanceRepresentation)distanceWidget.GetRepresentation()).SetLabelFormat("%-#6.3g mm");
            /*static_cast<vtkDistanceRepresentation*>(distanceWidget->GetRepresentation())
              ->SetLabelFormat("%-#6.3g mm");

                      */
            //  Plate3D.GenerateAndDisplayBoundingBox(1, Color.White, false, CurrentWorld);
            //c3DText CaptionX = new c3DText(CurrentWorld, CompleteScreening.ListDescriptors[DescX].GetName(), new cPoint3D(MaxX, MinY, MinZ), Color.DarkRed, this.FontSize);
            //c3DLine LineX = new c3DLine(new cPoint3D(MinX, MinY, MinZ), new cPoint3D(MaxX, MinY, MinZ), Color.DarkRed);
            //CurrentWorld.AddGeometric3DObject(LineX);

            //c3DText CaptionY = new c3DText(CurrentWorld, CompleteScreening.ListDescriptors[DescY].GetName(), new cPoint3D(MinX, MaxY, MinZ), Color.DarkGreen, this.FontSize);
            //c3DLine LineY = new c3DLine(new cPoint3D(MinX, MinY, MinZ), new cPoint3D(MinX, MaxY, MinZ), Color.DarkGreen);
            //CurrentWorld.AddGeometric3DObject(LineY);

            //c3DText CaptionZ = new c3DText(CurrentWorld, CompleteScreening.ListDescriptors[DescZ].GetName(), new cPoint3D(MinX, MinY, MaxZ), Color.DarkBlue, this.FontSize);
            //c3DLine LineZ = new c3DLine(new cPoint3D(MinX, MinY, MinZ), new cPoint3D(MinX, MinY, MaxZ), Color.DarkBlue);
            //CurrentWorld.AddGeometric3DObject(LineZ);
            CurrentWorld.SimpleRender();// Render();
        }
예제 #7
0
파일: IRob.cs 프로젝트: eastcm/RobSim
 private void TransformAxes(vtkAxesActor axes, Position position)
 {
     vtkTransform transform = new vtkTransform();
     transform.Translate(position.X, position.Y, position.Z);
     transform.RotateWXYZ(position.A, 0, 0, 1);
     transform.RotateWXYZ(position.B, 0, 1, 0);
     transform.RotateWXYZ(position.C, 1, 0, 0);
     axes.SetUserTransform(transform);
 }
예제 #8
0
파일: MainForm.cs 프로젝트: antops/TBT
        private void renderWindowControl1_Load(object sender, EventArgs e)
        {
            vtkRenderWindow renWin = renderWindowControl1.RenderWindow;

            _render = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();

            //_render.SetBackground(1, 1, 1);
            _render.SetBackground(1.0, 1.0, 1.0);              // 设置页面底部颜色值
            _render.SetBackground2(0.529, 0.8078, 0.92157);    // 设置页面顶部颜色值
            _render.SetGradientBackground(true);               // 开启渐变色背景设置

            double axesScale = 1;
            // 初始化vtk窗口
            vtkAxesActor axes = vtkAxesActor.New();

            axes.GetXAxisCaptionActor2D().GetCaptionTextProperty().SetColor(1, 0, 0); //修改X字体颜色为红色
            axes.GetYAxisCaptionActor2D().GetCaptionTextProperty().SetColor(0, 2, 0); //修改Y字体颜色为绿色
            axes.GetZAxisCaptionActor2D().GetCaptionTextProperty().SetColor(0, 0, 3); //修改Z字体颜色为蓝色

            axes.SetConeRadius(0.3);
            axes.SetConeResolution(20);
            //axes->SetTotalLength(10, 10, 10); //修改坐标尺寸

            vtkAxesActor axes1 = vtkAxesActor.New();

            axes1.GetXAxisCaptionActor2D().GetCaptionTextProperty().SetColor(1, 0, 0); //修改X字体颜色为红色
            axes1.GetYAxisCaptionActor2D().GetCaptionTextProperty().SetColor(0, 2, 0); //修改Y字体颜色为绿色
            axes1.GetZAxisCaptionActor2D().GetCaptionTextProperty().SetColor(0, 0, 3); //修改Z字体颜色为蓝色
            axes1.SetConeRadius(0.03);
            axes1.AxisLabelsOff();
            axes1.GetXAxisCaptionActor2D().GetCaptionTextProperty().SetFontSize(1);
            //axes1.SetConeRadius(0.3);
            axes1.SetConeResolution(20);
            _render.AddActor(axes1);

            vtkRenderWindowInteractor interactor = vtkRenderWindowInteractor.New();

            interactor.SetRenderWindow(renWin);

            vtkInteractorStyleTrackballCamera style = vtkInteractorStyleTrackballCamera.New();

            interactor.SetInteractorStyle(style);
            renWin.SetInteractor(interactor);
            interactor.Initialize();

            vtkCamera aCamera = vtkCamera.New();

            aCamera.SetViewUp(0, 0, 1);                //设视角位置
            aCamera.SetPosition(0, -3 * axesScale, 0); //设观察对象位
            aCamera.SetFocalPoint(0, 0, 0);            //设焦点
            aCamera.ComputeViewPlaneNormal();          //自动
            _render.SetActiveCamera(aCamera);

            _render.ResetCamera();
            renWin.Render();

            widget1 = vtkOrientationMarkerWidget.New();
            widget1.SetOutlineColor(0.9300, 0.5700, 0.1300);
            widget1.SetOrientationMarker(axes);
            widget1.SetInteractor(interactor);
            widget1.SetViewport(0.0, 0.0, 0.25, 0.25);
            widget1.SetEnabled(1);
            widget1.InteractiveOff();

            //_render.AddViewProp(FrustumCone.genActor(new CompontData()));
        }