VTK  9.4.20251007
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
38
39#ifndef vtkAxesActor_h
40#define vtkAxesActor_h
41
42#include "vtkProp3D.h"
43#include "vtkRenderingAnnotationModule.h" // For export macro
44#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
45
46VTK_ABI_NAMESPACE_BEGIN
47class vtkActor;
49class vtkConeSource;
51class vtkLineSource;
52class vtkPolyData;
54class vtkProperty;
55class vtkRenderer;
56class vtkSphereSource;
57
58class VTKRENDERINGANNOTATION_EXPORT VTK_MARSHALAUTO vtkAxesActor : public vtkProp3D
59{
60public:
61 static vtkAxesActor* New();
62 vtkTypeMacro(vtkAxesActor, vtkProp3D);
63 void PrintSelf(ostream& os, vtkIndent indent) override;
64
71
73
76 int RenderOpaqueGeometry(vtkViewport* viewport) override;
78 int RenderOverlay(vtkViewport* viewport) override;
80
85
89 void ShallowCopy(vtkProp* prop) override;
90
97
99
103 void GetBounds(double bounds[6]);
104 double* GetBounds() VTK_SIZEHINT(6) override;
106
111
119
121
124 void SetTotalLength(double v[3]) { this->SetTotalLength(v[0], v[1], v[2]); }
125 void SetTotalLength(double x, double y, double z);
126 vtkGetVectorMacro(TotalLength, double, 3);
128
130
133 void SetNormalizedShaftLength(double v[3]) { this->SetNormalizedShaftLength(v[0], v[1], v[2]); }
134 void SetNormalizedShaftLength(double x, double y, double z);
135 vtkGetVectorMacro(NormalizedShaftLength, double, 3);
137
139
143 void SetNormalizedTipLength(double v[3]) { this->SetNormalizedTipLength(v[0], v[1], v[2]); }
144 void SetNormalizedTipLength(double x, double y, double z);
145 vtkGetVectorMacro(NormalizedTipLength, double, 3);
147
149
154 {
155 this->SetNormalizedLabelPosition(v[0], v[1], v[2]);
156 }
157 void SetNormalizedLabelPosition(double x, double y, double z);
158 vtkGetVectorMacro(NormalizedLabelPosition, double, 3);
160
162
165 vtkSetClampMacro(ConeResolution, int, 3, 128);
166 vtkGetMacro(ConeResolution, int);
167 vtkSetClampMacro(SphereResolution, int, 3, 128);
168 vtkGetMacro(SphereResolution, int);
169 vtkSetClampMacro(CylinderResolution, int, 3, 128);
170 vtkGetMacro(CylinderResolution, int);
172
174
177 vtkSetClampMacro(ConeRadius, double, 0, VTK_FLOAT_MAX);
178 vtkGetMacro(ConeRadius, double);
179 vtkSetClampMacro(SphereRadius, double, 0, VTK_FLOAT_MAX);
180 vtkGetMacro(SphereRadius, double);
181 vtkSetClampMacro(CylinderRadius, double, 0, VTK_FLOAT_MAX);
182 vtkGetMacro(CylinderRadius, double);
184
186
189 void SetShaftType(int type);
193 vtkGetMacro(ShaftType, int);
195
197
200 void SetTipType(int type);
204 vtkGetMacro(TipType, int);
206
208
212 vtkGetObjectMacro(UserDefinedTip, vtkPolyData);
214
216
220 vtkGetObjectMacro(UserDefinedShaft, vtkPolyData);
222
224
231
233
240
248
250
253 vtkSetStringMacro(XAxisLabelText);
254 vtkGetStringMacro(XAxisLabelText);
255 vtkSetStringMacro(YAxisLabelText);
256 vtkGetStringMacro(YAxisLabelText);
257 vtkSetStringMacro(ZAxisLabelText);
258 vtkGetStringMacro(ZAxisLabelText);
260
262
265 vtkSetMacro(AxisLabels, vtkTypeBool);
266 vtkGetMacro(AxisLabels, vtkTypeBool);
267 vtkBooleanMacro(AxisLabels, vtkTypeBool);
269
270 enum
271 {
275 };
276
277 enum
278 {
282 };
283
284protected:
286 ~vtkAxesActor() override;
287
292
296
300
302
303 double TotalLength[3];
307
310
313
317
321
323
327
331
332private:
333 vtkAxesActor(const vtkAxesActor&) = delete;
334 void operator=(const vtkAxesActor&) = delete;
335};
336
337VTK_ABI_NAMESPACE_END
338#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:42
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.
vtkMTimeType GetMTime() override
Get the actors mtime plus consider its properties and texture if set.
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.
double NormalizedLabelPosition[3]
char * YAxisLabelText
vtkMTimeType GetRedrawMTime() override
Return the mtime of anything that would cause the rendered image to appear differently.
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
double NormalizedShaftLength[3]
vtkProperty * GetYAxisShaftProperty()
Get the shaft properties.
vtkCaptionActor2D * ZAxisLabel
double CylinderRadius
double TotalLength[3]
double NormalizedTipLength[3]
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:72
an ordered list of Props
represent surface properties of a geometric object
Definition vtkProperty.h:60
abstract specification for renderers
Definition vtkRenderer.h:63
create a polygonal sphere centered at the origin
abstract specification for Viewports
Definition vtkViewport.h:46
window superclass for vtkRenderWindow
Definition vtkWindow.h:29
int vtkTypeBool
Definition vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:270
#define VTK_FLOAT_MAX
Definition vtkType.h:152
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO