summaryrefslogtreecommitdiff
path: root/inc/Visual3d_ViewManager.hxx
blob: f2d4f61d4a6ff37ebf62033221a3f97f017fc636 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Visual3d_ViewManager_HeaderFile
#define _Visual3d_ViewManager_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_Visual3d_ViewManager_HeaderFile
#include <Handle_Visual3d_ViewManager.hxx>
#endif

#ifndef _Visual3d_SetOfView_HeaderFile
#include <Visual3d_SetOfView.hxx>
#endif
#ifndef _Handle_Visual3d_Layer_HeaderFile
#include <Handle_Visual3d_Layer.hxx>
#endif
#ifndef _Aspect_GenId_HeaderFile
#include <Aspect_GenId.hxx>
#endif
#ifndef _Handle_Graphic3d_GraphicDriver_HeaderFile
#include <Handle_Graphic3d_GraphicDriver.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Graphic3d_StructureManager_HeaderFile
#include <Graphic3d_StructureManager.hxx>
#endif
#ifndef _Handle_Aspect_GraphicDevice_HeaderFile
#include <Handle_Aspect_GraphicDevice.hxx>
#endif
#ifndef _Handle_Visual3d_HSetOfView_HeaderFile
#include <Handle_Visual3d_HSetOfView.hxx>
#endif
#ifndef _Handle_Aspect_Window_HeaderFile
#include <Handle_Aspect_Window.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_Visual3d_View_HeaderFile
#include <Handle_Visual3d_View.hxx>
#endif
#ifndef _Handle_Graphic3d_Structure_HeaderFile
#include <Handle_Graphic3d_Structure.hxx>
#endif
#ifndef _Aspect_TypeOfHighlightMethod_HeaderFile
#include <Aspect_TypeOfHighlightMethod.hxx>
#endif
#ifndef _Graphic3d_CView_HeaderFile
#include <Graphic3d_CView.hxx>
#endif
#ifndef _Handle_Graphic3d_DataStructureManager_HeaderFile
#include <Handle_Graphic3d_DataStructureManager.hxx>
#endif
class Visual3d_Layer;
class Graphic3d_GraphicDriver;
class Visual3d_View;
class Aspect_GraphicDevice;
class Visual3d_HSetOfView;
class Aspect_Window;
class Graphic3d_Vertex;
class Graphic3d_Vector;
class Visual3d_PickDescriptor;
class Visual3d_ContextPick;
class Graphic3d_Structure;
class TColStd_Array2OfReal;
class Graphic3d_DataStructureManager;


//! This class allows the definition of a manager to <br>
//!	    which the views are associated. <br>
//!	    It allows them to be globally manipulated. <br>
//!	    It activates the pick. <br>
class Visual3d_ViewManager : public Graphic3d_StructureManager {

public:

