summaryrefslogtreecommitdiff
path: root/inc/Visual3d_Layer.hxx
blob: f14b3f21572df3c73a3460800122c1b7dfaef387 (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
// 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_Layer_HeaderFile
#define _Visual3d_Layer_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_Visual3d_Layer_HeaderFile
#include <Handle_Visual3d_Layer.hxx>
#endif

#ifndef _Handle_Graphic3d_GraphicDriver_HeaderFile
#include <Handle_Graphic3d_GraphicDriver.hxx>
#endif
#ifndef _Aspect_CLayer2d_HeaderFile
#include <Aspect_CLayer2d.hxx>
#endif
#ifndef _Standard_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
#ifndef _Visual3d_NListOfLayerItem_HeaderFile
#include <Visual3d_NListOfLayerItem.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Handle_Visual3d_ViewManager_HeaderFile
#include <Handle_Visual3d_ViewManager.hxx>
#endif
#ifndef _Aspect_TypeOfLayer_HeaderFile
#include <Aspect_TypeOfLayer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#ifndef _Standard_ShortReal_HeaderFile
#include <Standard_ShortReal.hxx>
#endif
#ifndef _Aspect_TypeOfLine_HeaderFile
#include <Aspect_TypeOfLine.hxx>
#endif
#ifndef _Aspect_TypeOfDisplayText_HeaderFile
#include <Aspect_TypeOfDisplayText.hxx>
#endif
#ifndef _Aspect_TypeOfConstraint_HeaderFile
#include <Aspect_TypeOfConstraint.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_Visual3d_LayerItem_HeaderFile
#include <Handle_Visual3d_LayerItem.hxx>
#endif
class Graphic3d_GraphicDriver;
class Visual3d_LayerDefinitionError;
class Visual3d_ViewManager;
class Quantity_Color;
class Visual3d_LayerItem;


//! This class allows to manage 2d graphics. <br>
class Visual3d_Layer : public MMgt_TShared {

public:

  //! Creates a layer with the type <Atype>. <br>
//!      if <AFlag> == Standard_True then the layer is <br>
//!      "size dependent". <br>
//!      The mapping of the layer is dependent of each <br>
//!      window's size. <br>
//!      if <AFlag> == Standard_False then the mapping of the <br>
//!      layer is dependent of the highest window and the largest <br>
//!      window of all the views of the viewer <AViewer>. <br>
//!      When the viewer <AViewer> have only one view, the <br>
//!      result will be the same with <AFlag> == Standard_False <br>
//!      or <AFlag> == Standard_True. <br>
  Standard_EXPORT   Visual3d_Layer(const Handle(Visual3d_ViewManager)& AViewer,const Aspect_TypeOfLayer AType = Aspect_TOL_OVERLAY,const Standard_Boolean AFlag = Standard_False);
  //! Suppress the layer <me>. <br>
  Standard_EXPORT     void Destroy() ;
~Visual3d_Layer()
{
  Destroy();
}
  //! Begins the definition of the layer <me> <br>
//!  Warning: No default attributes <br>
  Standard_EXPORT     void Begin() ;
  //! Finishs the definition of the layer <me>. <br>
  Standard_EXPORT     void End() ;
  //! Clear all graphics managed by the layer <me>. <br>
  Standard_EXPORT     void Clear() ;
  //! After this call, <me> is ready to receive <br>
//!      a definition of a polyline with AddVertex(). <br>
  Standard_EXPORT     void BeginPolyline() ;
  //! After this call, <me> is ready to receive <br>
//!      a definition of a polygon with AddEdge(). <br>
  Standard_EXPORT     void BeginPolygon() ;
  //! Puts <X, Y> as a new point in the current primitive. <br>
//!      If <AFlag> then it is a draw between last point and <br>
//!      this point else it is a move between last point and <br>
//!      this point. <br>
  Standard_EXPORT     void AddVertex(const Standard_Real X,const Standard_Real Y,const Standard_Boolean AFlag = Standard_True) ;
  //! After this call, <me> stops the reception of <br>
//!      a definition of a Begin... primitive. <br>
  Standard_EXPORT     void ClosePrimitive() ;
  //! Draws the rectangle at position <X,Y>. <br>
  Standard_EXPORT     void DrawRectangle(const Standard_Real X,const Standard_Real Y,const Standard_Real Width,const Standard_Real Height) ;
  //! Draws the string <AText> at position <X,Y>. <br>
//!      The attributes are given with respect to the plane of <br>
//!      projection. <br>
//!      <AHeight>   : Height of text. <br>
//!            (Relative to the Normalized Projection <br>
//!          Coordinates (NPC) Space). <br>
  Standard_EXPORT     void DrawText(const Standard_CString AText,const Standard_Real X,const Standard_Real Y,const Standard_Real AHeight) ;
  //! Get the size of text. <br>
//!      The attributes are given with respect to the plane of <br>
//!      projection. <br>
//!      <AHeight>   : Height of text. <br>
//!            (Relative to the Normalized Projection <br>
//!          Coordinates (NPC) Space). <br>
  Standard_EXPORT     void TextSize(const Standard_CString AText,const Standard_Real AHeight,Standard_Real& AWidth,Standard_Real& AnAscent,Standard_Real& ADescent) const;
  //! Modifies the current color. <br>
//!  Warning: No default color <br>
  Standard_EXPORT     void SetColor(const Quantity_Color& AColor) ;
  //! Modifies the current transparency. <br>
//!  Warning: No default transparency <br>
  Standard_EXPORT     void SetTransparency(const Standard_ShortReal ATransparency) ;
  //! Unsets the transparency. <br>
  Standard_EXPORT     void UnsetTransparency() ;
  //! Modifies the current lines attributes. <br>
//!  Warning: No default attributes <br>
  Standard_EXPORT     void SetLineAttributes(const Aspect_TypeOfLine AType,const Standard_Real AWidth) ;
  //! Modifies the current texts attributes. <br>
//!  Warning: No default attributes <br>
  Standard_EXPORT     void SetTextAttributes(const Standard_CString AFont,const Aspect_TypeOfDisplayText AType,const Quantity_Color& AColor) ;
  //! Modifies the current coordinates system of the layer <me>. <br>
  Standard_EXPORT     void SetOrtho(const Standard_Real Left,const Standard_Real Right,const Standard_Real Bottom,const Standard_Real Top,const Aspect_TypeOfConstraint Attach = Aspect_TOC_BOTTOM_LEFT) ;
  //! Modifies the current viewport of the layer <me>. <br>
  Standard_EXPORT     void SetViewport(const Standard_Integer Width,const Standard_Integer Height) ;
  //! Returns the associated C structure. <br>
  Standard_EXPORT     Aspect_CLayer2d CLayer() const;
  //! Returns the type. <br>
  Standard_EXPORT     Aspect_TypeOfLayer Type() const;
  
  Standard_EXPORT     void AddLayerItem(const Handle(Visual3d_LayerItem)& Item) ;
  
  Standard_EXPORT     void RemoveLayerItem(const Handle(Visual3d_LayerItem)& Item) ;
  
  Standard_EXPORT     void RemoveAllLayerItems() ;
  
  Standard_EXPORT    const Visual3d_NListOfLayerItem& GetLayerItemList() const;
  
  Standard_EXPORT     void RenderLayerItems() const;



  DEFINE_STANDARD_RTTI(Visual3d_Layer)

protected:




private: 


Handle_Graphic3d_GraphicDriver MyGraphicDriver;
Aspect_CLayer2d MyCLayer;
Standard_Address MyPtrViewManager;
Visual3d_NListOfLayerItem MyListOfLayerItems;


};





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


#endif