71 virtual void SetPole(
double,
double,
double);
72 vtkGetVector3Macro(Pole,
double);
80 vtkSetMacro(Log,
bool);
81 vtkGetMacro(Log,
bool);
82 vtkBooleanMacro(Log,
bool);
90 vtkSetClampMacro(RequestedNumberOfRadialAxes,
vtkIdType, 0, VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES);
91 vtkGetMacro(RequestedNumberOfRadialAxes,
vtkIdType);
99 vtkSetClampMacro(RequestedNumberOfPolarAxes,
vtkIdType, 0, VTK_MAXIMUM_NUMBER_OF_POLAR_AXES);
109 vtkSetMacro(AutoSubdividePolarAxis,
bool);
111 vtkGetMacro(AutoSubdividePolarAxis,
bool);
112 void AutoSubdividePolarAxisOn();
113 void AutoSubdividePolarAxisOff();
122 virtual
void SetNumberOfPolarAxisTicks(
int);
123 int GetNumberOfPolarAxisTicks();
131 vtkSetVector2Macro(Range,
double);
132 vtkGetVectorMacro(Range,
double, 2);
140 virtual
void SetMinimumRadius(
double);
141 vtkGetMacro(MinimumRadius,
double);
149 virtual
void SetMaximumRadius(
double);
150 vtkGetMacro(MaximumRadius,
double);
158 virtual
void SetMinimumAngle(
double);
159 vtkGetMacro(MinimumAngle,
double);
167 virtual
void SetMaximumAngle(
double);
168 vtkGetMacro(MaximumAngle,
double);
177 vtkSetClampMacro(SmallestVisiblePolarAngle,
double, 0., 5.);
178 vtkGetMacro(SmallestVisiblePolarAngle,
double);
189 vtkGetMacro(TickLocation,
int);
196 vtkSetMacro(RadialUnits,
bool);
197 vtkGetMacro(RadialUnits,
bool);
207 vtkSetMacro(ScreenSize,
double);
208 vtkGetMacro(ScreenSize,
double);
217 vtkSetVector2Macro(PolarTitleOffset,
double);
218 vtkGetVectorMacro(PolarTitleOffset,
double, 2);
227 vtkSetVector2Macro(RadialTitleOffset,
double);
228 vtkGetVectorMacro(RadialTitleOffset,
double, 2);
236 vtkGetMacro(PolarLabelOffset,
double);
237 vtkSetMacro(PolarLabelOffset,
double);
245 vtkGetMacro(PolarExponentOffset,
double);
246 vtkSetMacro(PolarExponentOffset,
double);
263 vtkSetStringMacro(PolarAxisTitle);
264 vtkGetStringMacro(PolarAxisTitle);
271 vtkSetStringMacro(PolarLabelFormat);
272 vtkGetStringMacro(PolarLabelFormat);
277 VTK_EXPONENT_BOTTOM = 0,
278 VTK_EXPONENT_EXTERN = 1,
279 VTK_EXPONENT_LABELS = 2
296 vtkSetStringMacro(RadialAngleFormat);
297 vtkGetStringMacro(RadialAngleFormat);
312 vtkSetMacro(EnableDistanceLOD,
bool);
313 vtkGetMacro(EnableDistanceLOD,
bool);
321 vtkSetClampMacro(DistanceLODThreshold,
double, 0.0, 1.0);
322 vtkGetMacro(DistanceLODThreshold,
double);
330 vtkSetMacro(EnableViewAngleLOD,
bool);
331 vtkGetMacro(EnableViewAngleLOD,
bool);
339 vtkSetClampMacro(ViewAngleLODThreshold,
double, 0., 1.);
340 vtkGetMacro(ViewAngleLODThreshold,
double);
348 vtkSetMacro(PolarAxisVisibility,
bool);
349 vtkGetMacro(PolarAxisVisibility,
bool);
350 vtkBooleanMacro(PolarAxisVisibility,
bool);
358 vtkSetMacro(DrawRadialGridlines,
bool);
359 vtkGetMacro(DrawRadialGridlines,
bool);
360 vtkBooleanMacro(DrawRadialGridlines,
bool);
368 vtkSetMacro(DrawPolarArcsGridlines,
bool);
369 vtkGetMacro(DrawPolarArcsGridlines,
bool);
370 vtkBooleanMacro(DrawPolarArcsGridlines,
bool);
378 vtkSetMacro(PolarTitleVisibility,
bool);
379 vtkGetMacro(PolarTitleVisibility,
bool);
380 vtkBooleanMacro(PolarTitleVisibility,
bool);
385 VTK_TITLE_BOTTOM = 0,
395 vtkSetClampMacro(RadialAxisTitleLocation,
int, VTK_TITLE_BOTTOM, VTK_TITLE_EXTERN);
396 vtkGetMacro(RadialAxisTitleLocation,
int);
405 vtkSetClampMacro(PolarAxisTitleLocation,
int, VTK_TITLE_BOTTOM, VTK_TITLE_EXTERN);
406 vtkGetMacro(PolarAxisTitleLocation,
int);
414 vtkSetMacro(PolarLabelVisibility,
bool);
415 vtkGetMacro(PolarLabelVisibility,
bool);
416 vtkBooleanMacro(PolarLabelVisibility,
bool);
426 vtkSetMacro(ArcTicksOriginToPolarAxis,
bool);
427 vtkGetMacro(ArcTicksOriginToPolarAxis,
bool);
428 vtkBooleanMacro(ArcTicksOriginToPolarAxis,
bool);
438 vtkSetMacro(RadialAxesOriginToPolarAxis,
bool);
439 vtkGetMacro(RadialAxesOriginToPolarAxis,
bool);
440 vtkBooleanMacro(RadialAxesOriginToPolarAxis,
bool);
448 vtkSetMacro(PolarTickVisibility,
bool);
449 vtkGetMacro(PolarTickVisibility,
bool);
450 vtkBooleanMacro(PolarTickVisibility,
bool);
458 vtkSetMacro(AxisTickVisibility,
bool);
459 vtkGetMacro(AxisTickVisibility,
bool);
460 vtkBooleanMacro(AxisTickVisibility,
bool);
468 vtkSetMacro(AxisMinorTickVisibility,
bool);
469 vtkGetMacro(AxisMinorTickVisibility,
bool);
470 vtkBooleanMacro(AxisMinorTickVisibility,
bool);
478 vtkSetMacro(AxisTickMatchesPolarAxes,
bool);
479 vtkGetMacro(AxisTickMatchesPolarAxes,
bool);
480 vtkBooleanMacro(AxisTickMatchesPolarAxes,
bool);
488 vtkSetMacro(ArcTickVisibility,
bool);
489 vtkGetMacro(ArcTickVisibility,
bool);
490 vtkBooleanMacro(ArcTickVisibility,
bool);
498 vtkSetMacro(ArcMinorTickVisibility,
bool);
499 vtkGetMacro(ArcMinorTickVisibility,
bool);
500 vtkBooleanMacro(ArcMinorTickVisibility,
bool);
508 vtkSetMacro(ArcTickMatchesRadialAxes,
bool);
509 vtkGetMacro(ArcTickMatchesRadialAxes,
bool);
510 vtkBooleanMacro(ArcTickMatchesRadialAxes,
bool);
519 vtkSetMacro(ArcMajorTickSize,
double);
520 vtkGetMacro(ArcMajorTickSize,
double);
529 vtkSetMacro(PolarAxisMajorTickSize,
double);
530 vtkGetMacro(PolarAxisMajorTickSize,
double);
539 vtkSetMacro(LastRadialAxisMajorTickSize,
double);
540 vtkGetMacro(LastRadialAxisMajorTickSize,
double);
548 vtkSetMacro(PolarAxisTickRatioSize,
double);
549 vtkGetMacro(PolarAxisTickRatioSize,
double);
557 vtkSetMacro(LastAxisTickRatioSize,
double);
558 vtkGetMacro(LastAxisTickRatioSize,
double);
566 vtkSetMacro(ArcTickRatioSize,
double);
567 vtkGetMacro(ArcTickRatioSize,
double);
575 vtkSetMacro(TickRatioRadiusSize,
double);
576 vtkGetMacro(TickRatioRadiusSize,
double);
584 vtkSetMacro(PolarAxisMajorTickThickness,
double);
585 vtkGetMacro(PolarAxisMajorTickThickness,
double);
593 vtkSetMacro(LastRadialAxisMajorTickThickness,
double);
594 vtkGetMacro(LastRadialAxisMajorTickThickness,
double);
602 vtkSetMacro(ArcMajorTickThickness,
double);
603 vtkGetMacro(ArcMajorTickThickness,
double);
611 vtkSetMacro(PolarAxisTickRatioThickness,
double);
612 vtkGetMacro(PolarAxisTickRatioThickness,
double);
620 vtkSetMacro(LastAxisTickRatioThickness,
double);
621 vtkGetMacro(LastAxisTickRatioThickness,
double);
629 vtkSetMacro(ArcTickRatioThickness,
double);
630 vtkGetMacro(ArcTickRatioThickness,
double);
638 vtkSetMacro(DeltaRangeMajor,
double);
639 vtkGetMacro(DeltaRangeMajor,
double);
647 vtkSetMacro(DeltaRangeMinor,
double);
648 vtkGetMacro(DeltaRangeMinor,
double);
657 vtkSetMacro(RequestedDeltaRangePolarAxes,
double);
658 vtkGetMacro(RequestedDeltaRangePolarAxes,
double);
666 vtkSetMacro(DeltaAngleMajor,
double);
667 vtkGetMacro(DeltaAngleMajor,
double);
675 vtkSetMacro(DeltaAngleMinor,
double);
676 vtkGetMacro(DeltaAngleMinor,
double);
685 vtkSetMacro(RequestedDeltaAngleRadialAxes,
double);
686 vtkGetMacro(RequestedDeltaAngleRadialAxes,
double);
696 vtkSetMacro(RadialAxesVisibility,
bool);
697 vtkGetMacro(RadialAxesVisibility,
bool);
698 vtkBooleanMacro(RadialAxesVisibility,
bool);
706 vtkSetMacro(RadialTitleVisibility,
bool);
707 vtkGetMacro(RadialTitleVisibility,
bool);
708 vtkBooleanMacro(RadialTitleVisibility,
bool);
716 vtkSetMacro(PolarArcsVisibility,
bool);
717 vtkGetMacro(PolarArcsVisibility,
bool);
718 vtkBooleanMacro(PolarArcsVisibility,
bool);
809 vtkSetVector6Macro(Bounds,
double);
812 double& xmin,
double& xmax,
double& ymin,
double& ymax,
double& zmin,
double& zmax);
821 vtkSetClampMacro(Ratio,
double, 0.001, 100.0);
822 vtkGetMacro(Ratio,
double);
830 vtkSetClampMacro(PolarArcResolutionPerDegree,
double, VTK_MINIMUM_POLAR_ARC_RESOLUTION_PER_DEG,
831 VTK_MAXIMUM_POLAR_ARC_RESOLUTION_PER_DEG);
832 vtkGetMacro(PolarArcResolutionPerDegree,
double);
884 void AutoComputeTicksProperties();
889 double ComputeIdealStep(
int subDivsRequired,
double rangeLength,
int maxSubDivs = 1000);
894 void BuildArcTicks();
900 void StoreTicksPtsFromParamEllipse(
901 double a,
double angleEllipseRad,
double tickSize,
vtkPoints* tickPts);
906 void BuildPolarAxisLabelsArcs();
911 void BuildPolarAxisLabelsArcsLog();
916 void BuildLabelsLog();
918 void BuildPolarArcsLog();
923 std::
string FindExponentAndAdjustValues(
std::list<
double>& valuesList);
935 double FSign(
double,
double);
948 static
double ComputeEllipseAngle(
double angleInDegrees,
double ratio);
962 double Pole[3] = { 0.0, 0.0, 0.0 };
967 int NumberOfRadialAxes = 0;
973 int RequestedNumberOfRadialAxes = 0;
978 int NumberOfPolarAxes = 5;
984 int RequestedNumberOfPolarAxes = 5;
994 double PolarArcResolutionPerDegree = 0.2;
999 double Range[2] = { 0.0, 10.0 };
1004 double DeltaRangeMinor = 0.5;
1009 double DeltaRangeMajor = 1.0;
1014 bool AutoSubdividePolarAxis =
false;
1019 double DeltaRangePolarAxes = 0.0;
1025 double RequestedDeltaRangePolarAxes = 0.0;
1030 double DeltaAngleMinor = 22.5;
1035 double DeltaAngleMajor = 45.0;
1040 double DeltaAngleRadialAxes = 45.0;
1046 double RequestedDeltaAngleRadialAxes = 45.0;
1051 double MinimumRadius = 0.0;
1056 double MaximumRadius = 1.0;
1066 double MinimumAngle = 0.0;
1071 double MaximumAngle = 90.0;
1076 double SmallestVisiblePolarAngle = 0.5;
1112 char* PolarAxisTitle =
nullptr;
1113 char* PolarLabelFormat =
nullptr;
1119 char* RadialAngleFormat =
nullptr;
1124 bool RadialUnits =
true;
1129 bool EnableDistanceLOD =
true;
1134 double DistanceLODThreshold = 0.7;
1139 bool EnableViewAngleLOD =
true;
1145 double ViewAngleLODThreshold = 0.3;
1151 bool PolarAxisVisibility =
true;
1152 bool PolarTitleVisibility =
true;
1153 bool PolarLabelVisibility =
true;
1168 bool PolarTickVisibility =
true;
1176 bool ArcTicksOriginToPolarAxis =
true;
1184 bool RadialAxesOriginToPolarAxis =
true;
1189 bool AxisTickVisibility =
true, AxisMinorTickVisibility =
false;
1194 bool AxisTickMatchesPolarAxes =
true;
1199 bool ArcTickVisibility =
true, ArcMinorTickVisibility =
false;
1204 bool ArcTickMatchesRadialAxes =
true;
1209 double PolarAxisMajorTickSize = 0.0, LastRadialAxisMajorTickSize = 0.0, ArcMajorTickSize = 0.0;
1214 double PolarAxisTickRatioSize = 0.3, LastAxisTickRatioSize = 0.3, ArcTickRatioSize = 0.3;
1219 double TickRatioRadiusSize = 0.02;
1224 double PolarAxisMajorTickThickness = 1.0, LastRadialAxisMajorTickThickness = 1.0,
1225 ArcMajorTickThickness = 1.0;
1230 double PolarAxisTickRatioThickness = 0.5, LastAxisTickRatioThickness = 0.5,
1231 ArcTickRatioThickness = 0.5;
1237 bool RadialAxesVisibility =
true;
1238 bool RadialTitleVisibility =
true;
1244 int RadialAxisTitleLocation = VTK_TITLE_BOTTOM;
1249 int PolarAxisTitleLocation = VTK_TITLE_BOTTOM;
1260 bool PolarArcsVisibility =
true;
1265 bool DrawRadialGridlines =
true;
1270 bool DrawPolarArcsGridlines =
true;
1333 double TitleScale = -1.0;
1338 double LabelScale = -1.0;
1343 double ScreenSize = 10.0;
1349 double PolarTitleOffset[2] = { 20.0, 10.0 }, RadialTitleOffset[2] = { 20.0, 0.0 };
1350 double PolarLabelOffset = 10.0, PolarExponentOffset = 5.0;
1354 static constexpr int VTK_MAXIMUM_NUMBER_OF_POLAR_AXES = 20;
1355 static constexpr int VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES = 50;
1356 static constexpr double VTK_MINIMUM_POLAR_ARC_RESOLUTION_PER_DEG = 0.05;
1357 static constexpr double VTK_MAXIMUM_POLAR_ARC_RESOLUTION_PER_DEG = 100.0;