56 #ifndef vtkCubeAxesActor_h
57 #define vtkCubeAxesActor_h
59 #include "vtkRenderingAnnotationModule.h"
84 virtual int RenderTranslucentGeometry(
vtkViewport*);
94 vtkSetMacro( RebuildAxes,
bool );
95 vtkGetMacro( RebuildAxes,
bool );
105 vtkSetVector6Macro(Bounds,
double);
115 virtual void GetRenderedBounds(
double rBounds[6]);
116 virtual double* GetRenderedBounds();
128 vtkSetVector2Macro( XAxisRange,
double );
129 vtkSetVector2Macro( YAxisRange,
double );
130 vtkSetVector2Macro( ZAxisRange,
double );
131 vtkGetVector2Macro( XAxisRange,
double );
132 vtkGetVector2Macro( YAxisRange,
double );
143 vtkGetVector2Macro( ZAxisRange,
double );
151 void SetScreenSize(
double screenSize);
152 vtkGetMacro(ScreenSize,
double);
160 void SetLabelOffset(
double offset);
161 vtkGetMacro(LabelOffset,
double);
169 void SetTitleOffset(
double offset);
170 vtkGetMacro(TitleOffset,
double);
184 VTK_FLY_OUTER_EDGES = 0,
185 VTK_FLY_CLOSEST_TRIAD = 1,
186 VTK_FLY_FURTHEST_TRIAD = 2,
187 VTK_FLY_STATIC_TRIAD = 3,
188 VTK_FLY_STATIC_EDGES = 4
197 vtkSetClampMacro(FlyMode,
int, VTK_FLY_OUTER_EDGES, VTK_FLY_STATIC_EDGES);
198 vtkGetMacro(FlyMode,
int);
200 {this->SetFlyMode(VTK_FLY_OUTER_EDGES);};
202 {this->SetFlyMode(VTK_FLY_CLOSEST_TRIAD);};
204 {this->SetFlyMode(VTK_FLY_FURTHEST_TRIAD);};
206 {this->SetFlyMode(VTK_FLY_STATIC_TRIAD);};
208 {this->SetFlyMode(VTK_FLY_STATIC_EDGES);};
216 vtkSetStringMacro(XTitle);
217 vtkGetStringMacro(XTitle);
218 vtkSetStringMacro(XUnits);
219 vtkGetStringMacro(XUnits);
220 vtkSetStringMacro(YTitle);
221 vtkGetStringMacro(YTitle);
222 vtkSetStringMacro(YUnits);
223 vtkGetStringMacro(YUnits);
224 vtkSetStringMacro(ZTitle);
225 vtkGetStringMacro(ZTitle);
226 vtkSetStringMacro(ZUnits);
227 vtkGetStringMacro(ZUnits);
235 vtkSetStringMacro(XLabelFormat);
236 vtkGetStringMacro(XLabelFormat);
237 vtkSetStringMacro(YLabelFormat);
238 vtkGetStringMacro(YLabelFormat);
239 vtkSetStringMacro(ZLabelFormat);
240 vtkGetStringMacro(ZLabelFormat);
250 vtkGetMacro(Inertia,
int);
259 vtkSetMacro(CornerOffset,
double);
260 vtkGetMacro(CornerOffset,
double);
274 vtkSetMacro( EnableDistanceLOD,
int );
275 vtkGetMacro( EnableDistanceLOD,
int );
282 vtkSetClampMacro( DistanceLODThreshold,
double, 0.0, 1.0 );
283 vtkGetMacro( DistanceLODThreshold,
double);
290 vtkSetMacro( EnableViewAngleLOD,
int );
291 vtkGetMacro( EnableViewAngleLOD,
int );
298 vtkSetClampMacro( ViewAngleLODThreshold,
double, 0., 1. );
299 vtkGetMacro( ViewAngleLODThreshold,
double );
357 vtkBooleanMacro(XAxisMinorTickVisibility,
vtkTypeBool);
362 vtkBooleanMacro(YAxisMinorTickVisibility,
vtkTypeBool);
366 vtkBooleanMacro(ZAxisMinorTickVisibility,
vtkTypeBool);
442 void SetXAxesInnerGridlinesProperty(
vtkProperty *);
444 void SetYAxesInnerGridlinesProperty(
vtkProperty *);
446 void SetZAxesInnerGridlinesProperty(
vtkProperty *);
464 VTK_TICKS_INSIDE = 0,
465 VTK_TICKS_OUTSIDE = 1,
473 vtkSetClampMacro(TickLocation,
int, VTK_TICKS_INSIDE, VTK_TICKS_BOTH);
474 vtkGetMacro(TickLocation,
int);
478 { this->SetTickLocation(VTK_TICKS_INSIDE); };
480 { this->SetTickLocation(VTK_TICKS_OUTSIDE); };
482 { this->SetTickLocation(VTK_TICKS_BOTH); };
484 void SetLabelScaling(
bool,
int,
int,
int);
492 void SetUseTextActor3D(
int val );
493 int GetUseTextActor3D();
501 void SetUse2DMode(
int val );
508 void SetSaveTitlePosition(
int val );
514 vtkSetVector6Macro(OrientedBounds,
double);
515 vtkGetVector6Macro(OrientedBounds,
double);
522 vtkSetMacro(UseOrientedBounds,
int);
523 vtkGetMacro(UseOrientedBounds,
int);
530 vtkSetVector3Macro(AxisBaseForX,
double);
531 vtkGetVector3Macro(AxisBaseForX,
double);
538 vtkSetVector3Macro(AxisBaseForY,
double);
539 vtkGetVector3Macro(AxisBaseForY,
double);
546 vtkSetVector3Macro(AxisBaseForZ,
double);
547 vtkGetVector3Macro(AxisBaseForZ,
double);
555 vtkSetVector3Macro(AxisOrigin,
double);
556 vtkGetVector3Macro(AxisOrigin,
double);
563 vtkSetMacro(UseAxisOrigin,
int);
564 vtkGetMacro(UseAxisOrigin,
int);
571 vtkSetMacro(GridLineLocation,
int);
572 vtkGetMacro(GridLineLocation,
int);
601 VTK_GRID_LINES_ALL = 0,
602 VTK_GRID_LINES_CLOSEST = 1,
603 VTK_GRID_LINES_FURTHEST = 2
615 void ComputeStickyAxesBoundingSphere(
vtkViewport* viewport,
const double bounds[6],
616 double sphereCenter[3],
double & sphereRadius);
621 void GetViewportLimitedBounds(
vtkViewport* viewport,
double bounds[6]);
627 static void GetBoundsPointBits(
unsigned int pointIndex,
630 unsigned int & zBit);
635 static void GetBoundsPoint(
unsigned int pointIndex,
const double bounds[6],
double point[3]);
637 int LabelExponent(
double min,
double max);
639 int Digits(
double min,
double max);
641 double MaxOf(
double,
double);
642 double MaxOf(
double,
double,
double,
double);
645 double FSign(
double,
double);
646 int FRound(
double fnt );
647 int GetNumTicks(
double range,
double fxt);
656 int FindClosestAxisIndex(
double pts[8][3]);
659 int FindFurtherstAxisIndex(
double pts[8][3]);
662 void FindBoundaryEdge(
int &indexOfAxisX,
int &indexOfAxisY,
int &indexOfAxisZ,
670 void UpdateGridLineVisibility(
int axisIndex);
713 NUMBER_OF_ALIGNED_AXIS = 4
801 double RenderedBounds[6];
802 double OrientedBounds[6];
805 double AxisOrigin[3];
808 double AxisBaseForX[3];
809 double AxisBaseForY[3];
810 double AxisBaseForZ[3];
816 vtkSetStringMacro(ActualXLabel);
817 vtkSetStringMacro(ActualYLabel);
818 vtkSetStringMacro(ActualZLabel);
821 int LastUseOrientedBounds;
830 bool AutoLabelScaling;
836 double LastXRange[2];
837 double LastYRange[2];
838 double LastZRange[2];
839 double LastBounds[6];
843 int RenderAxesX[NUMBER_OF_ALIGNED_AXIS];
844 int RenderAxesY[NUMBER_OF_ALIGNED_AXIS];
845 int RenderAxesZ[NUMBER_OF_ALIGNED_AXIS];
851 bool MustAdjustXValue;
852 bool MustAdjustYValue;
853 bool MustAdjustZValue;
855 bool ForceXLabelReset;
856 bool ForceYLabelReset;
857 bool ForceZLabelReset;
859 double XAxisRange[2];
860 double YAxisRange[2];
861 double ZAxisRange[2];
875 double MajorStart[3];
876 double DeltaMajor[3];
881 void TransformBounds(
vtkViewport *viewport,
const double bounds[6],
883 void AdjustAxes(
double bounds[6],
884 double xCoords[NUMBER_OF_ALIGNED_AXIS][6],
885 double yCoords[NUMBER_OF_ALIGNED_AXIS][6],
886 double zCoords[NUMBER_OF_ALIGNED_AXIS][6],
887 double xRange[2],
double yRange[2],
double zRange[2]);
889 bool ComputeTickSize(
double bounds[6]);
890 void AdjustValues(
const double xRange[2],
891 const double yRange[2],
892 const double zRange[2]);
893 void AdjustRange(
const double bounds[6]);
896 void SetNonDependentAttributes(
void);
897 void BuildLabels(
vtkAxisActor *axes[NUMBER_OF_ALIGNED_AXIS]);
898 void AdjustTicksComputeRange(
vtkAxisActor *axes[NUMBER_OF_ALIGNED_AXIS],
899 double rangeMin,
double rangeMax);