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
vtkSlicerAngleRepresentation3D.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
29
30#ifndef vtkSlicerAngleRepresentation3D_h
31#define vtkSlicerAngleRepresentation3D_h
32
33#include "vtkSlicerMarkupsModuleVTKWidgetsExport.h"
35
36class vtkActor;
37class vtkArcSource;
38class vtkPolyDataMapper;
39class vtkPolyData;
40class vtkTubeFilter;
41
43
44class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerAngleRepresentation3D : public vtkSlicerMarkupsWidgetRepresentation3D
45{
46public:
49
52 void PrintSelf(ostream& os, vtkIndent indent) override;
53
57 void UpdateFromMRMLInternal(vtkMRMLNode* caller, unsigned long event, void *callData=nullptr) override;
58
60 void GetActors(vtkPropCollection *) override;
61 void ReleaseGraphicsResources(vtkWindow *) override;
62 int RenderOverlay(vtkViewport *viewport) override;
63 int RenderOpaqueGeometry(vtkViewport *viewport) override;
64 int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override;
65 vtkTypeBool HasTranslucentPolygonalGeometry() override;
66
68 double* GetBounds() VTK_SIZEHINT(6) override;
69
70 bool GetTransformationReferencePoint(double referencePointWorld[3]) override;
71
72 void CanInteract(vtkMRMLInteractionEventData* interactionEventData,
73 int &foundComponentType, int &foundComponentIndex, double &closestDistance2) override;
74
75protected:
78
79 vtkSmartPointer<vtkPolyData> Line;
80 vtkSmartPointer<vtkArcSource> Arc;
81 vtkSmartPointer<vtkTubeFilter> TubeFilter;
82 vtkSmartPointer<vtkTubeFilter> ArcTubeFilter;
83
84 vtkSmartPointer<vtkPolyDataMapper> LineMapper;
85 vtkSmartPointer<vtkPolyDataMapper> ArcMapper;
86 vtkSmartPointer<vtkPolyDataMapper> LineOccludedMapper;
87 vtkSmartPointer<vtkPolyDataMapper> ArcOccludedMapper;
88
89 vtkSmartPointer<vtkActor> LineActor;
90 vtkSmartPointer<vtkActor> ArcActor;
91 vtkSmartPointer<vtkActor> LineOccludedActor;
92 vtkSmartPointer<vtkActor> ArcOccludedActor;
93
94 void BuildArc();
95
96private:
98 void operator=(const vtkSlicerAngleRepresentation3D&) = delete;
99};
100
101#endif
Abstract Superclass for all specific types of MRML nodes.
vtkSmartPointer< vtkPolyDataMapper > ArcMapper
vtkSmartPointer< vtkTubeFilter > TubeFilter
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
vtkTypeBool HasTranslucentPolygonalGeometry() override
void GetActors(vtkPropCollection *) override
Methods to make this class behave as a vtkProp.
double * GetBounds() VTK_SIZEHINT(6) override
Return the bounds of the representation.
vtkSmartPointer< vtkPolyDataMapper > LineMapper
vtkSmartPointer< vtkPolyDataMapper > ArcOccludedMapper
void CanInteract(vtkMRMLInteractionEventData *interactionEventData, int &foundComponentType, int &foundComponentIndex, double &closestDistance2) override
void ReleaseGraphicsResources(vtkWindow *) override
int RenderOpaqueGeometry(vtkViewport *viewport) override
vtkSmartPointer< vtkTubeFilter > ArcTubeFilter
vtkSmartPointer< vtkActor > LineOccludedActor
void PrintSelf(ostream &os, vtkIndent indent) override
void UpdateFromMRMLInternal(vtkMRMLNode *caller, unsigned long event, void *callData=nullptr) override
static vtkSlicerAngleRepresentation3D * New()
Instantiate this class.
int RenderOverlay(vtkViewport *viewport) override
bool GetTransformationReferencePoint(double referencePointWorld[3]) override
Translation, rotation, scaling will happen around this position.
vtkSmartPointer< vtkPolyDataMapper > LineOccludedMapper