88 #ifndef vtkCubeAxesActor_h
89 #define vtkCubeAxesActor_h
92 #include "vtkRenderingAnnotationModule.h"
126 vtkSetMacro(RebuildAxes,
bool);
127 vtkGetMacro(RebuildAxes,
bool);
137 vtkSetVector6Macro(Bounds,
double);
160 vtkSetVector2Macro(XAxisRange,
double);
161 vtkSetVector2Macro(YAxisRange,
double);
162 vtkSetVector2Macro(ZAxisRange,
double);
163 vtkGetVector2Macro(XAxisRange,
double);
164 vtkGetVector2Macro(YAxisRange,
double);
175 vtkGetVector2Macro(ZAxisRange,
double);
184 vtkGetMacro(ScreenSize,
double);
193 vtkGetMacro(LabelOffset,
double);
202 vtkGetMacro(TitleOffset,
double);
216 VTK_FLY_OUTER_EDGES = 0,
217 VTK_FLY_CLOSEST_TRIAD = 1,
218 VTK_FLY_FURTHEST_TRIAD = 2,
219 VTK_FLY_STATIC_TRIAD = 3,
220 VTK_FLY_STATIC_EDGES = 4
229 vtkSetClampMacro(
FlyMode,
int, VTK_FLY_OUTER_EDGES, VTK_FLY_STATIC_EDGES);
243 vtkSetStringMacro(XTitle);
244 vtkGetStringMacro(XTitle);
245 vtkSetStringMacro(XUnits);
246 vtkGetStringMacro(XUnits);
247 vtkSetStringMacro(YTitle);
248 vtkGetStringMacro(YTitle);
249 vtkSetStringMacro(YUnits);
250 vtkGetStringMacro(YUnits);
251 vtkSetStringMacro(ZTitle);
252 vtkGetStringMacro(ZTitle);
253 vtkSetStringMacro(ZUnits);
254 vtkGetStringMacro(ZUnits);
262 vtkSetStringMacro(XLabelFormat);
263 vtkGetStringMacro(XLabelFormat);
264 vtkSetStringMacro(YLabelFormat);
265 vtkGetStringMacro(YLabelFormat);
266 vtkSetStringMacro(ZLabelFormat);
267 vtkGetStringMacro(ZLabelFormat);
277 vtkGetMacro(Inertia,
int);
286 vtkSetMacro(CornerOffset,
double);
287 vtkGetMacro(CornerOffset,
double);
301 vtkSetMacro(EnableDistanceLOD,
int);
302 vtkGetMacro(EnableDistanceLOD,
int);
309 vtkSetClampMacro(DistanceLODThreshold,
double, 0.0, 1.0);
310 vtkGetMacro(DistanceLODThreshold,
double);
317 vtkSetMacro(EnableViewAngleLOD,
int);
318 vtkGetMacro(EnableViewAngleLOD,
int);
325 vtkSetClampMacro(ViewAngleLODThreshold,
double, 0., 1.);
326 vtkGetMacro(ViewAngleLODThreshold,
double);
491 VTK_TICKS_INSIDE = 0,
492 VTK_TICKS_OUTSIDE = 1,
538 vtkSetVector6Macro(OrientedBounds,
double);
539 vtkGetVector6Macro(OrientedBounds,
double);
546 vtkSetMacro(UseOrientedBounds,
int);
547 vtkGetMacro(UseOrientedBounds,
int);
554 vtkSetVector3Macro(AxisBaseForX,
double);
555 vtkGetVector3Macro(AxisBaseForX,
double);
562 vtkSetVector3Macro(AxisBaseForY,
double);
563 vtkGetVector3Macro(AxisBaseForY,
double);
570 vtkSetVector3Macro(AxisBaseForZ,
double);
571 vtkGetVector3Macro(AxisBaseForZ,
double);
579 vtkSetVector3Macro(AxisOrigin,
double);
580 vtkGetVector3Macro(AxisOrigin,
double);
587 vtkSetMacro(UseAxisOrigin,
int);
588 vtkGetMacro(UseAxisOrigin,
int);
595 vtkSetMacro(GridLineLocation,
int);
596 vtkGetMacro(GridLineLocation,
int);
625 VTK_GRID_LINES_ALL = 0,
626 VTK_GRID_LINES_CLOSEST = 1,
627 VTK_GRID_LINES_FURTHEST = 2
640 vtkViewport* viewport,
const double bounds[6],
double sphereCenter[3],
double& sphereRadius);
652 unsigned int pointIndex,
unsigned int& xBit,
unsigned int& yBit,
unsigned int& zBit);
664 double MaxOf(
double,
double,
double,
double);
684 void FindBoundaryEdge(
int& indexOfAxisX,
int& indexOfAxisY,
int& indexOfAxisZ,
double pts[8][3]);
734 NUMBER_OF_ALIGNED_AXIS = 4
822 double RenderedBounds[6];
823 double OrientedBounds[6];
826 double AxisOrigin[3];
829 double AxisBaseForX[3];
830 double AxisBaseForY[3];
831 double AxisBaseForZ[3];
837 vtkSetStringMacro(ActualXLabel);
838 vtkSetStringMacro(ActualYLabel);
839 vtkSetStringMacro(ActualZLabel);
842 int LastUseOrientedBounds;
851 bool AutoLabelScaling;
857 double LastXRange[2];
858 double LastYRange[2];
859 double LastZRange[2];
860 double LastBounds[6];
864 int RenderAxesX[NUMBER_OF_ALIGNED_AXIS];
865 int RenderAxesY[NUMBER_OF_ALIGNED_AXIS];
866 int RenderAxesZ[NUMBER_OF_ALIGNED_AXIS];
872 bool MustAdjustXValue;
873 bool MustAdjustYValue;
874 bool MustAdjustZValue;
876 bool ForceXLabelReset;
877 bool ForceYLabelReset;
878 bool ForceZLabelReset;
880 double XAxisRange[2];
881 double YAxisRange[2];
882 double ZAxisRange[2];
896 double MajorStart[3];
897 double DeltaMajor[3];
900 int RenderGeometry(
bool& initialRender,
vtkViewport* viewport,
bool checkAxisVisibility,
903 void TransformBounds(
vtkViewport* viewport,
const double bounds[6],
double pts[8][3]);
904 void AdjustAxes(
double bounds[6],
double xCoords[NUMBER_OF_ALIGNED_AXIS][6],
905 double yCoords[NUMBER_OF_ALIGNED_AXIS][6],
double zCoords[NUMBER_OF_ALIGNED_AXIS][6],
906 double xRange[2],
double yRange[2],
double zRange[2]);
908 bool ComputeTickSize(
double bounds[6]);
909 void AdjustValues(
const double xRange[2],
const double yRange[2],
const double zRange[2]);
910 void AdjustRange(
const double bounds[6]);
913 void SetNonDependentAttributes(
void);
914 void BuildLabels(
vtkAxisActor* axes[NUMBER_OF_ALIGNED_AXIS]);
915 void AdjustTicksComputeRange(
916 vtkAxisActor* axes[NUMBER_OF_ALIGNED_AXIS],
double rangeMin,
double rangeMax);
represents an object (geometry & properties) in a rendered scene
Create an axis with tick marks and labels.
a virtual camera for 3D rendering
create a plot of a bounding box edges - used for navigation
void FindBoundaryEdge(int &indexOfAxisX, int &indexOfAxisY, int &indexOfAxisZ, double pts[8][3])
void SetTickLocationToInside(void)
vtkStringArray * GetAxisLabels(int axis)
Explicitly specify the axis labels along an axis as an array of strings instead of using the values.
virtual double * GetRenderedBounds()
Method used to properly return the bounds of the cube axis itself with all its labels.
int EnableDistanceLOD
If enabled the actor will not be visible at a certain distance from the camera.
vtkTypeBool DrawZGridlines
void SetXAxesGridlinesProperty(vtkProperty *)
Get/Set axes (outer) gridlines actors properties.
void GetViewportLimitedBounds(vtkViewport *viewport, double bounds[6])
Get bounds such that the axes are entirely within a viewport.
void UpdateGridLineVisibility(int axisIndex)
This will Update AxisActors with GridVisibility when those should be dynamaic regarding the viewport.
void SetScreenSize(double screenSize)
Explicitly specify the screen size of title and label text.
int RenderOverlay(vtkViewport *) override
Draw the axes as per the vtkProp superclass' API.
vtkTypeBool CenterStickyAxes
Flag for centering sticky axes.
virtual int RenderTranslucentGeometry(vtkViewport *)
Draw the axes as per the vtkProp superclass' API.
vtkTypeBool DrawYGridlines
double FSign(double, double)
void SetYAxesInnerGridlinesProperty(vtkProperty *)
Get/Set axes inner gridlines actors properties.
vtkTypeBool YAxisVisibility
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
void SetUse2DMode(int val)
Get/Set 2D mode NB: Use vtkTextActor for titles in 2D instead of vtkAxisFollower.
vtkTypeBool DrawXGridpolys
vtkProperty * GetYAxesGridpolysProperty()
Get/Set axes gridPolys actors properties.
vtkTypeBool DrawXInnerGridlines
void SetFlyModeToOuterEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkTypeBool HasTranslucentPolygonalGeometry() override
Draw the axes as per the vtkProp superclass' API.
vtkProperty * GetXAxesInnerGridlinesProperty()
Get/Set axes inner gridlines actors properties.
vtkTypeBool DrawZInnerGridlines
int EnableViewAngleLOD
If enabled the actor will not be visible at a certain view angle.
vtkProperty * XAxesInnerGridlinesProperty
void SetXAxesGridpolysProperty(vtkProperty *)
Get/Set axes gridPolys actors properties.
void SetTitleOffset(double offset)
Explicitly specify the distance between title and labels.
int GetUseTextActor3D()
Use or not vtkTextActor3D for titles and labels.
vtkProperty * GetZAxesInnerGridlinesProperty()
Get/Set axes inner gridlines actors properties.
void SetZAxesGridpolysProperty(vtkProperty *)
Get/Set axes gridPolys actors properties.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkProperty * GetZAxesLinesProperty()
Get/Set axes actors properties.
vtkProperty * GetYAxesLinesProperty()
Get/Set axes actors properties.
static vtkCubeAxesActor * New()
Instantiate object with label format "6.3g" and the number of labels per axis set to 3.
vtkProperty * YAxesLinesProperty
void SetFlyModeToClosestTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
void SetYAxesGridpolysProperty(vtkProperty *)
Get/Set axes gridPolys actors properties.
void SetZAxesInnerGridlinesProperty(vtkProperty *)
Get/Set axes inner gridlines actors properties.
void SetZAxesGridlinesProperty(vtkProperty *)
Get/Set axes (outer) gridlines actors properties.
double ViewAngleLODThreshold
This determines at what view angle to geometry will make the geometry not visible.
~vtkCubeAxesActor() override
void SetAxisLabels(int axis, vtkStringArray *value)
Explicitly specify the axis labels along an axis as an array of strings instead of using the values.
int FindClosestAxisIndex(double pts[8][3])
int RenderOpaqueGeometry(vtkViewport *) override
Draw the axes as per the vtkProp superclass' API.
vtkProperty * YAxesInnerGridlinesProperty
void ComputeStickyAxesBoundingSphere(vtkViewport *viewport, const double bounds[6], double sphereCenter[3], double &sphereRadius)
Computes a bounding sphere used to determine the sticky bounding box.
static void GetBoundsPoint(unsigned int pointIndex, const double bounds[6], double point[3])
Get a point on the bounding box by point index.
vtkTypeBool DrawYInnerGridlines
vtkProperty * YAxesGridlinesProperty
void SetLabelOffset(double offset)
Explicitly specify the distance between labels and the axis.
vtkTypeBool YAxisLabelVisibility
vtkProperty * GetYAxesGridlinesProperty()
Get/Set axes (outer) gridlines actors properties.
vtkTypeBool XAxisVisibility
vtkTypeBool StickyAxes
Flag for axes stickiness.
vtkTypeBool XAxisTickVisibility
vtkTypeBool YAxisTickVisibility
double * GetBounds() override
Explicitly specify the region in space around which to draw the bounds.
void SetZAxesLinesProperty(vtkProperty *)
Get/Set axes actors properties.
vtkTypeBool DrawYGridpolys
vtkProperty * GetXAxesGridlinesProperty()
Get/Set axes (outer) gridlines actors properties.
void SetFlyModeToStaticEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkTypeBool YAxisMinorTickVisibility
void SetFlyModeToStaticTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
void SetYAxesLinesProperty(vtkProperty *)
Get/Set axes actors properties.
vtkProperty * GetXAxesLinesProperty()
Get/Set axes actors properties.
vtkTextProperty * GetTitleTextProperty(int)
Returns the text property for the title on an axis.
void SetSaveTitlePosition(int val)
For 2D mode only: save axis title positions for later use.
vtkProperty * YAxesGridpolysProperty
vtkProperty * XAxesGridlinesProperty
vtkTextProperty * GetLabelTextProperty(int)
Returns the text property for the labels on an axis.
static void GetBoundsPointBits(unsigned int pointIndex, unsigned int &xBit, unsigned int &yBit, unsigned int &zBit)
Get the bits for a bounds point.
int GetUse2DMode()
Get/Set 2D mode NB: Use vtkTextActor for titles in 2D instead of vtkAxisFollower.
void SetXAxesInnerGridlinesProperty(vtkProperty *)
Get/Set axes inner gridlines actors properties.
void SetLabelScaling(bool, int, int, int)
void SetTickLocationToOutside(void)
vtkProperty * ZAxesLinesProperty
void SetUseTextActor3D(int val)
Use or not vtkTextActor3D for titles and labels.
vtkProperty * GetYAxesInnerGridlinesProperty()
Get/Set axes inner gridlines actors properties.
int FindFurtherstAxisIndex(double pts[8][3])
vtkTypeBool DrawZGridpolys
vtkProperty * XAxesGridpolysProperty
vtkProperty * ZAxesGridlinesProperty
vtkProperty * GetXAxesGridpolysProperty()
Get/Set axes gridPolys actors properties.
vtkTypeBool DrawXGridlines
vtkProperty * ZAxesInnerGridlinesProperty
double MaxOf(double, double, double, double)
vtkProperty * GetZAxesGridpolysProperty()
Get/Set axes gridPolys actors properties.
int GetNumTicks(double range, double fxt)
void UpdateLabels(vtkAxisActor **axis, int index)
vtkTypeBool ZAxisTickVisibility
vtkProperty * XAxesLinesProperty
int Digits(double min, double max)
vtkTypeBool XAxisLabelVisibility
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Draw the axes as per the vtkProp superclass' API.
vtkTypeBool ZAxisVisibility
vtkTypeBool ZAxisMinorTickVisibility
virtual void SetCamera(vtkCamera *)
Set/Get the camera to perform scaling and translation of the vtkCubeAxesActor.
virtual void GetRenderedBounds(double rBounds[6])
Method used to properly return the bounds of the cube axis itself with all its labels.
double MaxOf(double, double)
vtkTypeBool XAxisMinorTickVisibility
int LabelExponent(double min, double max)
vtkProperty * ZAxesGridpolysProperty
vtkProperty * GetZAxesGridlinesProperty()
Get/Set axes (outer) gridlines actors properties.
void SetXAxesLinesProperty(vtkProperty *)
Get/Set axes actors properties.
void SetYAxesGridlinesProperty(vtkProperty *)
Get/Set axes (outer) gridlines actors properties.
void SetTickLocationToBoth(void)
void SetFlyModeToFurthestTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkTypeBool ZAxisLabelVisibility
double DistanceLODThreshold
Default is 0.80 This determines at what fraction of camera far clip range, actor is not visible.
a simple class to control print indentation
double * GetBounds() override=0
Return a reference to the Prop3D's composite transform.
represent surface properties of a geometric object
a vtkAbstractArray subclass for strings
represent text properties.
record modification and/or execution time
abstract specification for Viewports
window superclass for vtkRenderWindow
#define VTK_SIZEHINT(...)