32#ifndef vtkSlicerROIRepresentation3D_h
33#define vtkSlicerROIRepresentation3D_h
35#include "vtkSlicerMarkupsModuleVTKWidgetsExport.h"
39class vtkArrayCalculator;
40class vtkAppendPolyData;
42class vtkGlyph3DMapper;
46class vtkOutlineFilter;
49class vtkPolyDataAlgorithm;
50class vtkPolyDataMapper;
52class vtkTransformPolyDataFilter;
63 void PrintSelf(ostream& os, vtkIndent indent)
override;
85 int& foundComponentType,
int& foundComponentIndex,
double& closestDistance2) override;
88 int& foundComponentType,
int& foundComponentIndex,
double& closestDistance2);
95 void SetupInteractionPipeline() override;
98 void UpdateInteractionPipeline() override;
100 void SetROISource(vtkPolyDataAlgorithm* roiSource);
102 vtkSmartPointer<vtkPolyDataAlgorithm> ROISource;
104 vtkSmartPointer<vtkPassThrough> ROIPipelineInputFilter;
106 vtkSmartPointer<vtkTransformPolyDataFilter> ROITransformFilter;
107 vtkSmartPointer<vtkTransform> ROIToWorldTransform;
109 vtkSmartPointer<vtkPolyDataMapper> ROIMapper;
110 vtkSmartPointer<vtkProperty> ROIProperty;
111 vtkSmartPointer<vtkActor> ROIActor;
113 vtkSmartPointer<vtkPolyDataMapper> ROIOccludedMapper;
114 vtkSmartPointer<vtkProperty> ROIOccludedProperty;
115 vtkSmartPointer<vtkActor> ROIOccludedActor;
117 vtkSmartPointer<vtkOutlineFilter> ROIOutlineFilter;
119 vtkSmartPointer<vtkTransformPolyDataFilter> ROIOutlineTransformFilter;
121 vtkSmartPointer<vtkPolyDataMapper> ROIOutlineMapper;
122 vtkSmartPointer<vtkProperty> ROIOutlineProperty;
123 vtkSmartPointer<vtkActor> ROIOutlineActor;
125 vtkSmartPointer<vtkPolyDataMapper> ROIOutlineOccludedMapper;
126 vtkSmartPointer<vtkProperty> ROIOutlineOccludedProperty;
127 vtkSmartPointer<vtkActor> ROIOutlineOccludedActor;
MRML node to represent an ROI markup.
Abstract Superclass for all specific types of MRML nodes.
Default representation for the plane widget.
MarkupsInteractionPipelineROI(vtkSlicerMarkupsWidgetRepresentation *representation)
void GetInteractionHandleAxisWorld(int type, int index, double axis[3]) override
Get the direction vector of the interaction handle from the interaction origin in world coordinates.
void GetHandleColor(int type, int index, double color[4]) override
HandleInfoList GetHandleInfoList() override
Get the list of info for all interaction handles.
void CreateScaleHandles() override
virtual void UpdateScaleHandles()
double GetHandleOpacity(int type, int index) override
Get the opacity of the specified handle.
void UpdateHandleVisibility() override
~MarkupsInteractionPipelineROI() override=default
Default representation for the plane widget.
void UpdateFromMRMLInternal(vtkMRMLNode *caller, unsigned long event, void *callData=nullptr) override
void ReleaseGraphicsResources(vtkWindow *) override
static vtkSlicerROIRepresentation3D * New()
Instantiate this class.
vtkTypeBool HasTranslucentPolygonalGeometry() override
double * GetBounds() VTK_SIZEHINT(6) override
Return the bounds of the representation.
int RenderOverlay(vtkViewport *viewport) override
void PrintSelf(ostream &os, vtkIndent indent) override
void GetActors(vtkPropCollection *) override
Methods to make this class behave as a vtkProp.
int RenderOpaqueGeometry(vtkViewport *viewport) override
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
virtual void UpdateCubeSourceFromMRML(vtkMRMLMarkupsROINode *roiNode)
Updates the dimensions of the cube source filter.