VTK  9.4.20251007
vtkCubeAxesActor2D.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
36
37#ifndef vtkCubeAxesActor2D_h
38#define vtkCubeAxesActor2D_h
39
40#include "vtkActor2D.h"
41#include "vtkRenderingAnnotationModule.h" // For export macro
42#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
43
44VTK_ABI_NAMESPACE_BEGIN
46class vtkAxisActor2D;
47class vtkCamera;
48class vtkCubeAxesActor2DConnection;
49class vtkDataSet;
50class vtkTextProperty;
51
52class VTKRENDERINGANNOTATION_EXPORT VTK_MARSHALAUTO vtkCubeAxesActor2D : public vtkActor2D
53{
54public:
56 void PrintSelf(ostream& os, vtkIndent indent) override;
57
64
66
69 int RenderOverlay(vtkViewport*) override;
73
78
80
86 virtual void SetInputData(vtkDataSet*);
87 virtual vtkDataSet* GetInput();
89
91
96 void SetViewProp(vtkProp* prop);
97 vtkGetObjectMacro(ViewProp, vtkProp);
99
101
107 vtkSetVector6Macro(Bounds, double);
108 double* GetBounds() VTK_SIZEHINT(6) override;
110 double& xmin, double& xmax, double& ymin, double& ymax, double& zmin, double& zmax);
111 void GetBounds(double bounds[6]);
113
115
120 vtkSetVector6Macro(Ranges, double);
123 double& xmin, double& xmax, double& ymin, double& ymax, double& zmin, double& zmax);
124 void GetRanges(double ranges[6]);
126
128
133 vtkSetMacro(XOrigin, double);
134 vtkSetMacro(YOrigin, double);
135 vtkSetMacro(ZOrigin, double);
137
139
144 vtkSetMacro(UseRanges, vtkTypeBool);
145 vtkGetMacro(UseRanges, vtkTypeBool);
146 vtkBooleanMacro(UseRanges, vtkTypeBool);
148
150
154 virtual void SetCamera(vtkCamera*);
155 vtkGetObjectMacro(Camera, vtkCamera);
157
164
166
171 vtkSetClampMacro(FlyMode, int, VTK_FLY_OUTER_EDGES, VTK_FLY_NONE);
172 vtkGetMacro(FlyMode, int);
177
179
185 vtkSetMacro(Scaling, vtkTypeBool);
186 vtkGetMacro(Scaling, vtkTypeBool);
187 vtkBooleanMacro(Scaling, vtkTypeBool);
189
191
196 vtkSetClampMacro(NumberOfLabels, int, 0, 50);
197 vtkGetMacro(NumberOfLabels, int);
199
201
205 vtkSetStringMacro(XLabel);
206 vtkGetStringMacro(XLabel);
207 vtkSetStringMacro(YLabel);
208 vtkGetStringMacro(YLabel);
209 vtkSetStringMacro(ZLabel);
210 vtkGetStringMacro(ZLabel);
212
220
222
229
231
238
240
244 vtkSetStringMacro(LabelFormat);
245 vtkGetStringMacro(LabelFormat);
247
249
253 vtkSetClampMacro(FontFactor, double, 0.1, 2.0);
254 vtkGetMacro(FontFactor, double);
256
258
263 vtkSetClampMacro(Inertia, int, 1, VTK_INT_MAX);
264 vtkGetMacro(Inertia, int);
266
268
276 vtkSetClampMacro(ShowActualBounds, int, 0, 1);
277 vtkGetMacro(ShowActualBounds, int);
279
281
286 vtkSetMacro(CornerOffset, double);
287 vtkGetMacro(CornerOffset, double);
289
296
298
303 vtkBooleanMacro(XAxisVisibility, vtkTypeBool);
306 vtkBooleanMacro(YAxisVisibility, vtkTypeBool);
309 vtkBooleanMacro(ZAxisVisibility, vtkTypeBool);
311
316
317protected:
320
321 vtkCubeAxesActor2DConnection* ConnectionHolder;
322
323 vtkProp* ViewProp; // Define bounds from actor/assembly, or
324 double Bounds[6]; // Define bounds explicitly
325 double Ranges[6]; // Define ranges explicitly
326 vtkTypeBool UseRanges; // Flag to use ranges or not
327
331
335
338
340
342 char* XLabel;
343 char* YLabel;
344 char* ZLabel;
345 char* Labels[3];
346
350
357
359
360 // Always show the actual bounds of the object
362
363 double XOrigin;
364 double YOrigin;
365 double ZOrigin;
366
367 // various helper methods
368 void TransformBounds(vtkViewport* viewport, double bounds[6], double pts[8][3]);
369 int ClipBounds(vtkViewport* viewport, double pts[8][3], double bounds[6]);
370 double EvaluatePoint(double planes[24], double x[3]);
371 double EvaluateBounds(double planes[24], double bounds[6]);
372 void AdjustAxes(double pts[8][3], double bounds[6], int idx, int xIdx, int yIdx, int zIdx,
373 int zIdx2, int xAxes, int yAxes, int zAxes, double xCoords[4], double yCoords[4],
374 double zCoords[4], double xRange[2], double yRange[2], double zRange[2]);
375
376private:
377 // hide the superclass' ShallowCopy() from the user and the compiler.
378 // NOLINTNEXTLINE(bugprone-parent-virtual-call)
379 void ShallowCopy(vtkProp* prop) override { this->vtkProp::ShallowCopy(prop); }
380
381 vtkCubeAxesActor2D(const vtkCubeAxesActor2D&) = delete;
382 void operator=(const vtkCubeAxesActor2D&) = delete;
383};
384
385VTK_ABI_NAMESPACE_END
386#endif
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkActor2D.
Proxy object to connect input/output ports.
Create an axis with tick marks and labels.
a virtual camera for 3D rendering
Definition vtkCamera.h:42
create a 2D plot of a bounding box edges - used for navigation
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int RenderOverlay(vtkViewport *) override
Draw the axes as per the vtkProp superclass' API.
void SetViewProp(vtkProp *prop)
Use the bounding box of this prop to draw the cube axes.
vtkAxisActor2D * YAxis
virtual vtkDataSet * GetInput()
Use the bounding box of this input dataset to draw the cube axes.
static vtkCubeAxesActor2D * New()
Instantiate object with bold, italic, and shadow enabled; font family set to Arial; and label format ...
virtual void SetAxisTitleTextProperty(vtkTextProperty *p)
Set/Get the title text property of all axes.
void SetFlyModeToOuterEdges()
Specify a mode to control how the axes are drawn: either outer edges or closest triad to the camera p...
vtkAxisActor2D * GetZAxisActor2D()
double EvaluatePoint(double planes[24], double x[3])
double * GetRanges()
Explicitly specify the range of values used on the bounds.
double EvaluateBounds(double planes[24], double bounds[6])
virtual void SetInputData(vtkDataSet *)
Use the bounding box of this input dataset to draw the cube axes.
int RenderOpaqueGeometry(vtkViewport *) override
Draw the axes as per the vtkProp superclass' API.
virtual void SetAxisLabelTextProperty(vtkTextProperty *p)
Set/Get the labels text property of all axes.
void SetFlyModeToClosestTriad()
Specify a mode to control how the axes are drawn: either outer edges or closest triad to the camera p...
virtual void SetCamera(vtkCamera *)
Set/Get the camera to perform scaling and translation of the vtkCubeAxesActor2D.
virtual void SetFlyMode(int)
Specify a mode to control how the axes are drawn: either outer edges or closest triad to the camera p...
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Draw the axes as per the vtkProp superclass' API.
void SetFlyModeToNone()
Specify a mode to control how the axes are drawn: either outer edges or closest triad to the camera p...
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
int ClipBounds(vtkViewport *viewport, double pts[8][3], double bounds[6])
vtkAxisActor2D * GetYAxisActor2D()
vtkAxisActor2D * GetXAxisActor2D()
Retrieve handles to the X, Y and Z axis (so that you can set their text properties for example)
vtkAxisActor2D * ZAxis
vtkTextProperty * AxisLabelTextProperty
void AdjustAxes(double pts[8][3], double bounds[6], int idx, int xIdx, int yIdx, int zIdx, int zIdx2, int xAxes, int yAxes, int zAxes, double xCoords[4], double yCoords[4], double zCoords[4], double xRange[2], double yRange[2], double zRange[2])
vtkAxisActor2D * XAxis
double * GetBounds() override
Explicitly specify the region in space around which to draw the bounds.
virtual void SetInputConnection(vtkAlgorithmOutput *)
Use the bounding box of this input dataset to draw the cube axes.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkCubeAxesActor2DConnection * ConnectionHolder
~vtkCubeAxesActor2D() override
vtkTextProperty * AxisTitleTextProperty
void TransformBounds(vtkViewport *viewport, double bounds[6], double pts[8][3])
void ShallowCopy(vtkCubeAxesActor2D *actor)
Shallow copy of a CubeAxesActor2D.
abstract class to specify dataset behavior
Definition vtkDataSet.h:57
a simple class to control print indentation
Definition vtkIndent.h:29
virtual void ShallowCopy(vtkProp *prop)
Shallow copy of this vtkProp.
represent text properties.
record modification and/or execution time
abstract specification for Viewports
Definition vtkViewport.h:46
window superclass for vtkRenderWindow
Definition vtkWindow.h:29
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_INT_MAX
Definition vtkType.h:144
#define VTK_SIZEHINT(...)
#define VTK_MARSHALAUTO