Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkMRMLSliceIntersectionInteractionRepresentationHelper.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Program: 3D Slicer
4 
5  Copyright (c) Ebatinca S.L., Las Palmas de Gran Canaria, Spain
6 
7  See COPYRIGHT.txt
8  or http://www.slicer.org/copyright/copyright.txt for details.
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16 ==============================================================================*/
17 
26 #ifndef vtkMRMLSliceIntersectionInteractionRepresentationHelper_h
27 #define vtkMRMLSliceIntersectionInteractionRepresentationHelper_h
28 
29 #include "vtkMRMLDisplayableManagerExport.h" // For export macro
31 
32 #include "vtkMRMLSliceNode.h"
33 
36 class vtkMRMLSliceLogic;
37 
38 class vtkProperty2D;
39 class vtkActor2D;
40 class vtkPolyDataMapper2D;
41 class vtkPolyData;
42 class vtkPoints;
43 class vtkCellArray;
44 class vtkTextProperty;
45 class vtkLeaderActor2D;
46 class vtkTextMapper;
47 class vtkTransform;
48 class vtkActor2D;
50 
52 {
53  public:
58 
60 
64  void PrintSelf(ostream& os, vtkIndent indent) override;
66 
67  int IntersectWithFinitePlane(double n[3], double o[3], double pOrigin[3], double px[3], double py[3], double x0[3], double x1[3]);
68 
70  void GetIntersectionWithSliceViewBoundaries(double* pointA, double* pointB, double* sliceViewBounds, double* intersectionPoint);
71 
73  void GetSliceViewBoundariesXY(vtkMRMLSliceNode* sliceNode, double* sliceViewBounds);
74 
75  int GetLineTipsFromIntersectingSliceNode(vtkMRMLSliceNode* intersectingSliceNode, vtkMatrix4x4* intersectingXYToXY,
76  double intersectionLineTip1[3], double intersectionLineTip2[3]);
77 
78  void ComputeHandleToWorldTransformMatrix(double handlePosition[2], double handleOrientation[2], vtkMatrix4x4* handleToWorldTransformMatrix);
79  void RotationMatrixFromVectors(double vector1[2], double vector2[2], vtkMatrix4x4* rotationMatrixHom);
80 
81  protected:
84 
85  private:
87  void operator=(const vtkMRMLSliceIntersectionInteractionRepresentationHelper&) = delete;
88 };
89 
90 #endif
MRML node to represent a display property of 3D surface model.
void PrintSelf(ostream &os, vtkIndent indent) override
MRML node for storing a slice through RAS space.
represent intersections of other slice views in the current slice view
Slicer logic class for slice manipulation.