0023429: BRepFeat_SplitShape algorithm misses some section edges while building resul...
[occt.git] / src / LocOpe / LocOpe_WiresOnShape.cdl
1 -- Created on: 1996-01-11
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1996-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23
24 class WiresOnShape from LocOpe inherits ProjectedWires from LocOpe
25
26         ---Purpose: 
27
28 uses Shape               from TopoDS,
29      Face                from TopoDS,
30      Wire                from TopoDS,
31      Compound            from TopoDS,
32      Edge                from TopoDS,
33      Vertex              from TopoDS,
34      DataMapOfShapeShape from TopTools,
35 --     DataMapIteratorOfDataMapOfShapeShape from TopTools
36      IndexedDataMapOfShapeShape from TopTools,
37      MapOfShape          from TopTools
38
39
40 is
41
42     Create(S: Shape from TopoDS)
43
44         returns mutable WiresOnShape from LocOpe;
45
46
47     Init(me: mutable; S: Shape from TopoDS)
48     
49         is static;
50
51     SetCheckInterior(me: mutable; ToCheckInterior: Boolean from Standard)
52         ---Purpose: Set the flag of check internal intersections
53         --          default value is True (to check)
54         ---C++: inline      
55         is static;
56
57     Bind(me: mutable; W: Wire from TopoDS;
58                       F: Face from TopoDS)
59                      
60         is static;
61
62     Bind(me: mutable; Comp: Compound from TopoDS;
63                       F:    Face from TopoDS)
64                      
65         is static;
66
67     Bind(me: mutable; E: Edge from TopoDS;
68                       F: Face from TopoDS)
69                       
70         is static;
71
72
73     Bind(me: mutable; EfromW: Edge from TopoDS;
74                       EonFace: Edge from TopoDS)
75                       
76         is static;
77
78
79     BindAll(me: mutable)
80     
81         is static;
82
83
84     IsDone(me)
85     
86         returns Boolean from Standard
87         ---C++: inline
88         is static;
89
90
91     InitEdgeIterator(me: mutable)
92     
93         ;
94
95
96     MoreEdge(me: mutable)
97         returns Boolean from Standard
98         ;
99
100
101     Edge(me: mutable)
102         returns Edge from TopoDS
103         ;
104
105
106     OnFace(me: mutable)
107         ---Purpose: Returns the face of the shape on which the current
108         --          edge is projected.
109         returns Face from TopoDS
110         ;
111
112     
113     OnEdge(me: mutable; E: out Edge from TopoDS)
114         ---Purpose: If the   current  edge is  projected  on  an edge,
115         --          returns <Standard_True> and sets the value of <E>.
116         --          Otherwise, returns <Standard_False>.
117         returns Boolean from Standard
118         ;
119
120
121     NextEdge(me: mutable)
122     
123         ;
124
125
126     OnVertex(me: mutable; Vwire :     Vertex from TopoDS;
127                           Vshape: out Vertex from TopoDS)
128                           
129         returns Boolean from Standard
130         ;
131
132
133     OnEdge(me: mutable; V: Vertex from TopoDS;
134                         E: out Edge from TopoDS;
135                         P: out Real from Standard)
136         ---Purpose: If the vertex <V> lies on  an edge of the original
137         --          shape,  returns     <Standard_True> and   sets the
138         --          concerned edge in  <E>,  and the parameter on  the
139         --          edge in <P>.
140         --          Else returns <Standard_False>.
141         returns Boolean from Standard
142         ;
143         
144     IsFaceWithSection(me; aFace : Shape from TopoDS)
145         ---Purpose: tells is the face to be split by section or not
146         ---C++: inline
147         returns Boolean from Standard
148         ;
149
150
151 fields
152
153     myShape : Shape                      from TopoDS;
154     myMapEF : IndexedDataMapOfShapeShape from TopTools;
155     myFacesWithSection : MapOfShape      from TopTools;
156     myCheckInterior : Boolean            from Standard;
157     myMap   : DataMapOfShapeShape        from TopTools;
158     myDone  : Boolean                    from Standard;
159     myIndex : Integer                    from Standard;
160
161 end WiresOnShape;