Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
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
37
38class vtkProperty2D;
39class vtkActor2D;
40class vtkPolyDataMapper2D;
41class vtkPolyData;
42class vtkPoints;
43class vtkCellArray;
44class vtkTextProperty;
45class vtkLeaderActor2D;
46class vtkTextMapper;
47class vtkTransform;
48class 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.
represent intersections of other slice views in the current slice view
static vtkMRMLSliceIntersectionInteractionRepresentationHelper * New()
int IntersectWithFinitePlane(double n[3], double o[3], double pOrigin[3], double px[3], double py[3], double x0[3], double x1[3])
void GetIntersectionWithSliceViewBoundaries(double *pointA, double *pointB, double *sliceViewBounds, double *intersectionPoint)
Compute intersection between a 2D line and the slice view boundaries.
void GetSliceViewBoundariesXY(vtkMRMLSliceNode *sliceNode, double *sliceViewBounds)
Get boundaries of the slice view associated with a given vtkMRMLSliceNode.
int GetLineTipsFromIntersectingSliceNode(vtkMRMLSliceNode *intersectingSliceNode, vtkMatrix4x4 *intersectingXYToXY, double intersectionLineTip1[3], double intersectionLineTip2[3])
void PrintSelf(ostream &os, vtkIndent indent) override
void ComputeHandleToWorldTransformMatrix(double handlePosition[2], double handleOrientation[2], vtkMatrix4x4 *handleToWorldTransformMatrix)
void RotationMatrixFromVectors(double vector1[2], double vector2[2], vtkMatrix4x4 *rotationMatrixHom)
Slicer logic class for slice manipulation.
MRML node for storing a slice through RAS space.