Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
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 : public vtkMRMLAbstractWidgetRepresentation
39{
40public:
43
47 void PrintSelf(ostream& os, vtkIndent indent) override;
49
51 void UpdateFromMRML(vtkMRMLNode* caller, unsigned long event, void* callData = nullptr) override;
52
54 void GetActors(vtkPropCollection*) override;
55 void ReleaseGraphicsResources(vtkWindow*) override;
56 int RenderOverlay(vtkViewport* viewport) override;
57 int RenderOpaqueGeometry(vtkViewport* viewport) override;
58 int RenderTranslucentPolygonalGeometry(vtkViewport* viewport) override;
59 vtkTypeBool HasTranslucentPolygonalGeometry() override;
60
63
64 virtual void setSliceNode(vtkMRMLSliceNode* sliceNode);
66
67 virtual void setSliceModelNode(vtkMRMLModelNode* sliceNode);
69
71 virtual void UpdateViewScaleFactor();
73
75 vtkGetMacro(SliceEdgeSize, double);
76
77 virtual vtkPolyData* GetSliceEdgePolydata();
78 virtual void GetSliceEdgeColor(double color[4]);
79
80 vtkGetMacro(Interacting, bool);
81
82protected:
85
87 {
88 public:
90 ~SliceEdgePipeline() = default;
91
92 vtkSmartPointer<vtkActor> Actor;
93 vtkSmartPointer<vtkPolyDataMapper> Mapper;
94 vtkSmartPointer<vtkFeatureEdges> FeatureEdges;
95 vtkSmartPointer<vtkStripper> Stripper;
96 vtkSmartPointer<vtkTubeFilter> TubeFilter;
97 };
98
100 double ScreenSizePixel; // diagonal size of the screen
101
105 double SliceEdgeSize{ 2.0 };
106 bool Interacting{ false };
107
110 vtkWeakPointer<vtkMRMLSliceNode> SliceNode;
111 vtkWeakPointer<vtkMRMLModelNode> SliceModelNode;
112
113private:
115 void operator=(const vtkMRMLSliceEdgeWidgetRepresentation&) = delete;
116};
117
118#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.