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
vtkMRMLSliceEdgeWidgetRepresentation.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 Davide Punzo, punzodavide@hotmail.it,
16 and development was supported in part by CI3.
17
18==============================================================================*/
19
20#ifndef vtkMRMLSliceEdgeWidgetRepresentation_h
21#define vtkMRMLSliceEdgeWidgetRepresentation_h
22
23// MRMLDM includes
24#include "vtkMRMLDisplayableManagerExport.h"
26
30
31class vtkActor;
32class vtkPolyDataMapper;
33class vtkFeatureEdges;
34class vtkPolyData;
35class vtkStripper;
36class vtkTubeFilter;
37
38class VTK_MRML_DISPLAYABLEMANAGER_EXPORT vtkMRMLSliceEdgeWidgetRepresentation
40{
41public:
44
48 void PrintSelf(ostream& os, vtkIndent indent) override;
50
52 void UpdateFromMRML(vtkMRMLNode* caller, unsigned long event, void *callData = nullptr) override;
53
55 void GetActors(vtkPropCollection*) override;
56 void ReleaseGraphicsResources(vtkWindow*) override;
57 int RenderOverlay(vtkViewport* viewport) override;
58 int RenderOpaqueGeometry(vtkViewport* viewport) override;
59 int RenderTranslucentPolygonalGeometry(vtkViewport* viewport) override;
60 vtkTypeBool HasTranslucentPolygonalGeometry() override;
61
64
65 virtual void setSliceNode(vtkMRMLSliceNode* sliceNode);
67
68 virtual void setSliceModelNode(vtkMRMLModelNode* sliceNode);
70
72 virtual void UpdateViewScaleFactor();
74
76 vtkGetMacro(SliceEdgeSize, double);
77
78 virtual vtkPolyData* GetSliceEdgePolydata();
79 virtual void GetSliceEdgeColor(double color[4]);
80
81 vtkGetMacro(Interacting, bool);
82
83protected:
86
88 {
89 public:
91 ~SliceEdgePipeline() = default;
92
93 vtkSmartPointer<vtkActor> Actor;
94 vtkSmartPointer<vtkPolyDataMapper> Mapper;
95 vtkSmartPointer<vtkFeatureEdges> FeatureEdges;
96 vtkSmartPointer<vtkStripper> Stripper;
97 vtkSmartPointer<vtkTubeFilter> TubeFilter;
98 };
99
101 double ScreenSizePixel; // diagonal size of the screen
102
106 double SliceEdgeSize{2.0};
107 bool Interacting{false};
108
111 vtkWeakPointer<vtkMRMLSliceNode> SliceNode;
112 vtkWeakPointer<vtkMRMLModelNode> SliceModelNode;
113
114private:
116 void operator=(const vtkMRMLSliceEdgeWidgetRepresentation&) = delete;
117};
118
119#endif
MRML node to represent a 3D surface model.
Abstract Superclass for all specific types of MRML nodes.
int RenderOverlay(vtkViewport *viewport) override
virtual void setSliceModelNode(vtkMRMLModelNode *sliceNode)
void PrintSelf(ostream &os, vtkIndent indent) override
virtual vtkMRMLSliceNode * GetSliceNode()
virtual void GetSliceEdgeColor(double color[4])
void UpdateFromMRML(vtkMRMLNode *caller, unsigned long event, void *callData=nullptr) override
Update the representation from display node.
static vtkMRMLSliceEdgeWidgetRepresentation * New()
Instantiate this class.
virtual vtkPolyData * GetSliceEdgePolydata()
virtual void setSliceNode(vtkMRMLSliceNode *sliceNode)
void GetActors(vtkPropCollection *) override
Methods to make this class behave as a vtkProp.
vtkTypeBool HasTranslucentPolygonalGeometry() override
vtkProp * GetSliceEdgeActor()
Returns the actor for the interaction widget.
int RenderOpaqueGeometry(vtkViewport *viewport) override
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
void ReleaseGraphicsResources(vtkWindow *) override
virtual vtkMRMLModelNode * GetSliceModelNode()
MRML node for storing a slice through RAS space.