vtkPVAxesActor.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
13 #ifndef vtkPVAxesActor_h
14 #define vtkPVAxesActor_h
15 
16 #include "vtkProp3D.h"
17 #include "vtkRemotingViewsModule.h" // needed for export macro
18 
19 class vtkRenderer;
20 class vtkPropCollection;
21 class vtkMapper;
22 class vtkProperty;
23 class vtkActor;
24 class vtkFollower;
25 class vtkCylinderSource;
26 class vtkLineSource;
27 class vtkConeSource;
28 class vtkSphereSource;
29 class vtkPolyData;
30 class vtkVectorText;
31 
32 class VTKREMOTINGVIEWS_EXPORT vtkPVAxesActor : public vtkProp3D
33 {
34 public:
35  static vtkPVAxesActor* New();
36  vtkTypeMacro(vtkPVAxesActor, vtkProp3D);
37  void PrintSelf(ostream& os, vtkIndent indent) override;
38 
44  void GetActors(vtkPropCollection*) override;
45 
47 
50  int RenderOpaqueGeometry(vtkViewport* viewport) override;
51  int RenderTranslucentPolygonalGeometry(vtkViewport* viewport) override;
52  int HasTranslucentPolygonalGeometry() override;
54 
58  void ShallowCopy(vtkProp* prop) override;
59 
65  void ReleaseGraphicsResources(vtkWindow*) override;
66 
68 
72  void GetBounds(double bounds[6]);
73  double* GetBounds() override;
75 
79  vtkMTimeType GetMTime() override;
80 
87  vtkMTimeType GetRedrawMTime() override;
88 
90 
93  void SetTotalLength(float v[3]) { this->SetTotalLength(v[0], v[1], v[2]); }
94  void SetTotalLength(float x, float y, float z);
95  vtkGetVectorMacro(TotalLength, float, 3);
97 
99 
102  void SetNormalizedShaftLength(float v[3]) { this->SetNormalizedShaftLength(v[0], v[1], v[2]); }
103  void SetNormalizedShaftLength(float x, float y, float z);
104  vtkGetVectorMacro(NormalizedShaftLength, float, 3);
106 
108 
111  void SetNormalizedTipLength(float v[3]) { this->SetNormalizedTipLength(v[0], v[1], v[2]); }
112  void SetNormalizedTipLength(float x, float y, float z);
113  vtkGetVectorMacro(NormalizedTipLength, float, 3);
115 
117 
120  vtkSetClampMacro(ConeResolution, int, 3, 128);
121  vtkGetMacro(ConeResolution, int);
122  vtkSetClampMacro(SphereResolution, int, 3, 128);
123  vtkGetMacro(SphereResolution, int);
124  vtkSetClampMacro(CylinderResolution, int, 3, 128);
125  vtkGetMacro(CylinderResolution, int);
127 
129 
132  vtkSetClampMacro(ConeRadius, float, 0, VTK_FLOAT_MAX);
133  vtkGetMacro(ConeRadius, float);
134  vtkSetClampMacro(SphereRadius, float, 0, VTK_FLOAT_MAX);
135  vtkGetMacro(SphereRadius, float);
136  vtkSetClampMacro(CylinderRadius, float, 0, VTK_FLOAT_MAX);
137  vtkGetMacro(CylinderRadius, float);
139 
141 
144  vtkSetClampMacro(XAxisLabelPosition, float, 0, 1);
145  vtkGetMacro(XAxisLabelPosition, float);
146  vtkSetClampMacro(YAxisLabelPosition, float, 0, 1);
147  vtkGetMacro(YAxisLabelPosition, float);
148  vtkSetClampMacro(ZAxisLabelPosition, float, 0, 1);
149  vtkGetMacro(ZAxisLabelPosition, float);
151 
155  void SetShaftType(int type);
157  void SetShaftTypeToLine() { this->SetShaftType(vtkPVAxesActor::LINE_SHAFT); }
159 
163  void SetTipType(int type);
164  void SetTipTypeToCone() { this->SetTipType(vtkPVAxesActor::CONE_TIP); }
165  void SetTipTypeToSphere() { this->SetTipType(vtkPVAxesActor::SPHERE_TIP); }
167 
169 
172  void SetUserDefinedTip(vtkPolyData*);
173  vtkGetObjectMacro(UserDefinedTip, vtkPolyData);
175 
177 
180  void SetUserDefinedShaft(vtkPolyData*);
181  vtkGetObjectMacro(UserDefinedShaft, vtkPolyData);
183 
185 
188  vtkProperty* GetXAxisTipProperty();
189  vtkProperty* GetYAxisTipProperty();
190  vtkProperty* GetZAxisTipProperty();
192 
194 
197  vtkProperty* GetXAxisShaftProperty();
198  vtkProperty* GetYAxisShaftProperty();
199  vtkProperty* GetZAxisShaftProperty();
201 
203 
206  vtkProperty* GetXAxisLabelProperty();
207  vtkProperty* GetYAxisLabelProperty();
208  vtkProperty* GetZAxisLabelProperty();
210 
212 
215  vtkSetMacro(XAxisVisibility, bool);
216  vtkGetMacro(XAxisVisibility, bool);
217  vtkSetMacro(YAxisVisibility, bool);
218  vtkGetMacro(YAxisVisibility, bool);
219  vtkSetMacro(ZAxisVisibility, bool);
220  vtkGetMacro(ZAxisVisibility, bool);
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  bool XAxisVisibility = true;
301  bool YAxisVisibility = true;
302  bool ZAxisVisibility = true;
303 
304 private:
305  vtkPVAxesActor(const vtkPVAxesActor&) = delete;
306  void operator=(const vtkPVAxesActor&) = delete;
307 };
308 
309 #endif
vtkPVAxesActor::YAxisLabel
vtkFollower * YAxisLabel
Definition: vtkPVAxesActor.h:285
vtkPVAxesActor::YAxisVectorText
vtkVectorText * YAxisVectorText
Definition: vtkPVAxesActor.h:281
vtkPVAxesActor::ZAxisTip
vtkActor * ZAxisTip
Definition: vtkPVAxesActor.h:262
vtkObjectBase::operator=
void operator=(const vtkObjectBase &)
vtkFollower
vtkPVAxesActor::CylinderRadius
float CylinderRadius
Definition: vtkPVAxesActor.h:294
vtkPVAxesActor::YAxisShaft
vtkActor * YAxisShaft
Definition: vtkPVAxesActor.h:257
vtkPVAxesActor::XAxisVectorText
vtkVectorText * XAxisVectorText
Definition: vtkPVAxesActor.h:280
vtkProp3D
vtkProp3D::GetMTime
vtkMTimeType GetMTime()
vtkPVAxesActor::SphereSource
vtkSphereSource * SphereSource
Definition: vtkPVAxesActor.h:254
vtkObject::New
static vtkObject * New()
vtkPVAxesActor::UserDefinedTip
vtkPolyData * UserDefinedTip
Definition: vtkPVAxesActor.h:273
vtkPVAxesActor::SetShaftTypeToUserDefined
void SetShaftTypeToUserDefined()
Definition: vtkPVAxesActor.h:158
vtkPVAxesActor::ZAxisLabelPosition
float ZAxisLabelPosition
Definition: vtkPVAxesActor.h:298
vtkProp::RenderOpaqueGeometry
virtual int RenderOpaqueGeometry(vtkViewport *)
vtkPVAxesActor::YAxisLabelText
char * YAxisLabelText
Definition: vtkPVAxesActor.h:277
vtkConeSource
vtkPVAxesActor::CylinderSource
vtkCylinderSource * CylinderSource
Definition: vtkPVAxesActor.h:251
vtkPVAxesActor::CYLINDER_SHAFT
@ CYLINDER_SHAFT
Definition: vtkPVAxesActor.h:235
vtkPVAxesActor::ConeResolution
int ConeResolution
Definition: vtkPVAxesActor.h:288
vtkPVAxesActor::CylinderResolution
int CylinderResolution
Definition: vtkPVAxesActor.h:290
vtkPVAxesActor::ShaftType
int ShaftType
Definition: vtkPVAxesActor.h:270
vtkPVAxesActor::USER_DEFINED_SHAFT
@ USER_DEFINED_SHAFT
Definition: vtkPVAxesActor.h:237
vtkPVAxesActor::SetShaftTypeToCylinder
void SetShaftTypeToCylinder()
Definition: vtkPVAxesActor.h:156
vtkPVAxesActor::TipType
int TipType
Definition: vtkPVAxesActor.h:271
vtkPVAxesActor::SetShaftTypeToLine
void SetShaftTypeToLine()
Definition: vtkPVAxesActor.h:157
vtkPVAxesActor::LINE_SHAFT
@ LINE_SHAFT
Definition: vtkPVAxesActor.h:236
vtkVectorText
vtkPVAxesActor::XAxisLabel
vtkFollower * XAxisLabel
Definition: vtkPVAxesActor.h:284
vtkPVAxesActor::YAxisTip
vtkActor * YAxisTip
Definition: vtkPVAxesActor.h:261
vtkPVAxesActor::XAxisShaft
vtkActor * XAxisShaft
Definition: vtkPVAxesActor.h:256
vtkWindow
vtkMTimeType
vtkTypeUInt64 vtkMTimeType
vtkProp3D::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkPVAxesActor::SetTotalLength
void SetTotalLength(float v[3])
Set the total length of the axes in 3 dimensions.
Definition: vtkPVAxesActor.h:93
vtkProp::GetActors
virtual void GetActors(vtkPropCollection *)
vtkPVAxesActor::SetTipTypeToCone
void SetTipTypeToCone()
Definition: vtkPVAxesActor.h:164
vtkPVAxesActor::SphereResolution
int SphereResolution
Definition: vtkPVAxesActor.h:289
vtkPVAxesActor::ConeRadius
float ConeRadius
Definition: vtkPVAxesActor.h:292
vtkPVAxesActor::XAxisLabelPosition
float XAxisLabelPosition
Definition: vtkPVAxesActor.h:296
vtkPVAxesActor::XAxisTip
vtkActor * XAxisTip
Definition: vtkPVAxesActor.h:260
vtkSphereSource
vtkPVAxesActor::LineSource
vtkLineSource * LineSource
Definition: vtkPVAxesActor.h:252
vtkMapper
vtkActor
vtkPVAxesActor::SetTipTypeToUserDefined
void SetTipTypeToUserDefined()
Definition: vtkPVAxesActor.h:166
vtkIndent
vtkPVAxesActor::ZAxisLabelText
char * ZAxisLabelText
Definition: vtkPVAxesActor.h:278
vtkPVAxesActor::SetTipTypeToSphere
void SetTipTypeToSphere()
Definition: vtkPVAxesActor.h:165
vtkPVAxesActor::SPHERE_TIP
@ SPHERE_TIP
Definition: vtkPVAxesActor.h:243
vtkCylinderSource
vtkLineSource
vtkViewport
vtkPVAxesActor::ZAxisVectorText
vtkVectorText * ZAxisVectorText
Definition: vtkPVAxesActor.h:282
vtkProp::RenderTranslucentPolygonalGeometry
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
vtkPVAxesActor::SphereRadius
float SphereRadius
Definition: vtkPVAxesActor.h:293
vtkProp
vtkProp3D::ShallowCopy
void ShallowCopy(vtkProp *prop)
vtkPVAxesActor::XAxisLabelText
char * XAxisLabelText
Definition: vtkPVAxesActor.h:276
vtkRenderer
vtkPVAxesActor::USER_DEFINED_TIP
@ USER_DEFINED_TIP
Definition: vtkPVAxesActor.h:244
vtkPVAxesActor::ConeSource
vtkConeSource * ConeSource
Definition: vtkPVAxesActor.h:253
vtkPolyData
vtkPVAxesActor
a 3D axes representation
Definition: vtkPVAxesActor.h:32
vtkPVAxesActor::CONE_TIP
@ CONE_TIP
Definition: vtkPVAxesActor.h:242
vtkPVAxesActor::YAxisLabelPosition
float YAxisLabelPosition
Definition: vtkPVAxesActor.h:297
vtkProperty
vtkPropCollection
vtkPVAxesActor::ZAxisShaft
vtkActor * ZAxisShaft
Definition: vtkPVAxesActor.h:258
vtkProp::GetRedrawMTime
virtual vtkMTimeType GetRedrawMTime()
vtkProp::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
vtkProp::HasTranslucentPolygonalGeometry
virtual int HasTranslucentPolygonalGeometry()
vtkPVAxesActor::ZAxisLabel
vtkFollower * ZAxisLabel
Definition: vtkPVAxesActor.h:286
vtkPVAxesActor::SetNormalizedTipLength
void SetNormalizedTipLength(float v[3])
Set the normalized (0-1) length of the tip.
Definition: vtkPVAxesActor.h:111
vtkPVAxesActor::SetNormalizedShaftLength
void SetNormalizedShaftLength(float v[3])
Set the normalized (0-1) length of the shaft.
Definition: vtkPVAxesActor.h:102
vtkPVAxesActor::UserDefinedShaft
vtkPolyData * UserDefinedShaft
Definition: vtkPVAxesActor.h:274
vtkProp3D.h
vtkProp3D::GetBounds
virtual double * GetBounds()=0