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
vtkSlicerROIRepresentation3D.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 vtkSlicerROIRepresentation3D_h
33#define vtkSlicerROIRepresentation3D_h
34
35#include "vtkSlicerMarkupsModuleVTKWidgetsExport.h"
37
38class vtkActor;
39class vtkArrayCalculator;
40class vtkAppendPolyData;
41class vtkArrowSource;
42class vtkGlyph3DMapper;
43class vtkLookupTable;
46class vtkOutlineFilter;
47class vtkPassThrough;
48class vtkPlaneSource;
49class vtkPolyDataAlgorithm;
50class vtkPolyDataMapper;
51class vtkPolyData;
52class vtkTransformPolyDataFilter;
53class vtkTubeFilter;
54
55class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerROIRepresentation3D : public vtkSlicerMarkupsWidgetRepresentation3D
56{
57public:
60
63 void PrintSelf(ostream& os, vtkIndent indent) override;
64
68 void UpdateFromMRMLInternal(vtkMRMLNode* caller, unsigned long event, void *callData=nullptr) override;
69
72
74 void GetActors(vtkPropCollection *) override;
75 void ReleaseGraphicsResources(vtkWindow *) override;
76 int RenderOverlay(vtkViewport *viewport) override;
77 int RenderOpaqueGeometry(vtkViewport *viewport) override;
78 int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override;
79 vtkTypeBool HasTranslucentPolygonalGeometry() override;
80
82 double* GetBounds() VTK_SIZEHINT(6) override;
83
84 void CanInteract(vtkMRMLInteractionEventData* interactionEventData,
85 int& foundComponentType, int& foundComponentIndex, double& closestDistance2) override;
86
88 int& foundComponentType, int& foundComponentIndex, double& closestDistance2);
89
90protected:
93
94 void SetROISource(vtkPolyDataAlgorithm* roiSource);
95
96 vtkSmartPointer<vtkPolyDataAlgorithm> ROISource;
97
98 vtkSmartPointer<vtkPassThrough> ROIPipelineInputFilter;
99
100 vtkSmartPointer<vtkTransformPolyDataFilter> ROITransformFilter;
101 vtkSmartPointer<vtkTransform> ROIToWorldTransform;
102
103 vtkSmartPointer<vtkPolyDataMapper> ROIMapper;
104 vtkSmartPointer<vtkProperty> ROIProperty;
105 vtkSmartPointer<vtkActor> ROIActor;
106
107 vtkSmartPointer<vtkPolyDataMapper> ROIOccludedMapper;
108 vtkSmartPointer<vtkProperty> ROIOccludedProperty;
109 vtkSmartPointer<vtkActor> ROIOccludedActor;
110
111 vtkSmartPointer<vtkOutlineFilter> ROIOutlineFilter;
112
113 vtkSmartPointer<vtkTransformPolyDataFilter> ROIOutlineTransformFilter;
114
115 vtkSmartPointer<vtkPolyDataMapper> ROIOutlineMapper;
116 vtkSmartPointer<vtkProperty> ROIOutlineProperty;
117 vtkSmartPointer<vtkActor> ROIOutlineActor;
118
119 vtkSmartPointer<vtkPolyDataMapper> ROIOutlineOccludedMapper;
120 vtkSmartPointer<vtkProperty> ROIOutlineOccludedProperty;
121 vtkSmartPointer<vtkActor> ROIOutlineOccludedActor;
122
123private:
125 void operator=(const vtkSlicerROIRepresentation3D&) = delete;
126};
127
128#endif
MRML node to represent an ROI markup.
Abstract Superclass for all specific types of MRML nodes.
void CanInteract(vtkMRMLInteractionEventData *interactionEventData, int &foundComponentType, int &foundComponentIndex, double &closestDistance2) override
vtkSmartPointer< vtkProperty > ROIOutlineProperty
void UpdateFromMRMLInternal(vtkMRMLNode *caller, unsigned long event, void *callData=nullptr) override
vtkSmartPointer< vtkProperty > ROIOccludedProperty
vtkSmartPointer< vtkOutlineFilter > ROIOutlineFilter
void ReleaseGraphicsResources(vtkWindow *) override
void SetROISource(vtkPolyDataAlgorithm *roiSource)
static vtkSlicerROIRepresentation3D * New()
Instantiate this class.
vtkSmartPointer< vtkPolyDataMapper > ROIOutlineMapper
vtkSmartPointer< vtkPassThrough > ROIPipelineInputFilter
vtkSmartPointer< vtkProperty > ROIProperty
vtkTypeBool HasTranslucentPolygonalGeometry() override
double * GetBounds() VTK_SIZEHINT(6) override
Return the bounds of the representation.
vtkSmartPointer< vtkPolyDataMapper > ROIMapper
vtkSmartPointer< vtkTransformPolyDataFilter > ROIOutlineTransformFilter
void CanInteractWithROI(vtkMRMLInteractionEventData *interactionEventData, int &foundComponentType, int &foundComponentIndex, double &closestDistance2)
vtkSmartPointer< vtkActor > ROIOutlineActor
int RenderOverlay(vtkViewport *viewport) override
vtkSmartPointer< vtkPolyDataAlgorithm > ROISource
vtkSmartPointer< vtkActor > ROIOccludedActor
vtkSmartPointer< vtkTransformPolyDataFilter > ROITransformFilter
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
vtkSmartPointer< vtkActor > ROIOutlineOccludedActor
vtkSmartPointer< vtkPolyDataMapper > ROIOccludedMapper
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
vtkSmartPointer< vtkProperty > ROIOutlineOccludedProperty
vtkSmartPointer< vtkTransform > ROIToWorldTransform
virtual void UpdateCubeSourceFromMRML(vtkMRMLMarkupsROINode *roiNode)
Updates the dimensions of the cube source filter.
vtkSmartPointer< vtkPolyDataMapper > ROIOutlineOccludedMapper