示例#1
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();
            }
        }
示例#2
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;
            }
        }
示例#3
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;
     }
 }
示例#4
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();
            }
        }
示例#5
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;
            }
        }