VTK  9.2.6
vtkAxesActor.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkAxesActor.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
50
51#ifndef vtkAxesActor_h
52#define vtkAxesActor_h
53
54#include "vtkProp3D.h"
55#include "vtkRenderingAnnotationModule.h" // For export macro
56
57class vtkActor;
59class vtkConeSource;
61class vtkLineSource;
62class vtkPolyData;
64class vtkProperty;
65class vtkRenderer;
66class vtkSphereSource;
67
68class VTKRENDERINGANNOTATION_EXPORT vtkAxesActor : public vtkProp3D
69{
70public:
71 static vtkAxesActor* New();
72 vtkTypeMacro(vtkAxesActor, vtkProp3D);
73 void PrintSelf(ostream& os, vtkIndent indent) override;
74
81
83
86 int RenderOpaqueGeometry(vtkViewport* viewport) override;
88 int RenderOverlay(vtkViewport* viewport) override;
90
95
99 void ShallowCopy(vtkProp* prop) override;
100
107
109
113 void GetBounds(double bounds[6]);
114 double* GetBounds() VTK_SIZEHINT(6) override;
116
121
129
131
134 void SetTotalLength(double v[3]) { this->SetTotalLength(v[0], v[1], v[2]); }
135 void SetTotalLength(double x, double y, double z);
136 vtkGetVectorMacro(TotalLength, double, 3);
138
140
143 void SetNormalizedShaftLength(double v[3]) { this->SetNormalizedShaftLength(v[0], v[1], v[2]); }
144 void SetNormalizedShaftLength(double x, double y, double z);
145 vtkGetVectorMacro(NormalizedShaftLength, double, 3);
147
149
153 void SetNormalizedTipLength(double v[3]) { this->SetNormalizedTipLength(v[0], v[1], v[2]); }
154 void SetNormalizedTipLength(double x, double y, double z);
155 vtkGetVectorMacro(NormalizedTipLength, double, 3);
157
159
164 {
165 this->SetNormalizedLabelPosition(v[0], v[1], v[2]);
166 }
167 void SetNormalizedLabelPosition(double x, double y, double z);
168 vtkGetVectorMacro(NormalizedLabelPosition, double, 3);
170
172
175 vtkSetClampMacro(ConeResolution, int, 3, 128);
176 vtkGetMacro(ConeResolution, int);
177 vtkSetClampMacro(SphereResolution, int, 3, 128);
178 vtkGetMacro(SphereResolution, int);
179 vtkSetClampMacro(CylinderResolution, int, 3, 128);
180 vtkGetMacro(CylinderResolution, int);
182
184
187 vtkSetClampMacro(ConeRadius, double, 0, VTK_FLOAT_MAX);
188 vtkGetMacro(ConeRadius, double);
189 vtkSetClampMacro(SphereRadius, double, 0, VTK_FLOAT_MAX);
190 vtkGetMacro(SphereRadius, double);
191 vtkSetClampMacro(CylinderRadius, double, 0, VTK_FLOAT_MAX);
192 vtkGetMacro(CylinderRadius, double);
194
196
199 void SetShaftType(int type);
203 vtkGetMacro(ShaftType, int);
205
207
210 void SetTipType(int type);
214 vtkGetMacro(TipType, int);
216
218
222 vtkGetObjectMacro(UserDefinedTip, vtkPolyData);
224
226
230 vtkGetObjectMacro(UserDefinedShaft, vtkPolyData);
232
234
241
243
250
258
260
263 vtkSetStringMacro(XAxisLabelText);
264 vtkGetStringMacro(XAxisLabelText);
265 vtkSetStringMacro(YAxisLabelText);
266 vtkGetStringMacro(YAxisLabelText);
267 vtkSetStringMacro(ZAxisLabelText);
268 vtkGetStringMacro(ZAxisLabelText);
270
272
275 vtkSetMacro(AxisLabels, vtkTypeBool);
276 vtkGetMacro(AxisLabels, vtkTypeBool);
277 vtkBooleanMacro(AxisLabels, vtkTypeBool);
279
280 enum
281 {
285 };
286
287 enum
288 {
292 };
293
294protected:
296 ~vtkAxesActor() override;
297
302
306
310
312
313 double TotalLength[3];
317
320
323
327
331
333
337
341
342private:
343 vtkAxesActor(const vtkAxesActor&) = delete;
344 void operator=(const vtkAxesActor&) = delete;
345};
346
347#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:52
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:40
create a line defined by two end points
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:91
an ordered list of Props
represent surface properties of a geometric object
Definition vtkProperty.h:68
abstract specification for renderers
Definition vtkRenderer.h:73
create a polygonal sphere centered at the origin
abstract specification for Viewports
Definition vtkViewport.h:56
window superclass for vtkRenderWindow
Definition vtkWindow.h:39
int vtkTypeBool
Definition vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_FLOAT_MAX
Definition vtkType.h:163
#define VTK_SIZEHINT(...)