VTK  9.7.1
vtkCubeAxesActor.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
47 #ifndef vtkCubeAxesActor_h
48 #define vtkCubeAxesActor_h
49 
50 #include "vtkActor.h"
51 #include "vtkNew.h" // For vtkNew
52 #include "vtkRenderingAnnotationModule.h" // For export macro
53 #include "vtkSmartPointer.h" // For vtkSmartPointer
54 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
55 
56 VTK_ABI_NAMESPACE_BEGIN
57 class vtkAxisActor;
58 class vtkCamera;
59 class vtkTextProperty;
60 class vtkStringArray;
61 
62 class VTKRENDERINGANNOTATION_EXPORT VTK_MARSHALAUTO vtkCubeAxesActor : public vtkActor
63 {
64 public:
65  vtkTypeMacro(vtkCubeAxesActor, vtkActor);
66  void PrintSelf(ostream& os, vtkIndent indent) override;
67 
72  static vtkCubeAxesActor* New();
73 
75 
78  int RenderOpaqueGeometry(vtkViewport*) override;
79  virtual int RenderTranslucentGeometry(vtkViewport*);
81  int RenderOverlay(vtkViewport*) override;
84 
86 
90  vtkSetMacro(RebuildAxes, bool);
91  vtkGetMacro(RebuildAxes, bool);
93 
95 
101  vtkSetVector6Macro(Bounds, double);
102  using Superclass::GetBounds;
103  double* GetBounds() VTK_SIZEHINT(6) override { return this->Bounds; }
105 
107 
111  virtual void GetRenderedBounds(double rBounds[6]);
112  virtual double* GetRenderedBounds();
114 
116 
124  vtkSetVector2Macro(XAxisRange, double);
125  vtkSetVector2Macro(YAxisRange, double);
126  vtkSetVector2Macro(ZAxisRange, double);
127  vtkGetVector2Macro(XAxisRange, double);
128  vtkGetVector2Macro(YAxisRange, double);
131 
135  vtkStringArray* GetAxisLabels(int axis);
136  void SetAxisLabels(int axis, vtkStringArray* value);
138 
139  vtkGetVector2Macro(ZAxisRange, double);
140 
142 
148  void SetScreenSize(double screenSize);
149  vtkGetMacro(ScreenSize, double);
151 
153 
157  void SetLabelOffset(double offset);
158  vtkGetMacro(LabelOffset, double);
160 
162 
166  void SetTitleOffset(double titleOffset[2]);
167  vtkGetVector2Macro(TitleOffset, double);
169 
171 
175  virtual void SetCamera(vtkCamera*);
176  vtkCamera* GetCamera();
178 
179  enum FlyMode
180  {
181  VTK_FLY_OUTER_EDGES = 0,
182  VTK_FLY_CLOSEST_TRIAD = 1,
183  VTK_FLY_FURTHEST_TRIAD = 2,
184  VTK_FLY_STATIC_TRIAD = 3,
185  VTK_FLY_STATIC_EDGES = 4
186  };
187 
189 
195  vtkSetClampMacro(FlyMode, int, VTK_FLY_OUTER_EDGES, VTK_FLY_STATIC_EDGES);
196  vtkGetMacro(FlyMode, int);
197  void SetFlyModeToOuterEdges() { this->SetFlyMode(VTK_FLY_OUTER_EDGES); }
198  void SetFlyModeToClosestTriad() { this->SetFlyMode(VTK_FLY_CLOSEST_TRIAD); }
199  void SetFlyModeToFurthestTriad() { this->SetFlyMode(VTK_FLY_FURTHEST_TRIAD); }
200  void SetFlyModeToStaticTriad() { this->SetFlyMode(VTK_FLY_STATIC_TRIAD); }
201  void SetFlyModeToStaticEdges() { this->SetFlyMode(VTK_FLY_STATIC_EDGES); }
203 
205 
209  vtkSetStringMacro(XTitle);
210  vtkGetStringMacro(XTitle);
211  vtkSetStringMacro(XUnits);
212  vtkGetStringMacro(XUnits);
213  vtkSetStringMacro(YTitle);
214  vtkGetStringMacro(YTitle);
215  vtkSetStringMacro(YUnits);
216  vtkGetStringMacro(YUnits);
217  vtkSetStringMacro(ZTitle);
218  vtkGetStringMacro(ZTitle);
219  vtkSetStringMacro(ZUnits);
220  vtkGetStringMacro(ZUnits);
222 
224 
228  vtkSetStringMacro(XLabelFormat);
229  vtkGetStringMacro(XLabelFormat);
230  vtkSetStringMacro(YLabelFormat);
231  vtkGetStringMacro(YLabelFormat);
232  vtkSetStringMacro(ZLabelFormat);
233  vtkGetStringMacro(ZLabelFormat);
235 
237 
243  vtkSetClampMacro(Inertia, int, 1, VTK_INT_MAX);
244  vtkGetMacro(Inertia, int);
246 
248 
254  vtkSetMacro(CornerOffset, double);
255  vtkGetMacro(CornerOffset, double);
257 
263  void ReleaseGraphicsResources(vtkWindow*) override;
264 
266 
270  vtkSetMacro(EnableDistanceLOD, bool);
271  vtkGetMacro(EnableDistanceLOD, bool);
273 
275 
279  vtkSetClampMacro(DistanceLODThreshold, double, 0.0, 1.0);
280  vtkGetMacro(DistanceLODThreshold, double);
282 
284 
288  vtkSetMacro(EnableViewAngleLOD, bool);
289  vtkGetMacro(EnableViewAngleLOD, bool);
291 
293 
297  vtkSetClampMacro(ViewAngleLODThreshold, double, 0., 1.);
298  vtkGetMacro(ViewAngleLODThreshold, double);
300 
302 
306  vtkSetMacro(XAxisVisibility, bool);
307  vtkGetMacro(XAxisVisibility, bool);
308  vtkBooleanMacro(XAxisVisibility, bool);
309 
310  vtkSetMacro(YAxisVisibility, bool);
311  vtkGetMacro(YAxisVisibility, bool);
312  vtkBooleanMacro(YAxisVisibility, bool);
313 
314  vtkSetMacro(ZAxisVisibility, bool);
315  vtkGetMacro(ZAxisVisibility, bool);
316  vtkBooleanMacro(ZAxisVisibility, bool);
318 
320 
324  vtkSetMacro(XAxisLabelVisibility, bool);
325  vtkGetMacro(XAxisLabelVisibility, bool);
326  vtkBooleanMacro(XAxisLabelVisibility, bool);
327 
328  vtkSetMacro(YAxisLabelVisibility, bool);
329  vtkGetMacro(YAxisLabelVisibility, bool);
330  vtkBooleanMacro(YAxisLabelVisibility, bool);
331 
332  vtkSetMacro(ZAxisLabelVisibility, bool);
333  vtkGetMacro(ZAxisLabelVisibility, bool);
334  vtkBooleanMacro(ZAxisLabelVisibility, bool);
336 
338 
342  vtkSetMacro(XAxisTickVisibility, bool);
343  vtkGetMacro(XAxisTickVisibility, bool);
344  vtkBooleanMacro(XAxisTickVisibility, bool);
345 
346  vtkSetMacro(YAxisTickVisibility, bool);
347  vtkGetMacro(YAxisTickVisibility, bool);
348  vtkBooleanMacro(YAxisTickVisibility, bool);
349 
350  vtkSetMacro(ZAxisTickVisibility, bool);
351  vtkGetMacro(ZAxisTickVisibility, bool);
352  vtkBooleanMacro(ZAxisTickVisibility, bool);
354 
356 
360  vtkSetMacro(XAxisMinorTickVisibility, bool);
361  vtkGetMacro(XAxisMinorTickVisibility, bool);
362  vtkBooleanMacro(XAxisMinorTickVisibility, bool);
363 
364  vtkSetMacro(YAxisMinorTickVisibility, bool);
365  vtkGetMacro(YAxisMinorTickVisibility, bool);
366  vtkBooleanMacro(YAxisMinorTickVisibility, bool);
367 
368  vtkSetMacro(ZAxisMinorTickVisibility, bool);
369  vtkGetMacro(ZAxisMinorTickVisibility, bool);
370  vtkBooleanMacro(ZAxisMinorTickVisibility, bool);
372 
374 
378  vtkSetMacro(DrawXGridlines, bool);
379  vtkGetMacro(DrawXGridlines, bool);
380  vtkBooleanMacro(DrawXGridlines, bool);
381 
382  vtkSetMacro(DrawYGridlines, bool);
383  vtkGetMacro(DrawYGridlines, bool);
384  vtkBooleanMacro(DrawYGridlines, bool);
385 
386  vtkSetMacro(DrawZGridlines, bool);
387  vtkGetMacro(DrawZGridlines, bool);
388  vtkBooleanMacro(DrawZGridlines, bool);
390 
392 
396  vtkSetMacro(DrawXInnerGridlines, bool);
397  vtkGetMacro(DrawXInnerGridlines, bool);
398  vtkBooleanMacro(DrawXInnerGridlines, bool);
399 
400  vtkSetMacro(DrawYInnerGridlines, bool);
401  vtkGetMacro(DrawYInnerGridlines, bool);
402  vtkBooleanMacro(DrawYInnerGridlines, bool);
403 
404  vtkSetMacro(DrawZInnerGridlines, bool);
405  vtkGetMacro(DrawZInnerGridlines, bool);
406  vtkBooleanMacro(DrawZInnerGridlines, bool);
408 
410 
414  vtkSetMacro(DrawXGridpolys, bool);
415  vtkGetMacro(DrawXGridpolys, bool);
416  vtkBooleanMacro(DrawXGridpolys, bool);
417 
418  vtkSetMacro(DrawYGridpolys, bool);
419  vtkGetMacro(DrawYGridpolys, bool);
420  vtkBooleanMacro(DrawYGridpolys, bool);
421 
422  vtkSetMacro(DrawZGridpolys, bool);
423  vtkGetMacro(DrawZGridpolys, bool);
424  vtkBooleanMacro(DrawZGridpolys, bool);
426 
428 
431  vtkTextProperty* GetTitleTextProperty(int);
432  void SetXAxesTitleProperty(vtkTextProperty*);
433  vtkTextProperty* GetXAxesTitleProperty();
434  void SetYAxesTitleProperty(vtkTextProperty*);
435  vtkTextProperty* GetYAxesTitleProperty();
436  void SetZAxesTitleProperty(vtkTextProperty*);
437  vtkTextProperty* GetZAxesTitleProperty();
439 
441 
444  vtkTextProperty* GetLabelTextProperty(int);
445  void SetXAxesLabelProperty(vtkTextProperty*);
446  vtkTextProperty* GetXAxesLabelProperty();
447  void SetYAxesLabelProperty(vtkTextProperty*);
448  vtkTextProperty* GetYAxesLabelProperty();
449  void SetZAxesLabelProperty(vtkTextProperty*);
450  vtkTextProperty* GetZAxesLabelProperty();
452 
454 
457  void SetXAxesLinesProperty(vtkProperty*);
458  vtkProperty* GetXAxesLinesProperty();
459  void SetYAxesLinesProperty(vtkProperty*);
460  vtkProperty* GetYAxesLinesProperty();
461  void SetZAxesLinesProperty(vtkProperty*);
462  vtkProperty* GetZAxesLinesProperty();
464 
466 
469  void SetXAxesGridlinesProperty(vtkProperty*);
470  vtkProperty* GetXAxesGridlinesProperty();
471  void SetYAxesGridlinesProperty(vtkProperty*);
472  vtkProperty* GetYAxesGridlinesProperty();
473  void SetZAxesGridlinesProperty(vtkProperty*);
474  vtkProperty* GetZAxesGridlinesProperty();
476 
478 
481  void SetXAxesInnerGridlinesProperty(vtkProperty*);
482  vtkProperty* GetXAxesInnerGridlinesProperty();
483  void SetYAxesInnerGridlinesProperty(vtkProperty*);
484  vtkProperty* GetYAxesInnerGridlinesProperty();
485  void SetZAxesInnerGridlinesProperty(vtkProperty*);
486  vtkProperty* GetZAxesInnerGridlinesProperty();
488 
490 
493  void SetXAxesGridpolysProperty(vtkProperty*);
494  vtkProperty* GetXAxesGridpolysProperty();
495  void SetYAxesGridpolysProperty(vtkProperty*);
496  vtkProperty* GetYAxesGridpolysProperty();
497  void SetZAxesGridpolysProperty(vtkProperty*);
498  vtkProperty* GetZAxesGridpolysProperty();
500 
502  {
503  VTK_TICKS_INSIDE = 0,
504  VTK_TICKS_OUTSIDE = 1,
505  VTK_TICKS_BOTH = 2
506  };
507 
509 
513  vtkSetClampMacro(TickLocation, int, VTK_TICKS_INSIDE, VTK_TICKS_BOTH);
514  vtkGetMacro(TickLocation, int);
516 
517  void SetTickLocationToInside() { this->SetTickLocation(VTK_TICKS_INSIDE); }
518  void SetTickLocationToOutside() { this->SetTickLocation(VTK_TICKS_OUTSIDE); }
519  void SetTickLocationToBoth() { this->SetTickLocation(VTK_TICKS_BOTH); }
520 
521  void SetLabelScaling(bool, int, int, int);
522 
524 
529  void SetUseTextActor3D(bool enable);
530  bool GetUseTextActor3D();
532 
534 
538  void SetUse2DMode(bool enable);
539  bool GetUse2DMode();
541 
545  void SetSaveTitlePosition(int val);
546 
548 
552  vtkSetVector6Macro(OrientedBounds, double);
553  vtkGetVector6Macro(OrientedBounds, double);
555 
557 
561  vtkSetMacro(UseOrientedBounds, bool);
562  vtkGetMacro(UseOrientedBounds, bool);
564 
566 
570  vtkSetVector3Macro(AxisBaseForX, double);
571  vtkGetVector3Macro(AxisBaseForX, double);
573 
575 
579  vtkSetVector3Macro(AxisBaseForY, double);
580  vtkGetVector3Macro(AxisBaseForY, double);
582 
584 
588  vtkSetVector3Macro(AxisBaseForZ, double);
589  vtkGetVector3Macro(AxisBaseForZ, double);
591 
593 
598  vtkSetVector3Macro(AxisOrigin, double);
599  vtkGetVector3Macro(AxisOrigin, double);
601 
603 
607  vtkSetMacro(UseAxisOrigin, bool);
608  vtkGetMacro(UseAxisOrigin, bool);
610 
612 
616  vtkSetMacro(GridLineLocation, int);
617  vtkGetMacro(GridLineLocation, int);
619 
621 
627  vtkSetMacro(StickyAxes, bool);
628  vtkGetMacro(StickyAxes, bool);
629  vtkBooleanMacro(StickyAxes, bool);
631 
633 
641  vtkSetMacro(CenterStickyAxes, bool);
642  vtkGetMacro(CenterStickyAxes, bool);
643  vtkBooleanMacro(CenterStickyAxes, bool);
645 
647  {
648  VTK_GRID_LINES_ALL = 0,
649  VTK_GRID_LINES_CLOSEST = 1,
650  VTK_GRID_LINES_FURTHEST = 2
651  };
652 
653 protected:
655  ~vtkCubeAxesActor() override;
656 
662  void ComputeStickyAxesBoundingSphere(
663  vtkViewport* viewport, const double bounds[6], double sphereCenter[3], double& sphereRadius);
664 
668  void GetViewportLimitedBounds(vtkViewport* viewport, double bounds[6]);
669 
674  static void GetBoundsPointBits(
675  unsigned int pointIndex, unsigned int& xBit, unsigned int& yBit, unsigned int& zBit);
676 
680  static void GetBoundsPoint(unsigned int pointIndex, const double bounds[6], double point[3]);
681 
682  int LabelExponent(double min, double max);
683 
684  int Digits(double min, double max);
685 
686  double MaxOf(double, double);
687  double MaxOf(double, double, double, double);
688 
689  double FFix(double);
690  double FSign(double, double);
691  int FRound(double fnt);
692  int GetNumTicks(double range, double fxt);
693 
694  void UpdateLabels(vtkAxisActor** axis, int index);
695 
697 
698  int FlyMode = VTK_FLY_CLOSEST_TRIAD;
699 
700  // Expose internally closest axis index computation
701  int FindClosestAxisIndex(double pts[8][3]);
702 
703  // Expose internally furthest axis index computation
704  int FindFurtherstAxisIndex(double pts[8][3]);
705 
706  // Expose internally the boundary edge fly mode axis index computation
707  void FindBoundaryEdge(int& indexOfAxisX, int& indexOfAxisY, int& indexOfAxisZ, double pts[8][3]);
708 
714  void UpdateGridLineVisibility(int axisIndex);
715 
716  // VTK_ALL_GRID_LINES 0
717  // VTK_CLOSEST_GRID_LINES 1
718  // VTK_FURTHEST_GRID_LINES 2
719  int GridLineLocation = VTK_GRID_LINES_ALL;
720 
724  bool StickyAxes = false;
725 
729  bool CenterStickyAxes = true;
730 
735  bool EnableDistanceLOD = true;
736 
741  double DistanceLODThreshold = 0.8;
742 
747  bool EnableViewAngleLOD = true;
748 
753  double ViewAngleLODThreshold = 0.2;
754 
756  {
757  NUMBER_OF_ALIGNED_AXIS = 4
758  };
759 
761 
765  vtkAxisActor* XAxes[NUMBER_OF_ALIGNED_AXIS];
766  vtkAxisActor* YAxes[NUMBER_OF_ALIGNED_AXIS];
767  vtkAxisActor* ZAxes[NUMBER_OF_ALIGNED_AXIS];
769 
770  bool RebuildAxes = true;
771 
772  char* XTitle = nullptr;
773  char* XUnits = nullptr;
774  char* YTitle = nullptr;
775  char* YUnits = nullptr;
776  char* ZTitle = nullptr;
777  char* ZUnits = nullptr;
778 
779  char* ActualXLabel = nullptr;
780  char* ActualYLabel = nullptr;
781  char* ActualZLabel = nullptr;
782 
783  int TickLocation = VTK_TICKS_INSIDE;
784 
785  bool XAxisVisibility = true;
786  bool YAxisVisibility = true;
787  bool ZAxisVisibility = true;
788 
789  bool XAxisTickVisibility = true;
790  bool YAxisTickVisibility = true;
791  bool ZAxisTickVisibility = true;
792 
793  bool XAxisMinorTickVisibility = true;
794  bool YAxisMinorTickVisibility = true;
795  bool ZAxisMinorTickVisibility = true;
796 
797  bool XAxisLabelVisibility = true;
798  bool YAxisLabelVisibility = true;
799  bool ZAxisLabelVisibility = true;
800 
801  bool DrawXGridlines = false;
802  bool DrawYGridlines = false;
803  bool DrawZGridlines = false;
804 
805  bool DrawXInnerGridlines = false;
806  bool DrawYInnerGridlines = false;
807  bool DrawZInnerGridlines = false;
808 
809  bool DrawXGridpolys = false;
810  bool DrawYGridpolys = false;
811  bool DrawZGridpolys = false;
812 
813  char* XLabelFormat = nullptr;
814  char* YLabelFormat = nullptr;
815  char* ZLabelFormat = nullptr;
816 
817  double CornerOffset = 0.0;
818 
819  int Inertia = 1;
820 
821  int RenderCount = 0;
822 
823  int InertiaLocs[3] = { -1, -1, -1 };
824 
825  bool RenderSomething = false;
826 
827  vtkNew<vtkTextProperty> TitleTextProperty[3];
829  vtkNew<vtkTextProperty> LabelTextProperty[3];
830 
843 
844  double RenderedBounds[6] = { -1.0, 1.0, -1.0, 1.0, -1.0, 1.0 };
845  double OrientedBounds[6] = { -1.0, 1.0, -1.0, 1.0, -1.0, 1.0 };
846  bool UseOrientedBounds = false;
847 
848  double AxisOrigin[3] = { 0.0, 0.0, 0.0 };
849  bool UseAxisOrigin = false;
850 
851  double AxisBaseForX[3] = { 1.0, 0.0, 0.0 };
852  double AxisBaseForY[3] = { 0.0, 1.0, 0.0 };
853  double AxisBaseForZ[3] = { 0.0, 0.0, 1.0 };
854 
855 private:
856  vtkCubeAxesActor(const vtkCubeAxesActor&) = delete;
857  void operator=(const vtkCubeAxesActor&) = delete;
858 
859  vtkSetStringMacro(ActualXLabel);
860  vtkSetStringMacro(ActualYLabel);
861  vtkSetStringMacro(ActualZLabel);
862 
863  vtkTimeStamp BuildTime;
864  bool LastUseOrientedBounds = false;
865  int LastXPow = 0;
866  int LastYPow = 0;
867  int LastZPow = 0;
868 
869  int UserXPow = 0;
870  int UserYPow = 0;
871  int UserZPow = 0;
872 
873  bool AutoLabelScaling = true;
874 
875  int LastXAxisDigits = 3;
876  int LastYAxisDigits = 3;
877  int LastZAxisDigits = 3;
878 
879  double LastXRange[2] = { VTK_DOUBLE_MAX, VTK_DOUBLE_MAX };
880  double LastYRange[2] = { VTK_DOUBLE_MAX, VTK_DOUBLE_MAX };
881  double LastZRange[2] = { VTK_DOUBLE_MAX, VTK_DOUBLE_MAX };
882  double LastBounds[6] = { VTK_DOUBLE_MAX, VTK_DOUBLE_MAX, VTK_DOUBLE_MAX, VTK_DOUBLE_MAX,
883  VTK_DOUBLE_MAX, VTK_DOUBLE_MAX };
884 
885  int LastFlyMode = -1;
886 
887  int RenderAxesX[NUMBER_OF_ALIGNED_AXIS] = { 0, 1, 2, 3 };
888  int RenderAxesY[NUMBER_OF_ALIGNED_AXIS] = { 0, 1, 2, 3 };
889  int RenderAxesZ[NUMBER_OF_ALIGNED_AXIS] = { 0, 1, 2, 3 };
890 
891  int NumberOfAxesX = 1;
892  int NumberOfAxesY = 1;
893  int NumberOfAxesZ = 1;
894 
895  bool MustAdjustXValue = false;
896  bool MustAdjustYValue = false;
897  bool MustAdjustZValue = false;
898 
899  bool ForceXLabelReset = false;
900  bool ForceYLabelReset = false;
901  bool ForceZLabelReset = false;
902 
903  double XAxisRange[2] = { VTK_DOUBLE_MAX, VTK_DOUBLE_MAX };
904  double YAxisRange[2] = { VTK_DOUBLE_MAX, VTK_DOUBLE_MAX };
905  double ZAxisRange[2] = { VTK_DOUBLE_MAX, VTK_DOUBLE_MAX };
906 
907  double LabelScale = -1.0;
908  double TitleScale = -1.0;
909 
910  double ScreenSize = 10.0;
911  double LabelOffset = 20.0;
912  double TitleOffset[2] = { 20.0, 20.0 };
913 
915 
919  double MajorStart[3] = { 0.0, 0.0, 0.0 };
920  double DeltaMajor[3] = { 0.0, 0.0, 0.0 };
922 
923  int RenderGeometry(bool& initialRender, vtkViewport* viewport, bool checkAxisVisibility,
924  int (vtkAxisActor::*renderMethod)(vtkViewport*));
925 
926  void TransformBounds(vtkViewport* viewport, const double bounds[6], double pts[8][3]);
927  void AdjustAxes(double bounds[6], double xCoords[NUMBER_OF_ALIGNED_AXIS][6],
928  double yCoords[NUMBER_OF_ALIGNED_AXIS][6], double zCoords[NUMBER_OF_ALIGNED_AXIS][6],
929  double xRange[2], double yRange[2], double zRange[2]);
930 
931  bool ComputeTickSize(double bounds[6]);
932  void AdjustValues(const double xRange[2], const double yRange[2], const double zRange[2]);
933  void AdjustRange(const double bounds[6]);
934  void BuildAxes(vtkViewport*);
935  void DetermineRenderAxes(vtkViewport*);
936  void SetNonDependentAttributes();
937  void BuildLabels(vtkAxisActor* axes[NUMBER_OF_ALIGNED_AXIS]);
938  void AdjustTicksComputeRange(
939  vtkAxisActor* axes[NUMBER_OF_ALIGNED_AXIS], double rangeMin, double rangeMax);
940 
941  void AutoScale(vtkViewport* viewport);
942  void AutoScale(vtkViewport* viewport, vtkAxisActor* axes[NUMBER_OF_ALIGNED_AXIS]);
943  double AutoScale(vtkViewport* viewport, double screenSize, double position[3]);
944 };
945 
946 VTK_ABI_NAMESPACE_END
947 #endif
vtkNew< vtkProperty > ZAxesLinesProperty
vtkNew< vtkProperty > ZAxesGridlinesProperty
vtkNew< vtkProperty > YAxesGridpolysProperty
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:41
vtkNew< vtkProperty > YAxesGridlinesProperty
void SetFlyModeToStaticEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
#define VTK_DOUBLE_MAX
Definition: vtkType.h:202
double * GetBounds() override=0
Return a reference to the Prop3D's composite transform.
abstract specification for Viewports
Definition: vtkViewport.h:46
represent surface properties of a geometric object
Definition: vtkProperty.h:59
vtkNew< vtkProperty > XAxesGridlinesProperty
virtual int RenderOverlay(vtkViewport *)
Definition: vtkProp.h:239
#define VTK_INT_MAX
Definition: vtkType.h:192
record modification and/or execution time
Definition: vtkTimeStamp.h:24
Create an axis with tick marks and labels.
Definition: vtkAxisActor.h:71
vtkSmartPointer< vtkCamera > Camera
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
double * GetBounds() override
Explicitly specify the region in space around which to draw the bounds.
a vtkAbstractArray subclass for strings
vtkNew< vtkProperty > YAxesInnerGridlinesProperty
void SetFlyModeToFurthestTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
static vtkActor * New()
Creates an actor with the following defaults: origin(0,0,0) position=(0,0,0) scale=(1,1,1) visibility=1 pickable=1 dragable=1 orientation=(0,0,0).
void SetFlyModeToOuterEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
create a plot of a bounding box edges - used for navigation
int vtkTypeBool
Definition: vtkABI.h:64
window superclass for vtkRenderWindow
Definition: vtkWindow.h:41
vtkNew< vtkProperty > ZAxesInnerGridlinesProperty
a simple class to control print indentation
Definition: vtkIndent.h:28
a virtual camera for 3D rendering
Definition: vtkCamera.h:41
double Bounds[6]
Definition: vtkProp3D.h:400
void SetTickLocationToInside()
vtkNew< vtkProperty > XAxesLinesProperty
#define VTK_SIZEHINT(...)
represent text properties.
vtkNew< vtkProperty > XAxesInnerGridlinesProperty
vtkNew< vtkProperty > YAxesLinesProperty
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some opaque/translucent polygonal geometry?
void SetTickLocationToOutside()
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Support the standard render methods.
void SetFlyModeToStaticTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
#define VTK_MARSHALAUTO
void SetFlyModeToClosestTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkNew< vtkProperty > ZAxesGridpolysProperty
vtkNew< vtkProperty > XAxesGridpolysProperty
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
#define max(a, b)