7fd59977 |
1 | -- File: TopOpeBRepBuild_FaceBuilder.cdl |
2 | -- Created: Thu Dec 21 17:07:40 1995 |
3 | -- Author: Jean Yves LEBEY |
4 | -- <jyl@meteox> |
5 | ---Copyright: Matra Datavision 1995 |
6 | |
7 | class FaceBuilder from TopOpeBRepBuild |
8 | |
9 | uses |
10 | |
11 | Shape from TopoDS, |
12 | Face from TopoDS, |
13 | ListOfShape from TopTools, |
14 | IndexedMapOfShape from TopTools, |
15 | IndexedDataMapOfShapeShape from TopTools, |
16 | ShapeSet from TopOpeBRepBuild, |
17 | LoopSet from TopOpeBRepBuild, |
18 | BlockIterator from TopOpeBRepBuild, |
19 | BlockBuilder from TopOpeBRepBuild, |
20 | WireEdgeSet from TopOpeBRepBuild, |
21 | FaceAreaBuilder from TopOpeBRepBuild, |
22 | DataMapOfShapeInteger from TopTools |
23 | |
24 | is |
25 | |
26 | Create returns FaceBuilder; |
27 | |
28 | Create(ES : in out WireEdgeSet; F : Shape from TopoDS; |
29 | ForceClass : Boolean = Standard_False) returns FaceBuilder; |
30 | ---Purpose: Create a FaceBuilder to build the faces on |
31 | -- the shapes (wires, blocks of edge) described by <LS>. |
32 | |
33 | InitFaceBuilder(me : in out; |
34 | ES : in out WireEdgeSet; F : Shape from TopoDS; |
35 | ForceClass : Boolean); |
36 | |
37 | DetectUnclosedWire(me : in out; |
38 | mapVVsameG : out IndexedDataMapOfShapeShape from TopTools; |
39 | mapVon1Edge : out IndexedDataMapOfShapeShape from TopTools); |
40 | ---Purpose: Removes are non 3d-closed wires. |
41 | -- Fills up maps <mapVVsameG> and <mapVon1Edge>, in order to |
42 | -- correct 3d-closed but unclosed (topologic connexity) wires. |
43 | -- modifies myBlockBuilder |
44 | |
45 | CorrectGclosedWire(me : in out; |
46 | mapVVref : IndexedDataMapOfShapeShape from TopTools; |
47 | mapVon1Edge : IndexedDataMapOfShapeShape from TopTools); |
48 | ---Purpose: Using the given maps, change the topology of the 3d-closed |
49 | -- wires, in order to get closed wires. |
50 | |
51 | DetectPseudoInternalEdge(me : in out; |
52 | mapE : out IndexedMapOfShape from TopTools); |
53 | ---Purpose: Removes edges appearing twice (FORWARD,REVERSED) with a bounding |
54 | -- vertex not connected to any other edge. |
55 | -- mapE contains edges found. |
56 | -- modifies myBlockBuilder. |
57 | |
58 | Face(me) returns Shape from TopoDS; |
59 | ---C++: return const & |
60 | ---Purpose: return myFace |
61 | |
62 | -- Output methods |
63 | InitFace(me : in out) returns Integer from Standard; |
64 | MoreFace(me) returns Boolean from Standard; |
65 | NextFace(me : in out); |
66 | |
67 | -- Exploration of the wires of the current face |
68 | InitWire(me : in out) returns Integer from Standard; |
69 | MoreWire(me) returns Boolean from Standard; |
70 | NextWire(me : in out); |
71 | IsOldWire(me) returns Boolean from Standard; |
72 | OldWire(me) returns Shape from TopoDS; |
73 | ---Purpose: Returns current wire |
74 | -- This wire may be : |
75 | -- * an old wire OldWire(), which has not been reconstructed; |
76 | -- * a new wire made of edges described by ...NewEdge() methods. |
77 | ---C++: return const & |
78 | |
79 | -- Exploration of the edges of current wire when IsOldWire = False |
80 | FindNextValidElement(me : in out); |
81 | ---Purpose: Iterates on myBlockIterator until finding a valid element |
82 | InitEdge(me : in out) returns Integer from Standard; |
83 | MoreEdge(me) returns Boolean from Standard; |
84 | NextEdge(me : in out); |
85 | Edge(me) returns Shape from TopoDS; |
86 | ---Purpose: Returns current new edge of current new wire. |
87 | ---C++: return const & |
88 | |
89 | EdgeConnexity(me;E:Shape) returns Integer; |
90 | AddEdgeWire(me;E:Shape;W:in out Shape) |
91 | returns Integer; |
92 | |
93 | --- private |
94 | MakeLoops(me : in out; SS : in out ShapeSet from TopOpeBRepBuild) |
95 | is private; |
96 | |
97 | fields |
98 | |
99 | myFace : Face from TopoDS; |
100 | myLoopSet : LoopSet from TopOpeBRepBuild; |
101 | myBlockIterator : BlockIterator from TopOpeBRepBuild; |
102 | myBlockBuilder : BlockBuilder from TopOpeBRepBuild; |
103 | myFaceAreaBuilder : FaceAreaBuilder from TopOpeBRepBuild; |
104 | myMOSI : DataMapOfShapeInteger from TopTools; |
105 | |
106 | end FaceBuilder; |