0023466: Move OSD_FontMgr class outside TKernel
[occt.git] / src / Visual3d / Visual3d_Layer.cdl
1 -- Created by: CAL
2 -- Copyright (c) 1998-1999 Matra Datavision
3 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
4 --
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
9 --
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 --
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
19
20
21 class Layer from Visual3d inherits TShared
22
23     ---Version:
24
25     ---Purpose: This class allows to manage 2d graphics.
26     ---Keywords:
27     ---Warning:
28     ---References:
29
30 uses
31
32     Color                   from Quantity,
33     PlaneAngle              from Quantity,
34
35     CLayer2d                from Aspect,
36     TypeOfConstraint        from Aspect,
37     TypeOfLayer             from Aspect,
38     TypeOfLine              from Aspect,
39     TypeOfDisplayText       from Aspect,
40
41     GraphicDriver           from Graphic3d,
42     TextPath                from Graphic3d,
43     HorizontalTextAlignment from Graphic3d,
44     VerticalTextAlignment   from Graphic3d,
45
46     ViewManager             from Visual3d,
47     LayerItem               from Visual3d,
48     NListOfLayerItem        from Visual3d,
49     
50         FontAspect          from Font
51 raises
52     LayerDefinitionError    from Visual3d
53
54 is
55     -------------------------
56     -- Category: Constructors
57     -------------------------
58
59     Create (AViewer : ViewManager from Visual3d;
60         AType   : TypeOfLayer from Aspect = Aspect_TOL_OVERLAY;
61         AFlag   : Boolean from Standard = Standard_False)
62         returns mutable Layer from Visual3d;
63     ---Level: Public
64     ---Purpose: Creates a layer with the type <Atype>.
65     --      if <AFlag> == Standard_True then the layer is
66     --      "size dependent".
67     --      The mapping of the layer is dependent of each
68     --      window's size.
69     --      if <AFlag> == Standard_False then the mapping of the
70     --      layer is dependent of the highest window and the largest
71     --      window of all the views of the viewer <AViewer>.
72     --      When the viewer <AViewer> have only one view, the
73     --      result will be the same with <AFlag> == Standard_False
74     --      or <AFlag> == Standard_True.
75     ---Category: Constructors
76
77     ------------------------
78     -- Category: Destructors
79     ------------------------
80
81     Destroy (me : mutable);
82     ---Level: Public
83     ---Purpose: Suppress the layer <me>.
84     ---Category: Destructors
85     ---C++: alias ~
86
87     ---------------------------------------------------
88     -- Category: Methods to modify the class definition
89     ---------------------------------------------------
90
91     Begin (me   : mutable)
92     ---Level: Public
93     ---Purpose: Begins the definition of the layer <me>
94     --  Warning: No default attributes
95     raises LayerDefinitionError from Visual3d;
96     -- if   Layer is already open.
97     ---Category: Methods to modify the class definition
98
99     End (me     : mutable)
100     ---Level: Public
101     ---Purpose: Finishs the definition of the layer <me>.
102     raises LayerDefinitionError from Visual3d;
103     -- if   Layer is not open.
104     ---Category: Methods to modify the class definition
105
106     Clear (me   : mutable)
107     ---Level: Public
108     ---Purpose: Clear all graphics managed by the layer <me>.
109     raises LayerDefinitionError from Visual3d;
110     -- if   Layer is already open.
111     ---Category: Methods to modify the class definition
112
113     ---------------------------------------
114     -- Category: Graphic definition methods
115     ---------------------------------------
116
117     BeginPolyline (me   : mutable)
118     ---Level: Public
119     ---Purpose: After this call, <me> is ready to receive
120     --      a definition of a polyline with AddVertex().
121     raises LayerDefinitionError from Visual3d;
122     -- if a Begin... primitive is already open,
123     -- or   Layer is not open.
124     ---Category: Graphic definition methods
125
126     BeginPolygon (me    : mutable)
127     ---Level: Public
128     ---Purpose: After this call, <me> is ready to receive
129     --      a definition of a polygon with AddEdge().
130     raises LayerDefinitionError from Visual3d;
131     -- if a Begin... primitive is already open,
132     -- or   Layer is not open.
133     ---Category: Graphic definition methods
134
135     AddVertex (me   : mutable;
136         X, Y    : Real from Standard;
137         AFlag   : Boolean from Standard = Standard_True)
138     ---Level: Public
139     ---Purpose: Puts <X, Y> as a new point in the current primitive.
140     --      If <AFlag> then it is a draw between last point and
141     --      this point else it is a move between last point and
142     --      this point.
143     raises LayerDefinitionError from Visual3d;
144     -- if a Begin... primitive is not open,
145     -- or   Layer is not open.
146     ---Category: Graphic definition methods
147
148     ClosePrimitive (me  : mutable)
149     ---Level: Public
150     ---Purpose: After this call, <me> stops the reception of
151     --      a definition of a Begin... primitive.
152     raises LayerDefinitionError from Visual3d;
153     -- if a Begin... primitive is not open,
154     -- or   Layer is not open.
155     ---Category: Graphic definition methods
156
157     DrawRectangle (me   : mutable;
158         X, Y        : Real from Standard;
159         Width, Height   : Real from Standard)
160     ---Level: Public
161     ---Purpose: Draws the rectangle at position <X,Y>.
162     raises LayerDefinitionError from Visual3d;
163     -- if   Layer is not open.
164     ---Category: Graphic definition methods
165
166     DrawText (me       : mutable;
167               AText   : CString from Standard;
168               X, Y    : Real from Standard;
169               AHeight : Real from Standard)
170     ---Level: Public
171     ---Purpose: Draws the string <AText> at position <X,Y>.
172     --      The attributes are given with respect to the plane of
173     --      projection.
174     --      <AHeight>   : Height of text.
175     --            (Relative to the Normalized Projection
176     --          Coordinates (NPC) Space).
177     raises LayerDefinitionError from Visual3d;
178     -- if   Layer is not open.
179     ---Category: Graphic definition methods
180
181     TextSize (me;
182               AText    : CString from Standard;
183               AHeight  : Real from Standard;
184               AWidth   : in out Real from Standard;
185               AnAscent : in out Real from Standard;
186               ADescent : in out Real from Standard )
187     ---Level: Public
188     ---Purpose: Get the size of text.
189     --      The attributes are given with respect to the plane of
190     --      projection.
191     --      <AHeight>   : Height of text.
192     --            (Relative to the Normalized Projection
193     --          Coordinates (NPC) Space).
194     raises LayerDefinitionError from Visual3d;
195     -- if   Layer is not open.
196     ---Category: Graphic definition methods
197
198     -----------------------------------------------------
199     -- Category: Methods to manage the graphics attributs
200     -----------------------------------------------------
201
202     SetColor (me      : mutable;
203               AColor  : Color from Quantity)
204     ---Level: Public
205     ---Purpose: Modifies the current color.
206     --  Warning: No default color
207     raises LayerDefinitionError from Visual3d;
208     -- if   Layer is not open.
209     ---Category: Methods to manage the graphics attributs
210
211     SetTransparency (me              : mutable;
212                      ATransparency   : ShortReal from Standard)
213     ---Level: Public
214     ---Purpose: Modifies the current transparency.
215     --  Warning: No default transparency
216     raises LayerDefinitionError from Visual3d;
217     -- if   Layer is not open.
218     ---Category: Methods to manage the graphics attributs
219
220     UnsetTransparency (me   : mutable)
221     ---Level: Public
222     ---Purpose: Unsets the transparency.
223     raises LayerDefinitionError from Visual3d;
224     -- if   Layer is not open.
225     ---Category: Methods to manage the graphics attributs
226
227     SetLineAttributes (me      : mutable;
228                        AType   : TypeOfLine from Aspect;
229                        AWidth  : Real from Standard)
230     ---Level: Public
231     ---Purpose: Modifies the current lines attributes.
232     --  Warning: No default attributes
233     raises LayerDefinitionError from Visual3d;
234     -- if   Layer is not open.
235     ---Category: Methods to manage the graphics attributs
236
237     SetTextAttributes (me     : mutable;
238                        AFont   : CString from Standard;
239                        AType   : TypeOfDisplayText from Aspect;
240                        AColor  : Color from Quantity)
241     ---Level: Public
242     ---Purpose: Modifies the current texts attributes.
243     -- <AFont> defines the name of the font to be used.
244     -- <AType> defines the display type of the text.
245     -- <AColor> defines the color of decal or subtitle background.
246     -- To set the color of the text you can use the SetColor method.
247     -- Warning: No default attributes
248     raises LayerDefinitionError from Visual3d;
249     -- if   Layer is not open.
250     
251     -------------------------------------------------------
252     -- Category: Methods to manage the graphics coordinates
253     -------------------------------------------------------
254
255     SetOrtho (me      : mutable;
256               Left    : Real from Standard;
257               Right   : Real from Standard;
258               Bottom  : Real from Standard;
259               Top     : Real from Standard;
260               Attach  : TypeOfConstraint from Aspect = Aspect_TOC_BOTTOM_LEFT)
261     ---Level: Public
262     ---Purpose: Modifies the current coordinates system of the layer <me>.
263     raises LayerDefinitionError from Visual3d;
264     -- if   Layer is not opened.
265     ---Category: Methods to manage the graphics coordinates
266
267     SetViewport (me      : mutable;
268                  Width   : Integer from Standard;
269                  Height  : Integer from Standard)
270     ---Level: Public
271     ---Purpose: Modifies the current viewport of the layer <me>.
272     raises LayerDefinitionError from Visual3d;
273     -- if   Layer is not opened.
274     ---Category: Methods to manage the graphics coordinates
275
276     ----------------------------
277     -- Category: Inquire methods
278     ----------------------------
279
280     CLayer (me)
281         returns CLayer2d from Aspect;
282     ---Level: Public
283     ---Purpose: Returns the associated C structure.
284     ---Category: Inquire methods
285
286     Type (me)
287         returns TypeOfLayer from Aspect;
288     ---Level: Public
289     ---Purpose: Returns the type.
290     ---Category: Inquire methods
291
292         AddLayerItem( me   : mutable;
293                       Item : LayerItem from Visual3d );
294         
295     RemoveLayerItem( me   : mutable;
296                      Item : LayerItem from Visual3d );
297         
298     RemoveAllLayerItems( me: mutable );
299     
300     GetLayerItemList( me )
301             returns  NListOfLayerItem from Visual3d;
302     ---C++: return const &
303
304         RenderLayerItems(me);
305     --- Redraw all loaded layer items
306 fields
307
308 --
309 -- Classe   :   Visual3d_Layer
310 --
311 -- Purpose  :   Declaration of the variables specific to layers.
312 --
313 -- Reminder :   A layer is defined by:
314 --          - a ViewManager
315 --
316
317     -- the graphic driver used
318     MyGraphicDriver     :   GraphicDriver from Graphic3d;
319
320     -- the associated C structure
321     MyCLayer        :   CLayer2d from Aspect;
322
323     -- the ViewManager associated with the view
324     MyPtrViewManager    :   Address from Standard;
325     
326     -- the List of Layer Items
327         MyListOfLayerItems      :       NListOfLayerItem from Visual3d;
328
329 end Layer from Visual3d;