VTK  9.5.2
vtkDistanceRepresentation3D.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
20#ifndef vtkDistanceRepresentation3D_h
21#define vtkDistanceRepresentation3D_h
22
24#include "vtkInteractionWidgetsModule.h" // For export macro
25
26VTK_ABI_NAMESPACE_BEGIN
27class vtkPoints;
28class vtkPolyData;
30class vtkActor;
31class vtkVectorText;
32class vtkFollower;
33class vtkBox;
35class vtkGlyph3D;
36class vtkDoubleArray;
38class vtkProperty;
39
40class VTKINTERACTIONWIDGETS_EXPORT vtkDistanceRepresentation3D : public vtkDistanceRepresentation
41{
42public:
47
49
53 void PrintSelf(ostream& os, vtkIndent indent) override;
55
59 double GetDistance() override { return this->Distance; }
60
62
66 void SetGlyphScale(double scale);
67 vtkGetMacro(GlyphScale, double);
69
74
76
80 void SetLabelPosition(double labelPosition);
81 vtkGetMacro(LabelPosition, double);
83
85
88 vtkSetClampMacro(MaximumNumberOfRulerTicks, int, 1, VTK_INT_MAX);
89 vtkGetMacro(MaximumNumberOfRulerTicks, int);
91
93
97 vtkGetObjectMacro(GlyphActor, vtkActor);
99
101
105 vtkGetObjectMacro(LabelActor, vtkFollower);
108
110
115 double* GetPoint1WorldPosition() override;
116 double* GetPoint2WorldPosition() override;
117 void GetPoint1WorldPosition(double pos[3]) VTK_FUTURE_CONST override;
118 void GetPoint2WorldPosition(double pos[3]) VTK_FUTURE_CONST override;
119 void SetPoint1WorldPosition(double pos[3]) override;
120 void SetPoint2WorldPosition(double pos[3]) override;
122
123 void SetPoint1DisplayPosition(double pos[3]) override;
124 void SetPoint2DisplayPosition(double pos[3]) override;
125 void GetPoint1DisplayPosition(double pos[3]) VTK_FUTURE_CONST override;
126 void GetPoint2DisplayPosition(double pos[3]) VTK_FUTURE_CONST override;
127
129
132 void BuildRepresentation() override;
133 double* GetBounds() override;
135
137
141 int RenderOpaqueGeometry(vtkViewport* viewport) override;
144
146
150 void SetLabelScale(double x, double y, double z)
151 {
152 double scale[3];
153 scale[0] = x;
154 scale[1] = y;
155 scale[2] = z;
156 this->SetLabelScale(scale);
157 }
158 virtual void SetLabelScale(double scale[3]);
159 virtual double* GetLabelScale();
161
166
167protected:
170
171 // The line
176
177 // The distance label
181
182 // Support internal operations
184
185 // The 3D disk tick marks
194
195 // Glyph3D scale
198
199 // The distance between the two points
200 double Distance;
201
202 // Support GetBounds() method
204
205 // Maximum number of ticks on the 3d ruler
207
208 // Label title position
210
211private:
213 void operator=(const vtkDistanceRepresentation3D&) = delete;
214
215 // Internal method to update the position of the label.
216 void UpdateLabelPosition();
217};
218
219VTK_ABI_NAMESPACE_END
220#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:151
implicit function for a bounding box
Definition vtkBox.h:110
generate a polygonal cylinder centered at the origin
represent the vtkDistanceWidget
void BuildRepresentation() override
Method to satisfy superclasses' API.
double * GetPoint1WorldPosition() override
Methods to Set/Get the coordinates of the two points defining this representation.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK methods.
void SetPoint1DisplayPosition(double pos[3]) override
Methods to Set/Get the coordinates of the two points defining this representation.
virtual vtkProperty * GetLineProperty()
Convenience method to get the line actor property.
virtual vtkProperty * GetLabelProperty()
Get the distance annotation property.
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Methods required by vtkProp superclass.
~vtkDistanceRepresentation3D() override
vtkTransformPolyDataFilter * GlyphXForm
static vtkDistanceRepresentation3D * New()
Instantiate class.
void GetPoint1WorldPosition(double pos[3]) VTK_FUTURE_CONST override
Methods to Set/Get the coordinates of the two points defining this representation.
void SetLabelPosition(double labelPosition)
Set/Get position of the label title in normalized coordinates [0,1].
void SetPoint1WorldPosition(double pos[3]) override
Methods to Set/Get the coordinates of the two points defining this representation.
void SetLabelScale(double x, double y, double z)
Scale text (font size along each dimension).
void SetGlyphScale(double scale)
Scale the glyphs used as tick marks.
void GetPoint2WorldPosition(double pos[3]) VTK_FUTURE_CONST override
Methods to Set/Get the coordinates of the two points defining this representation.
double * GetPoint2WorldPosition() override
Methods to Set/Get the coordinates of the two points defining this representation.
void SetPoint2WorldPosition(double pos[3]) override
Methods to Set/Get the coordinates of the two points defining this representation.
void GetPoint1DisplayPosition(double pos[3]) VTK_FUTURE_CONST override
Methods to Set/Get the coordinates of the two points defining this representation.
double * GetBounds() override
Method to satisfy superclasses' API.
void SetPoint2DisplayPosition(double pos[3]) override
Methods to Set/Get the coordinates of the two points defining this representation.
void GetPoint2DisplayPosition(double pos[3]) VTK_FUTURE_CONST override
Methods to Set/Get the coordinates of the two points defining this representation.
virtual double * GetLabelScale()
Scale text (font size along each dimension).
double GetDistance() override
Satisfy the superclasses API.
virtual void SetLabelScale(double scale[3])
Scale text (font size along each dimension).
int RenderOpaqueGeometry(vtkViewport *viewport) override
Methods required by vtkProp superclass.
virtual void SetLabelActor(vtkFollower *)
Convenience method Get the label actor.
void ReleaseGraphicsResources(vtkWindow *w) override
Methods required by vtkProp superclass.
represent the vtkDistanceWidget
dynamic, self-adjusting array of double
a subclass of actor that always faces the camera
Definition vtkFollower.h:92
copy oriented and scaled glyph geometry to every input point
Definition vtkGlyph3D.h:211
a simple class to control print indentation
Definition vtkIndent.h:108
represent and manipulate 3D points
Definition vtkPoints.h:139
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
represent surface properties of a geometric object
transform points and associated normals and vectors for polygonal dataset
create polygonal text
abstract specification for Viewports
Definition vtkViewport.h:66
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
#define VTK_INT_MAX
Definition vtkType.h:161