VTK
vtkAxisActor2D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAxisActor2D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
58 #ifndef vtkAxisActor2D_h
59 #define vtkAxisActor2D_h
60 
61 #include "vtkRenderingAnnotationModule.h" // For export macro
62 #include "vtkActor2D.h"
63 
65 class vtkPolyData;
66 class vtkTextMapper;
67 class vtkTextProperty;
68 
69 class VTKRENDERINGANNOTATION_EXPORT vtkAxisActor2D : public vtkActor2D
70 {
71 public:
72  vtkTypeMacro(vtkAxisActor2D,vtkActor2D);
73  void PrintSelf(ostream& os, vtkIndent indent) override;
74 
78  static vtkAxisActor2D *New();
79 
81 
86  { return this->GetPositionCoordinate(); };
87  virtual void SetPoint1(double x[2]) { this->SetPosition(x); };
88  virtual void SetPoint1(double x, double y) { this->SetPosition(x,y); };
89  virtual double *GetPoint1() { return this->GetPosition(); };
91 
93 
100  { return this->GetPosition2Coordinate(); };
101  virtual void SetPoint2(double x[2]) { this->SetPosition2(x); };
102  virtual void SetPoint2(double x, double y) { this->SetPosition2(x,y); };
103  virtual double *GetPoint2() { return this->GetPosition2(); };
105 
107 
111  vtkSetVector2Macro(Range,double);
112  vtkGetVectorMacro(Range,double,2);
114 
116 
121  vtkSetMacro(RulerMode,vtkTypeBool);
122  vtkGetMacro(RulerMode,vtkTypeBool);
123  vtkBooleanMacro(RulerMode,vtkTypeBool);
125 
127 
131  vtkSetClampMacro(RulerDistance,double,0,VTK_FLOAT_MAX);
132  vtkGetMacro(RulerDistance,double);
134 
135  enum LabelMax
136  {
137  VTK_MAX_LABELS = 25
138  };
139 
141 
146  vtkSetClampMacro(NumberOfLabels, int, 2, VTK_MAX_LABELS);
147  vtkGetMacro(NumberOfLabels, int);
149 
151 
155  vtkSetStringMacro(LabelFormat);
156  vtkGetStringMacro(LabelFormat);
158 
160 
168  vtkSetMacro(AdjustLabels, vtkTypeBool);
169  vtkGetMacro(AdjustLabels, vtkTypeBool);
170  vtkBooleanMacro(AdjustLabels, vtkTypeBool);
171  virtual double *GetAdjustedRange()
172  {
173  this->UpdateAdjustedRange();
174  return this->AdjustedRange;
175  }
176  virtual void GetAdjustedRange(double &_arg1, double &_arg2)
177  {
178  this->UpdateAdjustedRange();
179  _arg1 = this->AdjustedRange[0];
180  _arg2 = this->AdjustedRange[1];
181  };
182  virtual void GetAdjustedRange(double _arg[2])
183  {
184  this->GetAdjustedRange(_arg[0], _arg[1]);
185  }
187  {
188  this->UpdateAdjustedRange();
189  return this->AdjustedNumberOfLabels;
190  }
192 
194 
197  vtkSetStringMacro(Title);
198  vtkGetStringMacro(Title);
200 
202 
205  virtual void SetTitleTextProperty(vtkTextProperty *p);
206  vtkGetObjectMacro(TitleTextProperty,vtkTextProperty);
208 
210 
213  virtual void SetLabelTextProperty(vtkTextProperty *p);
214  vtkGetObjectMacro(LabelTextProperty,vtkTextProperty);
216 
218 
222  vtkSetClampMacro(TickLength, int, 0, 100);
223  vtkGetMacro(TickLength, int);
225 
227 
231  vtkSetClampMacro(NumberOfMinorTicks, int, 0, 20);
232  vtkGetMacro(NumberOfMinorTicks, int);
234 
236 
240  vtkSetClampMacro(MinorTickLength, int, 0, 100);
241  vtkGetMacro(MinorTickLength, int);
243 
245 
250  vtkSetClampMacro(TickOffset, int, 0, 100);
251  vtkGetMacro(TickOffset, int);
253 
255 
258  vtkSetMacro(AxisVisibility, vtkTypeBool);
259  vtkGetMacro(AxisVisibility, vtkTypeBool);
260  vtkBooleanMacro(AxisVisibility, vtkTypeBool);
262 
264 
267  vtkSetMacro(TickVisibility, vtkTypeBool);
268  vtkGetMacro(TickVisibility, vtkTypeBool);
269  vtkBooleanMacro(TickVisibility, vtkTypeBool);
271 
273 
276  vtkSetMacro(LabelVisibility, vtkTypeBool);
277  vtkGetMacro(LabelVisibility, vtkTypeBool);
278  vtkBooleanMacro(LabelVisibility, vtkTypeBool);
280 
282 
285  vtkSetMacro(TitleVisibility, vtkTypeBool);
286  vtkGetMacro(TitleVisibility, vtkTypeBool);
287  vtkBooleanMacro(TitleVisibility, vtkTypeBool);
289 
291 
295  vtkSetMacro(TitlePosition, double);
296  vtkGetMacro(TitlePosition, double);
298 
300 
305  vtkSetClampMacro(FontFactor, double, 0.1, 2.0);
306  vtkGetMacro(FontFactor, double);
308 
310 
314  vtkSetClampMacro(LabelFactor, double, 0.1, 2.0);
315  vtkGetMacro(LabelFactor, double);
317 
319 
322  int RenderOverlay(vtkViewport* viewport) override;
323  int RenderOpaqueGeometry(vtkViewport* viewport) override;
326 
330  int HasTranslucentPolygonalGeometry() override;
331 
337  void ReleaseGraphicsResources(vtkWindow *) override;
338 
349  static void ComputeRange(double inRange[2],
350  double outRange[2],
351  int inNumTicks,
352  int &outNumTicks,
353  double &interval);
354 
363  static int SetMultipleFontSize(vtkViewport *viewport,
364  vtkTextMapper **textMappers,
365  int nbOfMappers,
366  int *targetSize,
367  double factor,
368  int *stringSize);
369 
371 
375  vtkSetMacro(SizeFontRelativeToAxis,vtkTypeBool);
376  vtkGetMacro(SizeFontRelativeToAxis,vtkTypeBool);
377  vtkBooleanMacro(SizeFontRelativeToAxis,vtkTypeBool);
379 
381 
386  vtkSetMacro(UseFontSizeFromProperty,vtkTypeBool);
387  vtkGetMacro(UseFontSizeFromProperty,vtkTypeBool);
388  vtkBooleanMacro(UseFontSizeFromProperty,vtkTypeBool);
390 
394  void ShallowCopy(vtkProp *prop) override;
395 
396 protected:
397  vtkAxisActor2D();
398  ~vtkAxisActor2D() override;
399 
402 
403  char *Title;
404  double Range[2];
409  char *LabelFormat;
411  double FontFactor;
412  double LabelFactor;
417 
418  double AdjustedRange[2];
421 
426 
427  int LastPosition[2];
428  int LastPosition2[2];
429 
430  int LastSize[2];
431  int LastMaxLabelSize[2];
432 
435 
436  virtual void BuildAxis(vtkViewport *viewport);
437  static double ComputeStringOffset(double width, double height, double theta);
438  static void SetOffsetPosition(double xTick[3], double theta,
439  int stringWidth, int stringHeight,
440  int offset, vtkActor2D *actor);
441  virtual void UpdateAdjustedRange();
442 
445 
448 
452 
455 
456 private:
457  vtkAxisActor2D(const vtkAxisActor2D&) = delete;
458  void operator=(const vtkAxisActor2D&) = delete;
459 };
460 
461 
462 #endif
vtkAxisActor2D::SetPoint2
virtual void SetPoint2(double x[2])
Definition: vtkAxisActor2D.h:101
vtkActor2D::SetPosition2
virtual void SetPosition2(float x[2])
vtkActor2D::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
vtkAxisActor2D::LabelFormat
char * LabelFormat
Definition: vtkAxisActor2D.h:409
vtkAxisActor2D::RulerDistance
double RulerDistance
Definition: vtkAxisActor2D.h:407
vtkAxisActor2D::AxisMapper
vtkPolyDataMapper2D * AxisMapper
Definition: vtkAxisActor2D.h:450
vtkAxisActor2D::LabelTextProperty
vtkTextProperty * LabelTextProperty
Definition: vtkAxisActor2D.h:401
vtkAxisActor2D::TitleMapper
vtkTextMapper * TitleMapper
Definition: vtkAxisActor2D.h:443
vtkPolyDataMapper2D
draw vtkPolyData onto the image plane
Definition: vtkPolyDataMapper2D.h:45
vtkAxisActor2D::RulerMode
vtkTypeBool RulerMode
Definition: vtkAxisActor2D.h:406
vtkAxisActor2D::LabelVisibility
vtkTypeBool LabelVisibility
Definition: vtkAxisActor2D.h:424
vtkAxisActor2D::GetPoint2Coordinate
virtual vtkCoordinate * GetPoint2Coordinate()
Specify the position of the second point defining the axis.
Definition: vtkAxisActor2D.h:99
vtkActor2D::GetPosition2
virtual float * GetPosition2()
vtkActor2D::GetPositionCoordinate
virtual vtkCoordinate * GetPositionCoordinate()
Get the PositionCoordinate instance of vtkCoordinate.
vtkAxisActor2D::FontFactor
double FontFactor
Definition: vtkAxisActor2D.h:411
vtkAxisActor2D::UseFontSizeFromProperty
vtkTypeBool UseFontSizeFromProperty
Definition: vtkAxisActor2D.h:434
vtkActor2D::ShallowCopy
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkActor2D.
vtkAxisActor2D::TitleActor
vtkActor2D * TitleActor
Definition: vtkAxisActor2D.h:444
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:32
vtkAxisActor2D::NumberOfLabels
int NumberOfLabels
Definition: vtkAxisActor2D.h:408
vtkActor2D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAxisActor2D::NumberOfLabelsBuilt
int NumberOfLabelsBuilt
Definition: vtkAxisActor2D.h:420
vtkAxisActor2D::AdjustedNumberOfLabels
int AdjustedNumberOfLabels
Definition: vtkAxisActor2D.h:419
vtkAxisActor2D::TickLength
int TickLength
Definition: vtkAxisActor2D.h:413
vtkAxisActor2D::SetPoint1
virtual void SetPoint1(double x, double y)
Definition: vtkAxisActor2D.h:88
vtkAxisActor2D::TickVisibility
vtkTypeBool TickVisibility
Definition: vtkAxisActor2D.h:423
vtkAxisActor2D::GetAdjustedRange
virtual double * GetAdjustedRange()
Definition: vtkAxisActor2D.h:171
vtkAxisActor2D::NumberOfMinorTicks
int NumberOfMinorTicks
Definition: vtkAxisActor2D.h:416
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkAxisActor2D::AxisVisibility
vtkTypeBool AxisVisibility
Definition: vtkAxisActor2D.h:422
vtkAxisActor2D::GetPoint1
virtual double * GetPoint1()
Definition: vtkAxisActor2D.h:89
vtkAxisActor2D::AdjustedRangeBuildTime
vtkTimeStamp AdjustedRangeBuildTime
Definition: vtkAxisActor2D.h:453
vtkActor2D::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkTextMapper
2D text annotation
Definition: vtkTextMapper.h:47
vtkAxisActor2D::TitleTextProperty
vtkTextProperty * TitleTextProperty
Definition: vtkAxisActor2D.h:400
vtkAxisActor2D::AxisActor
vtkActor2D * AxisActor
Definition: vtkAxisActor2D.h:451
vtkX3D::height
Definition: vtkX3D.h:254
vtkX3D::offset
Definition: vtkX3D.h:438
vtkActor2D::GetPosition2Coordinate
virtual vtkCoordinate * GetPosition2Coordinate()
Access the Position2 instance variable.
vtkAxisActor2D::AdjustLabels
vtkTypeBool AdjustLabels
Definition: vtkAxisActor2D.h:410
vtkActor2D::RenderOverlay
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
vtkAxisActor2D::GetAdjustedRange
virtual void GetAdjustedRange(double &_arg1, double &_arg2)
Definition: vtkAxisActor2D.h:176
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkAxisActor2D::GetAdjustedNumberOfLabels
virtual int GetAdjustedNumberOfLabels()
Definition: vtkAxisActor2D.h:186
vtkAxisActor2D::TitleVisibility
vtkTypeBool TitleVisibility
Definition: vtkAxisActor2D.h:425
vtkActor2D::HasTranslucentPolygonalGeometry
int HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
vtkCoordinate
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:75
vtkAxisActor2D::TickOffset
int TickOffset
Definition: vtkAxisActor2D.h:415
VTK_FLOAT_MAX
#define VTK_FLOAT_MAX
Definition: vtkType.h:167
vtkAxisActor2D::Axis
vtkPolyData * Axis
Definition: vtkAxisActor2D.h:449
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:44
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:33
vtkAxisActor2D::RenderTranslucentPolygonalGeometry
int RenderTranslucentPolygonalGeometry(vtkViewport *) override
Definition: vtkAxisActor2D.h:324
vtkAxisActor2D::GetPoint2
virtual double * GetPoint2()
Definition: vtkAxisActor2D.h:103
vtkActor2D::GetPosition
virtual float * GetPosition()
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:46
vtkAxisActor2D::SetPoint2
virtual void SetPoint2(double x, double y)
Definition: vtkAxisActor2D.h:102
vtkActor2D::SetPosition
virtual void SetPosition(float x[2])
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:39
vtkActor2D.h
vtkActor2D::New
static vtkActor2D * New()
Creates an actor2D with the following defaults: position (0,0) (coordinate system is viewport); at la...
vtkAxisActor2D::Title
char * Title
Definition: vtkAxisActor2D.h:403
vtkAxisActor2D::LabelMax
LabelMax
Definition: vtkAxisActor2D.h:135
vtkAxisActor2D::LabelFactor
double LabelFactor
Definition: vtkAxisActor2D.h:412
vtkAxisActor2D::SetPoint1
virtual void SetPoint1(double x[2])
Definition: vtkAxisActor2D.h:87
vtkAxisActor2D::GetAdjustedRange
virtual void GetAdjustedRange(double _arg[2])
Definition: vtkAxisActor2D.h:182
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
vtkAxisActor2D
Create an axis with tick marks and labels.
Definition: vtkAxisActor2D.h:69
vtkAxisActor2D::BuildTime
vtkTimeStamp BuildTime
Definition: vtkAxisActor2D.h:454
vtkAxisActor2D::LabelActors
vtkActor2D ** LabelActors
Definition: vtkAxisActor2D.h:447
vtkAxisActor2D::LabelMappers
vtkTextMapper ** LabelMappers
Definition: vtkAxisActor2D.h:446
vtkAxisActor2D::TitlePosition
double TitlePosition
Definition: vtkAxisActor2D.h:405
vtkAxisActor2D::SizeFontRelativeToAxis
int SizeFontRelativeToAxis
Definition: vtkAxisActor2D.h:433
vtkAxisActor2D::GetPoint1Coordinate
virtual vtkCoordinate * GetPoint1Coordinate()
Specify the position of the first point defining the axis.
Definition: vtkAxisActor2D.h:85
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkAxisActor2D::MinorTickLength
int MinorTickLength
Definition: vtkAxisActor2D.h:414