VTK  9.3.0
vtkAxesActor.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
39#ifndef vtkAxesActor_h
40#define vtkAxesActor_h
41
42#include "vtkProp3D.h"
43#include "vtkRenderingAnnotationModule.h" // For export macro
44
45VTK_ABI_NAMESPACE_BEGIN
46class vtkActor;
48class vtkConeSource;
50class vtkLineSource;
51class vtkPolyData;
53class vtkProperty;
54class vtkRenderer;
55class vtkSphereSource;
56
57class VTKRENDERINGANNOTATION_EXPORT vtkAxesActor : public vtkProp3D
58{
59public:
60 static vtkAxesActor* New();
61 vtkTypeMacro(vtkAxesActor, vtkProp3D);
62 void PrintSelf(ostream& os, vtkIndent indent) override;
63
70
72
75 int RenderOpaqueGeometry(vtkViewport* viewport) override;
77 int RenderOverlay(vtkViewport* viewport) override;
79
84
88 void ShallowCopy(vtkProp* prop) override;
89
96
98
102 void GetBounds(double bounds[6]);
103 double* GetBounds() VTK_SIZEHINT(6) override;
105
109 vtkMTimeType GetMTime() override;
110
117 vtkMTimeType GetRedrawMTime() override;
118
120
123 void SetTotalLength(double v[3]) { this->SetTotalLength(v[0], v[1], v[2]); }
124 void SetTotalLength(double x, double y, double z);
125 vtkGetVectorMacro(TotalLength, double, 3);
127
129
132 void SetNormalizedShaftLength(double v[3]) { this->SetNormalizedShaftLength(v[0], v[1], v[2]); }
133 void SetNormalizedShaftLength(double x, double y, double z);
134 vtkGetVectorMacro(NormalizedShaftLength, double, 3);
136
138
142 void SetNormalizedTipLength(double v[3]) { this->SetNormalizedTipLength(v[0], v[1], v[2]); }
143 void SetNormalizedTipLength(double x, double y, double z);
144 vtkGetVectorMacro(NormalizedTipLength, double, 3);
146
148
153 {
154 this->SetNormalizedLabelPosition(v[0], v[1], v[2]);
155 }
156 void SetNormalizedLabelPosition(double x, double y, double z);
157 vtkGetVectorMacro(NormalizedLabelPosition, double, 3);
159
161
164 vtkSetClampMacro(ConeResolution, int, 3, 128);
165 vtkGetMacro(ConeResolution, int);
166 vtkSetClampMacro(SphereResolution, int, 3, 128);
167 vtkGetMacro(SphereResolution, int);
168 vtkSetClampMacro(CylinderResolution, int, 3, 128);
169 vtkGetMacro(CylinderResolution, int);
171
173
176 vtkSetClampMacro(ConeRadius, double, 0, VTK_FLOAT_MAX);
177 vtkGetMacro(ConeRadius, double);
178 vtkSetClampMacro(SphereRadius, double, 0, VTK_FLOAT_MAX);
179 vtkGetMacro(SphereRadius, double);
180 vtkSetClampMacro(CylinderRadius, double, 0, VTK_FLOAT_MAX);
181 vtkGetMacro(CylinderRadius, double);
183
185
188 void SetShaftType(int type);
190 void SetShaftTypeToLine() { this->SetShaftType(vtkAxesActor::LINE_SHAFT); }
192 vtkGetMacro(ShaftType, int);
194
196
199 void SetTipType(int type);
200 void SetTipTypeToCone() { this->SetTipType(vtkAxesActor::CONE_TIP); }
201 void SetTipTypeToSphere() { this->SetTipType(vtkAxesActor::SPHERE_TIP); }
203 vtkGetMacro(TipType, int);
205
207
211 vtkGetObjectMacro(UserDefinedTip, vtkPolyData);
213
215
219 vtkGetObjectMacro(UserDefinedShaft, vtkPolyData);
221
223
230
232
239
244 vtkCaptionActor2D* GetXAxisCaptionActor2D() { return this->XAxisLabel; }
245 vtkCaptionActor2D* GetYAxisCaptionActor2D() { return this->YAxisLabel; }
246 vtkCaptionActor2D* GetZAxisCaptionActor2D() { return this->ZAxisLabel; }
247
249
252 vtkSetStringMacro(XAxisLabelText);
253 vtkGetStringMacro(XAxisLabelText);
254 vtkSetStringMacro(YAxisLabelText);
255 vtkGetStringMacro(YAxisLabelText);
256 vtkSetStringMacro(ZAxisLabelText);
257 vtkGetStringMacro(ZAxisLabelText);
259
261
264 vtkSetMacro(AxisLabels, vtkTypeBool);
265 vtkGetMacro(AxisLabels, vtkTypeBool);
266 vtkBooleanMacro(AxisLabels, vtkTypeBool);
268
269 enum
270 {
273 USER_DEFINED_SHAFT
274 };
275
276 enum
277 {
280 USER_DEFINED_TIP
281 };
282
283protected:
285 ~vtkAxesActor() override;
286
291
295
299
301
302 double TotalLength[3];
303 double NormalizedShaftLength[3];
304 double NormalizedTipLength[3];
305 double NormalizedLabelPosition[3];
306
309
312
316
320
322
326
330
331private:
332 vtkAxesActor(const vtkAxesActor&) = delete;
333 void operator=(const vtkAxesActor&) = delete;
334};
335
336VTK_ABI_NAMESPACE_END
337#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:41
a 3D axes representation
vtkActor * XAxisTip
vtkCaptionActor2D * GetXAxisCaptionActor2D()
Retrieve handles to the X, Y and Z axis (so that you can set their text properties for example)
void SetTipTypeToSphere()
Set the type of the tip to a cone, sphere, or user defined geometry.
vtkLineSource * LineSource
char * XAxisLabelText
void SetShaftTypeToLine()
Set the type of the shaft to a cylinder, line, or user defined geometry.
double ConeRadius
vtkCaptionActor2D * GetZAxisCaptionActor2D()
void SetNormalizedShaftLength(double v[3])
Set the normalized (0-1) length of the shaft.
char * ZAxisLabelText
vtkPolyData * UserDefinedShaft
void SetNormalizedTipLength(double x, double y, double z)
Set the normalized (0-1) length of the tip.
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Support the standard render methods.
vtkSphereSource * SphereSource
vtkCylinderSource * CylinderSource
static vtkAxesActor * New()
void SetNormalizedShaftLength(double x, double y, double z)
Set the normalized (0-1) length of the shaft.
void SetShaftType(int type)
Set the type of the shaft to a cylinder, line, or user defined geometry.
char * YAxisLabelText
vtkProperty * GetZAxisShaftProperty()
Get the shaft properties.
double * GetBounds() override
Get the bounds for this Actor as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
void SetTotalLength(double v[3])
Set the total length of the axes in 3 dimensions.
vtkProperty * GetXAxisTipProperty()
Get the tip properties.
void SetUserDefinedShaft(vtkPolyData *)
Set the user defined shaft polydata.
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkActor * ZAxisShaft
vtkCaptionActor2D * GetYAxisCaptionActor2D()
vtkActor * YAxisTip
void SetTipTypeToUserDefined()
Set the type of the tip to a cone, sphere, or user defined geometry.
void ShallowCopy(vtkProp *prop) override
Shallow copy of an axes actor.
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
vtkPolyData * UserDefinedTip
vtkProperty * GetXAxisShaftProperty()
Get the shaft properties.
~vtkAxesActor() override
vtkProperty * GetYAxisShaftProperty()
Get the shaft properties.
vtkCaptionActor2D * ZAxisLabel
double CylinderRadius
vtkCaptionActor2D * XAxisLabel
vtkConeSource * ConeSource
vtkActor * YAxisShaft
void SetShaftTypeToCylinder()
Set the type of the shaft to a cylinder, line, or user defined geometry.
vtkActor * ZAxisTip
void SetTipTypeToCone()
Set the type of the tip to a cone, sphere, or user defined geometry.
vtkCaptionActor2D * YAxisLabel
void GetBounds(double bounds[6])
Get the bounds for this Actor as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
void SetShaftTypeToUserDefined()
Set the type of the shaft to a cylinder, line, or user defined geometry.
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
void SetUserDefinedTip(vtkPolyData *)
Set the user defined tip polydata.
void SetNormalizedLabelPosition(double x, double y, double z)
Set the normalized (0-1) position of the label along the length of the shaft.
void SetNormalizedLabelPosition(double v[3])
Set the normalized (0-1) position of the label along the length of the shaft.
vtkActor * XAxisShaft
vtkTypeBool AxisLabels
void UpdateProps()
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
void SetTotalLength(double x, double y, double z)
Set the total length of the axes in 3 dimensions.
vtkProperty * GetYAxisTipProperty()
Get the tip properties.
void SetNormalizedTipLength(double v[3])
Set the normalized (0-1) length of the tip.
void GetActors(vtkPropCollection *) override
For some exporters and other other operations we must be able to collect all the actors or volumes.
double SphereRadius
void SetTipType(int type)
Set the type of the tip to a cone, sphere, or user defined geometry.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkProperty * GetZAxisTipProperty()
Get the tip properties.
draw text label associated with a point
generate polygonal cone
generate a polygonal cylinder centered at the origin
a simple class to control print indentation
Definition vtkIndent.h:29
create a line defined by two end points
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:80
represents an 3D object for placement in a rendered scene
Definition vtkProp3D.h:39
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:43
represent surface properties of a geometric object
Definition vtkProperty.h:57
abstract specification for renderers
Definition vtkRenderer.h:59
create a polygonal sphere centered at the origin
abstract specification for Viewports
Definition vtkViewport.h:45
window superclass for vtkRenderWindow
Definition vtkWindow.h:25
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270
#define VTK_FLOAT_MAX
Definition vtkType.h:152
#define VTK_SIZEHINT(...)