59 #ifndef vtkCubeAxesActor_h
60 #define vtkCubeAxesActor_h
62 #include "vtkRenderingAnnotationModule.h"
87 virtual int RenderTranslucentGeometry(
vtkViewport*);
98 vtkGetMacro( RebuildAxes,
bool );
108 vtkSetVector6Macro(Bounds,
double);
109 vtkGetVector6Macro(Bounds,
double);
117 virtual void GetRenderedBounds(
double rBounds[6]);
118 virtual double* GetRenderedBounds();
130 vtkSetVector2Macro( XAxisRange,
double );
131 vtkSetVector2Macro( YAxisRange,
double );
132 vtkSetVector2Macro( ZAxisRange,
double );
133 vtkGetVector2Macro( XAxisRange,
double );
134 vtkGetVector2Macro( YAxisRange,
double );
145 vtkGetVector2Macro( ZAxisRange,
double );
153 void SetScreenSize(
double screenSize);
154 vtkGetMacro(ScreenSize,
double);
162 void SetLabelOffset(
double offset);
163 vtkGetMacro(LabelOffset,
double);
171 void SetTitleOffset(
double offset);
172 vtkGetMacro(TitleOffset,
double);
186 VTK_FLY_OUTER_EDGES = 0,
187 VTK_FLY_CLOSEST_TRIAD = 1,
188 VTK_FLY_FURTHEST_TRIAD = 2,
189 VTK_FLY_STATIC_TRIAD = 3,
190 VTK_FLY_STATIC_EDGES = 4
199 vtkSetClampMacro(FlyMode,
int, VTK_FLY_OUTER_EDGES, VTK_FLY_STATIC_EDGES);
200 vtkGetMacro(FlyMode,
int);
202 {this->SetFlyMode(VTK_FLY_OUTER_EDGES);};
204 {this->SetFlyMode(VTK_FLY_CLOSEST_TRIAD);};
206 {this->SetFlyMode(VTK_FLY_FURTHEST_TRIAD);};
208 {this->SetFlyMode(VTK_FLY_STATIC_TRIAD);};
210 {this->SetFlyMode(VTK_FLY_STATIC_EDGES);};
218 vtkSetStringMacro(XTitle);
220 vtkSetStringMacro(XUnits);
222 vtkSetStringMacro(YTitle);
224 vtkSetStringMacro(YUnits);
226 vtkSetStringMacro(ZTitle);
228 vtkSetStringMacro(ZUnits);
237 vtkSetStringMacro(XLabelFormat);
239 vtkSetStringMacro(YLabelFormat);
241 vtkSetStringMacro(ZLabelFormat);
252 vtkGetMacro(Inertia,
int);
262 vtkGetMacro(CornerOffset,
double);
277 vtkGetMacro( EnableDistanceLOD,
int );
284 vtkSetClampMacro( DistanceLODThreshold,
double, 0.0, 1.0 );
285 vtkGetMacro( DistanceLODThreshold,
double);
293 vtkGetMacro( EnableViewAngleLOD,
int );
300 vtkSetClampMacro( ViewAngleLODThreshold,
double, 0., 1. );
301 vtkGetMacro( ViewAngleLODThreshold,
double );
309 vtkGetMacro(XAxisVisibility,
int);
312 vtkGetMacro(YAxisVisibility,
int);
315 vtkGetMacro(ZAxisVisibility,
int);
324 vtkGetMacro(XAxisLabelVisibility,
int);
329 vtkGetMacro(YAxisLabelVisibility,
int);
333 vtkGetMacro(ZAxisLabelVisibility,
int);
341 vtkGetMacro(XAxisTickVisibility,
int);
346 vtkGetMacro(YAxisTickVisibility,
int);
350 vtkGetMacro(ZAxisTickVisibility,
int);
358 vtkGetMacro(XAxisMinorTickVisibility,
int);
363 vtkGetMacro(YAxisMinorTickVisibility,
int);
367 vtkGetMacro(ZAxisMinorTickVisibility,
int);
371 vtkGetMacro(DrawXGridlines,
int);
375 vtkGetMacro(DrawYGridlines,
int);
379 vtkGetMacro(DrawZGridlines,
int);
383 vtkGetMacro(DrawXInnerGridlines,
int);
387 vtkGetMacro(DrawYInnerGridlines,
int);
391 vtkGetMacro(DrawZInnerGridlines,
int);
395 vtkGetMacro(DrawXGridpolys,
int);
399 vtkGetMacro(DrawYGridpolys,
int);
403 vtkGetMacro(DrawZGridpolys,
int);
444 void SetXAxesInnerGridlinesProperty(
vtkProperty *);
446 void SetYAxesInnerGridlinesProperty(
vtkProperty *);
448 void SetZAxesInnerGridlinesProperty(
vtkProperty *);
466 VTK_TICKS_INSIDE = 0,
467 VTK_TICKS_OUTSIDE = 1,
475 vtkSetClampMacro(TickLocation,
int, VTK_TICKS_INSIDE, VTK_TICKS_BOTH);
476 vtkGetMacro(TickLocation,
int);
480 { this->SetTickLocation(VTK_TICKS_INSIDE); };
482 { this->SetTickLocation(VTK_TICKS_OUTSIDE); };
484 { this->SetTickLocation(VTK_TICKS_BOTH); };
486 void SetLabelScaling(
bool,
int,
int,
int);
494 void SetUseTextActor3D(
int val );
495 int GetUseTextActor3D();
503 void SetUse2DMode(
int val );
510 void SetSaveTitlePosition(
int val );
516 vtkSetVector6Macro(OrientedBounds,
double);
517 vtkGetVector6Macro(OrientedBounds,
double);
525 vtkGetMacro(UseOrientedBounds,
int);
532 vtkSetVector3Macro(AxisBaseForX,
double);
533 vtkGetVector3Macro(AxisBaseForX,
double);
540 vtkSetVector3Macro(AxisBaseForY,
double);
541 vtkGetVector3Macro(AxisBaseForY,
double);
548 vtkSetVector3Macro(AxisBaseForZ,
double);
549 vtkGetVector3Macro(AxisBaseForZ,
double);
557 vtkSetVector3Macro(AxisOrigin,
double);
558 vtkGetVector3Macro(AxisOrigin,
double);
566 vtkGetMacro(UseAxisOrigin,
int);
574 vtkGetMacro(GridLineLocation,
int);
584 vtkGetMacro(StickyAxes,
int);
597 vtkGetMacro(CenterStickyAxes,
int);
603 VTK_GRID_LINES_ALL = 0,
604 VTK_GRID_LINES_CLOSEST = 1,
605 VTK_GRID_LINES_FURTHEST = 2
617 void ComputeStickyAxesBoundingSphere(
vtkViewport* viewport,
const double bounds[6],
618 double sphereCenter[3],
double & sphereRadius);
623 void GetViewportLimitedBounds(
vtkViewport* viewport,
double bounds[6]);
629 static void GetBoundsPointBits(
unsigned int pointIndex,
632 unsigned int & zBit);
637 static void GetBoundsPoint(
unsigned int pointIndex,
const double bounds[6],
double point[3]);
639 int LabelExponent(
double min,
double max);
641 int Digits(
double min,
double max);
643 double MaxOf(
double,
double);
644 double MaxOf(
double,
double,
double,
double);
647 double FSign(
double,
double);
648 int FRound(
double fnt );
649 int GetNumTicks(
double range,
double fxt);
660 int FindClosestAxisIndex(
double pts[8][3]);
663 int FindFurtherstAxisIndex(
double pts[8][3]);
666 void FindBoundaryEdge(
int &indexOfAxisX,
int &indexOfAxisY,
int &indexOfAxisZ,
674 void UpdateGridLineVisibility(
int axisIndex);
717 NUMBER_OF_ALIGNED_AXIS = 4
805 double RenderedBounds[6];
806 double OrientedBounds[6];
809 double AxisOrigin[3];
812 double AxisBaseForX[3];
813 double AxisBaseForY[3];
814 double AxisBaseForZ[3];
820 vtkSetStringMacro(ActualXLabel);
821 vtkSetStringMacro(ActualYLabel);
822 vtkSetStringMacro(ActualZLabel);
825 int LastUseOrientedBounds;
834 bool AutoLabelScaling;
840 double LastXRange[2];
841 double LastYRange[2];
842 double LastZRange[2];
843 double LastBounds[6];
847 int RenderAxesX[NUMBER_OF_ALIGNED_AXIS];
848 int RenderAxesY[NUMBER_OF_ALIGNED_AXIS];
849 int RenderAxesZ[NUMBER_OF_ALIGNED_AXIS];
855 bool MustAdjustXValue;
856 bool MustAdjustYValue;
857 bool MustAdjustZValue;
859 bool ForceXLabelReset;
860 bool ForceYLabelReset;
861 bool ForceZLabelReset;
863 double XAxisRange[2];
864 double YAxisRange[2];
865 double ZAxisRange[2];
879 double MajorStart[3];
880 double DeltaMajor[3];
885 void TransformBounds(vtkViewport *viewport, const
double bounds[6],
887 void AdjustAxes(
double bounds[6],
888 double xCoords[NUMBER_OF_ALIGNED_AXIS][6],
889 double yCoords[NUMBER_OF_ALIGNED_AXIS][6],
890 double zCoords[NUMBER_OF_ALIGNED_AXIS][6],
891 double xRange[2],
double yRange[2],
double zRange[2]);
893 bool ComputeTickSize(
double bounds[6]);
894 void AdjustValues(const
double xRange[2],
895 const
double yRange[2],
896 const
double zRange[2]);
897 void AdjustRange(const
double bounds[6]);
898 void BuildAxes(vtkViewport *);
899 void DetermineRenderAxes(vtkViewport *);
900 void SetNonDependentAttributes(
void);
901 void BuildLabels(
vtkAxisActor *axes[NUMBER_OF_ALIGNED_AXIS]);
902 void AdjustTicksComputeRange(
vtkAxisActor *axes[NUMBER_OF_ALIGNED_AXIS],
903 double rangeMin,
double rangeMax);
905 void AutoScale(vtkViewport *viewport);
906 void AutoScale(vtkViewport *viewport,
vtkAxisActor *axes[NUMBER_OF_ALIGNED_AXIS]);
907 double AutoScale(vtkViewport *viewport,
double screenSize,
double position[3]);
represents an object (geometry & properties) in a rendered scene
void SetFlyModeToStaticEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport)
Support the standard render methods.
abstract specification for Viewports
represent surface properties of a geometric object
double ViewAngleLODThreshold
This determines at what view angle to geometry will make the geometry not visibile.
virtual int RenderOverlay(vtkViewport *)
record modification and/or execution time
Create an axis with tick marks and labels.
int StickyAxes
Flag for axes stickiness.
vtkProperty * YAxesGridlinesProperty
vtkProperty * ZAxesLinesProperty
int EnableViewAngleLOD
If enabled the actor will not be visible at a certain view angle.
a vtkAbstractArray subclass for strings
void SetTickLocationToInside(void)
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).
vtkProperty * XAxesGridpolysProperty
vtkProperty * YAxesLinesProperty
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void SetFlyModeToOuterEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
double DistanceLODThreshold
Default is 0.80 This determines at what fraction of camera far clip range, actor is not visible...
create a plot of a bounding box edges - used for navigation
window superclass for vtkRenderWindow
vtkProperty * XAxesLinesProperty
vtkProperty * ZAxesInnerGridlinesProperty
a simple class to control print indentation
vtkProperty * ZAxesGridpolysProperty
a virtual camera for 3D rendering
int CenterStickyAxes
Flag for centering sticky axes.
int ZAxisMinorTickVisibility
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkProperty * ZAxesGridlinesProperty
represent text properties.
void SetTickLocationToOutside(void)
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void SetTickLocationToBoth(void)
int YAxisMinorTickVisibility
vtkProperty * YAxesGridpolysProperty
virtual int RenderOpaqueGeometry(vtkViewport *viewport)
Support the standard render methods.
virtual int HasTranslucentPolygonalGeometry()
Does this prop have some translucent polygonal geometry?
int XAxisMinorTickVisibility
void SetFlyModeToStaticTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkProperty * YAxesInnerGridlinesProperty
void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this actor.
vtkProperty * XAxesGridlinesProperty
void SetFlyModeToClosestTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
int EnableDistanceLOD
If enabled the actor will not be visible at a certain distance from the camera.
vtkProperty * XAxesInnerGridlinesProperty