VTK
vtkPolarAxesActor.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkCubeAxesActor.h
5 Language: C++
6
7Copyright (c) 1993-2001 Ken Martin, Will Schroeder, Bill Lorensen
8All rights reserve
9 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10
11 This software is distributed WITHOUT ANY WARRANTY; without even
12 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 PURPOSE. See the above copyright notice for more information.
14=========================================================================*/
39#ifndef vtkPolarAxesActor_h
40#define vtkPolarAxesActor_h
41
42#define VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES 50
43#define VTK_DEFAULT_NUMBER_OF_RADIAL_AXES 5
44#define VTK_MAXIMUM_NUMBER_OF_POLAR_AXIS_TICKS 200
45#define VTK_MAXIMUM_RATIO 1000.0
46#define VTK_POLAR_ARC_RESOLUTION_PER_DEG 0.2
47
48#include "vtkRenderingAnnotationModule.h" // For export macro
49#include "vtkActor.h"
50#include "vtkAxisActor.h" // access to enum values
51#include <list> // To process exponent list as reference
52
53class vtkCamera;
54class vtkPolyData;
56class vtkProperty;
57class vtkStringArray;
58class vtkTextProperty;
59
60class VTKRENDERINGANNOTATION_EXPORT vtkPolarAxesActor : public vtkActor
61{
62public:
64 void PrintSelf(ostream& os, vtkIndent indent);
65
71
73
80
82
85 virtual void SetPole(double[3]);
86 virtual void SetPole(double, double, double);
87 vtkGetVector3Macro(Pole, double);
89
91
95 vtkSetMacro(Log, bool);
96 vtkGetMacro(Log, bool);
97 vtkBooleanMacro(Log, bool);
99
101
105 vtkGetMacro(NumberOfRadialAxes, vtkIdType);
107
109
113 virtual void SetNumberOfPolarAxisTicks(int);
116
118
122 vtkSetMacro(AutoSubdividePolarAxis, bool);
123 vtkGetMacro(AutoSubdividePolarAxis, bool);
124 vtkBooleanMacro(AutoSubdividePolarAxis, bool);
126
128
131 vtkSetVector2Macro(Range, double);
132 vtkGetVectorMacro(Range, double, 2);
134
136
139 virtual void SetMinimumRadius(double);
140 vtkGetMacro(MinimumRadius, double);
142
144
147 virtual void SetMaximumRadius(double);
148 vtkGetMacro(MaximumRadius, double);
150
152
156 vtkSetMacro(AutoScaleRadius, bool);
157 vtkGetMacro(AutoScaleRadius, bool);
159
161
164 virtual void SetMinimumAngle(double);
165 vtkGetMacro(MinimumAngle, double);
167
169
172 virtual void SetMaximumAngle(double);
173 vtkGetMacro(MaximumAngle, double);
175
177
182 vtkSetClampMacro(SmallestVisiblePolarAngle, double, 0., 5.);
183 vtkGetMacro(SmallestVisiblePolarAngle, double);
185
187
193 vtkGetMacro(TickLocation, int);
195
197
200 vtkSetMacro(RadialUnits, bool);
201 vtkGetMacro(RadialUnits, bool);
203
205
211 vtkSetMacro(ScreenSize, double);
212 vtkGetMacro(ScreenSize, double);
214
216
220 virtual void SetCamera(vtkCamera*);
221 vtkGetObjectMacro(Camera, vtkCamera);
223
225
229 vtkSetStringMacro(PolarAxisTitle);
230 vtkGetStringMacro(PolarAxisTitle);
232
234
237 vtkSetStringMacro(PolarLabelFormat);
238 vtkGetStringMacro(PolarLabelFormat);
240
242 {
243 VTK_EXPONENT_BOTTOM = 0,
244 VTK_EXPONENT_EXTERN = 1,
245 VTK_EXPONENT_LABELS = 2
246 };
247
249
254 vtkSetClampMacro(ExponentLocation, int, VTK_EXPONENT_BOTTOM, VTK_EXPONENT_LABELS);
255 vtkGetMacro(ExponentLocation, int);
257
259
262 vtkSetStringMacro(RadialAngleFormat);
263 vtkGetStringMacro(RadialAngleFormat);
265
272
274
277 vtkSetMacro(EnableDistanceLOD, int);
278 vtkGetMacro(EnableDistanceLOD, int);
280
282
285 vtkSetClampMacro(DistanceLODThreshold, double, 0.0, 1.0);
286 vtkGetMacro(DistanceLODThreshold, double);
288
290
293 vtkSetMacro(EnableViewAngleLOD, int);
294 vtkGetMacro(EnableViewAngleLOD, int);
296
298
301 vtkSetClampMacro(ViewAngleLODThreshold, double, 0., 1.);
302 vtkGetMacro(ViewAngleLODThreshold, double);
304
306
309 vtkSetMacro(PolarAxisVisibility, int);
310 vtkGetMacro(PolarAxisVisibility, int);
311 vtkBooleanMacro(PolarAxisVisibility, int);
313
315
318 vtkSetMacro(DrawRadialGridlines, int);
319 vtkGetMacro(DrawRadialGridlines, int);
320 vtkBooleanMacro(DrawRadialGridlines, int);
322
324
327 vtkSetMacro(DrawPolarArcsGridlines, int);
328 vtkGetMacro(DrawPolarArcsGridlines, int);
329 vtkBooleanMacro(DrawPolarArcsGridlines, int);
331
333
336 vtkSetMacro(PolarTitleVisibility, int);
337 vtkGetMacro(PolarTitleVisibility, int);
338 vtkBooleanMacro(PolarTitleVisibility, int);
340
342 {
343 VTK_TITLE_BOTTOM = 0,
344 VTK_TITLE_EXTERN = 1
345 };
346
348
352 vtkSetClampMacro(RadialAxisTitleLocation, int, VTK_TITLE_BOTTOM, VTK_TITLE_EXTERN);
353 vtkGetMacro(RadialAxisTitleLocation, int);
355
357
361 vtkSetClampMacro(PolarAxisTitleLocation, int, VTK_TITLE_BOTTOM, VTK_TITLE_EXTERN);
362 vtkGetMacro(PolarAxisTitleLocation, int);
364
366
369 vtkSetMacro(PolarLabelVisibility, int);
370 vtkGetMacro(PolarLabelVisibility, int);
371 vtkBooleanMacro(PolarLabelVisibility, int);
373
375
380 vtkSetMacro(ArcTicksOriginToPolarAxis, int);
381 vtkGetMacro(ArcTicksOriginToPolarAxis, int);
382 vtkBooleanMacro(ArcTicksOriginToPolarAxis, int);
384
386
391 vtkSetMacro(RadialAxesOriginToPolarAxis, int);
392 vtkGetMacro(RadialAxesOriginToPolarAxis, int);
393 vtkBooleanMacro(RadialAxesOriginToPolarAxis, int);
395
397
400 vtkSetMacro(PolarTickVisibility, int);
401 vtkGetMacro(PolarTickVisibility, int);
402 vtkBooleanMacro(PolarTickVisibility, int);
404
406
409 vtkSetMacro(AxisTickVisibility, int);
410 vtkGetMacro(AxisTickVisibility, int);
411 vtkBooleanMacro(AxisTickVisibility, int);
413
415
418 vtkSetMacro(AxisMinorTickVisibility, int);
419 vtkGetMacro(AxisMinorTickVisibility, int);
420 vtkBooleanMacro(AxisMinorTickVisibility, int);
422
424
427 vtkSetMacro(ArcTickVisibility, int);
428 vtkGetMacro(ArcTickVisibility, int);
429 vtkBooleanMacro(ArcTickVisibility, int);
431
433
436 vtkSetMacro(ArcMinorTickVisibility, int);
437 vtkGetMacro(ArcMinorTickVisibility, int);
438 vtkBooleanMacro(ArcMinorTickVisibility, int);
440
442
445 vtkSetMacro(ArcMajorTickSize, double);
446 vtkGetMacro(ArcMajorTickSize, double);
448
450
453 vtkSetMacro(PolarAxisMajorTickSize, double);
454 vtkGetMacro(PolarAxisMajorTickSize, double);
456
458
461 vtkSetMacro(LastRadialAxisMajorTickSize, double);
462 vtkGetMacro(LastRadialAxisMajorTickSize, double);
464
466
469 vtkSetMacro(PolarAxisTickRatioSize, double);
470 vtkGetMacro(PolarAxisTickRatioSize, double);
472
474
477 vtkSetMacro(LastAxisTickRatioSize, double);
478 vtkGetMacro(LastAxisTickRatioSize, double);
480
482
485 vtkSetMacro(ArcTickRatioSize, double);
486 vtkGetMacro(ArcTickRatioSize, double);
488
490
493 vtkSetMacro(PolarAxisMajorTickThickness, double);
494 vtkGetMacro(PolarAxisMajorTickThickness, double);
496
498
501 vtkSetMacro(LastRadialAxisMajorTickThickness, double);
502 vtkGetMacro(LastRadialAxisMajorTickThickness, double);
504
506
509 vtkSetMacro(ArcMajorTickThickness, double);
510 vtkGetMacro(ArcMajorTickThickness, double);
512
514
517 vtkSetMacro(PolarAxisTickRatioThickness, double);
518 vtkGetMacro(PolarAxisTickRatioThickness, double);
520
522
525 vtkSetMacro(LastAxisTickRatioThickness, double);
526 vtkGetMacro(LastAxisTickRatioThickness, double);
528
530
533 vtkSetMacro(ArcTickRatioThickness, double);
534 vtkGetMacro(ArcTickRatioThickness, double);
536
538
541 vtkSetMacro(DeltaRangeMajor, double);
542 vtkGetMacro(DeltaRangeMajor, double);
544
546
549 vtkSetMacro(DeltaRangeMinor, double);
550 vtkGetMacro(DeltaRangeMinor, double);
552
554
557 vtkSetMacro(DeltaAngleMajor, double);
558 vtkGetMacro(DeltaAngleMajor, double);
560
562
565 vtkSetMacro(DeltaAngleMinor, double);
566 vtkGetMacro(DeltaAngleMinor, double);
568
570
573 vtkSetMacro(DeltaAngleRadialAxes, double);
574 vtkGetMacro(DeltaAngleRadialAxes, double);
576
577 //------------------------------------------------
578
580
583 vtkSetMacro(RadialAxesVisibility, int);
584 vtkGetMacro(RadialAxesVisibility, int);
585 vtkBooleanMacro(RadialAxesVisibility, int);
587
589
592 vtkSetMacro(RadialTitleVisibility, int);
593 vtkGetMacro(RadialTitleVisibility, int);
594 vtkBooleanMacro(RadialTitleVisibility, int);
596
598
601 vtkSetMacro(PolarArcsVisibility, int);
602 vtkGetMacro(PolarArcsVisibility, int);
603 vtkBooleanMacro(PolarArcsVisibility, int);
605
607
610 void SetUse2DMode(int val);
613
615
619 vtkGetObjectMacro(PolarAxisTitleTextProperty, vtkTextProperty);
621
623
627 vtkGetObjectMacro(PolarAxisLabelTextProperty, vtkTextProperty);
629
631
635 vtkGetObjectMacro(LastRadialAxisTextProperty, vtkTextProperty);
637
639
643 vtkGetObjectMacro(SecondaryRadialAxesTextProperty, vtkTextProperty);
645
647
651 vtkGetObjectMacro(PolarAxisProperty, vtkProperty);
653
655
659 vtkGetObjectMacro(LastRadialAxisProperty, vtkProperty);
661
663
667 vtkGetObjectMacro(SecondaryRadialAxesProperty, vtkProperty);
669
671
677
679
685
687
693 vtkSetVector6Macro(Bounds, double);
694 double *GetBounds();
695 void GetBounds(double& xmin, double& xmax, double& ymin, double& ymax,
696 double& zmin, double& zmax);
697 void GetBounds(double bounds[6]);
699
701
704 vtkSetClampMacro(Ratio, double, 0.001, 100.0);
705 vtkGetMacro(Ratio, double);
707
708protected:
711
716
722
727
732
737
741 void CreateRadialAxes(int axisCount);
742
747
754
758 double ComputeIdealStep(int subDivsRequired, double rangeLength, int maxSubDivs = 1000);
759
764
768 void StoreTicksPtsFromParamEllipse(double a, double angleEllipseRad, double tickSize, vtkPoints* tickPts);
769
774
779
784
786
790 std::string FindExponentAndAdjustValues(std::list<double>& valuesList);
791
795 void GetSignificantPartFromValues(vtkStringArray* valuesStr, std::list<double>& valuesList);
796
798
801 double FFix(double);
802 double FSign(double, double);
804
809 void AutoScale(vtkViewport* viewport);
810
815 static double ComputeEllipseAngle(double angleInDegrees, double ratio);
816
821 double Pole[3];
822
827
833
837 double Ratio;
838
842 double Range[2];
843
848
853
858
863
868
874
880
885 bool Log;
886
891
897
903
908
912 double Bounds[6];
913
914 // Structures for principal polar arc
918
920
927
932
937
942
944
951
956
962
968
974
980
986
988
995
1003
1008
1015
1022
1026 int AxisTickVisibility, AxisMinorTickVisibility;
1027
1031 int ArcTickVisibility, ArcMinorTickVisibility;
1032
1036 double PolarAxisMajorTickSize, LastRadialAxisMajorTickSize, ArcMajorTickSize;
1037
1041 double PolarAxisTickRatioSize, LastAxisTickRatioSize, ArcTickRatioSize;
1042
1046 double PolarAxisMajorTickThickness, LastRadialAxisMajorTickThickness, ArcMajorTickThickness;
1047
1051 double PolarAxisTickRatioThickness, LastAxisTickRatioThickness, ArcTickRatioThickness;
1052
1054
1060
1065
1070
1076
1081
1086
1091
1096
1101
1103
1113
1115
1121
1126
1131
1137
1142
1147
1149
1154
1159
1164
1165private:
1166 vtkPolarAxesActor(const vtkPolarAxesActor&) VTK_DELETE_FUNCTION;
1167 void operator=(const vtkPolarAxesActor&) VTK_DELETE_FUNCTION;
1168};
1169
1170#endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
Create an axis with tick marks and labels.
Definition: vtkAxisActor.h:75
a virtual camera for 3D rendering
Definition: vtkCamera.h:51
a simple class to control print indentation
Definition: vtkIndent.h:40
represent and manipulate 3D points
Definition: vtkPoints.h:40
create an actor of a polar axes -
bool AutoScaleRadius
Auto-scale polar radius (with respect to average length scale of x-y bounding box).
virtual void SetCamera(vtkCamera *)
Set/Get the camera to perform scaling and translation of the vtkPolarAxesActor.
bool AutoSubdividePolarAxis
Whether the number of polar axis ticks and arcs should be automatically calculated.
virtual void SetPolarAxisProperty(vtkProperty *)
Get/Set polar axis actor properties.
void CalculateBounds()
Calculate bounds based on maximum radius and angular sector.
void GetBounds(double bounds[6])
vtkTextProperty * PolarAxisTitleTextProperty
Text properties of polar axis title and labels.
void AutoScale(vtkViewport *viewport)
Automatically rescale titles and labels NB: Current implementation only for perspective projections.
void BuildPolarArcsLog()
int DrawPolarArcsGridlines
Visibility of the inner arcs (overriden to 0 if PolarArcsVisibility is set to 0)
vtkActor * ArcMinorTickActor
virtual void SetNumberOfPolarAxisTicks(int)
Set/Get a number of ticks that one would like to display along polar axis NB: it modifies DeltaRangeM...
vtkProperty * PolarAxisProperty
General properties of polar axis Behavior may be override by polar axis ticks 's actor property.
int EnableDistanceLOD
If enabled the actor will not be visible at a certain distance from the camera.
int EnableViewAngleLOD
If enabled the actor will not be visible at a certain view angle.
vtkPoints * ArcMajorTickPts
Keep the arc major ticks vtkPoints instances.
virtual void SetLastRadialAxisTextProperty(vtkTextProperty *p)
Set/Get the last radial axis text property.
void BuildPolarAxisLabelsArcs()
Build polar axis labels and arcs with respect to specified pole.
virtual void SetLastRadialAxisProperty(vtkProperty *p)
Get/Set last radial axis actor properties.
vtkTextProperty * PolarAxisLabelTextProperty
virtual void SetSecondaryPolarArcsProperty(vtkProperty *p)
Get/Set secondary polar arcs actors property.
virtual void SetSecondaryRadialAxesProperty(vtkProperty *p)
Get/Set secondary radial axes actors properties.
double DeltaAngleMinor
Angle between 2 minor ticks on the last arc.
void StoreTicksPtsFromParamEllipse(double a, double angleEllipseRad, double tickSize, vtkPoints *tickPts)
Init tick point located on an ellipse at angleEllipseRad angle and according to "a" major radius.
double MaximumRadius
Maximum polar radius.
virtual void SetMinimumRadius(double)
Set/Get the minimal radius of the polar coordinates.
double MinimumRadius
Minimum polar radius.
double MaximumAngle
Maximum polar angle Default: 90.
static vtkPolarAxesActor * New()
Instantiate object with label format "6.3g" and the number of labels per axis set to 3.
vtkPolyData * ArcMinorTickPolyData
void GetBounds(double &xmin, double &xmax, double &ymin, double &ymax, double &zmin, double &zmax)
vtkProperty * SecondaryRadialAxesProperty
General properties of radial axes.
void GetSignificantPartFromValues(vtkStringArray *valuesStr, std::list< double > &valuesList)
Yield a string array whith the float part of each values.
int NumberOfRadialAxes
Number of radial axes.
int PolarAxisTitleLocation
Define the alignement of the title related to the polar axis.
vtkAxisActor * PolarAxis
Control variables for polar axis.
vtkTextProperty * SecondaryRadialAxesTextProperty
Text properties of secondary radial axes.
virtual void SetMinimumAngle(double)
Set/Get the minimum radius of the polar coordinates (in degrees).
vtkProperty * GetPolarArcsProperty()
double ViewAngleLODThreshold
This determines at what view angle to geometry will make the geometry not visibile.
virtual void SetPole(double[3])
Explicitly specify the coordinate of the pole.
vtkPolyData * ArcTickPolyData
vtk object for arc Ticks
double DeltaAngleRadialAxes
Angle between 2 radial Axes.
void AutoComputeTicksProperties()
Set Range and PolarAxis members value to build axis ticks this fonction doesn't actually build PolarA...
void BuildLabelsLog()
Define label values.
int PolarTickVisibility
Hold visibility for all present ticks.
bool RadialUnits
Display angle units (degrees) to label radial axes Default is true.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
int TickLocation
Describes the tick orientation for the graph elements involved by this property.
void BuildArcTicks()
Build Arc ticks.
void BuildRadialAxes()
Build requested number of radial axes with respect to specified pole.
int PolarArcsVisibility
Visibility of polar arcs.
virtual int RenderOverlay(vtkViewport *)
void CreateRadialAxes(int axisCount)
Create requested number of type X axes.
double FSign(double, double)
double ComputeIdealStep(int subDivsRequired, double rangeLength, int maxSubDivs=1000)
return a step attempting to be as rounded as possible according to input parameters
static double ComputeEllipseAngle(double angleInDegrees, double ratio)
convert section angle to an angle applied to ellipse equation.
virtual void SetPolarAxisTitleTextProperty(vtkTextProperty *p)
Set/Get the polar axis title text property.
double * GetBounds()
Get the bounds for this Prop as (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax).
int DrawRadialGridlines
Visibility of the inner axes (overriden to 0 if RadialAxesVisibility is set to 0)
bool CheckMembersConsistency()
Check consistency of vtkPolarAxesActor members.
int GetNumberOfPolarAxisTicks()
int RadialAxesOriginToPolarAxis
If On, the radial axes are drawn from the angle of the polarAxis (i.e.
void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this actor.
double DistanceLODThreshold
Default is 0.80 This determines at what fraction of camera far clip range, actor is not visible.
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
double DeltaAngleMajor
Angle between 2 major ticks on the last arc.
double DeltaRangeMinor
Step between 2 minor ticks, in range value (values displayed on the axis).
double DeltaRangeMajor
Step between 2 major ticks, in range value (values displayed on the axis).
vtkProperty * GetSecondaryPolarArcsProperty()
double TitleScale
Title scale factor.
int ArcTicksOriginToPolarAxis
If On, the ticks are drawn from the angle of the polarAxis (i.e.
int PolarAxisVisibility
Visibility of polar axis and its title, labels, ticks (major only)
vtkPolyDataMapper * ArcTickPolyDataMapper
void BuildPolarAxisLabelsArcsLog()
Build labels and arcs with log scale axis.
virtual void SetSecondaryRadialAxesTextProperty(vtkTextProperty *p)
Set/Get the secondary radial axes text property.
vtkPolyDataMapper * SecondaryPolarArcsMapper
double Ratio
Ratio for elliptical representation of the polar axes actor.
int RadialAxesVisibility
Visibility of radial axes and their titles.
vtkActor * SecondaryPolarArcsActor
vtkPolyDataMapper * ArcMinorTickPolyDataMapper
char * PolarAxisTitle
Title to be used for the polar axis NB: Non-polar radial axes use the polar angle as title and have n...
void SetCommonAxisAttributes(vtkAxisActor *)
Send attributes which are common to all axes, both polar and radial.
void SetUse2DMode(int val)
Enable/Disable labels 2D mode (always facing the camera).
virtual void SetMaximumRadius(double)
Set/Get the maximum radius of the polar coordinates.
vtkPolyData * PolarArcs
double FFix(double)
Convenience methods.
virtual void SetPole(double, double, double)
void SetPolarAxisAttributes(vtkAxisActor *)
Set properties specific to PolarAxis.
vtkAxisActor ** RadialAxes
Control variables for non-polar radial axes.
double SmallestVisiblePolarAngle
Smallest radial angle distinguishable from polar axis.
double ScreenSize
Text screen size.
vtkPolyDataMapper * PolarArcsMapper
int RadialAxisTitleLocation
Define the alignement of the title related to the radial axis.
std::string FindExponentAndAdjustValues(std::list< double > &valuesList)
Find a common exponent for label values.
virtual void SetMaximumAngle(double)
Set/Get the maximum radius of the polar coordinates (in degrees).
double LabelScale
Label scale factor.
int ExponentLocation
Define the location of the exponent of the labels values, located on the polar axis.
vtkProperty * LastRadialAxisProperty
General properties of last radial axis.
vtkPolyData * SecondaryPolarArcs
Structures for secondary polar arcs.
double MinimumAngle
Minimum polar angle Default: 0.
vtkPoints * ArcMinorTickPts
Keep the arc minor ticks vtkPoints instances.
virtual void SetPolarAxisLabelTextProperty(vtkTextProperty *p)
Set/Get the polar axis labels text property.
vtkTextProperty * LastRadialAxisTextProperty
Text properties of last radial axis.
vtkCamera * Camera
Camera attached to the polar axes system.
bool Log
Enable/Disable log scale Default: 0.
virtual void SetNumberOfRadialAxes(vtkIdType)
Gets/Sets the number of radial axes.
char * RadialAngleFormat
String to format angle values displayed on the radial axes.
virtual int RenderOpaqueGeometry(vtkViewport *)
Draw the polar axes.
void BuildAxes(vtkViewport *)
Build the axes.
virtual void SetPolarArcsProperty(vtkProperty *p)
Get/Set principal polar arc actor property.
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
represent surface properties of a geometric object
Definition: vtkProperty.h:65
a vtkAbstractArray subclass for strings
represent text properties.
record modification and/or execution time
Definition: vtkTimeStamp.h:36
abstract specification for Viewports
Definition: vtkViewport.h:48
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ string
Definition: vtkX3D.h:490
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
int vtkIdType
Definition: vtkType.h:287