353d87e4c35fc6d1be890ef5f9a2bdd683aaa308
[occt.git] / src / BOPDS / BOPDS_PaveBlock.cdl
1 -- Created by: Peter KURNEV
2 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
3 --
4 -- The content of this file is subject to the Open CASCADE Technology Public
5 -- License Version 6.5 (the "License"). You may not use the content of this file
6 -- except in compliance with the License. Please obtain a copy of the License
7 -- at http://www.opencascade.org and read it completely before using this file.
8 --
9 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 --
12 -- The Original Code and all software distributed under the License is
13 -- distributed on an "AS IS" basis, without warranty of any kind, and the
14 -- Initial Developer hereby disclaims all such warranties, including without
15 -- limitation, any warranties of merchantability, fitness for a particular
16 -- purpose or non-infringement. Please see the License for the specific terms
17 -- and conditions governing the rights and limitations under the License.
18
19 class PaveBlock from BOPDS 
20     inherits TShared from MMgt  
21     
22 ---Purpose:  
23 -- The class BOPDS_PaveBlock is to store  
24 -- the information about pave block on an edge. 
25 -- Two adjacent paves on edge make up pave block.    
26
27 uses   
28     Box from Bnd, 
29     BaseAllocator from BOPCol, 
30     MapOfInteger from BOPCol,
31     Pave from BOPDS,
32     ListOfPave from BOPDS, 
33     ListOfPaveBlock from BOPDS
34     
35 --raises
36
37 is 
38     Create 
39     returns mutable PaveBlock from BOPDS; 
40     ---Purpose:  
41     --- Empty contructor  
42     --- 
43     Create (theAllocator: BaseAllocator from BOPCol) 
44     returns mutable PaveBlock from BOPDS; 
45     ---Purpose:  
46     ---  Contructor    
47     ---  <theAllocator> - the allocator to manage the memory     
48     --- 
49      
50     SetPave1(me:mutable; 
51         thePave:Pave from BOPDS); 
52     ---Purpose: 
53     --- Modifier   
54     --- Sets the first pave <thePave> 
55      
56     Pave1(me) 
57     returns Pave from BOPDS; 
58     ---C++: return const &     
59     ---Purpose: 
60     --- Selector 
61     --- Returns the first pave           
62      
63     SetPave2(me:mutable; 
64         thePave:Pave from BOPDS); 
65     ---Purpose: 
66     --- Modifier   
67     --- Sets the second pave <thePave>     
68      
69     Pave2(me) 
70     returns Pave from BOPDS; 
71     ---C++: return const &  
72     ---Purpose:  
73     --- Selector 
74     --- Returns the second pave 
75
76     SetEdge(me:mutable; 
77         theEdge:Integer from Standard); 
78     ---Purpose: 
79     --- Modifier   
80     --- Sets the index of edge of pave block <theEdge>      
81     Edge(me) 
82         returns Integer from Standard;  
83     ---Purpose:  
84     --- Selector 
85     --- Returns the index of edge of pave block
86  
87     HasEdge(me) 
88     returns Boolean from Standard; 
89     ---Purpose: 
90     --- Query
91     --- Returns true if the pave block has edge 
92          
93     HasEdge(me; 
94         theEdge:out Integer from Standard) 
95     returns Boolean from Standard; 
96     ---Purpose: 
97     --- Query
98     --- Returns true if the pave block has edge 
99     --- Returns the index of edge <theEdge> 
100         
101     SetOriginalEdge  (me:mutable;   
102         theEdge:Integer from Standard);  
103     ---Purpose: 
104     --- Modifier   
105     --- Sets the index of original edge  
106     --- of the pave block <theEdge>   
107          
108     OriginalEdge(me) 
109     returns Integer from Standard; 
110     ---Purpose:  
111     --- Selector 
112     --- Returns the index of original edge of pave block 
113         
114     IsSplitEdge(me) 
115     returns Boolean from Standard; 
116     ---Purpose: 
117     --- Query
118     --- Returns true if the edge is equal to the original edge   
119     --- of the pave block    
120      
121     Range(me; 
122         theT1:out Real from Standard; 
123         theT2:out Real from Standard);
124     ---Purpose:  
125     --- Selector 
126     --- Returns the parametric range <theT1,theT2>  
127     --- of the pave block  
128      
129     HasSameBounds(me; 
130         theOther: PaveBlock from BOPDS) 
131     returns Boolean from Standard; 
132     ---Purpose: 
133     --- Query
134     --- Returns true if the pave block has pave indices   
135     --- that equal to the  pave indices of the pave block   
136     --- <theOther> 
137          
138     Indices(me; 
139         theIndex1:out Integer from Standard; 
140         theIndex2:out Integer from Standard); 
141     ---Purpose: 
142     --- Selector 
143     --- Returns the pave indices  <theIndex1,theIndex2>  
144     --- of the pave block   
145         
146     -- 
147     -- extras
148     --  
149     IsToUpdate(me) 
150     returns Boolean from Standard; 
151     ---Purpose:  
152     --- Query
153     --- Returns true if the pave block contains extra paves 
154          
155     AppendExtPave(me:mutable; 
156         theLP:Pave from BOPDS);  
157     ---Purpose: 
158     --- Modifier 
159     --- Appends extra paves <theLP> 
160          
161     AppendExtPave1(me:mutable; 
162         thePave:Pave from BOPDS);  
163     ---Purpose: 
164     --- Modifier 
165     --- Appends extra pave <thePave>     
166       
167     ExtPaves(me) 
168     returns ListOfPave from BOPDS; 
169     ---C++: return const &  
170     ---Purpose: 
171     --- Selector 
172     --- Returns the  extra paves 
173     
174     ChangeExtPaves(me:mutable) 
175     returns ListOfPave from BOPDS; 
176     ---C++: return &  
177     ---Purpose: 
178     --- Selector / Modifier
179     --- Returns the extra paves 
180  
181     Update(me:mutable; 
182         theLPB  : out ListOfPaveBlock from BOPDS; 
183         theFlag : Boolean from Standard=Standard_True);
184     ---Purpose: 
185     --- Modifier  
186     --- Updates the pave block. The extra paves are used 
187     --- to create new pave blocks <theLPB>. 
188     --- <theFlag> - if true, the first pave and the second  
189     --- pave are used to produce new pave blocks. 
190          
191     ContainsParameter(me; 
192         thePrm:Real from Standard; 
193         theTol:Real from Standard) 
194     returns Boolean from Standard; 
195     ---Purpose: 
196     --- Query 
197     --- Returns true if the extra paves contain the pave 
198     --- with given value of the parameter <thePrm> 
199     ---  <theTol>  - the value of the tolerance to compare 
200  
201     -- 
202     -- shrunk data   
203     -- 
204     SetShrunkData(me:mutable;  
205         theTS1:Real from Standard;
206         theTS2:Real from Standard;
207         theBox:Box from Bnd);  
208     ---Purpose: 
209     --- Modifier  
210     --- Sets the shrunk data for the pave block 
211     --- <theTS1>,  <theTS2> - shrunk range 
212     --- <theBox> - the bounding box 
213          
214     ShrunkData(me; 
215         theTS1:out Real from Standard;
216         theTS2:out Real from Standard;  
217         theBox:out Box from Bnd);
218     ---Purpose: 
219     --- Selector
220     --- Returns  the shrunk data for the pave block 
221     --- <theTS1>,  <theTS2> - shrunk range 
222     --- <theBox> - the bounding box  
223         
224     HasShrunkData(me) 
225     returns Boolean from Standard; 
226     ---Purpose: 
227     --- Query 
228     --- Returns true if the pave block contains 
229     --- the shrunk data 
230      
231     Dump(me);
232
233
234 fields 
235     --general 
236     myAllocator : BaseAllocator from BOPCol is protected; 
237     myEdge         :  Integer from Standard is protected; 
238     myOriginalEdge :  Integer from Standard is protected;
239     myPave1        :  Pave from BOPDS is protected;
240     myPave2        :  Pave from BOPDS is protected;
241     --extras 
242     myExtPaves     :  ListOfPave from BOPDS is protected; 
243     --shrunk data  
244     myTS1          :  Real from Standard is protected;     
245     myTS2          :  Real from Standard is protected;   
246     myShrunkBox    :  Box   from Bnd is protected;  
247     --dummies
248     myMFence       :  MapOfInteger from BOPCol is protected;   
249  
250 end PaveBlock;
251