4e0fcde04a7aa989c0f9127ca617ec9f9da73c41
[occt.git] / src / IntTools / IntTools_Context.cdl
1 -- File:        IntTools_Context.cdl
2 -- Created:     Wed Apr  3 16:44:34 2002
3 -- Author:      Peter KURNEV
4 --              <pkv@irinox>
5 ---Copyright:    Matra Datavision 2002
6
7
8 class Context from IntTools 
9
10         ---Purpose:  
11         --- The class is to provide direct access 
12         --- to the frequently using objects like 
13         --- IntTools_FClass2d,    
14         --- GeomAPI_ProjectPointOnSurf,  etc. 
15         --- The instance of the class allows to avoid repeated  
16         --- computations by mapping internal objects in the  
17         --  instance. 
18         
19 uses     
20     State from TopAbs,
21     Pnt2d from  gp,
22     Pnt   from  gp, 
23     Curve from Geom, 
24     ProjectPointOnCurve from GeomAPI, 
25     ProjectPointOnSurf  from GeomAPI, 
26     Vertex from  TopoDS, 
27     Face   from  TopoDS,
28     Edge   from  TopoDS, 
29     Solid  from  TopoDS, 
30     SolidClassifier from BRepClass3d,
31     IndexedDataMapOfShapeAddress from TopTools, 
32     IndexedDataMapOfTransientAddress from IntTools, 
33     FClass2d from IntTools, 
34     SurfaceRangeLocalizeData from IntTools,
35     Curve from IntTools 
36     
37 --raises
38
39 is 
40     Create   
41         returns Context from IntTools; 
42         ---C++: alias "Standard_EXPORT virtual ~IntTools_Context();" 
43         ---Purpose:
44         --- Empty constructor
45         ---
46    
47     FClass2d(me: in out; 
48             aF: Face from TopoDS) 
49         returns FClass2d from IntTools; 
50         ---C++: return & 
51         ---Purpose:
52         --- Returns a reference to point classifier
53         --- for given face
54         ---
55      
56     ProjPS (me: in out; 
57             aF: Face from TopoDS) 
58         returns ProjectPointOnSurf from GeomAPI;
59         ---C++: return &  
60         ---Purpose:
61         --- Returns a reference to point projector
62         --- for given face
63         ---
64      
65     ProjPC (me: in out; 
66             aE: Edge from TopoDS) 
67         returns ProjectPointOnCurve from GeomAPI;
68         ---C++: return &
69         ---Purpose:
70         --- Returns a reference to point projector
71         --- for given edge
72         ---
73
74     ProjPT (me: in out; 
75             aC: Curve from Geom) 
76         returns ProjectPointOnCurve from GeomAPI;
77         ---C++: return &
78         ---Purpose:
79         --- Returns a reference to point projector
80         --- for given curve
81         ---
82
83     SurfaceData(me: in out; 
84                 aF: Face from TopoDS)
85         returns SurfaceRangeLocalizeData from IntTools;
86         ---C++: return &
87         ---Purpose:
88         --- Returns a reference to surface localization data
89         --- for given face
90
91
92     SolidClassifier(me: in out;  
93                     aSolid: Solid from TopoDS) 
94         returns SolidClassifier from BRepClass3d; 
95         ---C++: return &   
96         ---Purpose:
97         --- Returns a reference to solid classifier
98         --- for given solid
99         ---
100
101     ---         API  Block
102     ---
103     ComputeVE  (me:out;  
104                 aV   : Vertex from  TopoDS; 
105                 aE   : Edge   from  TopoDS; 
106                 aT   :out Real from Standard) 
107         returns Integer from Standard;
108         ---Purpose:
109         --- Computes parameter of the vertex aV on
110         --- the edge aE.
111         --- Returns zero if the distance between vertex
112         --- and edge is less than sum of tolerances,
113         --- otherwise and for following conditions returns
114         --- negative value
115         --- 1. the edge is degenerated (-1)
116         --- 2. the edge does not contain 3d curve and pcurves (-2)
117         --- 3. projection algorithm failed (-3)
118         ---
119         
120     --modified by NIZNHY-PKV Tue Feb  2 08:20:43 2010f
121     ComputeVE  (me:out;  
122                 aV   : Vertex from  TopoDS; 
123                 aE   : Edge   from  TopoDS; 
124                 aT   :out Real from Standard; 
125                 bToUpdateVertex:out Boolean from Standard; 
126                 aDist          :out Real from Standard)  
127         returns Integer from Standard;
128         ---Purpose:
129         --- Computes parameter aT of the vertex aV on
130         --- the edge aE.
131         --- Returns zero if the distance between vertex
132         --- and edge is less than sum of tolerances,
133         --- otherwise and for following conditions returns
134         --- negative value
135         --- 1. the edge is degenerated (-1)
136         --- 2. the edge does not contain 3d curve and pcurves (-2)
137         --- 3. projection algorithm failed (-3)
138         ---  
139         --- Output parameters 
140         ---      
141         --- bToUpdateVertex - the flag that indicates whether the  
142         ---      vertex tolerance should be modified or not 
143         --- aDist - the value of the distance between the vertex  
144         ---      and the edge  
145     --modified by NIZNHY-PKV Tue Feb  2 08:20:55 2010t 
146     
147     ComputeVS  (me:out;  
148                 aV  :     Vertex from  TopoDS; 
149                 aF  :     Face   from  TopoDS; 
150                 U   : out Real from Standard; 
151                 V   : out Real from Standard) 
152         returns Integer from Standard;
153         ---Purpose:
154         --- Computes UV parameters of the vertex aV on face aF
155         --- Returns zero if the distance between vertex and face is
156         --- less than or equal the sum of tolerances and the projection 
157         --- point lays inside boundaries of the face.
158         --- For following conditions returns negative value
159         --- 1. projection algorithm failed (-1)
160         --- 2. distance is more than sum of tolerances (-2)
161         --- 3. projection point out or on the boundaries of face (-3)
162         --- 
163          
164     StatePointFace(me:out;    
165                    aF   :  Face   from  TopoDS;
166                    aP2D :  Pnt2d  from  gp) 
167         returns State from TopAbs; 
168         ---Purpose:
169         --- Returns the state of the point aP2D
170         --- relative to face aF
171         ---
172          
173     IsPointInFace(me:out;    
174                   aF   :  Face   from  TopoDS;
175                   aP2D :  Pnt2d  from  gp) 
176         returns Boolean from Standard;
177         ---Purpose:
178         --- Returns true if the point aP2D is
179         --- inside the boundaries of the face aF,
180         --- otherwise returns false
181         ---
182     
183     IsPointInOnFace(me:out;     
184                     aF   :  Face   from  TopoDS;
185                     aP2D :  Pnt2d  from  gp) 
186         returns Boolean from Standard;
187         ---Purpose:
188         --- Returns true if the point aP2D is
189         --- inside or on the boundaries of aF
190         ---
191          
192     IsValidPointForFace(me:out;
193                         aP3D :  Pnt   from  gp; 
194                         aF   :  Face  from TopoDS; 
195                         aTol :  Real from Standard) 
196         returns Boolean from Standard;
197         ---Purpose:
198         --- Returns true if the distance between point aP3D
199         --- and face aF is less or equal to tolerance aTol
200         --- and projection point is inside or on the boundaries
201         --- of the face aF
202         ---
203
204     IsValidPointForFaces(me:out;
205                          aP3D :  Pnt   from  gp; 
206                          aF1  :  Face  from TopoDS; 
207                          aF2  :  Face  from TopoDS;
208                          aTol :  Real from Standard)   
209         returns Boolean from Standard;
210         ---Purpose:
211         --- Returns true if IsValidPointForFace returns true
212         --- for both face aF1 and aF2
213         ---
214          
215     IsValidBlockForFace (me:out;  
216                          aT1  :  Real  from Standard;      
217                          aT2  :  Real  from Standard;      
218                          aIC  :  Curve from IntTools; 
219                          aF   :  Face  from TopoDS; 
220                          aTol :  Real from Standard) 
221         returns Boolean from Standard;
222         ---Purpose:
223         --- Returns true if IsValidPointForFace returns true
224         --- for some 3d point that lay on the curve aIC bounded by
225         --- parameters aT1 and aT2
226         ---
227
228     IsValidBlockForFaces (me:out;  
229                           aT1  :  Real  from Standard;      
230                           aT2  :  Real  from Standard;      
231                           aIC  :  Curve from IntTools; 
232                           aF1  :  Face  from TopoDS; 
233                           aF2  :  Face  from TopoDS; 
234                           aTol :  Real from Standard) 
235         returns Boolean from Standard;
236         ---Purpose:
237         --- Returns true if IsValidBlockForFace returns true
238         --- for both faces aF1 and aF2
239         ---
240          
241     IsVertexOnLine(me:out;  
242                    aV   :  Vertex from  TopoDS;  
243                    aIC  :  Curve from IntTools;  
244                    aTolC:  Real  from Standard; 
245                    aT   :out  Real  from Standard)   
246         returns Boolean from Standard;
247         ---Purpose:
248         --- Computes parameter of the vertex aV on
249         --- the curve aIC.
250         --- Returns true if the distance between vertex and
251         --- curve is less than sum of tolerance of aV and aTolC,
252         --- otherwise or if projection algorithm failed
253         --- returns false (in this case aT isn't significant)
254         --- 
255         
256      IsVertexOnLine(me:out;  
257                    aV   :  Vertex from  TopoDS; 
258                    aTolV:  Real  from Standard;  
259                    aIC  :  Curve from IntTools;  
260                    aTolC:  Real  from Standard; 
261                    aT   :out  Real  from Standard)   
262         returns Boolean from Standard;
263         ---Purpose:
264         --- Computes parameter of the vertex aV on
265         --- the curve aIC.
266         --- Returns true if the distance between vertex and
267         --- curve is less than sum of tolerance of aV and aTolC,
268         --- otherwise or if projection algorithm failed
269         --- returns false (in this case aT isn't significant)
270         --- 
271
272      ProjectPointOnEdge (me:out;  
273                          aP   : Pnt  from  gp;       
274                          aE   : Edge from  TopoDS;                 
275                          aT   :out Real from  Standard) 
276         returns Boolean from Standard;
277         ---Purpose:
278         --- Computes parameter of the point aP on
279         --- the edge aE.
280         --- Returns false if projection algorithm failed
281         --- other wiese returns true.
282         ---
283
284 fields 
285     myFClass2dMap :  IndexedDataMapOfShapeAddress     from TopTools; 
286     myProjPSMap   :  IndexedDataMapOfShapeAddress     from TopTools; 
287     myProjPCMap   :  IndexedDataMapOfShapeAddress     from TopTools;    
288     myProjPTMap   :  IndexedDataMapOfTransientAddress from IntTools;    
289     mySClassMap   :  IndexedDataMapOfShapeAddress     from TopTools;
290     myProjSDataMap:  IndexedDataMapOfShapeAddress     from TopTools;
291      
292 end Context;
293