32#ifndef vtkSlicerROIRepresentation2D_h
33#define vtkSlicerROIRepresentation2D_h
35#include "vtkSlicerMarkupsModuleVTKWidgetsExport.h"
39class vtkAppendPolyData;
41class vtkContourTriangulator;
43class vtkDiscretizableColorTransferFunction;
45class vtkOutlineFilter;
46class vtkSampleImplicitFunctionFilter;
56 void PrintSelf(ostream& os, vtkIndent indent)
override;
75 int& foundComponentType,
int& foundComponentIndex,
double& closestDistance2) override;
78 int& foundComponentType,
int& foundComponentIndex,
double& closestDistance2);
81 void UpdateInteractionPipeline() override;
89 void SetupInteractionPipeline() override;
95 void SetROISource(vtkPolyDataAlgorithm* roiSource);
97 vtkSmartPointer<vtkPolyDataAlgorithm> ROISource;
99 vtkSmartPointer<vtkPassThrough> ROIPipelineInputFilter;
100 vtkSmartPointer<vtkTransform> ROIToWorldTransform;
101 vtkSmartPointer<vtkTransformPolyDataFilter> ROIToWorldTransformFilter;
102 vtkSmartPointer<vtkCutter> ROIOutlineCutter;
103 vtkSmartPointer<vtkTransformPolyDataFilter> ROIOutlineWorldToSliceTransformFilter;
104 vtkSmartPointer<vtkContourTriangulator> ROIIntersectionTriangulator;
106 vtkSmartPointer<vtkPolyDataMapper2D> ROIMapper;
107 vtkSmartPointer<vtkProperty2D> ROIProperty;
108 vtkSmartPointer<vtkActor2D> ROIActor;
110 vtkSmartPointer<vtkPolyDataMapper2D> ROIOutlineMapper;
111 vtkSmartPointer<vtkProperty2D> ROIOutlineProperty;
112 vtkSmartPointer<vtkActor2D> ROIOutlineActor;
122 double sliceNormal[3],
double sliceOrigin[3],
double edgePoint[3],
double edgeVector[3]);
MRML node to represent an ROI markup.
Abstract Superclass for all specific types of MRML nodes.
void UpdateScaleHandles() override
void AddScaleEdgeIntersection(int pointIndex, vtkIdTypeArray *visibilityArray, vtkPoints *scaleHandleArray, double sliceNormal[3], double sliceOrigin[3], double edgePoint[3], double edgeVector[3])
~MarkupsInteractionPipelineROI2D() override=default
MarkupsInteractionPipelineROI2D(vtkSlicerMarkupsWidgetRepresentation *representation)
vtkSmartPointer< vtkTransformPolyDataFilter > WorldToSliceTransformFilter
void GetViewPlaneNormal(double viewPlaneNormal[3]) override
Get the view plane normal for the widget in world coordinates.
Default representation for the plane widget.
void UpdateFromMRMLInternal(vtkMRMLNode *caller, unsigned long event, void *callData=nullptr) override
double * GetBounds() VTK_SIZEHINT(6) override
Return the bounds of the representation.
int RenderOverlay(vtkViewport *viewport) override
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
int RenderOpaqueGeometry(vtkViewport *viewport) override
void GetActors(vtkPropCollection *) override
Methods to make this class behave as a vtkProp.
void ReleaseGraphicsResources(vtkWindow *) override
static vtkSlicerROIRepresentation2D * New()
Instantiate this class.
void PrintSelf(ostream &os, vtkIndent indent) override
vtkTypeBool HasTranslucentPolygonalGeometry() override
Default representation for the plane widget.