127 vtkSetVector2Macro(Range,
double);
128 vtkGetVectorMacro(Range,
double, 2);
137 void SetBounds(
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
147 vtkGetStringMacro(LabelFormat);
158 vtkSetMacro(UseTextActor3D,
bool);
159 vtkGetMacro(UseTextActor3D,
bool);
167 vtkSetMacro(MinorTicksVisible,
bool);
168 vtkGetMacro(MinorTicksVisible,
bool);
169 vtkBooleanMacro(MinorTicksVisible,
bool);
177 vtkGetMacro(Title,
std::
string);
185 vtkGetMacro(Exponent,
std::
string);
193 vtkSetMacro(MajorTickSize,
double);
194 vtkGetMacro(MajorTickSize,
double);
202 vtkSetMacro(MinorTickSize,
double);
203 vtkGetMacro(MinorTickSize,
double);
233 vtkSetMacro(AxisVisibility,
bool);
234 vtkGetMacro(AxisVisibility,
bool);
235 vtkBooleanMacro(AxisVisibility,
bool);
243 vtkSetMacro(TickVisibility,
bool);
244 vtkGetMacro(TickVisibility,
bool);
245 vtkBooleanMacro(TickVisibility,
bool);
253 vtkSetMacro(LabelVisibility,
bool);
254 vtkGetMacro(LabelVisibility,
bool);
255 vtkBooleanMacro(LabelVisibility,
bool);
263 vtkSetMacro(TitleVisibility,
bool);
264 vtkGetMacro(TitleVisibility,
bool);
265 vtkBooleanMacro(TitleVisibility,
bool);
273 vtkSetMacro(ExponentVisibility,
bool);
274 vtkGetMacro(ExponentVisibility,
bool);
275 vtkBooleanMacro(ExponentVisibility,
bool);
283 vtkSetMacro(LastMajorTickPointCorrection,
bool);
284 vtkGetMacro(LastMajorTickPointCorrection,
bool);
285 vtkBooleanMacro(LastMajorTickPointCorrection,
bool);
303 vtkGetMacro(TitleAlignLocation,
int);
313 vtkGetMacro(ExponentLocation,
int);
393 vtkSetMacro(DrawGridlines,
bool);
394 vtkGetMacro(DrawGridlines,
bool);
395 vtkBooleanMacro(DrawGridlines,
bool);
405 vtkSetMacro(DrawGridlinesOnly,
bool);
406 vtkGetMacro(DrawGridlinesOnly,
bool);
407 vtkBooleanMacro(DrawGridlinesOnly,
bool);
410 vtkSetMacro(DrawGridlinesLocation,
int);
411 vtkGetMacro(DrawGridlinesLocation,
int);
418 vtkSetMacro(DrawInnerGridlines,
bool);
419 vtkGetMacro(DrawInnerGridlines,
bool);
420 vtkBooleanMacro(DrawInnerGridlines,
bool);
428 vtkSetMacro(GridlineXLength,
double);
429 vtkGetMacro(GridlineXLength,
double);
430 vtkSetMacro(GridlineYLength,
double);
431 vtkGetMacro(GridlineYLength,
double);
432 vtkSetMacro(GridlineZLength,
double);
433 vtkGetMacro(GridlineZLength,
double);
441 vtkSetMacro(DrawGridpolys,
bool);
442 vtkGetMacro(DrawGridpolys,
bool);
443 vtkBooleanMacro(DrawGridpolys,
bool);
478 vtkSetMacro(Log,
bool);
479 vtkGetMacro(Log,
bool);
480 vtkBooleanMacro(Log,
bool);
568 vtkSetMacro(MinorRangeStart,
double);
569 vtkGetMacro(MinorRangeStart,
double);
570 vtkSetMacro(MajorRangeStart,
double);
571 vtkGetMacro(MajorRangeStart,
double);
579 vtkSetMacro(DeltaRangeMinor,
double);
580 vtkGetMacro(DeltaRangeMinor,
double);
581 vtkSetMacro(DeltaRangeMajor,
double);
582 vtkGetMacro(DeltaRangeMajor,
double);
637 vtkGetMacro(NumberOfLabelsBuilt,
int);
645 vtkSetMacro(Use2DMode,
bool);
646 vtkGetMacro(Use2DMode,
bool);
654 vtkSetMacro(VerticalOffsetXTitle2D,
double);
655 vtkGetMacro(VerticalOffsetXTitle2D,
double);
663 vtkSetMacro(HorizontalOffsetYTitle2D,
double);
664 vtkGetMacro(HorizontalOffsetYTitle2D,
double);
672 vtkSetMacro(SaveTitlePosition,
int);
673 vtkGetMacro(SaveTitlePosition,
int);
681 vtkSetVector3Macro(AxisBaseForX,
double);
682 vtkGetVector3Macro(AxisBaseForX,
double);
690 vtkSetVector3Macro(AxisBaseForY,
double);
691 vtkGetVector3Macro(AxisBaseForY,
double);
699 vtkSetVector3Macro(AxisBaseForZ,
double);
700 vtkGetVector3Macro(AxisBaseForZ,
double);
708 vtkSetMacro(AxisOnOrigin,
bool);
709 vtkGetMacro(AxisOnOrigin,
bool);
717 vtkSetMacro(ScreenSize,
double);
718 vtkGetMacro(ScreenSize,
double);
726 vtkSetMacro(LabelOffset,
double);
727 vtkGetMacro(LabelOffset,
double);
735 vtkSetMacro(ExponentOffset,
double);
736 vtkGetMacro(ExponentOffset,
double);
747 vtkSetVector2Macro(TitleOffset,
double);
748 vtkGetVector2Macro(TitleOffset,
double);
759 void TransformBounds(
vtkViewport*,
double bnds[6]);
772 void BuildTitle(
bool);
778 void BuildExponent(
bool force);
780 void BuildExponent2D(
vtkViewport* viewport,
bool force);
788 vtkViewport* viewport,
double multiplier,
double scenepos[3],
double displayPos[2]);
790 void SetAxisPointsAndLines();
792 bool BuildTickPoints(
double p1[3],
double p2[3],
bool force);
795 void BuildMajorTicks(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
798 void BuildMajorTicksLog(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
801 void BuildMinorTicks(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
804 void BuildMinorTicksLog(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
806 void BuildAxisGridLines(
double p1[3],
double p2[3],
double localCoordSys[3][3]);
808 bool TickVisibilityChanged();
813 bool BoundsDisplayCoordinateChanged(
vtkViewport* viewport);
819 vtkProp* GetTitleActorInternal();
820 vtkProp* GetLabelActorInternal(
int index);
821 vtkProp* GetExponentActorInternal();
833 void UpdateTitleActorProperty();
834 void UpdateLabelActorProperty(
int idx);
835 void UpdateExponentActorProperty();
846 std::string Exponent;
847 char* LabelFormat =
nullptr;
848 double Range[2] = { 0.0, 1.0 };
849 double LastRange[2] = { -1.0, -1.0 };
850 bool UseTextActor3D =
false;
851 int NumberOfLabelsBuilt = 0;
852 bool MinorTicksVisible =
true;
853 bool LastMinorTicksVisible =
true;
860 int TickLocation = VTK_TICKS_INSIDE;
866 int TitleAlignLocation = VTK_ALIGN_BOTTOM;
872 int ExponentLocation = VTK_ALIGN_POINT2;
874 bool DrawGridlines =
false;
875 bool DrawGridlinesOnly =
false;
876 bool LastDrawGridlines =
false;
877 int DrawGridlinesLocation = 0;
878 int LastDrawGridlinesLocation = 0;
879 double GridlineXLength = 1.0;
880 double GridlineYLength = 1.0;
881 double GridlineZLength = 1.0;
883 bool DrawInnerGridlines =
false;
885 bool DrawGridpolys =
false;
887 bool AxisVisibility =
true;
888 bool TickVisibility =
true;
889 bool LastTickVisibility =
true;
890 bool LabelVisibility =
true;
891 bool TitleVisibility =
true;
892 bool ExponentVisibility =
false;
893 bool LastMajorTickPointCorrection =
false;
896 int AxisType = VTK_AXIS_TYPE_X;
897 int AxisPosition = VTK_AXIS_POS_MINMIN;
900 double AxisBaseForX[3] = { 1.0, 0.0, 0.0 };
901 double AxisBaseForY[3] = { 0.0, 1.0, 0.0 };
902 double AxisBaseForZ[3] = { 0.0, 0.0, 1.0 };
904 vtkNew<vtkCoordinate> Point1Coordinate;
905 vtkNew<vtkCoordinate> Point2Coordinate;
907 double MajorTickSize = 1.0;
908 double MinorTickSize = 0.5;
911 double MajorStart[3] = { 0.0, 0.0, 0.0 };
912 double DeltaMajor[3] = { 1.0, 1.0, 1.0 };
915 double MajorRangeStart = 0.0;
916 double MinorRangeStart = 0.0;
921 double DeltaRangeMinor = 1.0;
926 double DeltaRangeMajor = 1.0;
928 int LastAxisPosition = -1;
929 int LastTickLocation = -1;
931 vtkNew<vtkPoints> MinorTickPts;
932 vtkNew<vtkPoints> MajorTickPts;
933 vtkNew<vtkPoints> GridlinePts;
934 vtkNew<vtkPoints> InnerGridlinePts;
935 vtkNew<vtkPoints> GridpolyPts;
937 std::unique_ptr<vtkTextActorInterfaceInternal> TitleProp;
938 vtkSmartPointer<vtkTextProperty> TitleTextProperty;
944 std::unique_ptr<vtkTextActorInterfaceInternal> ExponentProp;
947 std::vector<std::shared_ptr<vtkTextActorInterfaceInternal>> LabelProps;
948 vtkSmartPointer<vtkTextProperty> LabelTextProperty;
951 vtkNew<vtkPolyData> AxisLines;
952 vtkNew<vtkActor> AxisLinesActor;
955 vtkNew<vtkPolyData> AxisMajorTicks, AxisMinorTicks;
956 vtkNew<vtkActor> AxisMajorTicksActor, AxisMinorTicksActor;
958 vtkNew<vtkPolyData> Gridlines;
959 vtkNew<vtkActor> GridlinesActor;
960 vtkNew<vtkPolyData> InnerGridlines;
961 vtkNew<vtkActor> InnerGridlinesActor;
962 vtkNew<vtkPolyData> Gridpolys;
963 vtkNew<vtkActor> GridpolysActor;
965 vtkSmartPointer<vtkCamera> Camera;
966 vtkTimeStamp BuildTime;
967 vtkTimeStamp BuildTickPointsTime;
968 vtkTimeStamp BoundsTime;
969 vtkTimeStamp LabelBuildTime;
970 vtkTimeStamp TitleTextTime;
971 vtkTimeStamp ExponentTextTime;
973 bool AxisOnOrigin =
false;
975 bool AxisHasZeroLength =
false;
980 bool Use2DMode =
false;
986 double VerticalOffsetXTitle2D = -40;
992 double HorizontalOffsetYTitle2D = -50;
1000 int SaveTitlePosition = 0;
1005 double TitleConstantPosition[2] = { 0.0, 0.0 };
1010 bool NeedBuild2D =
false;
1012 double LastMinDisplayCoordinate[3] = { 0.0, 0.0, 0.0 };
1013 double LastMaxDisplayCoordinate[3] = { 0.0, 0.0, 0.0 };
1014 double TickVector[3] = { 0.0, 0.0, 0.0 };
1019 double ScreenSize = 10.0;
1025 double LabelOffset = 30.0;
1026 double TitleOffset[2] = { 20.0, 20.0 };
1027 double ExponentOffset = 20.0;