2 -- Created: Thu Mar 29 10:55:43 2001
3 -- Author: Peter KURNEV
5 ---Copyright: Matra Datavision 2001
9 ---Purpose: Contains main and auxiliary classes to provide boolean operations
10 -- (BO) Common, Cut, Fuse, Section between a couple BRep shapes.
36 --- E n u m e r a t i o n s
38 enumeration Operation is
47 enumeration LoopEnum is
53 enumeration CheckStatus is
59 IncompatibilityOfVertex,
60 IncompatibilityOfEdge,
64 --- T h e C l a s s e s
67 deferred class Builder;
69 --- Root class for performing a BO
73 --- Performs BO (Common,Cut,Fuse) for wires(edges)
77 --- Performs BO (Common,Cut,Fuse) for wire(edge)/shell(face)
81 --- Performs BO (Common,Cut,Fuse) for wire(edge)/solid
85 --- Root class for Wire/... Biulders
90 --- Performs BO (Common,Cut,Fuse) for solids
94 --- Performs BO (Common,Cut,Fuse) for shell/shell arguments
98 --- Performs BO (Common,Cut,Fuse) for shell/solid arguments
103 --- Performs BO (Common,Cut,Fuse) for shapes
104 --- in cases when one of arguments(or both) is(are) empty
106 deferred class HistoryCollector;
108 class SolidSolidHistoryCollector;
110 class ShellSolidHistoryCollector;
112 class WireSolidHistoryCollector;
114 class SectionHistoryCollector;
118 --- Handy tools to help building a result
122 --- Performs the BO (Section)
123 --- for the shapes where it is valid one
127 --- Refines the result of the BO if necessary
131 --- Root auxiliary class for set of shapes
132 --- to build new faces from wires,new solids from shells
136 --- Class for set of edges and wires to build new faces
140 --- Class for set of faces and shells to build new solids
144 --- Auxiliary class to storage and operate with data of
145 --- connexity blocks inside
149 --- Auxiliary class to iterate data inside the given
154 --- Auxiliary class containing data about an existing shape
155 --- (Shell,Wire)or a set of shapes (Faces,Edges) which are connex.
159 --- Auxiliary class to storage and iterate on Loop(s)
162 deferred class LoopClassifier;
164 --- Root class to classify loops in order to build Areas
166 deferred class CompositeClassifier;
168 --- Cclassify composite Loops, i.e, loops that can be
169 --- either a Shape, or a block of Elements
171 class WireEdgeClassifier;
173 --- Classify loops that consist of edges and wires
175 class ShellFaceClassifier;
177 --- Classify loops that consist of faces and shells
181 --- Root class to provide building valid areas from
182 --- corresponding shape sets
186 --- Constructs areas for Faces from a WireEdgeSet
188 class FaceAreaBuilder;
190 --- constructs Loops for Faces from a WireEdgeSet
194 --- construct Faces from a WireEdgeSet
198 --- Constructs areas for Faces from a WireEdgeSet
200 class SolidAreaBuilder;
202 --- Constructs areas for Solids from a ShellFaceSet
206 --- Constructs Solids from a ShellFaceSet
210 --- Auxiliary class to store data about edges on a face
211 --- that have common vertex
215 --- Auxiliary class to store data about faces on a shell
216 --- that have common edge
220 --- The algorithm to split invalid (multiconnexed)
221 --- wires on a face onto valid ones
225 --- The algorithm to split invalid (multiconnexed)
226 --- shells on a solid onto valid ones
228 class ConnexityBlock;
230 --- Auxiliary class to create and store data about a set
235 --- The algorithm to change the WES contents
236 --- The NewWES will contain only wires instead of
241 --- The algorithm to change the SFS contents.
242 --- The NewSFS will contain only shells instead of
243 --- shells and faces.
246 class CorrectTolerances;
248 --- Auxiliary class to provide valid values for result's tolerances'
252 --- Auxiliary class to display intermediate results in Draw's windows
253 --- for the debugging purposes
257 --- Fills a wire edges set for a couple of faces that are same domain
261 class ArgumentAnalyzer;
265 pointer PWireEdgeSet to WireEdgeSet from BOP;
266 pointer PShellFaceSet to ShellFaceSet from BOP;
267 pointer PBuilder to Builder from BOP;
270 --- I n s t a n t i a t i o n s
272 class ListOfConnexityBlock instantiates
273 List from TCollection(ConnexityBlock from BOP);
275 class ListOfLoop instantiates
276 List from TCollection(Loop from BOP);
278 class ListOfListOfLoop instantiates
279 List from TCollection(ListOfLoop from BOP);
281 class ListOfEdgeInfo instantiates
282 List from TCollection(EdgeInfo from BOP);
284 class IndexedDataMapOfVertexListEdgeInfo instantiates
285 IndexedDataMap from TCollection(Shape from TopoDS,
286 ListOfEdgeInfo from BOP,
287 ShapeMapHasher from TopTools);
288 class ListOfFaceInfo instantiates
289 List from TCollection(FaceInfo from BOP);
291 class IndexedDataMapOfEdgeListFaceInfo instantiates
292 IndexedDataMap from TCollection(Shape from TopoDS,
293 ListOfFaceInfo from BOP,
294 ShapeMapHasher from TopTools);
295 class SeqOfSeqOfShape instantiates
296 Sequence from TCollection(SequenceOfShape from TopTools);
300 class SolidClassifier;
302 pointer PSoClassif to SolidClassifier from BRepClass3d;
304 class IndexedDataMapOfSolidClassifier instantiates
305 IndexedDataMap from TCollection (Shape from TopoDS,
307 ShapeMapHasher from TopTools);
309 class ListOfCheckResult instantiates
310 List from TCollection(CheckResult from BOP);