0022550: Fixing data races
[occt.git] / src / BRepClass3d / BRepClass3d_SolidExplorer.cdl
1 -- File:       SolidExplorer.cdl
2 -- Created:     Thu Mar 10 14:02:10 1994
3 -- Author:      Laurent BUCHARD
4 --              <lbr@fuegox>
5 ---Copyright:    Matra Datavision 1994
6
7 -- Modified by skv - Thu Sep  4 12:19:22 2003 OCC578 
8 -- Add the method GetFaceSegmentIndex() which is used to obtain the index of 
9 -- the face for which last segment is calculated.
10
11 class SolidExplorer from BRepClass3d 
12
13         ---Purpose: Provide an   exploration of a  BRep Shape   for the
14         --          classification.
15
16 uses
17     Orientation  from TopAbs,
18     Pnt          from gp,
19     Pnt2d        from gp,    
20     Lin          from gp,
21     Vec          from gp,
22     Face         from TopoDS,
23     Shell        from TopoDS,
24     Shape        from TopoDS,
25     Explorer     from TopExp,
26     Edge         from BRepClass,
27     Box          from Bnd,
28     State        from TopAbs,
29     Intersector  from IntCurvesFace,
30     MapOfInter   from BRepClass3d,
31     HSurface     from BRepAdaptor
32 is
33
34     Create returns SolidExplorer from BRepClass3d;
35
36     Create (Oth: SolidExplorer from BRepClass3d) 
37         ---Purpose: Raise if called. 
38     returns SolidExplorer from BRepClass3d;
39
40     Create (S : Shape  from TopoDS) returns SolidExplorer from BRepClass3d;
41
42     Delete(me:out) is virtual;
43     ---C++: alias "Standard_EXPORT virtual ~BRepClass3d_SolidExplorer(){Destroy() ; }"
44     
45     InitShape(me : in out; S : Shape from TopoDS) is static ;
46         
47     Reject(me;  P : Pnt from gp) returns Boolean is virtual ;
48     ---Purpose: Should return True if P outside of bounding vol. of the shape
49     
50     FindAPointInTheFace(myclass; F: Face from TopoDS; 
51                                  P: out Pnt from gp;
52                                  Param: out Real from Standard) 
53     ---Purpose : compute a point P in the face  F. Param is a Real in
54     --         ]0,1[ and   is  used to  initialise  the algorithm. For
55     --         different values , different points are returned. 
56     returns Boolean from Standard;
57
58     FindAPointInTheFace(myclass; F: Face from TopoDS; 
59                                  P: out Pnt from gp;
60                                  u,v: out Real from Standard;
61                                  Param: out Real from Standard) 
62     returns Boolean from Standard;
63
64     FindAPointInTheFace(myclass; F: Face from TopoDS; 
65                                  P: out Pnt from gp;
66                                  u,v: out Real from Standard;
67                                  Param: out Real from Standard;
68                                  theVecD1U, theVecD1V: out Vec from gp)
69     returns Boolean from Standard;
70
71     FindAPointInTheFace(myclass; F: Face from TopoDS; 
72                                  P: out Pnt from gp;
73                                  u,v: out Real from Standard)
74     returns Boolean from Standard;
75
76     FindAPointInTheFace(myclass; F: Face from TopoDS; 
77                                  P: out Pnt from gp)
78     returns Boolean from Standard;
79
80     FindAPointInTheFace(myclass; F: Face from TopoDS; 
81                                  u,v: out Real from Standard) 
82     returns Boolean from Standard;
83                                                                          
84     -----------------------------------------------------------------------
85
86     PointInTheFace(me;      F: Face from TopoDS; 
87                             P: out Pnt from gp;
88                             u,v: out Real from Standard;
89                             Param: out Real from Standard;
90                             Index: out Integer from Standard) 
91     returns Boolean from Standard is static ;
92
93     PointInTheFace(me;      F: Face from TopoDS; 
94                             P: out Pnt from gp;
95                             u,v: out Real from Standard;
96                             Param: out Real from Standard;
97                             Index: out Integer from Standard;
98                             surf: HSurface  from BRepAdaptor;
99                             u1,v1,u2,v2: Real from Standard)
100     returns Boolean from Standard is static;
101
102     PointInTheFace(me;      F: Face from TopoDS; 
103                             P: out Pnt from gp;
104                             u,v: out Real from Standard;
105                             Param: out Real from Standard;
106                             Index: out Integer from Standard;
107                             surf: HSurface  from BRepAdaptor;
108                             u1,v1,u2,v2: Real from Standard;
109                             theVecD1U, theVecD1V: out Vec from gp)
110     returns Boolean from Standard is static ;
111     ---Purpose: <Index> gives point index  to  search from and returns
112     --          point index of succeseful search
113
114
115
116     InitShell(me: in out) is static ;
117     ---Purpose: Starts an exploration of the shells.
118     MoreShell(me) returns Boolean from Standard is static ;
119     ---Purpose: Returns True if there is a current shell. 
120     NextShell(me: in out) is static ;
121     ---Purpose: Sets the explorer to the next shell.
122     CurrentShell(me) returns Shell from TopoDS is static ;
123     ---Purpose: Returns the current shell.
124     
125     RejectShell(me; L: Lin from gp) returns Boolean from Standard is virtual;
126     ---Purpose: Returns True if the Shell is rejected.
127     
128     InitFace(me: in out) is static ;
129     ---Purpose: Starts an exploration of the faces of the current shell.
130     MoreFace(me) returns Boolean from Standard is static ;
131     ---Purpose: Returns True if current face in current shell. 
132     NextFace(me: in out) is static ;
133     ---Purpose: Sets the explorer to the next Face of the current shell.
134     CurrentFace(me) returns Face from TopoDS is static ;
135     ---Purpose: Returns the current face.
136     
137     RejectFace(me; L: Lin from gp) returns Boolean from Standard is virtual;
138     ---Purpose: returns True if the face is rejected.
139     
140     ----------------------------------------------------------------------
141
142     Segment(me: in out;  P :  Pnt from gp;
143                          L : out Lin from gp; Par : out  Real)
144          ---Purpose: Returns  in <L>, <Par>  a segment having at least
145          --          one  intersection  with  the  shape  boundary  to
146          --          compute  intersections. 
147          --    
148  --modified by NIZNHY-PKV Thu Nov 14 12:20:17 2002  f 
149     returns  Integer from Standard  
150 --modified by NIZNHY-PKV Thu Nov 14 12:20:21 2002  t 
151     is static;
152
153     OtherSegment(me: in out;  P :  Pnt from gp;
154                               L : out Lin from gp; Par : out  Real)
155          ---Purpose: Returns  in <L>, <Par>  a segment having at least
156          --          one  intersection  with  the  shape  boundary  to
157          --          compute  intersections. 
158          --          
159          --          The First Call to this method returns a line which
160          --          point to a point of the first face of the shape.
161          --          The Second Call provide a line to the second face
162          --          and so on. 
163          --          
164 --modified by NIZNHY-PKV Thu Nov 14 12:20:17 2002  f 
165     returns  Integer from Standard  
166 --modified by NIZNHY-PKV Thu Nov 14 12:20:21 2002  t    
167     is static;
168     
169 -- Modified by skv - Thu Sep  4 12:19:22 2003 OCC578 Begin
170     GetFaceSegmentIndex(me) 
171         ---Purpose: Returns the index of face for which 
172         --          last segment is calculated.
173     returns Integer from Standard 
174     is static;
175 -- Modified by skv - Thu Sep  4 12:19:23 2003 OCC578 End
176     --------------------------------------------------------------------
177
178     --- Dump method
179
180     DumpSegment(me; P : Pnt from gp; L : Lin from gp; 
181                     Par : Real from Standard; S : State from TopAbs) is  virtual;
182
183     
184     Box(me) 
185         ---C++: return  const &
186         returns Box from Bnd
187         is static;
188     
189     Intersector(me; F : Face from TopoDS) 
190         ---C++: return  &
191         returns Intersector from IntCurvesFace is static;
192
193     Destroy(me: in out)
194         --C++: alias ~
195     is static;
196     
197 fields
198
199     myBox           : Box      from Bnd;
200     myShape         : Shape    from TopoDS;
201     myReject        : Boolean  from Standard;
202     myFirstFace     : Integer  from Standard;
203     myParamOnEdge   : Real     from Standard;
204     myShellExplorer : Explorer from TopExp;
205     myFaceExplorer  : Explorer from TopExp;
206
207     myMapOfInter    : MapOfInter from BRepClass3d;
208
209 end SolidExplorer;