86#ifndef vtkAxisActor2D_h
87#define vtkAxisActor2D_h
90#include "vtkRenderingAnnotationModule.h"
95VTK_ABI_NAMESPACE_BEGIN
144 vtkSetVector2Macro(Range,
double);
145 vtkGetVectorMacro(Range,
double, 2);
168 vtkGetMacro(RulerDistance,
double);
182 vtkSetClampMacro(NumberOfLabels,
int, 2, VTK_MAX_LABELS);
183 vtkGetMacro(NumberOfLabels,
int);
192 vtkGetMacro(Precision,
int);
203 vtkSetClampMacro(Notation,
int, 0, 2);
204 vtkGetMacro(Notation,
int);
212 vtkSetStringMacro(LabelFormat);
213 vtkGetStringMacro(LabelFormat);
232 vtkSetMacro(SnapLabelsToGrid,
bool);
233 vtkGetMacro(SnapLabelsToGrid,
bool);
234 vtkBooleanMacro(SnapLabelsToGrid,
bool);
264 vtkSetMacro(SkipFirstTick,
bool);
265 vtkGetMacro(SkipFirstTick,
bool);
266 vtkBooleanMacro(SkipFirstTick,
bool);
276 this->UpdateAdjustedRange();
277 return this->AdjustedRange;
281 this->UpdateAdjustedRange();
282 _arg1 = this->AdjustedRange[0];
283 _arg2 = this->AdjustedRange[1];
293 this->UpdateAdjustedRange();
294 return this->AdjustedNumberOfLabels;
306 vtkSetStringMacro(Title);
307 vtkGetStringMacro(Title);
331 vtkSetClampMacro(TickLength,
int, 0, 100);
332 vtkGetMacro(TickLength,
int);
340 vtkSetClampMacro(NumberOfMinorTicks,
int, 0, 20);
341 vtkGetMacro(NumberOfMinorTicks,
int);
349 vtkSetClampMacro(MinorTickLength,
int, 0, 100);
350 vtkGetMacro(MinorTickLength,
int);
359 vtkSetClampMacro(TickOffset,
int, 0, 100);
360 vtkGetMacro(TickOffset,
int);
404 vtkSetMacro(TitlePosition,
double);
405 vtkGetMacro(TitlePosition,
double);
414 vtkSetClampMacro(FontFactor,
double, 0.1, 2.0);
415 vtkGetMacro(FontFactor,
double);
423 vtkSetClampMacro(LabelFactor,
double, 0.1, 2.0);
424 vtkGetMacro(LabelFactor,
double);
470 double inRange[2],
double outRange[2],
int inNumTicks,
int& outNumTicks,
double& interval);
481 int nbOfMappers,
int* targetSize,
double factor,
int* stringSize);
518 double Range[2] = { 0., 1. };
519 double TitlePosition = 0.5;
521 double RulerDistance = 1.;
522 int NumberOfLabels = 5;
524 double FontFactor = 1.;
525 double LabelFactor = 0.75;
527 int MinorTickLength = 3;
529 int NumberOfMinorTicks = 0;
531 double AdjustedRange[2];
532 int AdjustedNumberOfLabels = 5;
533 int NumberOfLabelsBuilt = 0;
544 int LastPosition[2] = { 0, 0 };
545 int LastPosition2[2] = { 0, 0 };
547 int LastSize[2] = { 0, 0 };
548 int LastMaxLabelSize[2] = { 0, 0 };
550 int SizeFontRelativeToAxis = 0;
569 void ShiftPosition(
double start[3],
double textAngle,
int stringWidth,
int stringHeight,
570 int offset,
int finalPos[2]);
594 bool PositionsChangedOrViewportResized(
vtkViewport* viewport);
608 void UpdateTicksValueAndPosition(
vtkViewport* viewport);
633 void UpdateCachedInformations(
vtkViewport* viewport);
638 double GetViewportRulerDistance(
vtkViewport* viewport);
643 double GetViewportAxisLength(
vtkViewport* viewport);
649 void SetTitleFontSize(
vtkViewport* viewport,
int box[2]);
652 std::vector<double> NormalizedTickPositions;
653 std::vector<double> TickValues;
655 bool SnapLabelsToGrid =
false;
657 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