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=========================================================================*/
47
48#ifndef vtkAxesActor_h
49#define vtkAxesActor_h
50
51#include "vtkProp3D.h"
52#include "vtkRenderingAnnotationModule.h" // For export macro
53
54class vtkActor;
56class vtkConeSource;
58class vtkLineSource;
59class vtkPolyData;
61class vtkProperty;
62class vtkRenderer;
63class vtkSphereSource;
64
65class VTKRENDERINGANNOTATION_EXPORT vtkAxesActor : public vtkProp3D
66{
67public:
68 static vtkAxesActor* New();
69 vtkTypeMacro(vtkAxesActor, vtkProp3D);
70 void PrintSelf(ostream& os, vtkIndent indent) override;
71
78
80
83 int RenderOpaqueGeometry(vtkViewport* viewport) override;
85 int RenderOverlay(vtkViewport* viewport) override;
87
92
96 void ShallowCopy(vtkProp* prop) override;
97
104
106
110 void GetBounds(double bounds[6]);
111 double* GetBounds() VTK_SIZEHINT(6) override;
113
118
126
128
131 void SetTotalLength(double v[3]) { this->SetTotalLength(v[0], v[1], v[2]); }
132 void SetTotalLength(double x, double y, double z);
133 vtkGetVectorMacro(TotalLength, double, 3);
135
137
140 void SetNormalizedShaftLength(double v[3]) { this->SetNormalizedShaftLength(v[0], v[1], v[2]); }
141 void SetNormalizedShaftLength(double x, double y, double z);
142 vtkGetVectorMacro(NormalizedShaftLength, double, 3);
144
146
150 void SetNormalizedTipLength(double v[3]) { this->SetNormalizedTipLength(v[0], v[1], v[2]); }
151 void SetNormalizedTipLength(double x, double y, double z);
152 vtkGetVectorMacro(NormalizedTipLength, double, 3);
154
156
161 {
162 this->SetNormalizedLabelPosition(v[0], v[1], v[2]);
163 }
164 void SetNormalizedLabelPosition(double x, double y, double z);
165 vtkGetVectorMacro(NormalizedLabelPosition, double, 3);
167
169
172 vtkSetClampMacro(ConeResolution, int, 3, 128);
173 vtkGetMacro(ConeResolution, int);
174 vtkSetClampMacro(SphereResolution, int, 3, 128);
175 vtkGetMacro(SphereResolution, int);
176 vtkSetClampMacro(CylinderResolution, int, 3, 128);
177 vtkGetMacro(CylinderResolution, int);
179
181
184 vtkSetClampMacro(ConeRadius, double, 0, VTK_FLOAT_MAX);
185 vtkGetMacro(ConeRadius, double);
186 vtkSetClampMacro(SphereRadius, double, 0, VTK_FLOAT_MAX);
187 vtkGetMacro(SphereRadius, double);
188 vtkSetClampMacro(CylinderRadius, double, 0, VTK_FLOAT_MAX);
189 vtkGetMacro(CylinderRadius, double);
191
193
196 void SetShaftType(int type);
200 vtkGetMacro(ShaftType, int);
202
204
207 void SetTipType(int type);
211 vtkGetMacro(TipType, int);
213
215
219 vtkGetObjectMacro(UserDefinedTip, vtkPolyData);
221
223
227 vtkGetObjectMacro(UserDefinedShaft, vtkPolyData);
229
231
238
240
247
255
257
260 vtkSetStringMacro(XAxisLabelText);
261 vtkGetStringMacro(XAxisLabelText);
262 vtkSetStringMacro(YAxisLabelText);
263 vtkGetStringMacro(YAxisLabelText);
264 vtkSetStringMacro(ZAxisLabelText);
265 vtkGetStringMacro(ZAxisLabelText);
267
269
272 vtkSetMacro(AxisLabels, vtkTypeBool);
273 vtkGetMacro(AxisLabels, vtkTypeBool);
274 vtkBooleanMacro(AxisLabels, vtkTypeBool);
276
277 enum
278 {
282 };
283
284 enum
285 {
289 };
290
291protected:
293 ~vtkAxesActor() override;
294
299
303
307
309
310 double TotalLength[3];
314
317
320
324
328
330
334
338
339private:
340 vtkAxesActor(const vtkAxesActor&) = delete;
341 void operator=(const vtkAxesActor&) = delete;
342};
343
344#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:46
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:34
create a line defined by two end points
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:85
an ordered list of Props
represent surface properties of a geometric object
Definition vtkProperty.h:62
abstract specification for renderers
Definition vtkRenderer.h:67
create a polygonal sphere centered at the origin
abstract specification for Viewports
Definition vtkViewport.h:50
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(...)