1 -- File : Partition_Inter3d.cdl
2 -- Created: Thu Aug 02 16:07:39 2001
3 -- Author : Benedicte MARTIN
5 ---Copyright: OPEN CASCADE 2001
8 class Inter3d from Partition
10 ---Purpose: Computes the intersection face face in a set of faces
11 -- Store the result in a SD as AsDes.
16 DataMapOfShapeShape from TopTools,
17 MapOfShape from TopTools,
18 Boolean from Standard,
23 ListOfShape from TopTools,
26 DataMapOfShapeListOfShape from TopTools
29 Create returns Inter3d from Partition;
31 Create(AsDes : mutable AsDes from BRepAlgo);
33 CompletPart3d (me : in out; SetOfFaces1 : ListOfShape from TopTools;
34 FaceShapeMap: DataMapOfShapeShape from TopTools)
37 FacesPartition (me : in out; F1, F2 : Face from TopoDS)
40 ----------------------------
41 ---Category: Result Querying
42 ----------------------------
44 IsDone(me ; F1,F2 : Face from TopoDS)
45 returns Boolean from Standard is static;
46 ---Purpose: return True if F1-F2 pair has been processed
48 TouchedFaces(me : in out) returns MapOfShape from TopTools
51 ---Purpose: return map of
53 AsDes(me) returns AsDes from BRepAlgo
56 NewEdges(me : in out) returns MapOfShape from TopTools
60 -------------------------------
61 ---Category: Same domain shapes
62 -------------------------------
64 HasSameDomainF(me; F : Shape from TopoDS)
65 returns Boolean from Standard;
66 ---Purpose: Return true if F has same domain faces
68 IsSameDomainF(me; F1, F2 : Shape from TopoDS)
69 returns Boolean from Standard;
70 ---Purpose: Return true if F1 and F2 are same domain faces
72 SameDomain(me; F : Face from TopoDS)
73 returns ListOfShape from TopTools;
74 ---C++: return const &
75 ---Purpose: Return same domain faces of F
77 ReplaceSameDomainV (me; V : Vertex from TopoDS;
79 returns Vertex from TopoDS;
80 ---Purpose: return same domain vertex of V if it was replaced
81 -- and make this vertex to be on E too, else return V
83 --------------------------
84 ---Category: Section edges
85 --------------------------
87 SectionEdgesAD (me) returns AsDes from BRepAlgo
90 IsSectionEdge (me; E : Edge from TopoDS)
91 returns Boolean from Standard;
92 ---Purpose: return True if E is an edge of a face and it
93 -- intersects an other face
95 HasSectionEdge (me; F : Face from TopoDS)
96 returns Boolean from Standard;
97 ---Purpose: return True if F is intersected by an edge of
100 IsSplitOn (me; NewE, OldE : Edge from TopoDS;
101 F : Face from TopoDS)
102 returns Boolean from Standard;
103 ---Purpose: return True if NewE is split of OldE on F;
104 -- no check if NewE is split of OldE :)
106 SectionEdgeFaces (me; SecE : Edge from TopoDS)
107 returns ListOfShape from TopTools;
108 ---C++: return const&
109 ---Purpose: return faces cut by section edge
115 Inter3D (me: in out; F1, F2 : Face from TopoDS;
116 LInt : in out ListOfShape from TopTools)
119 StorePart3d(me : in out; F1,F2 : Face from TopoDS;
120 LInt1 : ListOfShape from TopTools)
123 SetDone(me : in out; F1,F2 : Face from TopoDS)
126 Affiche (me; SetOfFaces : ListOfShape from TopTools)
131 myAsDes : AsDes from BRepAlgo;
132 myDone : DataMapOfShapeListOfShape from TopTools;
133 myTouched : MapOfShape from TopTools;
134 myNewEdges : MapOfShape from TopTools;
136 -- section edges: existing edges that are intersection lines,
139 -- FACE -> SECTION EDGES, SECTION EDGE -> OTHER SECTION EDGE
140 mySectionEdgesAD : AsDes from BRepAlgo;
142 -- same domain shapes
144 mySameDomainFM : DataMapOfShapeListOfShape from TopTools;
145 -- vertex -> vertex replacement
146 mySameDomainVM : DataMapOfShapeShape from TopTools;