1 -- GEOM PARTITION : partition algorithm
3 -- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 -- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 -- This library is free software; you can redistribute it and/or
7 -- modify it under the terms of the GNU Lesser General Public
8 -- License as published by the Free Software Foundation; either
9 -- version 2.1 of the License.
11 -- This library is distributed in the hope that it will be useful,
12 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
13 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 -- Lesser General Public License for more details.
16 -- You should have received a copy of the GNU Lesser General Public
17 -- License along with this library; if not, write to the Free Software
18 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 -- See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 -- File : Partition_Inter3d.cdl
25 -- Author : Benedicte MARTIN
28 class Inter3d from Partition
30 ---Purpose: Computes the intersection face face in a set of faces
31 -- Store the result in a SD as AsDes.
36 DataMapOfShapeShape from TopTools,
37 MapOfShape from TopTools,
38 Boolean from Standard,
43 ListOfShape from TopTools,
46 DataMapOfShapeListOfShape from TopTools
49 Create returns Inter3d from Partition;
51 Create(AsDes : mutable AsDes from BRepAlgo);
53 CompletPart3d (me : in out; SetOfFaces1 : ListOfShape from TopTools;
54 FaceShapeMap: DataMapOfShapeShape from TopTools)
57 FacesPartition (me : in out; F1, F2 : Face from TopoDS)
60 ----------------------------
61 ---Category: Result Querying
62 ----------------------------
64 IsDone(me ; F1,F2 : Face from TopoDS)
65 returns Boolean from Standard is static;
66 ---Purpose: return True if F1-F2 pair has been processed
68 TouchedFaces(me : in out) returns MapOfShape from TopTools
71 ---Purpose: return map of
73 AsDes(me) returns AsDes from BRepAlgo
76 NewEdges(me : in out) returns MapOfShape from TopTools
80 -------------------------------
81 ---Category: Same domain shapes
82 -------------------------------
84 HasSameDomainF(me; F : Shape from TopoDS)
85 returns Boolean from Standard;
86 ---Purpose: Return true if F has same domain faces
88 IsSameDomainF(me; F1, F2 : Shape from TopoDS)
89 returns Boolean from Standard;
90 ---Purpose: Return true if F1 and F2 are same domain faces
92 SameDomain(me; F : Face from TopoDS)
93 returns ListOfShape from TopTools;
94 ---C++: return const &
95 ---Purpose: Return same domain faces of F
97 ReplaceSameDomainV (me; V : Vertex from TopoDS;
99 returns Vertex from TopoDS;
100 ---Purpose: return same domain vertex of V if it was replaced
101 -- and make this vertex to be on E too, else return V
103 --------------------------
104 ---Category: Section edges
105 --------------------------
107 SectionEdgesAD (me) returns AsDes from BRepAlgo
110 IsSectionEdge (me; E : Edge from TopoDS)
111 returns Boolean from Standard;
112 ---Purpose: return True if E is an edge of an initial face and
113 -- E intersects aother face
115 HasSectionEdge (me; F : Face from TopoDS)
116 returns Boolean from Standard;
117 ---Purpose: return True if F is intersected by an edge of
120 IsSplitOn (me; NewE, OldE : Edge from TopoDS;
121 F : Face from TopoDS)
122 returns Boolean from Standard;
123 ---Purpose: return True if NewE is split of OldE on F;
124 -- no check if NewE is split of OldE :)
126 SectionEdgeFaces (me; SecE : Edge from TopoDS)
127 returns ListOfShape from TopTools;
128 ---C++: return const&
129 ---Purpose: return faces cut by section edge
135 Inter3D (me: in out; F1, F2 : Face from TopoDS;
136 LInt : in out ListOfShape from TopTools)
139 StorePart3d(me : in out; F1,F2 : Face from TopoDS;
140 LInt1 : ListOfShape from TopTools)
143 SetDone(me : in out; F1,F2 : Face from TopoDS)
146 Affiche (me; SetOfFaces : ListOfShape from TopTools)
151 myAsDes : AsDes from BRepAlgo;
152 myDone : DataMapOfShapeListOfShape from TopTools;
153 myTouched : MapOfShape from TopTools;
154 myNewEdges : MapOfShape from TopTools;
156 -- section edges: existing edges that are intersection lines,
159 -- FACE -> SECTION EDGES, SECTION EDGE -> OTHER SECTION EDGE
160 mySectionEdgesAD : AsDes from BRepAlgo;
162 -- same domain shapes
164 mySameDomainFM : DataMapOfShapeListOfShape from TopTools;
165 -- vertex -> vertex replacement
166 mySameDomainVM : DataMapOfShapeShape from TopTools;