vtkPVAxesActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkSMProxy.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 =========================================================================*/
25 #ifndef vtkPVAxesActor_h
26 #define vtkPVAxesActor_h
27 
28 #include "vtkProp3D.h"
29 #include "vtkRemotingViewsModule.h" // needed for export macro
30 
31 class vtkRenderer;
32 class vtkPropCollection;
33 class vtkMapper;
34 class vtkProperty;
35 class vtkActor;
36 class vtkFollower;
37 class vtkCylinderSource;
38 class vtkLineSource;
39 class vtkConeSource;
40 class vtkSphereSource;
41 class vtkPolyData;
42 class vtkVectorText;
43 
45 {
46 public:
47  static vtkPVAxesActor* New();
48  vtkTypeMacro(vtkPVAxesActor, vtkProp3D);
49  void PrintSelf(ostream& os, vtkIndent indent) override;
50 
56  void GetActors(vtkPropCollection*) override;
57 
59 
62  int RenderOpaqueGeometry(vtkViewport* viewport) override;
63  int RenderTranslucentPolygonalGeometry(vtkViewport* viewport) override;
64  int HasTranslucentPolygonalGeometry() override;
66 
70  void ShallowCopy(vtkProp* prop) override;
71 
77  void ReleaseGraphicsResources(vtkWindow*) override;
78 
80 
84  void GetBounds(double bounds[6]);
85  double* GetBounds() override;
87 
91  vtkMTimeType GetMTime() override;
92 
99  vtkMTimeType GetRedrawMTime() override;
100 
102 
105  void SetTotalLength(float v[3]) { this->SetTotalLength(v[0], v[1], v[2]); }
106  void SetTotalLength(float x, float y, float z);
107  vtkGetVectorMacro(TotalLength, float, 3);
109 
111 
114  void SetNormalizedShaftLength(float v[3]) { this->SetNormalizedShaftLength(v[0], v[1], v[2]); }
115  void SetNormalizedShaftLength(float x, float y, float z);
116  vtkGetVectorMacro(NormalizedShaftLength, float, 3);
118 
120 
123  void SetNormalizedTipLength(float v[3]) { this->SetNormalizedTipLength(v[0], v[1], v[2]); }
124  void SetNormalizedTipLength(float x, float y, float z);
125  vtkGetVectorMacro(NormalizedTipLength, float, 3);
127 
129 
132  vtkSetClampMacro(ConeResolution, int, 3, 128);
133  vtkGetMacro(ConeResolution, int);
134  vtkSetClampMacro(SphereResolution, int, 3, 128);
135  vtkGetMacro(SphereResolution, int);
136  vtkSetClampMacro(CylinderResolution, int, 3, 128);
137  vtkGetMacro(CylinderResolution, int);
139 
141 
144  vtkSetClampMacro(ConeRadius, float, 0, VTK_FLOAT_MAX);
145  vtkGetMacro(ConeRadius, float);
146  vtkSetClampMacro(SphereRadius, float, 0, VTK_FLOAT_MAX);
147  vtkGetMacro(SphereRadius, float);
148  vtkSetClampMacro(CylinderRadius, float, 0, VTK_FLOAT_MAX);
149  vtkGetMacro(CylinderRadius, float);
151 
153 
156  vtkSetClampMacro(XAxisLabelPosition, float, 0, 1);
157  vtkGetMacro(XAxisLabelPosition, float);
158  vtkSetClampMacro(YAxisLabelPosition, float, 0, 1);
159  vtkGetMacro(YAxisLabelPosition, float);
160  vtkSetClampMacro(ZAxisLabelPosition, float, 0, 1);
161  vtkGetMacro(ZAxisLabelPosition, float);
163 
167  void SetShaftType(int type);
169  void SetShaftTypeToLine() { this->SetShaftType(vtkPVAxesActor::LINE_SHAFT); }
171 
175  void SetTipType(int type);
176  void SetTipTypeToCone() { this->SetTipType(vtkPVAxesActor::CONE_TIP); }
177  void SetTipTypeToSphere() { this->SetTipType(vtkPVAxesActor::SPHERE_TIP); }
179 
181 
184  void SetUserDefinedTip(vtkPolyData*);
185  vtkGetObjectMacro(UserDefinedTip, vtkPolyData);
187 
189 
192  void SetUserDefinedShaft(vtkPolyData*);
193  vtkGetObjectMacro(UserDefinedShaft, vtkPolyData);
195 
197 
200  vtkProperty* GetXAxisTipProperty();
201  vtkProperty* GetYAxisTipProperty();
202  vtkProperty* GetZAxisTipProperty();
204 
206 
209  vtkProperty* GetXAxisShaftProperty();
210  vtkProperty* GetYAxisShaftProperty();
211  vtkProperty* GetZAxisShaftProperty();
213 
215 
218  vtkProperty* GetXAxisLabelProperty();
219  vtkProperty* GetYAxisLabelProperty();
220  vtkProperty* GetZAxisLabelProperty();
222 
223  //
225 
228  vtkSetStringMacro(XAxisLabelText);
229  vtkSetStringMacro(YAxisLabelText);
230  vtkSetStringMacro(ZAxisLabelText);
232 
233  enum
234  {
237  USER_DEFINED_SHAFT
238  };
239 
240  enum
241  {
244  USER_DEFINED_TIP
245  };
246 
247 protected:
248  vtkPVAxesActor();
249  ~vtkPVAxesActor() override;
250 
255 
259 
263 
264  void UpdateProps();
265 
266  float TotalLength[3];
267  float NormalizedShaftLength[3];
268  float NormalizedTipLength[3];
269 
271  int TipType;
272 
275 
279 
283 
287 
291 
292  float ConeRadius;
295 
299 
300 private:
301  vtkPVAxesActor(const vtkPVAxesActor&) = delete;
302  void operator=(const vtkPVAxesActor&) = delete;
303 };
304 
305 #endif
vtkFollower * ZAxisLabel
void SetShaftTypeToUserDefined()
vtkVectorText * XAxisVectorText
float ZAxisLabelPosition
vtkVectorText * YAxisVectorText
void SetNormalizedTipLength(float v[3])
Set the normalized (0-1) length of the tip.
type
#define VTKREMOTINGVIEWS_EXPORT
virtual int RenderOpaqueGeometry(vtkViewport *)
void SetShaftTypeToLine()
virtual int HasTranslucentPolygonalGeometry()
vtkFollower * XAxisLabel
vtkTypeUInt64 vtkMTimeType
a 3D axes representation
vtkSphereSource * SphereSource
void SetShaftTypeToCylinder()
float XAxisLabelPosition
void SetTotalLength(float v[3])
Set the total length of the axes in 3 dimensions.
virtual void ReleaseGraphicsResources(vtkWindow *)
void SetNormalizedShaftLength(float v[3])
Set the normalized (0-1) length of the shaft.
virtual vtkMTimeType GetRedrawMTime()
vtkActor * ZAxisShaft
#define VTK_FLOAT_MAX
vtkCylinderSource * CylinderSource
void ShallowCopy(vtkProp *prop)
vtkActor * ZAxisTip
vtkPolyData * UserDefinedTip
vtkVectorText * ZAxisVectorText
void PrintSelf(ostream &os, vtkIndent indent)
vtkActor * XAxisShaft
vtkConeSource * ConeSource
vtkFollower * YAxisLabel
vtkLineSource * LineSource
vtkMTimeType GetMTime()
void SetTipTypeToSphere()
void SetTipTypeToCone()
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
vtkPolyData * UserDefinedShaft
vtkActor * XAxisTip
virtual double * GetBounds()=0
vtkActor * YAxisShaft
static vtkObject * New()
vtkActor * YAxisTip
void operator=(const vtkObjectBase &)
virtual void GetActors(vtkPropCollection *)
void SetTipTypeToUserDefined()
float YAxisLabelPosition