Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLAbstractWidgetRepresentation.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Copyright (c) ProxSim ltd., Kwun Tong, Hong Kong. All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8 Unless required by applicable law or agreed to in writing, software
9 distributed under the License is distributed on an "AS IS" BASIS,
10 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 See the License for the specific language governing permissions and
12 limitations under the License.
13
14 This file was originally developed by Davide Punzo, punzodavide@hotmail.it,
15 and development was supported by ProxSim ltd.
16
17=========================================================================*/
18
41#ifndef vtkMRMLAbstractWidgetRepresentation_h
42#define vtkMRMLAbstractWidgetRepresentation_h
43
44#include "vtkMRMLDisplayableManagerExport.h"
45#include "vtkWidgetRepresentation.h"
46
49
50#include <vector>
51
52class vtkMapper;
53
54#include "vtkBoundingBox.h"
55
56class VTK_MRML_DISPLAYABLEMANAGER_EXPORT vtkMRMLAbstractWidgetRepresentation : public vtkProp
57{
58public:
61 void PrintSelf(ostream& os, vtkIndent indent) override;
62
64
71 double* GetBounds() VTK_SIZEHINT(6) override { return nullptr; }
72 void GetActors(vtkPropCollection *) override {}
73 void GetActors2D(vtkPropCollection *) override {}
74 void GetVolumes(vtkPropCollection *) override {}
75 void ReleaseGraphicsResources(vtkWindow *) override {}
76 int RenderOverlay(vtkViewport *vtkNotUsed(viewport)) override { return 0; }
77 int RenderOpaqueGeometry(vtkViewport *vtkNotUsed(viewport)) override { return 0; }
78 int RenderTranslucentPolygonalGeometry(vtkViewport *vtkNotUsed(viewport)) override { return 0; }
79 int RenderVolumetricGeometry(vtkViewport *vtkNotUsed(viewport)) override { return 0; }
80 vtkTypeBool HasTranslucentPolygonalGeometry() override { return 0; }
82
84
94 virtual void SetRenderer(vtkRenderer *ren);
95 virtual vtkRenderer* GetRenderer();
97
99
105
107
110 virtual void SetViewNode(vtkMRMLAbstractViewNode* viewNode);
113
119 virtual void UpdateFromMRML(vtkMRMLNode* caller, unsigned long event, void *callData = nullptr);
120
124 vtkSetMacro(PickingTolerance, double);
125 vtkGetMacro(PickingTolerance, double);
126
128
132 vtkSetMacro(AlwaysOnTop, bool);
133 vtkGetMacro(AlwaysOnTop, bool);
134 vtkBooleanMacro(AlwaysOnTop, bool);
136
138
142 vtkGetMacro(NeedToRender, bool);
143 vtkSetMacro(NeedToRender, bool);
144 vtkBooleanMacro(NeedToRender, bool);
146
149
151
155 vtkSetMacro(AlwaysOnTopRelativeOffsetFactor, double);
156 vtkGetMacro(AlwaysOnTopRelativeOffsetFactor, double);
157 vtkSetMacro(AlwaysOnTopRelativeOffsetUnits, double);
158 vtkGetMacro(AlwaysOnTopRelativeOffsetUnits, double);
160
161 protected:
164
167 void AddActorsBounds(vtkBoundingBox& bounds, const std::vector<vtkProp*> &actors, double* additionalBounds = nullptr);
168
171 void GetRendererComputedDisplayPositionFromWorldPosition(const double worldPos[3], double displayPos[2]);
172
173 virtual void UpdateRelativeCoincidentTopologyOffsets(vtkMapper* mapper);
174
176 vtkWeakPointer<vtkRenderer> Renderer;
177
178 vtkWeakPointer<vtkMRMLApplicationLogic> ApplicationLogic;
179
181
186
187 vtkWeakPointer<vtkMRMLAbstractViewNode> ViewNode;
188
190
192 double Bounds[6];
193
195 double AlwaysOnTopRelativeOffsetFactor{ 0.0 };
196 double AlwaysOnTopRelativeOffsetUnits{ -66000.0 };
197
198private:
200 void operator=(const vtkMRMLAbstractWidgetRepresentation&) = delete;
201};
202
203#endif
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D,...
void AddActorsBounds(vtkBoundingBox &bounds, const std::vector< vtkProp * > &actors, double *additionalBounds=nullptr)
double GetScreenScaleFactor()
Convenience method for getting screen scale factor from the associated view node.
int RenderTranslucentPolygonalGeometry(vtkViewport *vtkNotUsed(viewport)) override
int RenderOpaqueGeometry(vtkViewport *vtkNotUsed(viewport)) override
void GetRendererComputedDisplayPositionFromWorldPosition(const double worldPos[3], double displayPos[2])
virtual void SetRenderer(vtkRenderer *ren)
virtual vtkMRMLAbstractViewNode * GetViewNode()
virtual void UpdateFromMRML(vtkMRMLNode *caller, unsigned long event, void *callData=nullptr)
virtual void SetApplicationLogic(vtkMRMLApplicationLogic *appLogic)
int RenderOverlay(vtkViewport *vtkNotUsed(viewport)) override
vtkWeakPointer< vtkMRMLApplicationLogic > ApplicationLogic
virtual vtkMRMLApplicationLogic * GetApplicationLogic()
void PrintSelf(ostream &os, vtkIndent indent) override
int RenderVolumetricGeometry(vtkViewport *vtkNotUsed(viewport)) override
vtkWeakPointer< vtkRenderer > Renderer
The renderer in which this widget is placed.
vtkWeakPointer< vtkMRMLAbstractViewNode > ViewNode
virtual vtkRenderer * GetRenderer()
virtual void SetViewNode(vtkMRMLAbstractViewNode *viewNode)
virtual void UpdateRelativeCoincidentTopologyOffsets(vtkMapper *mapper)
Abstract Superclass for all specific types of MRML nodes.