58 #ifndef vtkCubeAxesActor_h
59 #define vtkCubeAxesActor_h
61 #define VTK_FLY_OUTER_EDGES 0
62 #define VTK_FLY_CLOSEST_TRIAD 1
63 #define VTK_FLY_FURTHEST_TRIAD 2
64 #define VTK_FLY_STATIC_TRIAD 3
65 #define VTK_FLY_STATIC_EDGES 4
67 #define VTK_TICKS_INSIDE 0
68 #define VTK_TICKS_OUTSIDE 1
69 #define VTK_TICKS_BOTH 2
71 #define VTK_GRID_LINES_ALL 0
72 #define VTK_GRID_LINES_CLOSEST 1
73 #define VTK_GRID_LINES_FURTHEST 2
75 #define NUMBER_OF_ALIGNED_AXIS 4
98 virtual int RenderTranslucentGeometry(
vtkViewport*);
106 vtkSetMacro( RebuildAxes,
bool );
107 vtkGetMacro( RebuildAxes,
bool );
115 vtkSetVector6Macro(Bounds,
double);
116 vtkGetVector6Macro(Bounds,
double);
122 virtual void GetRenderedBounds(
double rBounds[6]);
123 virtual double* GetRenderedBounds();
134 vtkSetVector2Macro( XAxisRange,
double );
135 vtkSetVector2Macro( YAxisRange,
double );
136 vtkSetVector2Macro( ZAxisRange,
double );
137 vtkGetVector2Macro( XAxisRange,
double );
138 vtkGetVector2Macro( YAxisRange,
double );
147 vtkGetVector2Macro( ZAxisRange,
double );
153 void SetScreenSize(
double screenSize);
154 vtkGetMacro(ScreenSize,
double);
160 void SetLabelOffset(
double offset);
161 vtkGetMacro(LabelOffset,
double);
167 void SetTitleOffset(
double offset);
168 vtkGetMacro(TitleOffset,
double);
183 vtkGetMacro(FlyMode,
int);
199 vtkSetStringMacro(XTitle);
200 vtkGetStringMacro(XTitle);
201 vtkSetStringMacro(XUnits);
202 vtkGetStringMacro(XUnits);
203 vtkSetStringMacro(YTitle);
204 vtkGetStringMacro(YTitle);
205 vtkSetStringMacro(YUnits);
206 vtkGetStringMacro(YUnits);
207 vtkSetStringMacro(ZTitle);
208 vtkGetStringMacro(ZTitle);
209 vtkSetStringMacro(ZUnits);
210 vtkGetStringMacro(ZUnits);
216 vtkSetStringMacro(XLabelFormat);
217 vtkGetStringMacro(XLabelFormat);
218 vtkSetStringMacro(YLabelFormat);
219 vtkGetStringMacro(YLabelFormat);
220 vtkSetStringMacro(ZLabelFormat);
221 vtkGetStringMacro(ZLabelFormat);
229 vtkGetMacro(Inertia,
int);
236 vtkSetMacro(CornerOffset,
double);
237 vtkGetMacro(CornerOffset,
double);
248 vtkSetMacro( EnableDistanceLOD,
int );
249 vtkGetMacro( EnableDistanceLOD,
int );
254 vtkSetClampMacro( DistanceLODThreshold,
double, 0.0, 1.0 );
255 vtkGetMacro( DistanceLODThreshold,
double);
261 vtkSetMacro( EnableViewAngleLOD,
int );
262 vtkGetMacro( EnableViewAngleLOD,
int );
267 vtkSetClampMacro( ViewAngleLODThreshold,
double, 0., 1. );
268 vtkGetMacro( ViewAngleLODThreshold,
double );
273 vtkSetMacro(XAxisVisibility,
int);
274 vtkGetMacro(XAxisVisibility,
int);
275 vtkBooleanMacro(XAxisVisibility,
int);
276 vtkSetMacro(YAxisVisibility,
int);
277 vtkGetMacro(YAxisVisibility,
int);
278 vtkBooleanMacro(YAxisVisibility,
int);
279 vtkSetMacro(ZAxisVisibility,
int);
280 vtkGetMacro(ZAxisVisibility,
int);
281 vtkBooleanMacro(ZAxisVisibility,
int);
286 vtkSetMacro(XAxisLabelVisibility,
int);
287 vtkGetMacro(XAxisLabelVisibility,
int);
288 vtkBooleanMacro(XAxisLabelVisibility,
int);
291 vtkSetMacro(YAxisLabelVisibility,
int);
292 vtkGetMacro(YAxisLabelVisibility,
int);
293 vtkBooleanMacro(YAxisLabelVisibility,
int);
295 vtkSetMacro(ZAxisLabelVisibility,
int);
296 vtkGetMacro(ZAxisLabelVisibility,
int);
297 vtkBooleanMacro(ZAxisLabelVisibility,
int);
301 vtkSetMacro(XAxisTickVisibility,
int);
302 vtkGetMacro(XAxisTickVisibility,
int);
303 vtkBooleanMacro(XAxisTickVisibility,
int);
306 vtkSetMacro(YAxisTickVisibility,
int);
307 vtkGetMacro(YAxisTickVisibility,
int);
308 vtkBooleanMacro(YAxisTickVisibility,
int);
310 vtkSetMacro(ZAxisTickVisibility,
int);
311 vtkGetMacro(ZAxisTickVisibility,
int);
312 vtkBooleanMacro(ZAxisTickVisibility,
int);
316 vtkSetMacro(XAxisMinorTickVisibility,
int);
317 vtkGetMacro(XAxisMinorTickVisibility,
int);
318 vtkBooleanMacro(XAxisMinorTickVisibility,
int);
321 vtkSetMacro(YAxisMinorTickVisibility,
int);
322 vtkGetMacro(YAxisMinorTickVisibility,
int);
323 vtkBooleanMacro(YAxisMinorTickVisibility,
int);
325 vtkSetMacro(ZAxisMinorTickVisibility,
int);
326 vtkGetMacro(ZAxisMinorTickVisibility,
int);
327 vtkBooleanMacro(ZAxisMinorTickVisibility,
int);
329 vtkSetMacro(DrawXGridlines,
int);
330 vtkGetMacro(DrawXGridlines,
int);
331 vtkBooleanMacro(DrawXGridlines,
int);
333 vtkSetMacro(DrawYGridlines,
int);
334 vtkGetMacro(DrawYGridlines,
int);
335 vtkBooleanMacro(DrawYGridlines,
int);
337 vtkSetMacro(DrawZGridlines,
int);
338 vtkGetMacro(DrawZGridlines,
int);
339 vtkBooleanMacro(DrawZGridlines,
int);
341 vtkSetMacro(DrawXInnerGridlines,
int);
342 vtkGetMacro(DrawXInnerGridlines,
int);
343 vtkBooleanMacro(DrawXInnerGridlines,
int);
345 vtkSetMacro(DrawYInnerGridlines,
int);
346 vtkGetMacro(DrawYInnerGridlines,
int);
347 vtkBooleanMacro(DrawYInnerGridlines,
int);
349 vtkSetMacro(DrawZInnerGridlines,
int);
350 vtkGetMacro(DrawZInnerGridlines,
int);
351 vtkBooleanMacro(DrawZInnerGridlines,
int);
353 vtkSetMacro(DrawXGridpolys,
int);
354 vtkGetMacro(DrawXGridpolys,
int);
355 vtkBooleanMacro(DrawXGridpolys,
int);
357 vtkSetMacro(DrawYGridpolys,
int);
358 vtkGetMacro(DrawYGridpolys,
int);
359 vtkBooleanMacro(DrawYGridpolys,
int);
361 vtkSetMacro(DrawZGridpolys,
int);
362 vtkGetMacro(DrawZGridpolys,
int);
363 vtkBooleanMacro(DrawZGridpolys,
int);
393 void SetXAxesInnerGridlinesProperty(
vtkProperty *);
395 void SetYAxesInnerGridlinesProperty(
vtkProperty *);
397 void SetZAxesInnerGridlinesProperty(
vtkProperty *);
414 vtkGetMacro(TickLocation,
int);
424 void SetLabelScaling(
bool,
int,
int,
int);
429 void SetUseTextActor3D(
int val );
430 int GetUseTextActor3D();
436 void SetUse2DMode(
int val );
441 void SetSaveTitlePosition(
int val );
445 vtkSetVector6Macro(OrientedBounds,
double);
446 vtkGetVector6Macro(OrientedBounds,
double);
451 vtkSetMacro(UseOrientedBounds,
int);
452 vtkGetMacro(UseOrientedBounds,
int);
457 vtkSetVector3Macro(AxisBaseForX,
double);
458 vtkGetVector3Macro(AxisBaseForX,
double);
463 vtkSetVector3Macro(AxisBaseForY,
double);
464 vtkGetVector3Macro(AxisBaseForY,
double);
469 vtkSetVector3Macro(AxisBaseForZ,
double);
470 vtkGetVector3Macro(AxisBaseForZ,
double);
476 vtkSetVector3Macro(AxisOrigin,
double);
477 vtkGetVector3Macro(AxisOrigin,
double);
482 vtkSetMacro(UseAxisOrigin,
int);
483 vtkGetMacro(UseAxisOrigin,
int);
488 vtkSetMacro(GridLineLocation,
int);
489 vtkGetMacro(GridLineLocation,
int);
496 vtkSetMacro(StickyAxes,
int);
497 vtkGetMacro(StickyAxes,
int);
498 vtkBooleanMacro(StickyAxes,
int);
506 vtkSetMacro(CenterStickyAxes,
int);
507 vtkGetMacro(CenterStickyAxes,
int);
508 vtkBooleanMacro(CenterStickyAxes,
int);
519 void ComputeStickyAxesBoundingSphere(
vtkViewport* viewport,
const double bounds[6],
520 double sphereCenter[3],
double & sphereRadius);
524 void GetViewportLimitedBounds(
vtkViewport* viewport,
double bounds[6]);
529 static void GetBoundsPointBits(
unsigned int pointIndex,
532 unsigned int & zBit);
536 static void GetBoundsPoint(
unsigned int pointIndex,
const double bounds[6],
double point[3]);
538 int LabelExponent(
double min,
double max);
540 int Digits(
double min,
double max);
542 double MaxOf(
double,
double);
543 double MaxOf(
double,
double,
double,
double);
546 double FSign(
double,
double);
547 int FRound(
double fnt );
548 int GetNumTicks(
double range,
double fxt);
559 int FindClosestAxisIndex(
double pts[8][3]);
562 int FindFurtherstAxisIndex(
double pts[8][3]);
565 void FindBoundaryEdge(
int &indexOfAxisX,
int &indexOfAxisY,
int &indexOfAxisZ,
571 void UpdateGridLineVisibility(
int axisIndex);
683 double RenderedBounds[6];
684 double OrientedBounds[6];
687 double AxisOrigin[3];
690 double AxisBaseForX[3];
691 double AxisBaseForY[3];
692 double AxisBaseForZ[3];
698 vtkSetStringMacro(ActualXLabel);
699 vtkSetStringMacro(ActualYLabel);
700 vtkSetStringMacro(ActualZLabel);
703 int LastUseOrientedBounds;
712 bool AutoLabelScaling;
718 double LastXRange[2];
719 double LastYRange[2];
720 double LastZRange[2];
721 double LastBounds[6];
733 bool MustAdjustXValue;
734 bool MustAdjustYValue;
735 bool MustAdjustZValue;
737 bool ForceXLabelReset;
738 bool ForceYLabelReset;
739 bool ForceZLabelReset;
741 double XAxisRange[2];
742 double YAxisRange[2];
743 double ZAxisRange[2];
755 double MajorStart[3];
756 double DeltaMajor[3];
761 void TransformBounds(
vtkViewport *viewport,
const double bounds[6],
763 void AdjustAxes(
double bounds[6],
765 double yCoords[NUMBER_OF_ALIGNED_AXIS][6],
766 double zCoords[NUMBER_OF_ALIGNED_AXIS][6],
767 double xRange[2],
double yRange[2],
double zRange[2]);
769 bool ComputeTickSize(
double bounds[6]);
770 void AdjustValues(
const double xRange[2],
771 const double yRange[2],
772 const double zRange[2]);
773 void AdjustRange(
const double bounds[6]);
776 void SetNonDependentAttributes(
void);
779 double rangeMin,
double rangeMax);
#define VTK_FLY_CLOSEST_TRIAD
#define NUMBER_OF_ALIGNED_AXIS
represents an object (geometry & properties) in a rendered scene
void SetFlyModeToStaticEdges()
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport)
abstract specification for Viewports
represent surface properties of a geometric object
double ViewAngleLODThreshold
virtual int RenderOverlay(vtkViewport *)
record modification and/or execution time
Create an axis with tick marks and labels.
#define VTK_FLY_STATIC_EDGES
vtkProperty * YAxesGridlinesProperty
vtkProperty * ZAxesLinesProperty
a vtkAbstractArray subclass for strings
void SetTickLocationToInside(void)
#define VTK_FLY_FURTHEST_TRIAD
void SetFlyModeToFurthestTriad()
vtkProperty * XAxesGridpolysProperty
vtkProperty * YAxesLinesProperty
void PrintSelf(ostream &os, vtkIndent indent)
#define VTKRENDERINGANNOTATION_EXPORT
void SetFlyModeToOuterEdges()
double DistanceLODThreshold
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
#define VTK_FLY_OUTER_EDGES
int ZAxisMinorTickVisibility
vtkProperty * ZAxesGridlinesProperty
#define VTK_FLY_STATIC_TRIAD
represent text properties.
void SetTickLocationToOutside(void)
void SetTickLocationToBoth(void)
int YAxisMinorTickVisibility
vtkProperty * YAxesGridpolysProperty
virtual int RenderOpaqueGeometry(vtkViewport *viewport)
virtual int HasTranslucentPolygonalGeometry()
int XAxisMinorTickVisibility
void SetFlyModeToStaticTriad()
vtkProperty * YAxesInnerGridlinesProperty
void ReleaseGraphicsResources(vtkWindow *)
vtkProperty * XAxesGridlinesProperty
void SetFlyModeToClosestTriad()
#define VTK_TICKS_OUTSIDE
vtkProperty * XAxesInnerGridlinesProperty