53 #ifndef vtkAxisActor_h
54 #define vtkAxisActor_h
57 #include "vtkRenderingAnnotationModule.h"
91 virtual void SetPoint1(
double x,
double y,
double z);
92 virtual double* GetPoint1();
101 virtual void SetPoint2(
double x,
double y,
double z);
102 virtual double* GetPoint2();
110 vtkSetVector2Macro(Range,
double);
111 vtkGetVectorMacro(Range,
double, 2);
118 void SetBounds(
const double bounds[6]);
119 void SetBounds(
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
128 vtkSetStringMacro(LabelFormat);
129 vtkGetStringMacro(LabelFormat);
140 vtkSetMacro(UseTextActor3D,
int);
141 vtkGetMacro(UseTextActor3D,
int);
157 void SetTitle(
const char* t);
158 vtkGetStringMacro(Title);
165 void SetExponent(
const char* t);
166 vtkGetStringMacro(Exponent);
173 vtkSetMacro(MajorTickSize,
double);
174 vtkGetMacro(MajorTickSize,
double);
181 vtkSetMacro(MinorTickSize,
double);
182 vtkGetMacro(MinorTickSize,
double);
187 VTK_TICKS_INSIDE = 0,
188 VTK_TICKS_OUTSIDE = 1,
198 vtkSetClampMacro(TickLocation,
int, VTK_TICKS_INSIDE, VTK_TICKS_BOTH);
199 vtkGetMacro(TickLocation,
int);
246 vtkSetMacro(ExponentVisibility,
bool);
247 vtkGetMacro(ExponentVisibility,
bool);
248 vtkBooleanMacro(ExponentVisibility,
bool);
255 vtkSetMacro(LastMajorTickPointCorrection,
bool);
256 vtkGetMacro(LastMajorTickPointCorrection,
bool);
257 vtkBooleanMacro(LastMajorTickPointCorrection,
bool);
263 VTK_ALIGN_BOTTOM = 1,
264 VTK_ALIGN_POINT1 = 2,
273 virtual void SetTitleAlignLocation(
int location);
274 vtkGetMacro(TitleAlignLocation,
int);
282 virtual void SetExponentLocation(
int location);
283 vtkGetMacro(ExponentLocation,
int);
378 vtkSetMacro(DrawGridlinesLocation,
int);
379 vtkGetMacro(DrawGridlinesLocation,
int);
394 vtkSetMacro(GridlineXLength,
double);
395 vtkGetMacro(GridlineXLength,
double);
396 vtkSetMacro(GridlineYLength,
double);
397 vtkGetMacro(GridlineYLength,
double);
398 vtkSetMacro(GridlineZLength,
double);
399 vtkGetMacro(GridlineZLength,
double);
422 vtkSetClampMacro(AxisType,
int, VTK_AXIS_TYPE_X, VTK_AXIS_TYPE_Z);
423 vtkGetMacro(AxisType,
int);
431 VTK_AXIS_POS_MINMIN = 0,
432 VTK_AXIS_POS_MINMAX = 1,
433 VTK_AXIS_POS_MAXMAX = 2,
434 VTK_AXIS_POS_MAXMIN = 3
441 vtkSetMacro(Log,
bool);
442 vtkGetMacro(Log,
bool);
443 vtkBooleanMacro(Log,
bool);
454 vtkSetClampMacro(AxisPosition,
int, VTK_AXIS_POS_MINMIN, VTK_AXIS_POS_MAXMIN);
455 vtkGetMacro(AxisPosition,
int);
477 virtual int RenderTranslucentGeometry(
vtkViewport* viewport);
490 double ComputeMaxLabelLength(
const double[3]);
491 double ComputeTitleLength(
const double[3]);
493 void SetLabelScale(
const double scale);
494 void SetLabelScale(
int labelIndex,
const double scale);
495 void SetTitleScale(
const double scale);
502 vtkSetMacro(MinorStart,
double);
503 vtkGetMacro(MinorStart,
double);
504 double GetMajorStart(
int axis);
505 void SetMajorStart(
int axis,
double value);
508 vtkSetMacro(DeltaMinor,
double);
509 vtkGetMacro(DeltaMinor,
double);
510 double GetDeltaMajor(
int axis);
511 void SetDeltaMajor(
int axis,
double value);
523 vtkSetMacro(MinorRangeStart,
double);
524 vtkGetMacro(MinorRangeStart,
double);
525 vtkSetMacro(MajorRangeStart,
double);
526 vtkGetMacro(MajorRangeStart,
double);
527 vtkSetMacro(DeltaRangeMinor,
double);
528 vtkGetMacro(DeltaRangeMinor,
double);
529 vtkSetMacro(DeltaRangeMajor,
double);
530 vtkGetMacro(DeltaRangeMajor,
double);
583 vtkGetMacro(NumberOfLabelsBuilt,
int);
593 vtkBooleanMacro(CalculateTitleOffset,
vtkTypeBool);
603 vtkBooleanMacro(CalculateLabelOffset,
vtkTypeBool);
610 vtkSetMacro(Use2DMode,
int);
611 vtkGetMacro(Use2DMode,
int);
618 vtkSetMacro(VerticalOffsetXTitle2D,
double);
619 vtkGetMacro(VerticalOffsetXTitle2D,
double);
626 vtkSetMacro(HorizontalOffsetYTitle2D,
double);
627 vtkGetMacro(HorizontalOffsetYTitle2D,
double);
634 vtkSetMacro(SaveTitlePosition,
int);
635 vtkGetMacro(SaveTitlePosition,
int);
642 vtkSetVector3Macro(AxisBaseForX,
double);
643 vtkGetVector3Macro(AxisBaseForX,
double);
650 vtkSetVector3Macro(AxisBaseForY,
double);
651 vtkGetVector3Macro(AxisBaseForY,
double);
658 vtkSetVector3Macro(AxisBaseForZ,
double);
659 vtkGetVector3Macro(AxisBaseForZ,
double);
666 vtkSetMacro(AxisOnOrigin,
int);
667 vtkGetMacro(AxisOnOrigin,
int);
674 vtkSetMacro(LabelOffset,
double);
675 vtkGetMacro(LabelOffset,
double);
676 vtkSetMacro(TitleOffset,
double);
677 vtkGetMacro(TitleOffset,
double);
678 vtkSetMacro(ExponentOffset,
double);
679 vtkGetMacro(ExponentOffset,
double);
680 vtkSetMacro(ScreenSize,
double);
681 vtkGetMacro(ScreenSize,
double);
745 double AxisBaseForX[3];
746 double AxisBaseForY[3];
747 double AxisBaseForZ[3];
753 void TransformBounds(
vtkViewport*,
double bnds[6]);
764 void RotateActor2DFromAxisProjection(
vtkTextActor* pActor2D);
782 void BuildTitle(
bool);
788 void BuildExponent(
bool force);
790 void BuildExponent2D(
vtkViewport* viewport,
bool force);
794 void SetAxisPointsAndLines(
void);
796 bool BuildTickPoints(
double p1[3],
double p2[3],
bool force);
799 void BuildMajorTicks(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
802 void BuildMajorTicksLog(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
805 void BuildMinorTicks(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
808 void BuildMinorTicksLog(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
810 void BuildAxisGridLines(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
812 bool TickVisibilityChanged(
void);
817 bool BoundsDisplayCoordinateChanged(
vtkViewport* viewport);
822 double MajorTickSize;
823 double MinorTickSize;
826 double MajorStart[3];
827 double DeltaMajor[3];
832 double MajorRangeStart;
833 double MinorRangeStart;
838 double DeltaRangeMinor;
843 double DeltaRangeMajor;
845 int LastAxisPosition;
847 int LastTickLocation;
848 double LastLabelStart;
892 vtkActor *AxisMajorTicksActor, *AxisMinorTicksActor;
914 int AxisHasZeroLength;
928 double VerticalOffsetXTitle2D;
934 double HorizontalOffsetYTitle2D;
942 int SaveTitlePosition;
947 double TitleConstantPosition[2];
954 double LastMinDisplayCoordinate[3];
955 double LastMaxDisplayCoordinate[3];
956 double TickVector[3];
965 double ExponentOffset;