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]);
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);