20 #ifndef __vtkSlicerTransformLogic_h 21 #define __vtkSlicerTransformLogic_h 25 #include "vtkSlicerTransformsModuleLogicExport.h" 50 class vtkUnstructuredGrid;
59 void PrintSelf(ostream& os, vtkIndent indent)
override { Superclass::PrintSelf(os, indent); }
83 vtkMatrix4x4* sliceToRAS,
double* fieldOfViewOrigin,
double* fieldOfViewSize, vtkPoints* samplePositions_RAS =
nullptr);
90 vtkMatrix4x4* roiToRAS,
int* roiSize, vtkPoints* samplePositions_RAS =
nullptr);
99 static const char* GetVisualizationDisplacementMagnitudeScalarName();
121 static bool GetTransformedPointSamplesAsMagnitudeImage(vtkImageData* outputMagnitudeImage,
vtkMRMLTransformNode* inputTransformNode,
122 vtkMatrix4x4* ijkToRAS,
bool transformToWorld =
true);
130 static bool GetTransformedPointSamplesAsVectorImage(vtkImageData* outputVectorImage,
vtkMRMLTransformNode* inputTransformNode,
131 vtkMatrix4x4* ijkToRAS,
bool transformToWorld =
true);
137 static void GetTransformedNodes(
139 std::vector<vtkMRMLDisplayableNode*>& transformedNodes,
140 bool recursive=
true);
146 static void GetNodesRASBounds(
147 const std::vector<vtkMRMLDisplayableNode*>&
nodes,
154 static void GetNodesBounds(
155 const std::vector<vtkMRMLDisplayableNode*>&
nodes,
164 TRANSFORM_THINPLATESPLINE
184 double* fieldOfViewOrigin,
double* fieldOfViewSize, vtkPoints* samplePositions_RAS =
nullptr);
189 int* roiSize, vtkPoints* samplePositions_RAS =
nullptr);
194 double* fieldOfViewOrigin,
double* fieldOfViewSize);
197 static void GetGridVisualization3d(vtkPolyData* output_RAS,
vtkMRMLTransformDisplayNode* displayNode, vtkMatrix4x4* roiToRAS,
int* roiSize);
202 double* fieldOfViewOrigin,
double* fieldOfViewSize);
205 static void GetContourVisualization3d(vtkPolyData* output_RAS,
vtkMRMLTransformDisplayNode* displayNode, vtkMatrix4x4* roiToRAS,
int* roiSize);
211 static void CreateGrid(vtkPolyData* outputGrid_RAS,
vtkMRMLTransformDisplayNode* displayNode,
int numGridPoints[3], vtkPolyData* outputWarpedGrid_RAS=
nullptr);
216 static void GetTransformedPointSamples(vtkPointSet* outputPointSet,
218 bool transformToWorld =
true);
225 static void GetTransformedPointSamples(vtkPointSet* outputPointSet_RAS,
vtkMRMLTransformNode* inputTransformNode,
226 vtkMatrix4x4* gridToRAS,
int* gridSize,
bool transformToWorld =
true);
232 static void GetTransformedPointSamplesOnSlice(vtkPointSet* outputPointSet_RAS,
vtkMRMLTransformNode* inputTransformNode,
233 vtkMatrix4x4* sliceToRAS,
double* fieldOfViewOrigin,
double* fieldOfViewSize,
double pointSpacing,
int pointGroupSize = 1,
int* numGridPoints =
nullptr,
234 vtkPoints* samplePositions_RAS =
nullptr);
239 static void GetTransformedPointSamplesOnRoi(vtkPointSet* outputPointSet_RAS,
vtkMRMLTransformNode* inputTransformNode,
240 vtkMatrix4x4* roiToRAS,
int* roiSize,
double pointSpacingMm,
int pointGroupSize=1,
int* numGridPoints=
nullptr);
243 static void GetMarkupsAsPoints(
vtkMRMLMarkupsNode* markupsNode, vtkPoints* samplePoints_RAS);
Superclass for MRML logic classes.
MRML node for storing a slice through RAS space.
A set of MRML Nodes that supports serialization and undo/redo.
MRML node for representing a volume (image stack).
MRML node for representing a volume (image stack).
Abstract Superclass for all specific types of MRML nodes.
static vtkMRMLAbstractLogic * New()