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
39 returns mutable PaveBlock from BOPDS;
43 Create (theAllocator: BaseAllocator from BOPCol)
44 returns mutable PaveBlock from BOPDS;
47 --- <theAllocator> - the allocator to manage the memory
51 thePave:Pave from BOPDS);
54 --- Sets the first pave <thePave>
57 returns Pave from BOPDS;
58 ---C++: return const &
61 --- Returns the first pave
64 thePave:Pave from BOPDS);
67 --- Sets the second pave <thePave>
70 returns Pave from BOPDS;
71 ---C++: return const &
74 --- Returns the second pave
77 theEdge:Integer from Standard);
80 --- Sets the index of edge of pave block <theEdge>
82 returns Integer from Standard;
85 --- Returns the index of edge of pave block
88 returns Boolean from Standard;
91 --- Returns true if the pave block has edge
94 theEdge:out Integer from Standard)
95 returns Boolean from Standard;
98 --- Returns true if the pave block has edge
99 --- Returns the index of edge <theEdge>
101 SetOriginalEdge (me:mutable;
102 theEdge:Integer from Standard);
105 --- Sets the index of original edge
106 --- of the pave block <theEdge>
109 returns Integer from Standard;
112 --- Returns the index of original edge of pave block
115 returns Boolean from Standard;
118 --- Returns true if the edge is equal to the original edge
119 --- of the pave block
122 theT1:out Real from Standard;
123 theT2:out Real from Standard);
126 --- Returns the parametric range <theT1,theT2>
127 --- of the pave block
130 theOther: PaveBlock from BOPDS)
131 returns Boolean from Standard;
134 --- Returns true if the pave block has pave indices
135 --- that equal to the pave indices of the pave block
139 theIndex1:out Integer from Standard;
140 theIndex2:out Integer from Standard);
143 --- Returns the pave indices <theIndex1,theIndex2>
144 --- of the pave block
150 returns Boolean from Standard;
153 --- Returns true if the pave block contains extra paves
155 AppendExtPave(me:mutable;
156 theLP:Pave from BOPDS);
159 --- Appends extra paves <theLP>
161 AppendExtPave1(me:mutable;
162 thePave:Pave from BOPDS);
165 --- Appends extra pave <thePave>
168 returns ListOfPave from BOPDS;
169 ---C++: return const &
172 --- Returns the extra paves
174 ChangeExtPaves(me:mutable)
175 returns ListOfPave from BOPDS;
178 --- Selector / Modifier
179 --- Returns the extra paves
182 theLPB : out ListOfPaveBlock from BOPDS;
183 theFlag : Boolean from Standard=Standard_True);
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.
191 ContainsParameter(me;
192 thePrm:Real from Standard;
193 theTol:Real from Standard)
194 returns Boolean from Standard;
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
204 SetShrunkData(me:mutable;
205 theTS1:Real from Standard;
206 theTS2:Real from Standard;
207 theBox:Box from Bnd);
210 --- Sets the shrunk data for the pave block
211 --- <theTS1>, <theTS2> - shrunk range
212 --- <theBox> - the bounding box
215 theTS1:out Real from Standard;
216 theTS2:out Real from Standard;
217 theBox:out Box from Bnd);
220 --- Returns the shrunk data for the pave block
221 --- <theTS1>, <theTS2> - shrunk range
222 --- <theBox> - the bounding box
225 returns Boolean from Standard;
228 --- Returns true if the pave block contains
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;
242 myExtPaves : ListOfPave from BOPDS is protected;
244 myTS1 : Real from Standard is protected;
245 myTS2 : Real from Standard is protected;
246 myShrunkBox : Box from Bnd is protected;
248 myMFence : MapOfInteger from BOPCol is protected;