  //! Creates a 3D visualizer. <br>
  Standard_EXPORT   Visual3d_ViewManager(const Handle(Aspect_GraphicDevice)& aDevice);
  //! Activates all the views of the manager <me>. <br>
  Standard_EXPORT     void Activate() ;
  //! Deactivates all the views of the manager <me>. <br>
  Standard_EXPORT     void Deactivate() ;
  //! Deletes and erases the 3D visualiser <me>. <br>
  Standard_EXPORT   virtual  void Destroy() ;
~Visual3d_ViewManager()
{
  Destroy();
}
  //! Erases all of the structures displayed in the <br>
//!	    visualiser <me>. <br>
  Standard_EXPORT     void Erase() ;
  //! Redraws all the displayed structures. <br>
  Standard_EXPORT     void Redraw() const;
  //! Deletes and erases the 3D visualiser <me>. <br>
  Standard_EXPORT     void Remove() ;
  //! Updates screen in function of modifications of <br>
//!	    the structures. <br>
//!  Category: Methods to modify the class definition <br>
//!  Warning: Not necessary if the update mode is TOU_ASAP. <br>
  Standard_EXPORT     void Update() const;
  //! Returns the group of views activated in the visualiser <me>. <br>
  Standard_EXPORT     Handle_Visual3d_HSetOfView ActivatedView() const;
  //! Applies the view orientation transformation, the <br>
//!	    view mapping transformation and view clip, the <br>
//!	    display transformation to the vertex <AVertex>. <br>
//!	    Returns the pixel coordinates <AU>, <AV>. <br>
//!  Warning: Returns <AU> = <AV> = IntegerLast () if the <br>
//!	    evaluation is impossible. <br>
//!	    -- Bad Window, Numeric error... <br>
  Standard_EXPORT     void ConvertCoord(const Handle(Aspect_Window)& AWindow,const Graphic3d_Vertex& AVertex,Standard_Integer& AU,Standard_Integer& AV) const;
  //! Applies the inverse of the display transformation, the <br>
//!	    inverse of the view mapping transformation and view clip, <br>
//!	    the inverse of the view orientation transformation to <br>
//!	    the pixel coordinates <AU>, <AV>. <br>
//!	    Returns the world coordinates <AVertex>. <br>
//!  Warning: Returns AVertex (X, Y, Z) with X = Y = Z = RealLast () <br>
//!	    if the evaluation is impossible. <br>
//!	    -- Bad Window, Numeric error... <br>
  Standard_EXPORT     Graphic3d_Vertex ConvertCoord(const Handle(Aspect_Window)& AWindow,const Standard_Integer AU,const Standard_Integer AV) const;
  //! Applies the inverse of the display transformation, the <br>
//!	    inverse of the view mapping transformation and view clip, <br>
//!	    the inverse of the view orientation transformation to <br>
//!	    the pixel coordinates <AU>, <AV>. <br>
//!	    Returns the world coordinates <AVertex> and projection ray <AVector>. <br>
//!  Warning: Returns AVertex (X, Y, Z) with X = Y = Z = RealLast () and <br>
//!          AVector (VX, VY, VZ) with VX = VY = VZ = 0. <br>
//!	    if the evaluation is impossible. <br>
//!	    -- Bad Window, Numeric error... <br>
  Standard_EXPORT     void ConvertCoordWithProj(const Handle(Aspect_Window)& AWindow,const Standard_Integer AU,const Standard_Integer AV,Graphic3d_Vertex& Point,Graphic3d_Vector& Proj) const;
  //! Returns the group of views defined in the visualiser <me>. <br>
  Standard_EXPORT     Handle_Visual3d_HSetOfView DefinedView() const;
  //! Returns the theoretical maximum number of <br>
//!	    definable views in the view manager <me>. <br>
//!  Warning: It's not possible to accept an infinite <br>
//!	    number of definable views because each <br>
//!	    view must have an identification and we <br>
//!	    have different view managers. <br>
  Standard_EXPORT     Standard_Integer MaxNumOfViews() const;
  //! Returns : <br>
//!	    a new identification number for a new view <br>
//!	    in the visualiser. <br>
  Standard_EXPORT     Standard_Integer Identification(const Handle(Visual3d_View)& AView) ;
  //! Release a unique ID of the view reserved for the view on its creation. <br>
  Standard_EXPORT     void UnIdentification(const Standard_Integer aViewId) ;
  //! Returns a graphic pick with the pick context <CTX> <br>
//!	    at the coordinates <AX>, <AY> in the window <AWindow>. <br>
  Standard_EXPORT     Visual3d_PickDescriptor Pick(const Visual3d_ContextPick& CTX,const Handle(Aspect_Window)& AWindow,const Standard_Integer AX,const Standard_Integer AY) ;
  //! Returns the structure with the identification number <AId>. <br>
  Standard_EXPORT     Handle_Graphic3d_Structure Identification(const Standard_Integer AId) const;
  //! Returns the identification number of the visualiser. <br>
  Standard_EXPORT     Standard_Integer Identification() const;
  //! Changes the display priority of the structure <AStructure>. <br>
  Standard_EXPORT     void ChangeDisplayPriority(const Handle(Graphic3d_Structure)& AStructure,const Standard_Integer OldPriority,const Standard_Integer NewPriority) ;
  //! Clears the structure <AStructure>. <br>
  Standard_EXPORT     void Clear(const Handle(Graphic3d_Structure)& AStructure,const Standard_Boolean WithDestruction) ;
  //! Connects the structures <AMother> and <ADaughter>. <br>
  Standard_EXPORT     void Connect(const Handle(Graphic3d_Structure)& AMother,const Handle(Graphic3d_Structure)& ADaughter) ;
  //! Disconnects the structures <AMother> and <ADaughter>. <br>
  Standard_EXPORT     void Disconnect(const Handle(Graphic3d_Structure)& AMother,const Handle(Graphic3d_Structure)& ADaughter) ;
  //! Display of the structure <AStructure>. <br>
  Standard_EXPORT     void Display(const Handle(Graphic3d_Structure)& AStructure) ;
  //! Erases the structure <AStructure>. <br>
  Standard_EXPORT     void Erase(const Handle(Graphic3d_Structure)& AStructure) ;
  //! Highlights the structure <AStructure>. <br>
  Standard_EXPORT     void Highlight(const Handle(Graphic3d_Structure)& AStructure,const Aspect_TypeOfHighlightMethod AMethod) ;
  
