70 virtual void SetPole(
double,
double,
double);
71 vtkGetVector3Macro(Pole,
double);
79 vtkSetMacro(Log,
bool);
80 vtkGetMacro(Log,
bool);
81 vtkBooleanMacro(Log,
bool);
89 vtkSetClampMacro(RequestedNumberOfRadialAxes,
vtkIdType, 0, VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES);
90 vtkGetMacro(RequestedNumberOfRadialAxes,
vtkIdType);
98 vtkSetClampMacro(RequestedNumberOfPolarAxes,
vtkIdType, 0, VTK_MAXIMUM_NUMBER_OF_POLAR_AXES);
108 vtkSetMacro(AutoSubdividePolarAxis,
bool);
110 vtkGetMacro(AutoSubdividePolarAxis,
bool);
111 void AutoSubdividePolarAxisOn();
112 void AutoSubdividePolarAxisOff();
121 virtual
void SetNumberOfPolarAxisTicks(
int);
122 int GetNumberOfPolarAxisTicks();
130 vtkSetVector2Macro(Range,
double);
131 vtkGetVectorMacro(Range,
double, 2);
139 virtual
void SetMinimumRadius(
double);
140 vtkGetMacro(MinimumRadius,
double);
148 virtual
void SetMaximumRadius(
double);
149 vtkGetMacro(MaximumRadius,
double);
157 virtual
void SetMinimumAngle(
double);
158 vtkGetMacro(MinimumAngle,
double);
166 virtual
void SetMaximumAngle(
double);
167 vtkGetMacro(MaximumAngle,
double);
176 vtkSetClampMacro(SmallestVisiblePolarAngle,
double, 0., 5.);
177 vtkGetMacro(SmallestVisiblePolarAngle,
double);
188 vtkGetMacro(TickLocation,
int);
195 vtkSetMacro(RadialUnits,
bool);
196 vtkGetMacro(RadialUnits,
bool);
206 vtkSetMacro(ScreenSize,
double);
207 vtkGetMacro(ScreenSize,
double);
216 vtkSetVector2Macro(PolarTitleOffset,
double);
217 vtkGetVectorMacro(PolarTitleOffset,
double, 2);
226 vtkSetVector2Macro(RadialTitleOffset,
double);
227 vtkGetVectorMacro(RadialTitleOffset,
double, 2);
235 vtkGetMacro(PolarLabelOffset,
double);
236 vtkSetMacro(PolarLabelOffset,
double);
244 vtkGetMacro(PolarExponentOffset,
double);
245 vtkSetMacro(PolarExponentOffset,
double);
262 vtkSetStringMacro(PolarAxisTitle);
263 vtkGetStringMacro(PolarAxisTitle);
270 vtkSetStringMacro(PolarLabelFormat);
271 vtkGetStringMacro(PolarLabelFormat);
276 VTK_EXPONENT_BOTTOM = 0,
277 VTK_EXPONENT_EXTERN = 1,
278 VTK_EXPONENT_LABELS = 2
295 vtkSetStringMacro(RadialAngleFormat);
296 vtkGetStringMacro(RadialAngleFormat);
311 vtkSetMacro(EnableDistanceLOD,
bool);
312 vtkGetMacro(EnableDistanceLOD,
bool);
320 vtkSetClampMacro(DistanceLODThreshold,
double, 0.0, 1.0);
321 vtkGetMacro(DistanceLODThreshold,
double);
329 vtkSetMacro(EnableViewAngleLOD,
bool);
330 vtkGetMacro(EnableViewAngleLOD,
bool);
338 vtkSetClampMacro(ViewAngleLODThreshold,
double, 0., 1.);
339 vtkGetMacro(ViewAngleLODThreshold,
double);
347 vtkSetMacro(PolarAxisVisibility,
bool);
348 vtkGetMacro(PolarAxisVisibility,
bool);
349 vtkBooleanMacro(PolarAxisVisibility,
bool);
357 vtkSetMacro(DrawRadialGridlines,
bool);
358 vtkGetMacro(DrawRadialGridlines,
bool);
359 vtkBooleanMacro(DrawRadialGridlines,
bool);
367 vtkSetMacro(DrawPolarArcsGridlines,
bool);
368 vtkGetMacro(DrawPolarArcsGridlines,
bool);
369 vtkBooleanMacro(DrawPolarArcsGridlines,
bool);
377 vtkSetMacro(PolarTitleVisibility,
bool);
378 vtkGetMacro(PolarTitleVisibility,
bool);
379 vtkBooleanMacro(PolarTitleVisibility,
bool);
384 VTK_TITLE_BOTTOM = 0,
394 vtkSetClampMacro(RadialAxisTitleLocation,
int, VTK_TITLE_BOTTOM, VTK_TITLE_EXTERN);
395 vtkGetMacro(RadialAxisTitleLocation,
int);
404 vtkSetClampMacro(PolarAxisTitleLocation,
int, VTK_TITLE_BOTTOM, VTK_TITLE_EXTERN);
405 vtkGetMacro(PolarAxisTitleLocation,
int);
413 vtkSetMacro(PolarLabelVisibility,
bool);
414 vtkGetMacro(PolarLabelVisibility,
bool);
415 vtkBooleanMacro(PolarLabelVisibility,
bool);
425 vtkSetMacro(ArcTicksOriginToPolarAxis,
bool);
426 vtkGetMacro(ArcTicksOriginToPolarAxis,
bool);
427 vtkBooleanMacro(ArcTicksOriginToPolarAxis,
bool);
437 vtkSetMacro(RadialAxesOriginToPolarAxis,
bool);
438 vtkGetMacro(RadialAxesOriginToPolarAxis,
bool);
439 vtkBooleanMacro(RadialAxesOriginToPolarAxis,
bool);
447 vtkSetMacro(PolarTickVisibility,
bool);
448 vtkGetMacro(PolarTickVisibility,
bool);
449 vtkBooleanMacro(PolarTickVisibility,
bool);
457 vtkSetMacro(AxisTickVisibility,
bool);
458 vtkGetMacro(AxisTickVisibility,
bool);
459 vtkBooleanMacro(AxisTickVisibility,
bool);
467 vtkSetMacro(AxisMinorTickVisibility,
bool);
468 vtkGetMacro(AxisMinorTickVisibility,
bool);
469 vtkBooleanMacro(AxisMinorTickVisibility,
bool);
477 vtkSetMacro(AxisTickMatchesPolarAxes,
bool);
478 vtkGetMacro(AxisTickMatchesPolarAxes,
bool);
479 vtkBooleanMacro(AxisTickMatchesPolarAxes,
bool);
487 vtkSetMacro(ArcTickVisibility,
bool);
488 vtkGetMacro(ArcTickVisibility,
bool);
489 vtkBooleanMacro(ArcTickVisibility,
bool);
497 vtkSetMacro(ArcMinorTickVisibility,
bool);
498 vtkGetMacro(ArcMinorTickVisibility,
bool);
499 vtkBooleanMacro(ArcMinorTickVisibility,
bool);
507 vtkSetMacro(ArcTickMatchesRadialAxes,
bool);
508 vtkGetMacro(ArcTickMatchesRadialAxes,
bool);
509 vtkBooleanMacro(ArcTickMatchesRadialAxes,
bool);
518 vtkSetMacro(ArcMajorTickSize,
double);
519 vtkGetMacro(ArcMajorTickSize,
double);
528 vtkSetMacro(PolarAxisMajorTickSize,
double);
529 vtkGetMacro(PolarAxisMajorTickSize,
double);
538 vtkSetMacro(LastRadialAxisMajorTickSize,
double);
539 vtkGetMacro(LastRadialAxisMajorTickSize,
double);
547 vtkSetMacro(PolarAxisTickRatioSize,
double);
548 vtkGetMacro(PolarAxisTickRatioSize,
double);
556 vtkSetMacro(LastAxisTickRatioSize,
double);
557 vtkGetMacro(LastAxisTickRatioSize,
double);
565 vtkSetMacro(ArcTickRatioSize,
double);
566 vtkGetMacro(ArcTickRatioSize,
double);
574 vtkSetMacro(TickRatioRadiusSize,
double);
575 vtkGetMacro(TickRatioRadiusSize,
double);
583 vtkSetMacro(PolarAxisMajorTickThickness,
double);
584 vtkGetMacro(PolarAxisMajorTickThickness,
double);
592 vtkSetMacro(LastRadialAxisMajorTickThickness,
double);
593 vtkGetMacro(LastRadialAxisMajorTickThickness,
double);
601 vtkSetMacro(ArcMajorTickThickness,
double);
602 vtkGetMacro(ArcMajorTickThickness,
double);
610 vtkSetMacro(PolarAxisTickRatioThickness,
double);
611 vtkGetMacro(PolarAxisTickRatioThickness,
double);
619 vtkSetMacro(LastAxisTickRatioThickness,
double);
620 vtkGetMacro(LastAxisTickRatioThickness,
double);
628 vtkSetMacro(ArcTickRatioThickness,
double);
629 vtkGetMacro(ArcTickRatioThickness,
double);
637 vtkSetMacro(DeltaRangeMajor,
double);
638 vtkGetMacro(DeltaRangeMajor,
double);
646 vtkSetMacro(DeltaRangeMinor,
double);
647 vtkGetMacro(DeltaRangeMinor,
double);
656 vtkSetMacro(RequestedDeltaRangePolarAxes,
double);
657 vtkGetMacro(RequestedDeltaRangePolarAxes,
double);
665 vtkSetMacro(DeltaAngleMajor,
double);
666 vtkGetMacro(DeltaAngleMajor,
double);
674 vtkSetMacro(DeltaAngleMinor,
double);
675 vtkGetMacro(DeltaAngleMinor,
double);
684 vtkSetMacro(RequestedDeltaAngleRadialAxes,
double);
685 vtkGetMacro(RequestedDeltaAngleRadialAxes,
double);
695 vtkSetMacro(RadialAxesVisibility,
bool);
696 vtkGetMacro(RadialAxesVisibility,
bool);
697 vtkBooleanMacro(RadialAxesVisibility,
bool);
705 vtkSetMacro(RadialTitleVisibility,
bool);
706 vtkGetMacro(RadialTitleVisibility,
bool);
707 vtkBooleanMacro(RadialTitleVisibility,
bool);
715 vtkSetMacro(PolarArcsVisibility,
bool);
716 vtkGetMacro(PolarArcsVisibility,
bool);
717 vtkBooleanMacro(PolarArcsVisibility,
bool);
808 vtkSetVector6Macro(Bounds,
double);
811 double& xmin,
double& xmax,
double& ymin,
double& ymax,
double& zmin,
double& zmax);
820 vtkSetClampMacro(Ratio,
double, 0.001, 100.0);
821 vtkGetMacro(Ratio,
double);
829 vtkSetClampMacro(PolarArcResolutionPerDegree,
double, VTK_MINIMUM_POLAR_ARC_RESOLUTION_PER_DEG,
830 VTK_MAXIMUM_POLAR_ARC_RESOLUTION_PER_DEG);
831 vtkGetMacro(PolarArcResolutionPerDegree,
double);
883 void AutoComputeTicksProperties();
888 double ComputeIdealStep(
int subDivsRequired,
double rangeLength,
int maxSubDivs = 1000);
893 void BuildArcTicks();
899 void StoreTicksPtsFromParamEllipse(
900 double a,
double angleEllipseRad,
double tickSize,
vtkPoints* tickPts);
905 void BuildPolarAxisLabelsArcs();
910 void BuildPolarAxisLabelsArcsLog();
915 void BuildLabelsLog();
917 void BuildPolarArcsLog();
922 std::
string FindExponentAndAdjustValues(
std::list<
double>& valuesList);
934 double FSign(
double,
double);
947 static
double ComputeEllipseAngle(
double angleInDegrees,
double ratio);
961 double Pole[3] = { 0.0, 0.0, 0.0 };
966 int NumberOfRadialAxes = 0;
972 int RequestedNumberOfRadialAxes = 0;
977 int NumberOfPolarAxes = 5;
983 int RequestedNumberOfPolarAxes = 5;
993 double PolarArcResolutionPerDegree = 0.2;
998 double Range[2] = { 0.0, 10.0 };
1003 double DeltaRangeMinor = 0.5;
1008 double DeltaRangeMajor = 1.0;
1013 bool AutoSubdividePolarAxis =
false;
1018 double DeltaRangePolarAxes = 0.0;
1024 double RequestedDeltaRangePolarAxes = 0.0;
1029 double DeltaAngleMinor = 22.5;
1034 double DeltaAngleMajor = 45.0;
1039 double DeltaAngleRadialAxes = 45.0;
1045 double RequestedDeltaAngleRadialAxes = 45.0;
1050 double MinimumRadius = 0.0;
1055 double MaximumRadius = 1.0;
1065 double MinimumAngle = 0.0;
1070 double MaximumAngle = 90.0;
1075 double SmallestVisiblePolarAngle = 0.5;
1111 char* PolarAxisTitle =
nullptr;
1112 char* PolarLabelFormat =
nullptr;
1118 char* RadialAngleFormat =
nullptr;
1123 bool RadialUnits =
true;
1128 bool EnableDistanceLOD =
true;
1133 double DistanceLODThreshold = 0.7;
1138 bool EnableViewAngleLOD =
true;
1144 double ViewAngleLODThreshold = 0.3;
1150 bool PolarAxisVisibility =
true;
1151 bool PolarTitleVisibility =
true;
1152 bool PolarLabelVisibility =
true;
1167 bool PolarTickVisibility =
true;
1175 bool ArcTicksOriginToPolarAxis =
true;
1183 bool RadialAxesOriginToPolarAxis =
true;
1188 bool AxisTickVisibility =
true, AxisMinorTickVisibility =
false;
1193 bool AxisTickMatchesPolarAxes =
true;
1198 bool ArcTickVisibility =
true, ArcMinorTickVisibility =
false;
1203 bool ArcTickMatchesRadialAxes =
true;
1208 double PolarAxisMajorTickSize = 0.0, LastRadialAxisMajorTickSize = 0.0, ArcMajorTickSize = 0.0;
1213 double PolarAxisTickRatioSize = 0.3, LastAxisTickRatioSize = 0.3, ArcTickRatioSize = 0.3;
1218 double TickRatioRadiusSize = 0.02;
1223 double PolarAxisMajorTickThickness = 1.0, LastRadialAxisMajorTickThickness = 1.0,
1224 ArcMajorTickThickness = 1.0;
1229 double PolarAxisTickRatioThickness = 0.5, LastAxisTickRatioThickness = 0.5,
1230 ArcTickRatioThickness = 0.5;
1236 bool RadialAxesVisibility =
true;
1237 bool RadialTitleVisibility =
true;
1243 int RadialAxisTitleLocation = VTK_TITLE_BOTTOM;
1248 int PolarAxisTitleLocation = VTK_TITLE_BOTTOM;
1259 bool PolarArcsVisibility =
true;
1264 bool DrawRadialGridlines =
true;
1269 bool DrawPolarArcsGridlines =
true;
1332 double TitleScale = -1.0;
1337 double LabelScale = -1.0;
1342 double ScreenSize = 10.0;
1348 double PolarTitleOffset[2] = { 20.0, 10.0 }, RadialTitleOffset[2] = { 20.0, 0.0 };
1349 double PolarLabelOffset = 10.0, PolarExponentOffset = 5.0;
1353 static constexpr int VTK_MAXIMUM_NUMBER_OF_POLAR_AXES = 20;
1354 static constexpr int VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES = 50;
1355 static constexpr double VTK_MINIMUM_POLAR_ARC_RESOLUTION_PER_DEG = 0.05;
1356 static constexpr double VTK_MAXIMUM_POLAR_ARC_RESOLUTION_PER_DEG = 100.0;