0021762: Integration of new Boolean Operation algorithm to OCCT.
[occt.git] / src / BOPTools / BOPTools_AlgoTools2D.cdl
1 -- Created by: Peter KURNEV
2 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
3 --
4 -- The content of this file is subject to the Open CASCADE Technology Public
5 -- License Version 6.5 (the "License"). You may not use the content of this file
6 -- except in compliance with the License. Please obtain a copy of the License
7 -- at http://www.opencascade.org and read it completely before using this file.
8 --
9 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 --
12 -- The Original Code and all software distributed under the License is
13 -- distributed on an "AS IS" basis, without warranty of any kind, and the
14 -- Initial Developer hereby disclaims all such warranties, including without
15 -- limitation, any warranties of merchantability, fitness for a particular
16 -- purpose or non-infringement. Please see the License for the specific terms
17 -- and conditions governing the rights and limitations under the License.
18
19
20 class AlgoTools2D from BOPTools 
21
22       ---Purpose: 
23       ---  The class contains handy static functions 
24       ---  dealing with the topology  
25       ---  This is the copy of the BOPTools_AlgoTools2D.cdl
26 uses 
27     Vec  from gp, 
28     Dir  from gp, 
29     Vertex from TopoDS,
30     Edge   from TopoDS, 
31     Face   from TopoDS, 
32      
33     Curve from Geom2d,
34     Curve from Geom, 
35     ProjectedCurve from ProjLib
36
37 is   
38
39     BuildPCurveForEdgeOnFace  (myclass; 
40               aE:  Edge from TopoDS; 
41               aF:  Face from TopoDS); 
42           ---Purpose: 
43           --- Compute P-Curve for the edge <aE> on the face <aF> 
44           ---
45     EdgeTangent     (myclass;  
46               anE  : Edge from TopoDS; 
47               aT   : Real from Standard; 
48               Tau  : out Vec  from gp) 
49           returns  Boolean from Standard; 
50           ---Purpose: 
51           --- Compute tangent for the edge  <aE> [in 3D]  at parameter <aT> 
52           ---
53  
54     PointOnSurface  (myclass; 
55               aE:  Edge from TopoDS; 
56               aF:  Face from TopoDS;  
57               aT:  Real from Standard; 
58               U : out Real from Standard; 
59               V : out Real from Standard); 
60           ---Purpose: 
61           --- Compute surface parameters <U,V> of the face <aF> 
62           --- for  the point from the edge <aE> at parameter <aT>.   
63           ---
64     CurveOnSurface  (myclass; 
65               aE:  Edge from TopoDS; 
66               aF:  Face from TopoDS; 
67               aC    : out Curve from Geom2d; 
68               aToler: out Real from Standard); 
69           ---Purpose:  
70           --- Get P-Curve <aC>  for the edge <aE> on surface <aF> . 
71           --- If the P-Curve does not exist, build  it using Make2D(). 
72           --- [aToler] - reached tolerance 
73           ---
74     CurveOnSurface  (myclass; 
75               aE:  Edge from TopoDS; 
76               aF:  Face from TopoDS; 
77               aC    : out Curve from Geom2d; 
78               aFirst: out Real from Standard; 
79               aLast : out Real from Standard; 
80               aToler: out Real from Standard); 
81                       
82           ---Purpose: 
83           --- Get P-Curve <aC>  for the edge <aE> on surface <aF> . 
84           --- If the P-Curve does not exist, build  it using Make2D(). 
85           --- [aFirst, aLast] - range of the P-Curve    
86           --- [aToler] - reached tolerance 
87           ---
88     HasCurveOnSurface  (myclass;  
89               aE:  Edge from TopoDS; 
90               aF:  Face from TopoDS; 
91               aC    : out Curve from Geom2d;
92               aFirst: out Real from Standard; 
93               aLast : out Real from Standard; 
94               aToler: out Real from Standard) 
95           returns  Boolean from Standard; 
96           ---Purpose:  
97           --- Returns TRUE if the edge <aE>  has  P-Curve <aC>           
98           --- on surface <aF> .   
99           --- [aFirst, aLast] - range of the P-Curve    
100           --- [aToler] - reached tolerance 
101           --- If the P-Curve does not exist, aC.IsNull()=TRUE. 
102           ---
103     HasCurveOnSurface  (myclass;  
104               aE:  Edge from TopoDS; 
105               aF:  Face from TopoDS) 
106           returns  Boolean from Standard;  
107           ---Purpose:  
108           --- Returns TRUE if the edge <aE>  has  P-Curve <aC>           
109           --- on surface <aF> .   
110           --- If the P-Curve does not exist, aC.IsNull()=TRUE. 
111           ---
112  
113     AdjustPCurveOnFace  (myclass;    
114               aF    :  Face from TopoDS; 
115               C3D   :  Curve from Geom; 
116               aC2D  :  Curve from Geom2d; 
117               aC2DA : out Curve from Geom2d);                  
118           ---Purpose:   
119           --- Adjust P-Curve <aC2D> (3D-curve <C3D>) on surface <aF> .  
120           ---
121     AdjustPCurveOnFace  (myclass;    
122               aF    :  Face from TopoDS; 
123               aT1   :  Real from Standard;   
124               aT2   :  Real from Standard;   
125               aC2D  :  Curve from Geom2d; 
126               aC2DA : out Curve from Geom2d); 
127           ---Purpose:   
128           --- Adjust P-Curve <aC2D> (3D-curve <C3D>) on surface <aF> .  
129           --- [aT1,  aT2] - range to adjust 
130           ---
131  
132     IntermediatePoint (myclass; 
133               aFirst: Real from Standard; 
134               aLast : Real from Standard) 
135           returns  Real from Standard; 
136           ---Purpose:   
137           --- Compute intermediate  value in  between [aFirst, aLast] . 
138           ---
139     IntermediatePoint        (myclass;  
140               anE  : Edge from TopoDS) 
141           returns  Real from Standard;
142           ---Purpose:   
143           --- Compute intermediate value of parameter for the edge <anE>. 
144           ---
145     BuildPCurveForEdgeOnPlane(myclass; 
146               theE : Edge from TopoDS; 
147               theF : Face from TopoDS);
148  
149     Make2D  (myclass;  
150               aE:  Edge from TopoDS; 
151               aF:  Face from TopoDS; 
152               aC    : out Curve from Geom2d;
153               aFirst: out Real from Standard; 
154               aLast : out Real from Standard; 
155               aToler: out Real from Standard);            
156           ---Purpose:   
157           --- Make P-Curve <aC> for the edge <aE> on surface <aF> . 
158           --- [aFirst, aLast] - range of the P-Curve    
159           --- [aToler] - reached tolerance 
160           --- 
161           
162     MakeCurveOnSurface        (myclass;  
163               aE:  Edge from TopoDS; 
164               aF:  Face from TopoDS; 
165               aC    : out Curve from Geom2d;
166               aFirst: out Real from Standard; 
167               aLast : out Real from Standard; 
168               aToler: out Real from Standard);             
169           ---Purpose:   
170           --- Same  as   Make2D() 
171           ---
172     MakePCurveOnFace  (myclass;    
173               aF:  Face from TopoDS; 
174               C3D   :     Curve from Geom; 
175               aC    : out Curve from Geom2d; 
176               aToler: out Real from Standard) ;   
177           ---Purpose:   
178           --- Make P-Curve <aC> for the 3D-curve <C3D> on surface <aF> . 
179           --- [aToler] - reached tolerance 
180           ---
181     MakePCurveOnFace  (myclass;    
182               aF:  Face from TopoDS; 
183               C3D   :     Curve from Geom;  
184               aT1   :  Real from Standard;   
185               aT2   :  Real from Standard;      
186               aC    : out Curve from Geom2d; 
187               aToler: out Real from Standard) ;                  
188           ---Purpose:   
189           --- Make P-Curve <aC> for the 3D-curve <C3D> on surface <aF> .  
190           --- [aT1,  aT2] - range to build    
191           --- [aToler] - reached tolerance 
192           ---
193     MakePCurveOfType  (myclass;    
194               PC  : ProjectedCurve from ProjLib; 
195               aC  : out Curve from Geom2d);         
196           ---Purpose:   
197           --- Make empty  P-Curve <aC> of relevant to <PC> type  
198           ---
199
200 end AlgoTools2D;