Version: 9.16.0
VTKViewer_Trihedron.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23#ifndef VTKVIEWER_TRIHEDRON_H
24#define VTKVIEWER_TRIHEDRON_H
25
26#include "VTKViewer.h"
27
28#include <vtkObject.h>
29#include <vtkFollower.h>
30#include <vtkVersion.h>
31
32class vtkRenderer;
33class vtkActorCollection;
34class vtkCamera;
35class vtkProperty;
36class vtkPolyDataMapper;
37class vtkLineSource;
38class vtkConeSource;
39class vtkVectorText;
40class vtkTextActor;
41class vtkTextMapper;
42
43class VTKViewer_Axis;
44
45#if !defined(VTK_XVERSION)
46#define VTK_XVERSION (VTK_MAJOR_VERSION<<16)+(VTK_MINOR_VERSION<<8)+(VTK_BUILD_VERSION)
47#endif
48
49// VTKViewer_UnScaledActor is temporarily replaced with simple vtkTextActor
50// This workaround caused by the bug with disappeared labels of the trihedron
51// reproduced after migration from qt-4.4.3 to qt-4.5.2
52#if (VTK_XVERSION < 0x050200)
53#define IPAL21440
54#endif
55
63{
65
66public:
67
69
70
71 static VTKViewer_UnScaledActor *New();
72
73 virtual double* GetBounds();
74 virtual void SetSize(int theSize);
75 virtual void Render(vtkRenderer *theRenderer);
76
77protected:
81
82 int mySize;
83};
84
89{
91
92public:
95
96
97 static VTKViewer_LineActor *New();
98
99#ifdef IPAL21440
103 void SetLabelActor(vtkTextActor* theLabelActor);
104#else
108 void SetLabelActor(VTKViewer_UnScaledActor* theLabelActor);
109#endif
110
114 void SetArrowActor(vtkFollower* theArrowActor);
115
116 virtual void Render(vtkRenderer *theRenderer);
117
118protected:
119
122 LabelActor = NULL;
123 ArrowActor = NULL;
124 }
125
128 SetLabelActor(NULL);
129 SetArrowActor(NULL);
130 }
131
133#ifdef IPAL21440
135#else
137#endif
138
141};
142
145{
146public:
147 enum Axis { X = 0, Y, Z };
148
149protected:
152
155
157 virtual ~VTKViewer_Trihedron();
158
159public:
162
163
164 static VTKViewer_Trihedron *New();
165
169 virtual void SetSize(double theSize);
170
174 virtual double GetSize() { return mySize;}
175
176 enum TVisibility{eOff, eOn, eOnlyLineOn};
177
179 virtual void SetVisibility(TVisibility theVis);
180
182 virtual void VisibilityOff() { SetVisibility(eOff);}
183
185 virtual void VisibilityOn() { SetVisibility(eOn);}
186
188 virtual TVisibility GetVisibility();
189
193 virtual void AddToRender(vtkRenderer* theRenderer);
194
198 virtual void RemoveFromRender(vtkRenderer* theRenderer);
199
203 virtual int GetVisibleActorCount(vtkRenderer* theRenderer);
204
209 virtual bool OwnActor(const vtkActor* theActor);
210
217 virtual void SetTextColor(Axis axis, double theRed, double theGreen, double theBlue);
218
219protected:
221 vtkActorCollection* myPresent;
222
227 VTKViewer_Axis* myAxis[3];
228
230 double mySize;
231};
232
238{
239protected:
242 virtual ~VTKViewer_Axis();
243
244public:
247
248
250 virtual void AddToRender(vtkRenderer* theRenderer);
251 virtual void RemoveFromRender(vtkRenderer* theRenderer);
252
255 virtual void SetVisibility(VTKViewer_Trihedron::TVisibility theVis);
256
260 virtual VTKViewer_Trihedron::TVisibility GetVisibility() { return myVisibility; }
261
264 virtual void SetCamera(vtkCamera* theCamera);
265
271 virtual void SetColor(double theRed, double theGreen, double theBlue);
272
278 virtual void SetTextColor(double theRed, double theGreen, double theBlue);
279
282 virtual void SetSize(double theSize);
283
287#ifdef IPAL21440
288 virtual vtkTextActor* GetLabel() { return myLabelActor; }
289#else
290 virtual VTKViewer_UnScaledActor* GetLabel() { return myLabelActor; }
291#endif
292
296 virtual vtkFollower* GetArrow() { return myArrowActor; }
297
302 virtual bool OwnActor(const vtkActor* theActor);
303
304protected:
308
315 double myDir[3], myRot[3];
316
320
324
327#ifdef IPAL21440
329#else
330 VTKViewer_UnScaledActor *myLabelActor;
331#endif
332
337 vtkPolyDataMapper *myMapper[3];
338
341 vtkLineSource *myLineSource;
342
345 vtkConeSource *myConeSource;
346
347#ifdef IPAL21440
350 vtkTextMapper *myTextMapper;
351#else
354 vtkVectorText* myVectorText;
355#endif
356};
357
358#endif
Axis
Definition: SalomePyQt.h:181
#define VTKVIEWER_EXPORT
Definition: VTKViewer.h:33
vtkTextActor
Definition: VTKViewer_Trihedron.cxx:110
LabelActor
Definition: VTKViewer_Trihedron.cxx:110
Definition: VTKViewer_Trihedron.h:238
VTKViewer_LineActor * myLineActor
Definition: VTKViewer_Trihedron.h:319
VTKViewer_Axis(const VTKViewer_Axis &)
vtkConeSource * myConeSource
Definition: VTKViewer_Trihedron.h:345
VTKViewer_Trihedron::TVisibility myVisibility
Definition: VTKViewer_Trihedron.h:307
virtual vtkTextActor * GetLabel()
Definition: VTKViewer_Trihedron.h:288
virtual vtkFollower * GetArrow()
Definition: VTKViewer_Trihedron.h:296
vtkTextActor * myLabelActor
Definition: VTKViewer_Trihedron.h:328
vtkFollower * myArrowActor
Definition: VTKViewer_Trihedron.h:323
virtual VTKViewer_Trihedron::TVisibility GetVisibility()
Definition: VTKViewer_Trihedron.h:260
vtkTextMapper * myTextMapper
Definition: VTKViewer_Trihedron.h:350
vtkTypeMacro(VTKViewer_Axis, vtkObject) virtual void AddToRender(vtkRenderer *theRenderer)
vtkLineSource * myLineSource
Definition: VTKViewer_Trihedron.h:341
Definition: VTKViewer_Trihedron.h:89
~VTKViewer_LineActor()
Definition: VTKViewer_Trihedron.h:127
virtual void Render(vtkRenderer *theRenderer)
vtkTextActor * LabelActor
Definition: VTKViewer_Trihedron.h:134
VTKViewer_LineActor(const VTKViewer_LineActor &)
vtkTypeMacro(VTKViewer_LineActor, vtkFollower) static VTKViewer_LineActor *New()
void SetArrowActor(vtkFollower *theArrowActor)
vtkFollower * ArrowActor
Definition: VTKViewer_Trihedron.h:140
void SetLabelActor(vtkTextActor *theLabelActor)
VTKViewer_LineActor()
Definition: VTKViewer_Trihedron.h:121
Definition: VTKViewer_Trihedron.h:145
double mySize
Definition: VTKViewer_Trihedron.h:230
Axis
Definition: VTKViewer_Trihedron.h:147
TVisibility
Definition: VTKViewer_Trihedron.h:176
@ eOff
Definition: VTKViewer_Trihedron.h:176
vtkActorCollection * myPresent
Definition: VTKViewer_Trihedron.h:221
virtual void VisibilityOn()
Definition: VTKViewer_Trihedron.h:185
virtual double GetSize()
Definition: VTKViewer_Trihedron.h:174
vtkTypeMacro(VTKViewer_Trihedron, vtkObject) static VTKViewer_Trihedron *New()
virtual void VisibilityOff()
Definition: VTKViewer_Trihedron.h:182
VTKViewer_Trihedron(const VTKViewer_Trihedron &)
Definition: VTKViewer_Trihedron.h:63
VTKViewer_UnScaledActor(const VTKViewer_UnScaledActor &)
vtkTypeMacro(VTKViewer_UnScaledActor, vtkFollower) static VTKViewer_UnScaledActor *New()
~VTKViewer_UnScaledActor()
Definition: VTKViewer_Trihedron.h:80
int mySize
Definition: VTKViewer_Trihedron.h:82