1 -- Created by: Peter KURNEV
2 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
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.
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.
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.
19 class PaveBlock from BOPDS
20 inherits TShared from MMgt
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.
29 BaseAllocator from BOPCol,
30 MapOfInteger from BOPCol,
32 ListOfPave from BOPDS,
33 ListOfPaveBlock from BOPDS,
34 CommonBlock from BOPDS
40 returns mutable PaveBlock from BOPDS;
44 Create (theAllocator: BaseAllocator from BOPCol)
45 returns mutable PaveBlock from BOPDS;
48 --- <theAllocator> - the allocator to manage the memory
52 thePave:Pave from BOPDS);
55 --- Sets the first pave <thePave>
58 returns Pave from BOPDS;
59 ---C++: return const &
62 --- Returns the first pave
65 thePave:Pave from BOPDS);
68 --- Sets the second pave <thePave>
71 returns Pave from BOPDS;
72 ---C++: return const &
75 --- Returns the second pave
78 theEdge:Integer from Standard);
81 --- Sets the index of edge of pave block <theEdge>
83 returns Integer from Standard;
86 --- Returns the index of edge of pave block
89 returns Boolean from Standard;
92 --- Returns true if the pave block has edge
95 theEdge:out Integer from Standard)
96 returns Boolean from Standard;
99 --- Returns true if the pave block has edge
100 --- Returns the index of edge <theEdge>
102 SetOriginalEdge (me:mutable;
103 theEdge:Integer from Standard);
106 --- Sets the index of original edge
107 --- of the pave block <theEdge>
110 returns Integer from Standard;
113 --- Returns the index of original edge of pave block
116 returns Boolean from Standard;
119 --- Returns true if the edge is equal to the original edge
120 --- of the pave block
123 theT1:out Real from Standard;
124 theT2:out Real from Standard);
127 --- Returns the parametric range <theT1,theT2>
128 --- of the pave block
131 theOther: PaveBlock from BOPDS)
132 returns Boolean from Standard;
135 --- Returns true if the pave block has pave indices
136 --- that equal to the pave indices of the pave block
140 theIndex1:out Integer from Standard;
141 theIndex2:out Integer from Standard);
144 --- Returns the pave indices <theIndex1,theIndex2>
145 --- of the pave block
151 returns Boolean from Standard;
154 --- Returns true if the pave block contains extra paves
156 AppendExtPave(me:mutable;
157 theLP:Pave from BOPDS);
160 --- Appends extra paves <theLP>
162 AppendExtPave1(me:mutable;
163 thePave:Pave from BOPDS);
166 --- Appends extra pave <thePave>
169 returns ListOfPave from BOPDS;
170 ---C++: return const &
173 --- Returns the extra paves
175 ChangeExtPaves(me:mutable)
176 returns ListOfPave from BOPDS;
179 --- Selector / Modifier
180 --- Returns the extra paves
183 theLPB : out ListOfPaveBlock from BOPDS;
184 theFlag : Boolean from Standard=Standard_True);
187 --- Updates the pave block. The extra paves are used
188 --- to create new pave blocks <theLPB>.
189 --- <theFlag> - if true, the first pave and the second
190 --- pave are used to produce new pave blocks.
192 ContainsParameter(me;
193 thePrm:Real from Standard;
194 theTol:Real from Standard)
195 returns Boolean from Standard;
198 --- Returns true if the extra paves contain the pave
199 --- with given value of the parameter <thePrm>
200 --- <theTol> - the value of the tolerance to compare
205 SetCommonBlock(me:mutable;
206 theCB:CommonBlock from BOPDS);
209 --- Sets the common block <theCB>
212 returns CommonBlock from BOPDS;
213 ---C++: return const &
216 --- Returns the common block
219 returns Boolean from Standard;
222 --- Returns true if the pave block is common block
224 IsCommonBlockOnEdge(me)
225 returns Boolean from Standard;
228 --- Returns true if the pave block is common block
229 --- that contains at least one pave block
232 returns PaveBlock from BOPDS;
233 ---C++: return const &
236 --- Returns the real common block
240 SetShrunkData(me:mutable;
241 theTS1:Real from Standard;
242 theTS2:Real from Standard;
243 theBox:Box from Bnd);
246 --- Sets the shrunk data for the pave block
247 --- <theTS1>, <theTS2> - shrunk range
248 --- <theBox> - the bounding box
251 theTS1:out Real from Standard;
252 theTS2:out Real from Standard;
253 theBox:out Box from Bnd);
256 --- Returns the shrunk data for the pave block
257 --- <theTS1>, <theTS2> - shrunk range
258 --- <theBox> - the bounding box
261 returns Boolean from Standard;
264 --- Returns true if the pave block contains
272 myAllocator : BaseAllocator from BOPCol is protected;
273 myEdge : Integer from Standard is protected;
274 myOriginalEdge : Integer from Standard is protected;
275 myPave1 : Pave from BOPDS is protected;
276 myPave2 : Pave from BOPDS is protected;
278 myExtPaves : ListOfPave from BOPDS is protected;
280 myCommonBlock : CommonBlock from BOPDS is protected;
282 myTS1 : Real from Standard is protected;
283 myTS2 : Real from Standard is protected;
284 myShrunkBox : Box from Bnd is protected;
286 myPB : PaveBlock from BOPDS is protected;
287 myMFence : MapOfInteger from BOPCol is protected;