Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkSlicerROIRepresentation2D.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
4 Queen's University, Kingston, ON, Canada. All Rights Reserved.
5
6 See COPYRIGHT.txt
7 or http://www.slicer.org/copyright/copyright.txt for details.
8
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
14
15 This file was originally developed by Kyle Sunderland, PerkLab, Queen's University
16 and was supported through CANARIE's Research Software Program, Cancer
17 Care Ontario, OpenAnatomy, and Brigham and Women's Hospital through NIH grant R01MH112748.
18
19==============================================================================*/
20
31
32#ifndef vtkSlicerROIRepresentation2D_h
33#define vtkSlicerROIRepresentation2D_h
34
35#include "vtkSlicerMarkupsModuleVTKWidgetsExport.h"
38
39class vtkAppendPolyData;
40class vtkCleanPolyData;
41class vtkClipPolyData;
42class vtkContourTriangulator;
43class vtkCutter;
44class vtkDiscretizableColorTransferFunction;
46class vtkOutlineFilter;
47class vtkSampleImplicitFunctionFilter;
48
49class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerROIRepresentation2D : public vtkSlicerMarkupsWidgetRepresentation2D
50{
51public:
54
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
62 void UpdateFromMRMLInternal(vtkMRMLNode* caller, unsigned long event, void *callData = nullptr) override;
63
65 void GetActors(vtkPropCollection *) override;
66 void ReleaseGraphicsResources(vtkWindow *) override;
67 int RenderOverlay(vtkViewport *viewport) override;
68 int RenderOpaqueGeometry(vtkViewport *viewport) override;
69 int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override;
70 vtkTypeBool HasTranslucentPolygonalGeometry() override;
71
73 double* GetBounds() VTK_SIZEHINT(6) override;
74
75 void CanInteract(vtkMRMLInteractionEventData* interactionEventData,
76 int& foundComponentType, int& foundComponentIndex, double& closestDistance2) override;
77
79 int& foundComponentType, int& foundComponentIndex, double& closestDistance2);
80
81protected:
82
85
86protected:
89
90 void SetROISource(vtkPolyDataAlgorithm* roiSource);
91
92 vtkSmartPointer<vtkPolyDataAlgorithm> ROISource;
93
94 vtkSmartPointer<vtkPassThrough> ROIPipelineInputFilter;
95 vtkSmartPointer<vtkTransform> ROIToWorldTransform;
96 vtkSmartPointer<vtkTransformPolyDataFilter> ROIToWorldTransformFilter;
97 vtkSmartPointer<vtkCutter> ROIOutlineCutter;
98 vtkSmartPointer<vtkCleanPolyData> ROIOutlineCleaner;
99 vtkSmartPointer<vtkTransformPolyDataFilter> ROIOutlineWorldToSliceTransformFilter;
100 vtkSmartPointer<vtkContourTriangulator> ROIIntersectionTriangulator;
101
102 vtkSmartPointer<vtkPolyDataMapper2D> ROIMapper;
103 vtkSmartPointer<vtkProperty2D> ROIProperty;
104 vtkSmartPointer<vtkActor2D> ROIActor;
105
106 vtkSmartPointer<vtkPolyDataMapper2D> ROIOutlineMapper;
107 vtkSmartPointer<vtkProperty2D> ROIOutlineProperty;
108 vtkSmartPointer<vtkActor2D> ROIOutlineActor;
109
110private:
112 void operator=(const vtkSlicerROIRepresentation2D&) = delete;
113};
114
115#endif
MRML node to represent an ROI markup.
Abstract Superclass for all specific types of MRML nodes.
void UpdateFromMRMLInternal(vtkMRMLNode *caller, unsigned long event, void *callData=nullptr) override
vtkSmartPointer< vtkContourTriangulator > ROIIntersectionTriangulator
vtkSmartPointer< vtkTransformPolyDataFilter > ROIOutlineWorldToSliceTransformFilter
vtkSmartPointer< vtkCleanPolyData > ROIOutlineCleaner
vtkSmartPointer< vtkPassThrough > ROIPipelineInputFilter
vtkSmartPointer< vtkActor2D > ROIActor
vtkSmartPointer< vtkPolyDataAlgorithm > ROISource
vtkSmartPointer< vtkPolyDataMapper2D > ROIMapper
double * GetBounds() VTK_SIZEHINT(6) override
Return the bounds of the representation.
virtual void UpdateCubeSourceFromMRML(vtkMRMLMarkupsROINode *roiNode)
Update the cube source filter from the ROI node.
int RenderOverlay(vtkViewport *viewport) override
vtkSmartPointer< vtkProperty2D > ROIProperty
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
vtkSmartPointer< vtkCutter > ROIOutlineCutter
vtkSmartPointer< vtkTransformPolyDataFilter > ROIToWorldTransformFilter
vtkSmartPointer< vtkProperty2D > ROIOutlineProperty
vtkSmartPointer< vtkPolyDataMapper2D > ROIOutlineMapper
vtkSmartPointer< vtkTransform > ROIToWorldTransform
static vtkSlicerROIRepresentation2D * New()
Instantiate this class.
void PrintSelf(ostream &os, vtkIndent indent) override
void CanInteractWithROI(vtkMRMLInteractionEventData *interactionEventData, int &foundComponentType, int &foundComponentIndex, double &closestDistance2)
void SetROISource(vtkPolyDataAlgorithm *roiSource)
void CanInteract(vtkMRMLInteractionEventData *interactionEventData, int &foundComponentType, int &foundComponentIndex, double &closestDistance2) override
Position is displayed (slice) position.
vtkSmartPointer< vtkActor2D > ROIOutlineActor
vtkTypeBool HasTranslucentPolygonalGeometry() override