67#ifndef vtkAxisActor2D_h
68#define vtkAxisActor2D_h
71#include "vtkRenderingAnnotationModule.h"
76VTK_ABI_NAMESPACE_BEGIN
125 vtkSetVector2Macro(Range,
double);
126 vtkGetVectorMacro(Range,
double, 2);
149 vtkGetMacro(RulerDistance,
double);
163 vtkSetClampMacro(NumberOfLabels,
int, 2, VTK_MAX_LABELS);
164 vtkGetMacro(NumberOfLabels,
int);
173 vtkGetMacro(Precision,
int);
184 vtkSetClampMacro(Notation,
int, 0, 2);
185 vtkGetMacro(Notation,
int);
193 vtkSetStringMacro(LabelFormat);
194 vtkGetStringMacro(LabelFormat);
213 vtkSetMacro(SnapLabelsToGrid,
bool);
214 vtkGetMacro(SnapLabelsToGrid,
bool);
215 vtkBooleanMacro(SnapLabelsToGrid,
bool);
245 vtkSetMacro(SkipFirstTick,
bool);
246 vtkGetMacro(SkipFirstTick,
bool);
247 vtkBooleanMacro(SkipFirstTick,
bool);
257 this->UpdateAdjustedRange();
258 return this->AdjustedRange;
262 this->UpdateAdjustedRange();
263 _arg1 = this->AdjustedRange[0];
264 _arg2 = this->AdjustedRange[1];
274 this->UpdateAdjustedRange();
275 return this->AdjustedNumberOfLabels;
287 vtkSetStringMacro(Title);
288 vtkGetStringMacro(Title);
312 vtkSetClampMacro(TickLength,
int, 0, 100);
313 vtkGetMacro(TickLength,
int);
321 vtkSetClampMacro(NumberOfMinorTicks,
int, 0, 20);
322 vtkGetMacro(NumberOfMinorTicks,
int);
330 vtkSetClampMacro(MinorTickLength,
int, 0, 100);
331 vtkGetMacro(MinorTickLength,
int);
340 vtkSetClampMacro(TickOffset,
int, 0, 100);
341 vtkGetMacro(TickOffset,
int);
385 vtkSetMacro(TitlePosition,
double);
386 vtkGetMacro(TitlePosition,
double);
395 vtkSetClampMacro(FontFactor,
double, 0.1, 2.0);
396 vtkGetMacro(FontFactor,
double);
404 vtkSetClampMacro(LabelFactor,
double, 0.1, 2.0);
405 vtkGetMacro(LabelFactor,
double);
451 double inRange[2],
double outRange[2],
int inNumTicks,
int& outNumTicks,
double& interval);
462 int nbOfMappers,
int* targetSize,
double factor,
int* stringSize);
499 double Range[2] = { 0., 1. };
500 double TitlePosition = 0.5;
502 double RulerDistance = 1.;
503 int NumberOfLabels = 5;
505 double FontFactor = 1.;
506 double LabelFactor = 0.75;
508 int MinorTickLength = 3;
510 int NumberOfMinorTicks = 0;
512 double AdjustedRange[2];
513 int AdjustedNumberOfLabels = 5;
514 int NumberOfLabelsBuilt = 0;
525 int LastPosition[2] = { 0, 0 };
526 int LastPosition2[2] = { 0, 0 };
528 int LastSize[2] = { 0, 0 };
529 int LastMaxLabelSize[2] = { 0, 0 };
531 int SizeFontRelativeToAxis = 0;
550 void ShiftPosition(
double start[3],
double textAngle,
int stringWidth,
int stringHeight,
551 int offset,
int finalPos[2]);
575 bool PositionsChangedOrViewportResized(
vtkViewport* viewport);
589 void UpdateTicksValueAndPosition(
vtkViewport* viewport);
614 void UpdateCachedInformations(
vtkViewport* viewport);
619 double GetViewportRulerDistance(
vtkViewport* viewport);
624 double GetViewportAxisLength(
vtkViewport* viewport);
630 void SetTitleFontSize(
vtkViewport* viewport,
int box[2]);
633 std::vector<double> NormalizedTickPositions;
634 std::vector<double> TickValues;
636 bool SnapLabelsToGrid =
false;
638 bool SkipFirstTick =
false;
a actor that draws 2D data
virtual vtkCoordinate * GetPositionCoordinate()
Get the PositionCoordinate instance of vtkCoordinate.
virtual void SetPosition2(float x[2])
Access the Position2 instance variable.
virtual void SetPosition(float x[2])
Get the PositionCoordinate instance of vtkCoordinate.
virtual vtkCoordinate * GetPosition2Coordinate()
Access the Position2 instance variable.
virtual float * GetPosition2()
Access the Position2 instance variable.
virtual float * GetPosition()
Get the PositionCoordinate instance of vtkCoordinate.
Create an axis with tick marks and labels.
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Draw the axis.
virtual void SetPoint1(double x[2])
Specify the position of the first point defining the axis.
virtual double * GetAdjustedRange()
Get the axis range adjusted for nice tick values.
static void SetOffsetPosition(double xTick[3], double theta, int stringWidth, int stringHeight, int offset, vtkActor2D *textActor)
Set the actor position according to the given parameters.
vtkNew< vtkPoints > TicksStartPos
vtkTextMapper * TitleMapper
vtkNew< vtkPolyDataMapper2D > AxisMapper
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
virtual void SetTitleTextProperty(vtkTextProperty *p)
Set/Get the title text property.
vtkActor2D ** LabelActors
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkNew< vtkActor2D > AxisActor
vtkNew< vtkPolyData > Axis
virtual void BuildAxis(vtkViewport *viewport)
static int SetMultipleFontSize(vtkViewport *viewport, vtkTextMapper **textMappers, int nbOfMappers, int *targetSize, double factor, int *stringSize)
General method to computes font size from a representative size on the viewport (given by size[2]).
vtkTextProperty * TitleTextProperty
virtual void SetPoint1(double x, double y)
Specify the position of the first point defining the axis.
int UpdateGeometryAndRenderOpaqueGeometry(vtkViewport *viewport, bool render)
Rebuild the geometry using the provided viewport, and trigger opaque geometry render only if render p...
static void ComputeRange(double inRange[2], double outRange[2], int inNumTicks, int &outNumTicks, double &interval)
This method computes the range of the axis given an input range.
void ShiftPosition(double start[3], double textAngle, int stringWidth, int stringHeight, int offset, int finalPos[2])
Get the shifted position.
virtual vtkCoordinate * GetPoint2Coordinate()
Specify the position of the second point defining the axis.
virtual vtkCoordinate * GetPoint1Coordinate()
Specify the position of the first point defining the axis.
int RenderOpaqueGeometry(vtkViewport *viewport) override
Draw the axis.
vtkTimeStamp AdjustedRangeBuildTime
virtual void GetAdjustedRange(double _arg[2])
Get the axis range adjusted for nice tick values.
vtkPoints * GetTickPositions()
Return the positions of ticks along the axis.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkTextMapper ** LabelMappers
static vtkAxisActor2D * New()
Instantiate object.
static double ComputeStringOffset(double width, double height, double theta)
int RenderOverlay(vtkViewport *viewport) override
Draw the axis.
virtual double * GetPoint1()
Specify the position of the first point defining the axis.
void ShallowCopy(vtkProp *prop) override
Shallow copy of an axis actor.
virtual void SetPoint2(double x[2])
Specify the position of the second point defining the axis.
virtual void SetLabelTextProperty(vtkTextProperty *p)
Set/Get the labels text property.
virtual double * GetPoint2()
Specify the position of the second point defining the axis.
vtkTextProperty * LabelTextProperty
virtual int GetAdjustedNumberOfLabels()
Get the number of labels.
virtual void GetAdjustedRange(double &_arg1, double &_arg2)
Get the axis range adjusted for nice tick values.
~vtkAxisActor2D() override
virtual void SetPoint2(double x, double y)
Specify the position of the second point defining the axis.
virtual void UpdateAdjustedRange()
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
a simple class to control print indentation
Allocate and hold a VTK object.
represent and manipulate 3D points
draw vtkPolyData onto the image plane
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract superclass for all actors, volumes and annotations
represent text properties.
record modification and/or execution time
abstract specification for Viewports
window superclass for vtkRenderWindow