Пример #1
0
        private void drag_RightDown(vtkObject sender, vtkObjectEventArgs e)
        {
            if (mouseDownRight == false)
            {
                //Get position
                int[]         pos   = renWin.GetInteractor().GetEventPosition();
                vtkCoordinate coord = vtkCoordinate.New();
                coord.SetCoordinateSystemToDisplay();
                coord.SetValue(pos[0], pos[1], 0);
                double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer());

                position[0] = (int)tmp[0];
                position[1] = (int)tmp[1];
                position[2] = (int)tmp[0];
                position[3] = (int)tmp[1];

                //Create new line object
                if (has_actor == true)
                {
                    line.update(position);
                }
                else
                {
                    line = new Rendering.vtkLine(renWin, slice);
                    line.draw(position);
                }


                renWin.Render();

                has_actor = true;

                mouseDownRight = true;
            }
        }
Пример #2
0
        private void Move2D(vtkObject sender, vtkObjectEventArgs e)
        {
            if (mouseDownLeft == true)
            {
                //Get position
                int[]         pos   = renWin.GetInteractor().GetEventPosition();
                vtkCoordinate coord = vtkCoordinate.New();
                coord.SetCoordinateSystemToDisplay();
                coord.SetValue(pos[0], pos[1]);
                double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer());

                cam_pos[0] -= (tmp[0] - prev_pos[0]);
                cam_pos[1] -= (tmp[1] - prev_pos[1]);
                cam_foc[0] -= (tmp[0] - prev_pos[0]);
                cam_foc[1] -= (tmp[1] - prev_pos[1]);
                renWin.GetRenderers().GetFirstRenderer().GetActiveCamera().SetPosition(cam_pos[0], cam_pos[1], cam_pos[2]);
                renWin.GetRenderers().GetFirstRenderer().GetActiveCamera().SetFocalPoint(cam_foc[0], cam_foc[1], cam_foc[2]);
                renWin.Render();
            }
            if (mouseDownRight == true)
            {
                int[]         pos   = renWin.GetInteractor().GetEventPosition();
                vtkCoordinate coord = vtkCoordinate.New();
                coord.SetCoordinateSystemToDisplay();
                coord.SetValue(pos[0], pos[1], 0);
                double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer());
                position[2] = tmp[0];
                position[3] = tmp[1];

                line.update(position);

                renWin.Render();
            }
        }
Пример #3
0
        private void CreateViewportBorder(vtkRenderer renderer, double[] color)
        {
            ModelLoaded = false;

            // points start at upper right and proceed anti-clockwise
            vtkPoints points = vtkPoints.New();

            points.SetNumberOfPoints(4);
            points.InsertPoint(0, 1, 1, 0);
            points.InsertPoint(1, 1e-3, 1, 0);
            points.InsertPoint(2, 1e-3, 1e-3, 0);
            points.InsertPoint(3, 1, 1e-3, 0);

            // create cells, and lines
            vtkCellArray cells = vtkCellArray.New();

            cells.Initialize();

            vtkPolyLine lines = vtkPolyLine.New();

            lines.GetPointIds().SetNumberOfIds(5);
            for (int i = 0; i < 4; ++i)
            {
                lines.GetPointIds().SetId(i, i);
            }
            lines.GetPointIds().SetId(4, 0);
            cells.InsertNextCell(lines);

            // now make tge polydata and display it
            vtkPolyData poly = vtkPolyData.New();

            poly.Initialize();
            poly.SetPoints(points);
            poly.SetLines(cells);

            // use normalized viewport coordinates since
            // they are independent of window size
            vtkCoordinate coordinate = vtkCoordinate.New();

            coordinate.SetCoordinateSystemToNormalizedViewport();

            vtkPolyDataMapper2D mapper = vtkPolyDataMapper2D.New();

            mapper.SetInput(poly);
            mapper.SetTransformCoordinate(coordinate);

            vtkActor2D actor = vtkActor2D.New();

            actor.SetMapper(mapper);
            actor.GetProperty().SetColor(color[0], color[1], color[2]);
            // line width should be at least 2 to be visible at extremes

            actor.GetProperty().SetLineWidth((float)2.0); // Line Width

            renderer.AddViewProp(actor);
        }
Пример #4
0
 private void LeftDown2D(vtkObject sender, vtkObjectEventArgs e)
 {
     if (mouseDownLeft == false)
     {
         //Get position
         int[]         pos   = renWin.GetInteractor().GetEventPosition();
         vtkCoordinate coord = vtkCoordinate.New();
         coord.SetCoordinateSystemToDisplay();
         coord.SetValue(pos[0], pos[1], 0);
         double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer());
         prev_pos[0]   = tmp[0]; prev_pos[1] = tmp[1];
         mouseDownLeft = true;
     }
 }
Пример #5
0
        private void drag_MouseMove(vtkObject sender, vtkObjectEventArgs e)
        {
            if (mouseDownLeft == true)
            {
                int[]         pos   = renWin.GetInteractor().GetEventPosition();
                vtkCoordinate coord = vtkCoordinate.New();
                coord.SetCoordinateSystemToDisplay();
                coord.SetValue(pos[0], pos[1], 0);
                double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer());
                position[2] = tmp[0];
                position[3] = tmp[1];

                line.update(position);

                renWin.Render();
            }
        }
Пример #6
0
        private void drag_RightUp(vtkObject sender, vtkObjectEventArgs e)
        {
            if (mouseDownRight == true)
            {
                //Get position
                int[]         pos   = renWin.GetInteractor().GetEventPosition();
                vtkCoordinate coord = vtkCoordinate.New();
                coord.SetCoordinateSystemToDisplay();
                coord.SetValue(pos[0], pos[1], 0);
                double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer());

                position[2] = (int)tmp[0];
                position[3] = (int)tmp[1];

                line.update(position);

                has_actor = true;

                renWin.Render();

                mouseDownRight = false;
            }
        }
