VTK
vtkPolarAxesActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCubeAxesActor.h
5  Language: C++
6 
7 Copyright (c) 1993-2001 Ken Martin, Will Schroeder, Bill Lorensen
8 All rights reserve
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 =========================================================================*/
38 #ifndef vtkPolarAxesActor_h
39 #define vtkPolarAxesActor_h
40 
41 #define VTK_MAXIMUM_NUMBER_OF_RADIAL_AXES 50
42 #define VTK_DEFAULT_NUMBER_OF_RADIAL_AXES 5
43 #define VTK_MAXIMUM_NUMBER_OF_POLAR_AXIS_TICKS 200
44 #define VTK_POLAR_ARC_RESOLUTION_PER_DEG 0.2
45 
46 #include "vtkRenderingAnnotationModule.h" // For export macro
47 #include "vtkActor.h"
48 
49 class vtkAxisActor;
50 class vtkCamera;
51 class vtkPolyData;
52 class vtkPolyDataMapper;
53 class vtkTextProperty;
54 
56 {
57 public:
58  vtkTypeMacro(vtkPolarAxesActor,vtkActor);
59  void PrintSelf(ostream& os, vtkIndent indent);
60 
63  static vtkPolarAxesActor *New();
64 
66 
67  virtual int RenderOpaqueGeometry(vtkViewport*);
70 
72 
73  virtual void SetPole( double[3] );
74  virtual void SetPole( double, double, double );
75  vtkGetVector3Macro( Pole, double );
77 
79 
80  virtual void SetNumberOfRadialAxes( vtkIdType );
81  vtkGetMacro( NumberOfRadialAxes, vtkIdType );
83 
85 
87  vtkSetClampMacro( NumberOfPolarAxisTicks, vtkIdType, 0, VTK_MAXIMUM_NUMBER_OF_POLAR_AXIS_TICKS );
88  vtkGetMacro( NumberOfPolarAxisTicks, vtkIdType );
90 
92 
94  vtkSetMacro( AutoSubdividePolarAxis, bool );
95  vtkGetMacro( AutoSubdividePolarAxis, bool );
96  vtkBooleanMacro( AutoSubdividePolarAxis, bool );
98 
100 
101  virtual void SetMaximumRadius( double );
102  vtkGetMacro( MaximumRadius, double );
104 
106 
108  vtkSetMacro( AutoScaleRadius,bool );
109  vtkGetMacro( AutoScaleRadius,bool );
111 
113 
114  virtual void SetMinimumAngle( double );
115  vtkGetMacro( MinimumAngle, double );
117 
119 
120  virtual void SetMaximumAngle( double );
121  vtkGetMacro( MaximumAngle, double );
123 
125 
127  vtkSetClampMacro( SmallestVisiblePolarAngle, double, 0., 5. );
128  vtkGetMacro( SmallestVisiblePolarAngle, double );
130 
132 
133  vtkSetMacro( RadialUnits, bool );
134  vtkGetMacro( RadialUnits, bool );
136 
138 
141  void SetScreenSize( double screenSize );
142  vtkGetMacro( ScreenSize, double );
144 
146 
148  virtual void SetCamera(vtkCamera*);
149  vtkGetObjectMacro( Camera,vtkCamera );
151 
153 
154  vtkSetStringMacro( PolarAxisTitle );
155  vtkGetStringMacro( PolarAxisTitle );
157 
159 
160  vtkSetStringMacro( PolarLabelFormat );
161  vtkGetStringMacro( PolarLabelFormat );
163 
168 
170 
172  vtkSetMacro( EnableDistanceLOD, int );
173  vtkGetMacro( EnableDistanceLOD, int );
175 
177 
178  vtkSetClampMacro( DistanceLODThreshold, double, 0.0, 1.0 );
179  vtkGetMacro( DistanceLODThreshold, double);
181 
183 
185  vtkSetMacro( EnableViewAngleLOD, int );
186  vtkGetMacro( EnableViewAngleLOD, int );
188 
190 
191  vtkSetClampMacro( ViewAngleLODThreshold, double, 0., 1. );
192  vtkGetMacro( ViewAngleLODThreshold, double );
194 
196 
197  vtkSetMacro( PolarAxisVisibility, int );
198  vtkGetMacro( PolarAxisVisibility, int );
199  vtkBooleanMacro( PolarAxisVisibility, int );
201 
203 
204  vtkSetMacro( PolarTitleVisibility, int );
205  vtkGetMacro( PolarTitleVisibility, int );
206  vtkBooleanMacro( PolarTitleVisibility, int );
208 
210 
211  vtkSetMacro( PolarLabelVisibility, int );
212  vtkGetMacro( PolarLabelVisibility, int );
213  vtkBooleanMacro( PolarLabelVisibility, int );
215 
217 
218  vtkSetMacro( PolarTickVisibility, int );
219  vtkGetMacro( PolarTickVisibility, int );
220  vtkBooleanMacro( PolarTickVisibility, int );
222 
224 
225  vtkSetMacro( RadialAxesVisibility, int );
226  vtkGetMacro( RadialAxesVisibility, int );
227  vtkBooleanMacro( RadialAxesVisibility, int );
229 
231 
232  vtkSetMacro( RadialTitleVisibility, int );
233  vtkGetMacro( RadialTitleVisibility, int );
234  vtkBooleanMacro( RadialTitleVisibility, int );
236 
238 
239  vtkSetMacro( PolarArcsVisibility, int );
240  vtkGetMacro( PolarArcsVisibility, int );
241  vtkBooleanMacro( PolarArcsVisibility, int );
243 
245 
246  virtual void SetPolarAxisTitleTextProperty(vtkTextProperty *p);
247  vtkGetObjectMacro(PolarAxisTitleTextProperty,vtkTextProperty);
249 
251 
252  virtual void SetPolarAxisLabelTextProperty(vtkTextProperty *p);
253  vtkGetObjectMacro(PolarAxisLabelTextProperty,vtkTextProperty);
255 
257 
258  virtual void SetPolarAxisProperty(vtkProperty *);
259  vtkProperty* GetPolarAxisProperty();
261 
263 
264  virtual void SetRadialAxesProperty(vtkProperty *);
265  vtkProperty* GetRadialAxesProperty();
267 
269 
270  virtual void SetPolarArcsProperty(vtkProperty *);
271  vtkProperty* GetPolarArcsProperty();
273 
275 
279  vtkSetVector6Macro(Bounds,double);
280  double *GetBounds();
281  void GetBounds(double& xmin, double& xmax, double& ymin, double& ymax,
282  double& zmin, double& zmax);
283  void GetBounds(double bounds[6]);
285 
286 protected:
289 
291  void BuildAxes( vtkViewport * );
292 
294  void CalculateBounds();
295 
297  void SetCommonAxisAttributes( vtkAxisActor* );
298 
300  void CreateRadialAxes();
301 
303  void BuildRadialAxes();
304 
306  void BuildPolarAxisTicks( double );
307 
309  void BuildPolarAxisLabelsArcs();
310 
312 
313  double FFix(double );
314  double FSign(double, double );
316 
319  void AutoScale( vtkViewport* viewport );
320 
322  double Pole[3];
323 
326 
329 
333 
336 
340 
342  double MinimumAngle;
343 
345  double MaximumAngle;
346 
349 
351  double Bounds[6];
352 
354 
359 
362 
365 
368 
370 
375 
378 
382 
386 
390 
394 
396 
402 
404 
408 
411 
413 
415 
417 
421 
424 
427 
429 
431  double TitleScale;
432 
434  double LabelScale;
435 
438 
440  double ScreenSize;
441 
442 private:
443  vtkPolarAxesActor( const vtkPolarAxesActor& ); // Not implemented
444  void operator=( const vtkPolarAxesActor& ); // Not implemented
445 };
446 
447 
448 #endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:50
abstract specification for Viewports
Definition: vtkViewport.h:46
represent surface properties of a geometric object
Definition: vtkProperty.h:63
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
vtkPolyDataMapper * PolarArcsMapper
vtkProperty * RadialAxesProperty
#define VTK_MAXIMUM_NUMBER_OF_POLAR_AXIS_TICKS
record modification and/or execution time
Definition: vtkTimeStamp.h:34
Create an axis with tick marks and labels.
Definition: vtkAxisActor.h:90
vtkTextProperty * PolarAxisTitleTextProperty
int vtkIdType
Definition: vtkType.h:247
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
static vtkActor * New()
void PrintSelf(ostream &os, vtkIndent indent)
vtkAxisActor ** RadialAxes
#define VTKRENDERINGANNOTATION_EXPORT
vtkPolyData * PolarArcs
window superclass for vtkRenderWindow
Definition: vtkWindow.h:36
vtkProperty * PolarAxisProperty
a simple class to control print indentation
Definition: vtkIndent.h:38
a virtual camera for 3D rendering
Definition: vtkCamera.h:49
represent text properties.
double * GetBounds()
vtkTimeStamp BuildTime
map vtkPolyData to graphics primitives
vtkAxisActor * PolarAxis
virtual int RenderOpaqueGeometry(vtkViewport *viewport)
void ReleaseGraphicsResources(vtkWindow *)
vtkTextProperty * PolarAxisLabelTextProperty
create an actor of a polar axes -