95 virtual void SetPole(
double,
double,
double);
96 vtkGetVector3Macro(Pole,
double);
104 vtkSetMacro(Log,
bool);
105 vtkGetMacro(Log,
bool);
106 vtkBooleanMacro(Log,
bool);
114 vtkSetClampMacro(RequestedNumberOfRadialAxes,
vtkIdType, 0, VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES);
123 vtkSetClampMacro(RequestedNumberOfPolarAxes,
vtkIdType, 0, VTK_MAXIMUM_NUMBER_OF_POLAR_AXES);
132 vtkSetVector2Macro(Range,
double);
133 vtkGetVectorMacro(Range,
double, 2);
142 vtkGetMacro(MinimumRadius,
double);
151 vtkGetMacro(MaximumRadius,
double);
160 vtkGetMacro(MinimumAngle,
double);
169 vtkGetMacro(MaximumAngle,
double);
178 vtkSetClampMacro(SmallestVisiblePolarAngle,
double, 0., 5.);
179 vtkGetMacro(SmallestVisiblePolarAngle,
double);
190 vtkGetMacro(TickLocation,
int);
197 vtkSetMacro(RadialUnits,
bool);
198 vtkGetMacro(RadialUnits,
bool);
208 vtkSetMacro(ScreenSize,
double);
209 vtkGetMacro(ScreenSize,
double);
218 vtkSetVector2Macro(PolarTitleOffset,
double);
219 vtkGetVectorMacro(PolarTitleOffset,
double, 2);
228 vtkSetVector2Macro(RadialTitleOffset,
double);
229 vtkGetVectorMacro(RadialTitleOffset,
double, 2);
237 vtkGetMacro(PolarLabelOffset,
double);
238 vtkSetMacro(PolarLabelOffset,
double);
246 vtkGetMacro(PolarExponentOffset,
double);
247 vtkSetMacro(PolarExponentOffset,
double);
264 vtkGetMacro(PolarAxisTitle, std::string);
265 vtkSetMacro(PolarAxisTitle, std::string);
272 vtkSetStringMacro(PolarLabelFormat);
273 vtkGetStringMacro(PolarLabelFormat);
298 vtkSetStringMacro(RadialAngleFormat);
299 vtkGetStringMacro(RadialAngleFormat);
314 vtkSetMacro(EnableDistanceLOD,
bool);
315 vtkGetMacro(EnableDistanceLOD,
bool);
323 vtkSetClampMacro(DistanceLODThreshold,
double, 0.0, 1.0);
324 vtkGetMacro(DistanceLODThreshold,
double);
332 vtkSetMacro(EnableViewAngleLOD,
bool);
333 vtkGetMacro(EnableViewAngleLOD,
bool);
341 vtkSetClampMacro(ViewAngleLODThreshold,
double, 0., 1.);
342 vtkGetMacro(ViewAngleLODThreshold,
double);
350 vtkSetMacro(PolarAxisVisibility,
bool);
351 vtkGetMacro(PolarAxisVisibility,
bool);
352 vtkBooleanMacro(PolarAxisVisibility,
bool);
360 vtkSetMacro(DrawRadialGridlines,
bool);
361 vtkGetMacro(DrawRadialGridlines,
bool);
362 vtkBooleanMacro(DrawRadialGridlines,
bool);
370 vtkSetMacro(DrawPolarArcsGridlines,
bool);
371 vtkGetMacro(DrawPolarArcsGridlines,
bool);
372 vtkBooleanMacro(DrawPolarArcsGridlines,
bool);
380 vtkSetMacro(PolarTitleVisibility,
bool);
381 vtkGetMacro(PolarTitleVisibility,
bool);
382 vtkBooleanMacro(PolarTitleVisibility,
bool);
398 vtkGetMacro(RadialAxisTitleLocation,
int);
408 vtkGetMacro(PolarAxisTitleLocation,
int);
416 vtkSetMacro(PolarLabelVisibility,
bool);
417 vtkGetMacro(PolarLabelVisibility,
bool);
418 vtkBooleanMacro(PolarLabelVisibility,
bool);
428 vtkSetMacro(ArcTicksOriginToPolarAxis,
bool);
429 vtkGetMacro(ArcTicksOriginToPolarAxis,
bool);
430 vtkBooleanMacro(ArcTicksOriginToPolarAxis,
bool);
440 vtkSetMacro(RadialAxesOriginToPolarAxis,
bool);
441 vtkGetMacro(RadialAxesOriginToPolarAxis,
bool);
442 vtkBooleanMacro(RadialAxesOriginToPolarAxis,
bool);
450 vtkSetMacro(PolarTickVisibility,
bool);
451 vtkGetMacro(PolarTickVisibility,
bool);
452 vtkBooleanMacro(PolarTickVisibility,
bool);
460 vtkSetMacro(AxisTickVisibility,
bool);
461 vtkGetMacro(AxisTickVisibility,
bool);
462 vtkBooleanMacro(AxisTickVisibility,
bool);
470 vtkSetMacro(AxisMinorTickVisibility,
bool);
471 vtkGetMacro(AxisMinorTickVisibility,
bool);
472 vtkBooleanMacro(AxisMinorTickVisibility,
bool);
480 vtkSetMacro(AxisTickMatchesPolarAxes,
bool);
481 vtkGetMacro(AxisTickMatchesPolarAxes,
bool);
482 vtkBooleanMacro(AxisTickMatchesPolarAxes,
bool);
490 vtkSetMacro(ArcTickVisibility,
bool);
491 vtkGetMacro(ArcTickVisibility,
bool);
492 vtkBooleanMacro(ArcTickVisibility,
bool);
500 vtkSetMacro(ArcMinorTickVisibility,
bool);
501 vtkGetMacro(ArcMinorTickVisibility,
bool);
502 vtkBooleanMacro(ArcMinorTickVisibility,
bool);
510 vtkSetMacro(ArcTickMatchesRadialAxes,
bool);
511 vtkGetMacro(ArcTickMatchesRadialAxes,
bool);
512 vtkBooleanMacro(ArcTickMatchesRadialAxes,
bool);
521 vtkSetMacro(ArcMajorTickSize,
double);
522 vtkGetMacro(ArcMajorTickSize,
double);
531 vtkSetMacro(PolarAxisMajorTickSize,
double);
532 vtkGetMacro(PolarAxisMajorTickSize,
double);
541 vtkSetMacro(LastRadialAxisMajorTickSize,
double);
542 vtkGetMacro(LastRadialAxisMajorTickSize,
double);
550 vtkSetMacro(PolarAxisTickRatioSize,
double);
551 vtkGetMacro(PolarAxisTickRatioSize,
double);
559 vtkSetMacro(LastAxisTickRatioSize,
double);
560 vtkGetMacro(LastAxisTickRatioSize,
double);
568 vtkSetMacro(ArcTickRatioSize,
double);
569 vtkGetMacro(ArcTickRatioSize,
double);
577 vtkSetMacro(TickRatioRadiusSize,
double);
578 vtkGetMacro(TickRatioRadiusSize,
double);
586 vtkSetMacro(PolarAxisMajorTickThickness,
double);
587 vtkGetMacro(PolarAxisMajorTickThickness,
double);
595 vtkSetMacro(LastRadialAxisMajorTickThickness,
double);
596 vtkGetMacro(LastRadialAxisMajorTickThickness,
double);
604 vtkSetMacro(ArcMajorTickThickness,
double);
605 vtkGetMacro(ArcMajorTickThickness,
double);
613 vtkSetMacro(PolarAxisTickRatioThickness,
double);
614 vtkGetMacro(PolarAxisTickRatioThickness,
double);
622 vtkSetMacro(LastAxisTickRatioThickness,
double);
623 vtkGetMacro(LastAxisTickRatioThickness,
double);
631 vtkSetMacro(ArcTickRatioThickness,
double);
632 vtkGetMacro(ArcTickRatioThickness,
double);
640 vtkSetMacro(DeltaRangeMajor,
double);
641 vtkGetMacro(DeltaRangeMajor,
double);
649 vtkSetMacro(DeltaRangeMinor,
double);
650 vtkGetMacro(DeltaRangeMinor,
double);
659 vtkSetMacro(RequestedDeltaRangePolarAxes,
double);
660 vtkGetMacro(RequestedDeltaRangePolarAxes,
double);
668 vtkSetMacro(DeltaAngleMajor,
double);
669 vtkGetMacro(DeltaAngleMajor,
double);
677 vtkSetMacro(DeltaAngleMinor,
double);
678 vtkGetMacro(DeltaAngleMinor,
double);
687 vtkSetMacro(RequestedDeltaAngleRadialAxes,
double);
688 vtkGetMacro(RequestedDeltaAngleRadialAxes,
double);
698 vtkSetMacro(RadialAxesVisibility,
bool);
699 vtkGetMacro(RadialAxesVisibility,
bool);
700 vtkBooleanMacro(RadialAxesVisibility,
bool);
708 vtkSetMacro(RadialTitleVisibility,
bool);
709 vtkGetMacro(RadialTitleVisibility,
bool);
710 vtkBooleanMacro(RadialTitleVisibility,
bool);
718 vtkSetMacro(PolarArcsVisibility,
bool);
719 vtkGetMacro(PolarArcsVisibility,
bool);
720 vtkBooleanMacro(PolarArcsVisibility,
bool);
821 double& xmin,
double& xmax,
double& ymin,
double& ymax,
double& zmin,
double& zmax);
833 vtkSetClampMacro(Ratio,
double, 0.001, 100.0);
834 vtkGetMacro(Ratio,
double);
842 vtkSetClampMacro(PolarArcResolutionPerDegree,
double, VTK_MINIMUM_POLAR_ARC_RESOLUTION_PER_DEG,
843 VTK_MAXIMUM_POLAR_ARC_RESOLUTION_PER_DEG);
844 vtkGetMacro(PolarArcResolutionPerDegree,
double);
904 double a,
double angleEllipseRad,
double tickSize,
vtkPoints* tickPts);
967 double Pole[3] = { 0.0, 0.0, 0.0 };
972 int NumberOfRadialAxes = 0;
978 int RequestedNumberOfRadialAxes = 0;
983 int NumberOfPolarAxes = 5;
989 int RequestedNumberOfPolarAxes = 5;
999 double PolarArcResolutionPerDegree = 0.2;
1004 double Range[2] = { 0.0, 10.0 };
1009 double DeltaRangeMinor = 0.5;
1014 double DeltaRangeMajor = 1.0;
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;
1079 vtkNew<vtkPolyData> PolarArcs;
1080 vtkNew<vtkPolyDataMapper> PolarArcsMapper;
1081 vtkNew<vtkActor> PolarArcsActor;
1087 vtkNew<vtkPolyData> SecondaryPolarArcs;
1088 vtkNew<vtkPolyDataMapper> SecondaryPolarArcsMapper;
1089 vtkNew<vtkActor> SecondaryPolarArcsActor;
1095 vtkSmartPointer<vtkCamera> Camera;
1100 vtkNew<vtkAxisActor> PolarAxis;
1105 std::vector<vtkSmartPointer<vtkAxisActor>> RadialAxes;
1112 std::string PolarAxisTitle =
"Radial Distance";
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;
1255 int ExponentLocation = VTK_EXPONENT_LABELS;
1260 bool PolarArcsVisibility =
true;
1265 bool DrawRadialGridlines =
true;
1270 bool DrawPolarArcsGridlines =
true;
1275 vtkNew<vtkPoints> ArcMajorTickPts;
1280 vtkNew<vtkPoints> ArcMinorTickPts;
1286 vtkNew<vtkPolyData> ArcTickPolyData;
1287 vtkNew<vtkPolyData> ArcMinorTickPolyData;
1288 vtkNew<vtkPolyDataMapper> ArcTickPolyDataMapper;
1289 vtkNew<vtkPolyDataMapper> ArcMinorTickPolyDataMapper;
1290 vtkNew<vtkActor> ArcTickActor;
1291 vtkNew<vtkActor> ArcMinorTickActor;
1298 vtkSmartPointer<vtkTextProperty> PolarAxisTitleTextProperty;
1299 vtkSmartPointer<vtkTextProperty> PolarAxisLabelTextProperty;
1305 vtkSmartPointer<vtkTextProperty> LastRadialAxisTextProperty;
1310 vtkSmartPointer<vtkTextProperty> SecondaryRadialAxesTextProperty;
1316 vtkSmartPointer<vtkProperty> PolarAxisProperty;
1321 vtkSmartPointer<vtkProperty> LastRadialAxisProperty;
1326 vtkSmartPointer<vtkProperty> SecondaryRadialAxesProperty;
1328 vtkTimeStamp BuildTime;
1333 double ScreenSize = 10.0;
1339 double PolarTitleOffset[2] = { 20.0, 10.0 }, RadialTitleOffset[2] = { 20.0, 0.0 };
1340 double PolarLabelOffset = 10.0, PolarExponentOffset = 5.0;
1343 static constexpr int VTK_MAXIMUM_NUMBER_OF_POLAR_AXES = 20;
1344 static constexpr int VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES = 50;
1345 static constexpr double VTK_MINIMUM_POLAR_ARC_RESOLUTION_PER_DEG = 0.05;
1346 static constexpr double VTK_MAXIMUM_POLAR_ARC_RESOLUTION_PER_DEG = 100.0;
1348 vtkPolarAxesActor(
const vtkPolarAxesActor&) =
delete;
1349 void operator=(
const vtkPolarAxesActor&) =
delete;