Пример #7
0
        private void DrawTest()
        {
            vtkProp3D      prop3D;
            vtkActor       actor       = vtkActor.New();
            vtkActor2D     actor2D     = vtkActor2D.New();
            vtkLODActor    lODActor    = vtkLODActor.New();
            vtkLODProp3D   lodProp3d   = vtkLODProp3D.New();
            vtkCamera      camera      = vtkCamera.New();
            vtkCameraActor cameraActor = vtkCameraActor.New();
            vtkLight       light       = vtkLight.New();
            vtkLightActor  lightActor  = vtkLightActor.New();
            vtkPicker      picker      = vtkPicker.New();
            vtkPointPicker pointPicker = vtkPointPicker.New();
            vtkCellPicker  cellPicker  = vtkCellPicker.New();
            vtkAreaPicker  areaPicker  = vtkAreaPicker.New();

            vtkAssembly   assembly   = vtkAssembly.New();
            vtkConeSource coneSource = vtkConeSource.New();
            vtkCone       cone       = vtkCone.New();

            vtkArcSource   arcSource   = vtkArcSource.New();
            vtkLineSource  lineSource  = vtkLineSource.New();
            vtkPointSource pointSource = vtkPointSource.New();

            vtkPolyData                 polyData                 = vtkPolyData.New();
            vtkArrayReader              arrayReader              = vtkArrayReader.New();
            vtkArrayDataReader          arrayDataReader          = vtkArrayDataReader.New();
            vtkArrayWriter              arrayWriter              = vtkArrayWriter.New();
            vtkRenderWindowInteractor   renderWindowInteractor   = vtkRenderWindowInteractor.New();
            vtkRenderWindowInteractor3D renderWindowInteractor3D = vtkRenderWindowInteractor3D.New();
            vtkInteractorStyle          interactorStyle          = vtkInteractorStyle.New();
            vtkInteractorStyle3D        interactorStyle3D        = vtkInteractorStyle3D.New();
            vtkInteractorStyleFlight    interactorStyleFlight    = vtkInteractorStyleFlight.New();
            vtkInteractorStyleTrackball interactorStyleTrackball = vtkInteractorStyleTrackball.New();

            vtkVolume                              volume = vtkVolume.New();
            vtkVolumeMapper                        volumeMapper;
            vtkSmartVolumeMapper                   smartVolumeMapper = vtkSmartVolumeMapper.New();
            vtkUnstructuredGridVolumeMapper        unstructuredGridVolumeMapper;
            vtkUnstructuredGridVolumeRayCastMapper unstructuredGridVolumeRayCastMapper = vtkUnstructuredGridVolumeRayCastMapper.New();
            vtkGPUVolumeRayCastMapper              gPUVolumeRayCastMapper       = vtkGPUVolumeRayCastMapper.New();
            vtkVolumeRayCastMapper                 volumeRayCastMapper          = vtkVolumeRayCastMapper.New();
            vtkFixedPointVolumeRayCastMapper       pointVolumeRayCastMapper     = vtkFixedPointVolumeRayCastMapper.New();
            vtkOpenGLGPUVolumeRayCastMapper        openGLGPUVolumeRayCastMapper = vtkOpenGLGPUVolumeRayCastMapper.New();
            vtkVolumeProperty                      volumeProperty = vtkVolumeProperty.New();

            vtkTexture    texture    = vtkTexture.New();
            vtkCoordinate coordinate = vtkCoordinate.New();
            vtkImageData  vtkImage   = vtkImageData.New();

            vtkBMPReader  bMPReader  = vtkBMPReader.New();
            vtkJPEGReader jPEGReader = vtkJPEGReader.New();
            vtkPNGReader  pNGReader  = vtkPNGReader.New();
            vtkTIFFReader tIFFReader = vtkTIFFReader.New();
            vtkOBJReader  oBJReader  = vtkOBJReader.New();


            vtkContourFilter                 contourFilter                 = vtkContourFilter.New();
            vtkSynchronizedTemplates2D       synchronizedTemplates2D       = vtkSynchronizedTemplates2D.New();
            vtkSynchronizedTemplates3D       synchronizedTemplates3D       = vtkSynchronizedTemplates3D.New();
            vtkSynchronizedTemplatesCutter3D synchronizedTemplatesCutter3D = vtkSynchronizedTemplatesCutter3D.New();

            vtkImageMapper        imageMapper        = vtkImageMapper.New();
            vtkImageSliceMapper   imageSliceMapper   = vtkImageSliceMapper.New();
            vtkImageResliceMapper imageResliceMapper = vtkImageResliceMapper.New();

            vtkStructuredGridReader structuredGridReader = vtkStructuredGridReader.New();
            vtkRungeKutta4          integ                      = vtkRungeKutta4.New();
            vtkStreamTracer         streamer                   = vtkStreamTracer.New();
            vtkTubeFilter           streamTube                 = vtkTubeFilter.New();
            vtkRuledSurfaceFilter   ruledSurfaceFilter         = vtkRuledSurfaceFilter.New();
            vtkPlane                   plane                   = vtkPlane.New();
            vtkCutter                  cutter                  = new vtkCutter();
            vtkMergeFilter             mergeFilter             = vtkMergeFilter.New();
            vtkImageLuminance          imageLuminance          = vtkImageLuminance.New();
            vtkImageDataGeometryFilter imageDataGeometryFilter = vtkImageDataGeometryFilter.New();
            vtkWarpScalar              warpScalar              = vtkWarpScalar.New();
            vtkWarpVector              warpVector              = vtkWarpVector.New();
        }