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 =========================================================================*/
60 #ifndef vtkAxisActor2D_h
61 #define vtkAxisActor2D_h
62 
63 #include "vtkRenderingAnnotationModule.h" // For export macro
64 #include "vtkActor2D.h"
65 
67 class vtkPolyData;
68 class vtkTextMapper;
69 class vtkTextProperty;
70 
71 #define VTK_MAX_LABELS 25
72 
74 {
75 public:
77  void PrintSelf(ostream& os, vtkIndent indent);
78 
80  static vtkAxisActor2D *New();
81 
83 
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 
98  { return this->GetPosition2Coordinate(); };
99  virtual void SetPoint2(double x[2]) { this->SetPosition2(x); };
100  virtual void SetPoint2(double x, double y) { this->SetPosition2(x,y); };
101  virtual double *GetPoint2() { return this->GetPosition2(); };
103 
105 
107  vtkSetVector2Macro(Range,double);
108  vtkGetVectorMacro(Range,double,2);
110 
112 
115  vtkSetMacro(RulerMode,int);
116  vtkGetMacro(RulerMode,int);
117  vtkBooleanMacro(RulerMode,int);
119 
121 
123  vtkSetClampMacro(RulerDistance,double,0,VTK_FLOAT_MAX);
124  vtkGetMacro(RulerDistance,double);
126 
128 
131  vtkSetClampMacro(NumberOfLabels, int, 2, VTK_MAX_LABELS);
132  vtkGetMacro(NumberOfLabels, int);
134 
136 
137  vtkSetStringMacro(LabelFormat);
138  vtkGetStringMacro(LabelFormat);
140 
142 
148  vtkSetMacro(AdjustLabels, int);
149  vtkGetMacro(AdjustLabels, int);
150  vtkBooleanMacro(AdjustLabels, int);
151  virtual double *GetAdjustedRange()
152  {
153  this->UpdateAdjustedRange();
154  return this->AdjustedRange;
155  }
156  virtual void GetAdjustedRange(double &_arg1, double &_arg2)
157  {
158  this->UpdateAdjustedRange();
159  _arg1 = this->AdjustedRange[0];
160  _arg2 = this->AdjustedRange[1];
161  };
162  virtual void GetAdjustedRange(double _arg[2])
163  {
164  this->GetAdjustedRange(_arg[0], _arg[1]);
165  }
167  {
168  this->UpdateAdjustedRange();
169  return this->AdjustedNumberOfLabels;
170  }
172 
174 
178 
180 
182  vtkGetObjectMacro(TitleTextProperty,vtkTextProperty);
184 
186 
188  vtkGetObjectMacro(LabelTextProperty,vtkTextProperty);
190 
192 
194  vtkSetClampMacro(TickLength, int, 0, 100);
195  vtkGetMacro(TickLength, int);
197 
199 
201  vtkSetClampMacro(NumberOfMinorTicks, int, 0, 20);
202  vtkGetMacro(NumberOfMinorTicks, int);
204 
206 
208  vtkSetClampMacro(MinorTickLength, int, 0, 100);
209  vtkGetMacro(MinorTickLength, int);
211 
213 
216  vtkSetClampMacro(TickOffset, int, 0, 100);
217  vtkGetMacro(TickOffset, int);
219 
221 
222  vtkSetMacro(AxisVisibility, int);
223  vtkGetMacro(AxisVisibility, int);
224  vtkBooleanMacro(AxisVisibility, int);
226 
228 
229  vtkSetMacro(TickVisibility, int);
230  vtkGetMacro(TickVisibility, int);
231  vtkBooleanMacro(TickVisibility, int);
233 
235 
236  vtkSetMacro(LabelVisibility, int);
237  vtkGetMacro(LabelVisibility, int);
238  vtkBooleanMacro(LabelVisibility, int);
240 
242 
243  vtkSetMacro(TitleVisibility, int);
244  vtkGetMacro(TitleVisibility, int);
245  vtkBooleanMacro(TitleVisibility, int);
247 
249 
251  vtkSetMacro(TitlePosition, double);
252  vtkGetMacro(TitlePosition, double);
254 
256 
259  vtkSetClampMacro(FontFactor, double, 0.1, 2.0);
260  vtkGetMacro(FontFactor, double);
262 
264 
266  vtkSetClampMacro(LabelFactor, double, 0.1, 2.0);
267  vtkGetMacro(LabelFactor, double);
269 
271 
272  int RenderOverlay(vtkViewport* viewport);
276 
279 
284 
286 
294  static void ComputeRange(double inRange[2],
295  double outRange[2],
296  int inNumTicks,
297  int &outNumTicks,
298  double &interval);
300 
302 
309  static int SetMultipleFontSize(vtkViewport *viewport,
310  vtkTextMapper **textMappers,
311  int nbOfMappers,
312  int *targetSize,
313  double factor,
314  int *stringSize);
316 
318 
321  vtkSetMacro(SizeFontRelativeToAxis,int);
322  vtkGetMacro(SizeFontRelativeToAxis,int);
323  vtkBooleanMacro(SizeFontRelativeToAxis,int);
325 
327  void ShallowCopy(vtkProp *prop);
328 
329 protected:
332 
335 
336  char *Title;
337  double Range[2];
342  char *LabelFormat;
344  double FontFactor;
345  double LabelFactor;
350 
351  double AdjustedRange[2];
354 
359 
360  int LastPosition[2];
361  int LastPosition2[2];
362 
363  int LastSize[2];
364  int LastMaxLabelSize[2];
365 
367 
368  virtual void BuildAxis(vtkViewport *viewport);
369  static double ComputeStringOffset(double width, double height, double theta);
370  static void SetOffsetPosition(double xTick[3], double theta,
371  int stringHeight, int stringWidth,
372  int offset, vtkActor2D *actor);
373  virtual void UpdateAdjustedRange();
374 
377 
380 
384 
387 
388 private:
389  vtkAxisActor2D(const vtkAxisActor2D&); // Not implemented.
390  void operator=(const vtkAxisActor2D&); // Not implemented.
391 };
392 
393 
394 #endif
vtkAxisActor2D::SetPoint2
virtual void SetPoint2(double x[2])
Definition: vtkAxisActor2D.h:99
vtkAxisActor2D::New
static vtkAxisActor2D * New()
vtkActor2D::SetPosition2
virtual void SetPosition2(float x[2])
vtkRenderingAnnotationModule.h
vtkAxisActor2D::LabelFormat
char * LabelFormat
Definition: vtkAxisActor2D.h:342
vtkAxisActor2D::RulerDistance
double RulerDistance
Definition: vtkAxisActor2D.h:340
vtkAxisActor2D::SetTitleTextProperty
virtual void SetTitleTextProperty(vtkTextProperty *p)
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkAxisActor2D::AxisMapper
vtkPolyDataMapper2D * AxisMapper
Definition: vtkAxisActor2D.h:382
vtkAxisActor2D::RulerMode
int RulerMode
Definition: vtkAxisActor2D.h:339
vtkAxisActor2D::LabelTextProperty
vtkTextProperty * LabelTextProperty
Definition: vtkAxisActor2D.h:334
vtkAxisActor2D::TitleMapper
vtkTextMapper * TitleMapper
Definition: vtkAxisActor2D.h:375
vtkPolyDataMapper2D
draw vtkPolyData onto the image plane
Definition: vtkPolyDataMapper2D.h:51
vtkSetVector2Macro
#define vtkSetVector2Macro(name, type)
Definition: vtkSetGet.h:254
vtkAxisActor2D::GetPoint2Coordinate
virtual vtkCoordinate * GetPoint2Coordinate()
Definition: vtkAxisActor2D.h:97
vtkAxisActor2D::~vtkAxisActor2D
~vtkAxisActor2D()
vtkActor2D::GetPosition2
virtual float * GetPosition2()
vtkActor2D::GetPositionCoordinate
virtual vtkCoordinate * GetPositionCoordinate()
VTK_MAX_LABELS
#define VTK_MAX_LABELS
Definition: vtkAxisActor2D.h:71
vtkAxisActor2D::FontFactor
double FontFactor
Definition: vtkAxisActor2D.h:344
vtkAxisActor2D::ComputeRange
static void ComputeRange(double inRange[2], double outRange[2], int inNumTicks, int &outNumTicks, double &interval)
vtkAxisActor2D::AdjustLabels
int AdjustLabels
Definition: vtkAxisActor2D.h:343
vtkAxisActor2D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkAxisActor2D::TitleActor
vtkActor2D * TitleActor
Definition: vtkAxisActor2D.h:376
vtkAxisActor2D::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport)
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkAxisActor2D::NumberOfLabels
int NumberOfLabels
Definition: vtkAxisActor2D.h:341
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkAxisActor2D::NumberOfLabelsBuilt
int NumberOfLabelsBuilt
Definition: vtkAxisActor2D.h:353
vtkAxisActor2D::AdjustedNumberOfLabels
int AdjustedNumberOfLabels
Definition: vtkAxisActor2D.h:352
vtkAxisActor2D::TickLength
int TickLength
Definition: vtkAxisActor2D.h:346
vtkAxisActor2D::SetOffsetPosition
static void SetOffsetPosition(double xTick[3], double theta, int stringHeight, int stringWidth, int offset, vtkActor2D *actor)
vtkAxisActor2D::SetPoint1
virtual void SetPoint1(double x, double y)
Definition: vtkAxisActor2D.h:88
vtkgl::x
GLint GLint GLint GLint GLint x
Definition: vtkgl.h:11318
vtkAxisActor2D::TitleVisibility
int TitleVisibility
Definition: vtkAxisActor2D.h:358
vtkAxisActor2D::UpdateAdjustedRange
virtual void UpdateAdjustedRange()
vtkAxisActor2D::GetAdjustedRange
virtual double * GetAdjustedRange()
Definition: vtkAxisActor2D.h:151
vtkGetVectorMacro
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
vtkAxisActor2D::NumberOfMinorTicks
int NumberOfMinorTicks
Definition: vtkAxisActor2D.h:349
vtkAxisActor2D::HasTranslucentPolygonalGeometry
virtual int HasTranslucentPolygonalGeometry()
vtkAxisActor2D::ComputeStringOffset
static double ComputeStringOffset(double width, double height, double theta)
vtkAxisActor2D::SetMultipleFontSize
static int SetMultipleFontSize(vtkViewport *viewport, vtkTextMapper **textMappers, int nbOfMappers, int *targetSize, double factor, int *stringSize)
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkAxisActor2D::RenderTranslucentPolygonalGeometry
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
Definition: vtkAxisActor2D.h:274
vtkAxisActor2D::GetPoint1
virtual double * GetPoint1()
Definition: vtkAxisActor2D.h:89
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkAxisActor2D::AdjustedRangeBuildTime
vtkTimeStamp AdjustedRangeBuildTime
Definition: vtkAxisActor2D.h:385
vtkTextMapper
2D text annotation
Definition: vtkTextMapper.h:53
vtkAxisActor2D::TitleTextProperty
vtkTextProperty * TitleTextProperty
Definition: vtkAxisActor2D.h:333
vtkAxisActor2D::AxisActor
vtkActor2D * AxisActor
Definition: vtkAxisActor2D.h:383
vtkActor2D::GetPosition2Coordinate
virtual vtkCoordinate * GetPosition2Coordinate()
vtkAxisActor2D::SetLabelTextProperty
virtual void SetLabelTextProperty(vtkTextProperty *p)
vtkAxisActor2D::GetAdjustedRange
virtual void GetAdjustedRange(double &_arg1, double &_arg2)
Definition: vtkAxisActor2D.h:156
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkAxisActor2D::GetAdjustedNumberOfLabels
virtual int GetAdjustedNumberOfLabels()
Definition: vtkAxisActor2D.h:166
vtkCoordinate
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems
Definition: vtkCoordinate.h:70
vtkAxisActor2D::RenderOverlay
int RenderOverlay(vtkViewport *viewport)
vtkAxisActor2D::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *)
vtkgl::offset
GLintptr offset
Definition: vtkgl.h:11844
vtkAxisActor2D::TickOffset
int TickOffset
Definition: vtkAxisActor2D.h:348
VTK_FLOAT_MAX
#define VTK_FLOAT_MAX
Definition: vtkType.h:140
vtkAxisActor2D::LabelVisibility
int LabelVisibility
Definition: vtkAxisActor2D.h:357
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkAxisActor2D::Axis
vtkPolyData * Axis
Definition: vtkAxisActor2D.h:381
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkTextProperty
represent text properties.
Definition: vtkTextProperty.h:39
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkAxisActor2D::TickVisibility
int TickVisibility
Definition: vtkAxisActor2D.h:356
vtkgl::width
GLint GLint GLsizei width
Definition: vtkgl.h:11316
vtkAxisActor2D::GetPoint2
virtual double * GetPoint2()
Definition: vtkAxisActor2D.h:101
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkActor2D::GetPosition
virtual float * GetPosition()
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:50
vtkAxisActor2D::SetPoint2
virtual void SetPoint2(double x, double y)
Definition: vtkAxisActor2D.h:100
vtkActor2D::SetPosition
virtual void SetPosition(float x[2])
vtkActor2D
a actor that draws 2D data
Definition: vtkActor2D.h:45
vtkActor2D.h
vtkgl::y
GLint GLint GLint GLint GLint GLint y
Definition: vtkgl.h:11318
vtkAxisActor2D::Title
char * Title
Definition: vtkAxisActor2D.h:336
vtkAxisActor2D::LabelFactor
double LabelFactor
Definition: vtkAxisActor2D.h:345
vtkAxisActor2D::SetPoint1
virtual void SetPoint1(double x[2])
Definition: vtkAxisActor2D.h:87
vtkAxisActor2D::GetAdjustedRange
virtual void GetAdjustedRange(double _arg[2])
Definition: vtkAxisActor2D.h:162
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkAxisActor2D
Create an axis with tick marks and labels.
Definition: vtkAxisActor2D.h:74
vtkAxisActor2D::BuildTime
vtkTimeStamp BuildTime
Definition: vtkAxisActor2D.h:386
vtkAxisActor2D::LabelActors
vtkActor2D ** LabelActors
Definition: vtkAxisActor2D.h:379
vtkAxisActor2D::LabelMappers
vtkTextMapper ** LabelMappers
Definition: vtkAxisActor2D.h:378
vtkAxisActor2D::TitlePosition
double TitlePosition
Definition: vtkAxisActor2D.h:338
vtkAxisActor2D::SizeFontRelativeToAxis
int SizeFontRelativeToAxis
Definition: vtkAxisActor2D.h:366
vtkgl::p
GLfloat GLfloat p
Definition: vtkgl.h:15717
vtkAxisActor2D::BuildAxis
virtual void BuildAxis(vtkViewport *viewport)
vtkAxisActor2D::GetPoint1Coordinate
virtual vtkCoordinate * GetPoint1Coordinate()
Definition: vtkAxisActor2D.h:85
vtkAxisActor2D::vtkAxisActor2D
vtkAxisActor2D()
vtkAxisActor2D::AxisVisibility
int AxisVisibility
Definition: vtkAxisActor2D.h:355
vtkAxisActor2D::ShallowCopy
void ShallowCopy(vtkProp *prop)
VTKRENDERINGANNOTATION_EXPORT
#define VTKRENDERINGANNOTATION_EXPORT
Definition: vtkRenderingAnnotationModule.h:15
vtkgl::height
GLint GLint GLsizei GLsizei height
Definition: vtkgl.h:11316
vtkAxisActor2D::MinorTickLength
int MinorTickLength
Definition: vtkAxisActor2D.h:347