59 #ifndef vtkCubeAxesActor_h 60 #define vtkCubeAxesActor_h 62 #include "vtkRenderingAnnotationModule.h" 87 virtual int RenderTranslucentGeometry(
vtkViewport*);
98 vtkGetMacro( RebuildAxes,
bool );
108 vtkSetVector6Macro(Bounds,
double);
118 virtual void GetRenderedBounds(
double rBounds[6]);
119 virtual double* GetRenderedBounds();
131 vtkSetVector2Macro( XAxisRange,
double );
132 vtkSetVector2Macro( YAxisRange,
double );
133 vtkSetVector2Macro( ZAxisRange,
double );
134 vtkGetVector2Macro( XAxisRange,
double );
135 vtkGetVector2Macro( YAxisRange,
double );
146 vtkGetVector2Macro( ZAxisRange,
double );
154 void SetScreenSize(
double screenSize);
155 vtkGetMacro(ScreenSize,
double);
163 void SetLabelOffset(
double offset);
164 vtkGetMacro(LabelOffset,
double);
172 void SetTitleOffset(
double offset);
173 vtkGetMacro(TitleOffset,
double);
187 VTK_FLY_OUTER_EDGES = 0,
188 VTK_FLY_CLOSEST_TRIAD = 1,
189 VTK_FLY_FURTHEST_TRIAD = 2,
190 VTK_FLY_STATIC_TRIAD = 3,
191 VTK_FLY_STATIC_EDGES = 4
200 vtkSetClampMacro(FlyMode,
int, VTK_FLY_OUTER_EDGES, VTK_FLY_STATIC_EDGES);
201 vtkGetMacro(FlyMode,
int);
203 {this->SetFlyMode(VTK_FLY_OUTER_EDGES);};
205 {this->SetFlyMode(VTK_FLY_CLOSEST_TRIAD);};
207 {this->SetFlyMode(VTK_FLY_FURTHEST_TRIAD);};
209 {this->SetFlyMode(VTK_FLY_STATIC_TRIAD);};
211 {this->SetFlyMode(VTK_FLY_STATIC_EDGES);};
219 vtkSetStringMacro(XTitle);
221 vtkSetStringMacro(XUnits);
223 vtkSetStringMacro(YTitle);
225 vtkSetStringMacro(YUnits);
227 vtkSetStringMacro(ZTitle);
229 vtkSetStringMacro(ZUnits);
238 vtkSetStringMacro(XLabelFormat);
240 vtkSetStringMacro(YLabelFormat);
242 vtkSetStringMacro(ZLabelFormat);
253 vtkGetMacro(Inertia,
int);
263 vtkGetMacro(CornerOffset,
double);
278 vtkGetMacro( EnableDistanceLOD,
int );
285 vtkSetClampMacro( DistanceLODThreshold,
double, 0.0, 1.0 );
286 vtkGetMacro( DistanceLODThreshold,
double);
294 vtkGetMacro( EnableViewAngleLOD,
int );
301 vtkSetClampMacro( ViewAngleLODThreshold,
double, 0., 1. );
302 vtkGetMacro( ViewAngleLODThreshold,
double );
310 vtkGetMacro(XAxisVisibility,
int);
313 vtkGetMacro(YAxisVisibility,
int);
316 vtkGetMacro(ZAxisVisibility,
int);
325 vtkGetMacro(XAxisLabelVisibility,
int);
330 vtkGetMacro(YAxisLabelVisibility,
int);
334 vtkGetMacro(ZAxisLabelVisibility,
int);
342 vtkGetMacro(XAxisTickVisibility,
int);
347 vtkGetMacro(YAxisTickVisibility,
int);
351 vtkGetMacro(ZAxisTickVisibility,
int);
359 vtkGetMacro(XAxisMinorTickVisibility,
int);
364 vtkGetMacro(YAxisMinorTickVisibility,
int);
368 vtkGetMacro(ZAxisMinorTickVisibility,
int);
372 vtkGetMacro(DrawXGridlines,
int);
376 vtkGetMacro(DrawYGridlines,
int);
380 vtkGetMacro(DrawZGridlines,
int);
384 vtkGetMacro(DrawXInnerGridlines,
int);
388 vtkGetMacro(DrawYInnerGridlines,
int);
392 vtkGetMacro(DrawZInnerGridlines,
int);
396 vtkGetMacro(DrawXGridpolys,
int);
400 vtkGetMacro(DrawYGridpolys,
int);
404 vtkGetMacro(DrawZGridpolys,
int);
445 void SetXAxesInnerGridlinesProperty(
vtkProperty *);
447 void SetYAxesInnerGridlinesProperty(
vtkProperty *);
449 void SetZAxesInnerGridlinesProperty(
vtkProperty *);
467 VTK_TICKS_INSIDE = 0,
468 VTK_TICKS_OUTSIDE = 1,
476 vtkSetClampMacro(TickLocation,
int, VTK_TICKS_INSIDE, VTK_TICKS_BOTH);
477 vtkGetMacro(TickLocation,
int);
481 { this->SetTickLocation(VTK_TICKS_INSIDE); };
483 { this->SetTickLocation(VTK_TICKS_OUTSIDE); };
485 { this->SetTickLocation(VTK_TICKS_BOTH); };
487 void SetLabelScaling(
bool,
int,
int,
int);
495 void SetUseTextActor3D(
int val );
496 int GetUseTextActor3D();
504 void SetUse2DMode(
int val );
511 void SetSaveTitlePosition(
int val );
517 vtkSetVector6Macro(OrientedBounds,
double);
518 vtkGetVector6Macro(OrientedBounds,
double);
526 vtkGetMacro(UseOrientedBounds,
int);
533 vtkSetVector3Macro(AxisBaseForX,
double);
534 vtkGetVector3Macro(AxisBaseForX,
double);
541 vtkSetVector3Macro(AxisBaseForY,
double);
542 vtkGetVector3Macro(AxisBaseForY,
double);
549 vtkSetVector3Macro(AxisBaseForZ,
double);
550 vtkGetVector3Macro(AxisBaseForZ,
double);
558 vtkSetVector3Macro(AxisOrigin,
double);
559 vtkGetVector3Macro(AxisOrigin,
double);
567 vtkGetMacro(UseAxisOrigin,
int);
575 vtkGetMacro(GridLineLocation,
int);
585 vtkGetMacro(StickyAxes,
int);
598 vtkGetMacro(CenterStickyAxes,
int);
604 VTK_GRID_LINES_ALL = 0,
605 VTK_GRID_LINES_CLOSEST = 1,
606 VTK_GRID_LINES_FURTHEST = 2
618 void ComputeStickyAxesBoundingSphere(
vtkViewport* viewport,
const double bounds[6],
619 double sphereCenter[3],
double & sphereRadius);
624 void GetViewportLimitedBounds(
vtkViewport* viewport,
double bounds[6]);
630 static void GetBoundsPointBits(
unsigned int pointIndex,
633 unsigned int & zBit);
638 static void GetBoundsPoint(
unsigned int pointIndex,
const double bounds[6],
double point[3]);
640 int LabelExponent(
double min,
double max);
642 int Digits(
double min,
double max);
644 double MaxOf(
double,
double);
645 double MaxOf(
double,
double,
double,
double);
648 double FSign(
double,
double);
649 int FRound(
double fnt );
650 int GetNumTicks(
double range,
double fxt);
659 int FindClosestAxisIndex(
double pts[8][3]);
662 int FindFurtherstAxisIndex(
double pts[8][3]);
665 void FindBoundaryEdge(
int &indexOfAxisX,
int &indexOfAxisY,
int &indexOfAxisZ,
673 void UpdateGridLineVisibility(
int axisIndex);
716 NUMBER_OF_ALIGNED_AXIS = 4
804 double RenderedBounds[6];
805 double OrientedBounds[6];
808 double AxisOrigin[3];
811 double AxisBaseForX[3];
812 double AxisBaseForY[3];
813 double AxisBaseForZ[3];
819 vtkSetStringMacro(ActualXLabel);
820 vtkSetStringMacro(ActualYLabel);
821 vtkSetStringMacro(ActualZLabel);
824 int LastUseOrientedBounds;
833 bool AutoLabelScaling;
839 double LastXRange[2];
840 double LastYRange[2];
841 double LastZRange[2];
842 double LastBounds[6];
846 int RenderAxesX[NUMBER_OF_ALIGNED_AXIS];
847 int RenderAxesY[NUMBER_OF_ALIGNED_AXIS];
848 int RenderAxesZ[NUMBER_OF_ALIGNED_AXIS];
854 bool MustAdjustXValue;
855 bool MustAdjustYValue;
856 bool MustAdjustZValue;
858 bool ForceXLabelReset;
859 bool ForceYLabelReset;
860 bool ForceZLabelReset;
862 double XAxisRange[2];
863 double YAxisRange[2];
864 double ZAxisRange[2];
878 double MajorStart[3];
879 double DeltaMajor[3];
884 void TransformBounds(
vtkViewport *viewport,
const double bounds[6],
886 void AdjustAxes(
double bounds[6],
887 double xCoords[NUMBER_OF_ALIGNED_AXIS][6],
888 double yCoords[NUMBER_OF_ALIGNED_AXIS][6],
889 double zCoords[NUMBER_OF_ALIGNED_AXIS][6],
890 double xRange[2],
double yRange[2],
double zRange[2]);
892 bool ComputeTickSize(
double bounds[6]);
893 void AdjustValues(
const double xRange[2],
894 const double yRange[2],
895 const double zRange[2]);
896 void AdjustRange(
const double bounds[6]);
899 void SetNonDependentAttributes(
void);
900 void BuildLabels(
vtkAxisActor *axes[NUMBER_OF_ALIGNED_AXIS]);
901 void AdjustTicksComputeRange(
vtkAxisActor *axes[NUMBER_OF_ALIGNED_AXIS],
902 double rangeMin,
double rangeMax);
represents an object (geometry & properties) in a rendered scene
void SetFlyModeToStaticEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
double * GetBounds() override=0
Return a reference to the Prop3D's composite transform.
abstract specification for Viewports
represent surface properties of a geometric object
double ViewAngleLODThreshold
This determines at what view angle to geometry will make the geometry not visible.
virtual int RenderOverlay(vtkViewport *)
int HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
record modification and/or execution time
Create an axis with tick marks and labels.
int StickyAxes
Flag for axes stickiness.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkProperty * YAxesGridlinesProperty
vtkProperty * ZAxesLinesProperty
int EnableViewAngleLOD
If enabled the actor will not be visible at a certain view angle.
double * GetBounds() override
Explicitly specify the region in space around which to draw the bounds.
a vtkAbstractArray subclass for strings
void SetTickLocationToInside(void)
void SetFlyModeToFurthestTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
static vtkActor * New()
Creates an actor with the following defaults: origin(0,0,0) position=(0,0,0) scale=(1,...
vtkProperty * XAxesGridpolysProperty
vtkProperty * YAxesLinesProperty
void SetFlyModeToOuterEdges()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
void ReleaseGraphicsResources(vtkWindow *) override
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.
create a plot of a bounding box edges - used for navigation
window superclass for vtkRenderWindow
vtkProperty * XAxesLinesProperty
vtkProperty * ZAxesInnerGridlinesProperty
a simple class to control print indentation
vtkProperty * ZAxesGridpolysProperty
a virtual camera for 3D rendering
int CenterStickyAxes
Flag for centering sticky axes.
int ZAxisMinorTickVisibility
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkProperty * ZAxesGridlinesProperty
represent text properties.
void SetTickLocationToOutside(void)
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void SetTickLocationToBoth(void)
int YAxisMinorTickVisibility
vtkProperty * YAxesGridpolysProperty
int XAxisMinorTickVisibility
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Support the standard render methods.
void SetFlyModeToStaticTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkProperty * YAxesInnerGridlinesProperty
vtkProperty * XAxesGridlinesProperty
void SetFlyModeToClosestTriad()
Specify a mode to control how the axes are drawn: either static, closest triad, furthest triad or out...
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
int EnableDistanceLOD
If enabled the actor will not be visible at a certain distance from the camera.
vtkProperty * XAxesInnerGridlinesProperty