0023510: Integration of test grid "vis" into the new testing system
[occt.git] / src / Graphic2d / Graphic2d_HidingGraphicObject.cdl
1 -- Created on: 1998-02-19
2 -- Created by: s:       Gerard GRAS
3 -- Copyright (c) 1998-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23 class HidingGraphicObject from Graphic2d inherits GraphicObject from Graphic2d 
24
25         ---Version:
26
27         ---Purpose: Creates a 2D hiding graphic object in a view.
28         --          A graphic object is a primitives manager
29         --          which hide the others graphic objects
30
31         ---Keywords:
32         ---Warning:
33         ---References:
34
35 uses
36         Drawer                  from Graphic2d,
37         View                    from Graphic2d,
38         Primitive               from Graphic2d,
39         TypeOfFrame             from Graphic2d,
40         Array1OfVertex          from Graphic2d,
41         HArray1OfVertex         from Graphic2d,
42         Length                  from Quantity,
43         GTrsf2d                 from gp
44
45 raises
46         OutOfRange              from Standard
47
48 is
49         -------------------------
50         -- Category: Constructors
51         -------------------------
52
53         Create (aView: View from Graphic2d;
54                 aFrame: Array1OfVertex from Graphic2d)
55         returns mutable HidingGraphicObject from Graphic2d;
56         ---Level: Public
57         ---Purpose: Creates an hiding polygon object in the view <aView>
58         --          This graphic object manages a sequence of primitives.
59         --  <aFrame> describes the hiding polygon geometry
60         --  The frame is created with the default attributes : 
61         --  * the hiding color index : 0 (the same as the view)
62         --  * the frame color index : 1
63         --  * the frame line type index : 0
64         --  * the frame line thickness index : 0
65         --  * the graphic object is :
66         --          - empty.
67         --          - plottable.
68         --          - drawable.
69         --          - pickable.
70         --          - not displayed.
71         --          - not highlighted.
72         --          - has a relative drawing priority of 0 
73         ---Category: Constructors
74
75         Create (aView: View from Graphic2d;
76                 aType: TypeOfFrame from Graphic2d =
77                                 Graphic2d_TOF_RECTANGULAR; 
78                 aMargin1,aMargin2: Length from Quantity = 0.0)
79         returns mutable HidingGraphicObject from Graphic2d;
80         ---Level: Public
81         ---Purpose: Creates an hiding predefined object in the view <aView>.
82         --          the predefined TypeOfFrame must be one of :
83         --          TOF_RECTANGULAR,TOF_CIRCULAR.
84         --          the frame position and geometry is computed
85         --          automaticaly according to the contents of the
86         --          graphic object and the <aMargin1>,<aMargin2> parameter. 
87         --          A graphic object manages a sequence of primitives.
88         --  Warning: The type of frame can be UNKNOWN,in this case the frame is
89         --         not drawn.
90
91         -----------------------------------------------------
92         -- Category: Methods to manage the drawing attributes 
93         -----------------------------------------------------
94
95         SetFrame (me : mutable; 
96                 aFrame: Array1OfVertex from Graphic2d)
97         is static;
98         ---Level: Public
99         ---Purpose: Updates the frame geometry.
100
101         SetFrame (me : mutable; 
102                 aFrameType: TypeOfFrame from Graphic2d;
103                 aMargin1,aMargin2: Length from Quantity = 0.0)
104         is static;
105         ---Level: Public
106         ---Purpose: Updates & computes the frame geometry 
107         --          automaticaly according to the contents of the
108         --          graphic object and the <aMargin> parameter. 
109         --  Warning: The type of frame can be UNKNOWN,in this case the frame is
110         --         not drawn.
111
112         SetHidingColorIndex (me : mutable; anIndex: Integer from Standard = 0)
113         is static;
114         ---Level: Public
115         ---Purpose: Updates the hiding color index of the background polygon.
116         
117         SetFrameColorIndex (me : mutable; anIndex: Integer from Standard = 1)
118         is static;
119         ---Level: Public
120         ---Purpose: Updates the frame color index of the polygon.
121         
122         SetFrameTypeIndex (me : mutable; anIndex: Integer from Standard = 0)
123         is static;
124         ---Level: Public
125         ---Purpose: Updates the frame line type index of the polygon.
126         
127         SetFrameWidthIndex (me : mutable; anIndex: Integer from Standard = 0)
128         is static;
129         ---Level: Public
130         ---Purpose: Updates the frame line thickness index of the polygon.
131
132         -------------------------------------------------
133         -- Category: Methods to manage the drawing priority 
134         -------------------------------------------------
135
136         MaxPriority (me) returns Integer from Standard is redefined;
137         ---Level: Public
138         ---Purpose: Returns the max usable relative priority of the 
139         --         "hiding" graphic object.     
140
141         ----------------------
142         -- Category: Inquiries
143         ----------------------
144
145         FrameMinMax (me; Minx, Maxx, Miny, Maxy: out Length from Quantity)
146                 returns Boolean is static;
147         ---Level: Public
148         ---Purpose: Returns the min max values of the frame of <me>.
149         --  Warning: If <me> is empty
150         --          returns FALSE
151         --          and Minx = Miny = RealFirst () 
152         --              Maxx = Maxy = RealLast ()
153
154         MinMax (me; Minx, Maxx, Miny, Maxy: out Length from Quantity)
155                 returns Boolean is redefined;
156         ---Level: Public
157         ---Purpose: Returns the min max values of <me> including
158         --      the frame and primitives inside.
159         --  Warning: If <me> is empty or not displayed
160         --          returns FALSE
161         --          and     Minx = Miny = RealFirst ()
162         --                  Maxx = Maxy = RealLast ()
163
164         Frame (me; aFrame: out Array1OfVertex from Graphic2d)
165                 returns TypeOfFrame from Graphic2d is static;
166         ---Level: Public
167         ---Purpose: Returns the frame geometry and type of 
168         --   the hiding graphic object.
169         --  Warning: the frame can be NULL.
170
171         HidingColorIndex (me)
172                 returns Integer from Standard is static;
173         ---Level: Public
174         ---Purpose: Returns the hiding color index.
175
176         FrameColorIndex (me)
177                 returns Integer from Standard is static;
178         ---Level: Public
179         ---Purpose: Returns the frame color index.
180
181         FrameTypeIndex (me)
182                 returns Integer from Standard is static;
183         ---Level: Public
184         ---Purpose: Returns the frame line type index.
185
186         FrameWidthIndex (me)
187                 returns Integer from Standard is static;
188         ---Level: Public
189         ---Purpose: Returns the frame line thickness index.
190
191         ----------------------------
192         -- Category: Private methods
193         ----------------------------
194
195         Draw (me: mutable;
196                 aDrawer: Drawer from Graphic2d;
197                 Reset: Boolean from Standard)
198         is redefined private;
199         ---Level: Internal
200         ---Purpose: Drawn the last Undrawn primitives managed by the
201         --          graphic object <me> in the drawer <aDrawer>.
202         ---Category: Private methods
203
204         Draw (me: mutable;
205                 aDrawer: Drawer from Graphic2d;
206                 aPrimitive: Primitive from Graphic2d)
207         is redefined private;
208         ---Level: Internal
209         ---Purpose: Drawn a primitive managed by the
210         --          graphic object <me> in the drawer <aDrawer>.
211         --          Called by the method Graphic2d_View::Update (aPrimitive)
212         ---Category: Private methods
213
214         Pick (me : mutable; X, Y: Real from Standard;
215                 aPrecision: Real from Standard;
216                 aDrawer: Drawer from Graphic2d)
217         returns Boolean from Standard
218         is redefined private;
219         ---Level: Internal
220         ---Purpose: Returns Standard_True if the graphic object <me>
221         --          is picked, Standard_False if not.
222         --          Called by the method Graphic2d_View::Pick
223         ---Category: Private methods
224
225         BasePriority (me) returns Integer from Standard is redefined private;
226         ---Level: Internal
227         ---Purpose: Returns the min usable absolute priority of the
228         --         "hiding" graphic object.  
229
230         TransformMinMax (me; aTrsf: GTrsf2d from gp;
231                          Minx, Maxx, Miny, Maxy: out Real from Standard)
232                 is static private;
233         ---Level: Internal
234         ---Purpose: Returns the transformed min max values of the frame <me>.
235
236 fields
237         myFrame:                HArray1OfVertex from Graphic2d;
238         myTypeOfFrame:          TypeOfFrame from Graphic2d;
239         myHidingColorIndex:     Integer from Standard;
240         myFrameColorIndex:      Integer from Standard;
241         myFrameTypeIndex:       Integer from Standard;
242         myFrameWidthIndex:      Integer from Standard;
243         myFrameMargin1:         Length from Quantity;
244         myFrameMargin2:         Length from Quantity;
245         myXmin,myYmin:          Length from Quantity;
246         myXmax,myYmax:          Length from Quantity;
247         myIsComputed:           Boolean from Standard;
248
249 friends
250         class View from Graphic2d
251
252 end HidingGraphicObject from Graphic2d;