]> SALOME platform Git repositories - modules/geom.git/blob - src/PARTITION/Partition_Inter3d.cdl
Salome HOME
NRI : First integration.
[modules/geom.git] / src / PARTITION / Partition_Inter3d.cdl
1 -- File   :     Partition_Inter3d.cdl
2 -- Created:     Thu Aug 02 16:07:39 2001
3 -- Author :     Benedicte MARTIN
4 --              
5 ---Copyright:    OPEN CASCADE 2001
6
7
8 class Inter3d from Partition 
9
10         ---Purpose: Computes the intersection face face in a set of faces
11         --          Store the result in a SD as AsDes.
12
13 uses
14     Edge from TopoDS,
15     Vertex from TopoDS,
16     DataMapOfShapeShape       from TopTools,
17     MapOfShape                from TopTools,
18     Boolean                   from Standard,
19     AsDes                     from BRepAlgo,
20     Image                     from BRepAlgo,
21     Shape                     from TopoDS,
22     Face                      from TopoDS,
23     ListOfShape               from TopTools,
24     Real                      from Standard,
25     State                     from TopAbs,
26     DataMapOfShapeListOfShape from TopTools 
27
28 is
29     Create returns Inter3d from Partition;
30     
31     Create(AsDes : mutable AsDes from BRepAlgo);
32
33     CompletPart3d (me : in out; SetOfFaces1 : ListOfShape from TopTools;
34                                 FaceShapeMap: DataMapOfShapeShape from TopTools)
35         is static;
36
37     FacesPartition (me : in out; F1, F2 : Face  from TopoDS)
38         is static;
39
40         ----------------------------
41         ---Category: Result Querying
42         ----------------------------
43
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
47
48     TouchedFaces(me : in out) returns MapOfShape from TopTools
49         ---C++: return &
50         is static;
51         ---Purpose: return map of 
52
53     AsDes(me) returns AsDes from BRepAlgo
54         is static;
55
56     NewEdges(me : in out) returns MapOfShape from TopTools
57         ---C++:  return &
58         is static;
59
60         -------------------------------
61         ---Category: Same domain shapes
62         -------------------------------
63
64     HasSameDomainF(me; F : Shape from TopoDS)
65         returns Boolean from Standard;
66         ---Purpose: Return true if F has same domain faces
67     
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
71     
72     SameDomain(me; F : Face from TopoDS)
73         returns ListOfShape from TopTools;
74         ---C++:  return const &
75         ---Purpose: Return same domain faces of F
76     
77     ReplaceSameDomainV (me; V : Vertex from TopoDS;
78                             E : Edge   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
82
83         --------------------------
84         ---Category: Section edges
85         --------------------------
86
87     SectionEdgesAD (me) returns AsDes from BRepAlgo
88         is static;
89     
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
94     
95     HasSectionEdge (me; F : Face from TopoDS)
96         returns Boolean from Standard;
97         ---Purpose: return True if  F  is  intersected  by  an edge of 
98         --          other face
99
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 :)
105     
106     SectionEdgeFaces (me; SecE : Edge from TopoDS)
107         returns ListOfShape from TopTools;
108         ---C++:  return const&
109         ---Purpose: return faces cut by section edge
110     
111         --------------------
112         ---Category: Private
113         --------------------
114
115     Inter3D (me: in out; F1, F2 :        Face        from TopoDS;
116                          LInt   : in out ListOfShape from TopTools)
117         is static private;
118     
119     StorePart3d(me : in out; F1,F2 : Face        from TopoDS;
120                              LInt1 : ListOfShape from TopTools)
121         is static private;    
122     
123     SetDone(me : in out; F1,F2 : Face from TopoDS)
124         is static private;
125
126     Affiche (me; SetOfFaces : ListOfShape from TopTools)
127         is static private;
128     
129 fields
130
131     myAsDes        : AsDes                     from BRepAlgo;
132     myDone         : DataMapOfShapeListOfShape from TopTools;    
133     myTouched      : MapOfShape                from TopTools;
134     myNewEdges     : MapOfShape                from TopTools;
135
136         -- section edges: existing edges  that are intersection lines,
137         -- may be partially. 
138         -- Store as 
139         -- FACE -> SECTION EDGES, SECTION EDGE -> OTHER SECTION EDGE
140     mySectionEdgesAD : AsDes                   from BRepAlgo;
141     
142     -- same domain shapes
143      -- faces
144     mySameDomainFM : DataMapOfShapeListOfShape from TopTools;
145      -- vertex -> vertex replacement
146     mySameDomainVM : DataMapOfShapeShape       from TopTools;
147
148 end Inter3d;