  Standard_EXPORT     void SetTransform(const Handle(Graphic3d_Structure)& AStructure,const TColStd_Array2OfReal& ATrsf) ;
  //! Suppress the highlighting on all the structures. <br>
  Standard_EXPORT     void UnHighlight() ;
  //! Suppress the highlighting on the structure <AStructure>. <br>
  Standard_EXPORT     void UnHighlight(const Handle(Graphic3d_Structure)& AStructure) ;
  //! Returns Standard_True if the view associated to the <br>
//!	    window <AWindow> exists and is activated. <br>
//!	    <TheViewId> contains the internal identification of <br>
//!	    the associated view. <br>
  Standard_EXPORT     Standard_Boolean ViewExists(const Handle(Aspect_Window)& AWindow,Graphic3d_CView& TheCView) const;
  //! Returns the underlay of the viewer <me>. <br>
  Standard_EXPORT    const Handle_Visual3d_Layer& UnderLayer() const;
  //! Returns the underlay of the viewer <me>. <br>
  Standard_EXPORT    const Handle_Visual3d_Layer& OverLayer() const;
  //! Forces a new construction of the structure <AStructure> <br>
//!	    if <AStructure> is displayed and TOS_COMPUTED. <br>
  Standard_EXPORT     void ReCompute(const Handle(Graphic3d_Structure)& AStructure) ;
  //! Forces a new construction of the structure <AStructure> <br>
//!	    if <AStructure> is displayed in <AProjector> and TOS_COMPUTED. <br>
  Standard_EXPORT     void ReCompute(const Handle(Graphic3d_Structure)& AStructure,const Handle(Graphic3d_DataStructureManager)& AProjector) ;
  //! Returns Standard_True if the transparency <br>
//!	    is activated in all activated views. <br>
//!	    Default Standard_False <br>
  Standard_EXPORT     Standard_Boolean Transparency() const;
  //! if <AFlag> is Standard_True then the transparency <br>
//!	    is managed. <br>
//!	    Default Standard_False <br>
  Standard_EXPORT     void SetTransparency(const Standard_Boolean AFlag) ;
  //! Returns Standard_True if the zbuffer activity <br>
//!	    is managed automatically. <br>
//!	    Default Standard_False <br>
  Standard_EXPORT     Standard_Boolean ZBufferAuto() const;
  //! if <AFlag> is  Standard_True then the zbuffer activity <br>
//!	    is managed automatically. <br>
//!	    Default Standard_False <br>
  Standard_EXPORT     void SetZBufferAuto(const Standard_Boolean AFlag) ;

friend class Visual3d_View;
friend class Visual3d_Layer;


  DEFINE_STANDARD_RTTI(Visual3d_ViewManager)

protected:




private: 

  //! Adds a new layer in all the views of <me>. <br>
  Standard_EXPORT     void SetLayer(const Handle(Visual3d_Layer)& ALayer) ;

Visual3d_SetOfView MyDefinedView;
Handle_Visual3d_Layer MyUnderLayer;
Handle_Visual3d_Layer MyOverLayer;
Aspect_GenId MyViewGenId;
Handle_Graphic3d_GraphicDriver MyGraphicDriver;
Standard_Boolean MyZBufferAuto;
Standard_Boolean MyTransparency;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif