0024940: WOK: Cyclic dependency detected between: BOPInt IntTools
[occt.git] / src / BOPTools / BOPTools_AlgoTools3D.cdl
1 -- Created by: Peter KURNEV
2 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
3 --
4 -- This file is part of Open CASCADE Technology software library.
5 --
6 -- This library is free software; you can redistribute it and/or modify it under
7 -- the terms of the GNU Lesser General Public License version 2.1 as published
8 -- by the Free Software Foundation, with special exception defined in the file
9 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 -- distribution for complete text of the license and disclaimer of any warranty.
11 --
12 -- Alternatively, this file may be used under the terms of Open CASCADE
13 -- commercial license or contractual agreement.
14
15 class AlgoTools3D from BOPTools
16   ---Purpose:  
17   --  The class contains handy static functions 
18   --  dealing with the topology  
19   --  This is the copy of BOPTools_AlgoTools3D.cdl file
20
21 uses  
22     Pln   from gp, 
23     Dir   from gp, 
24     Pnt   from gp,   
25     Pnt2d from gp,  
26     
27     Surface from Geom,
28     
29     Shape from TopoDS, 
30     Wire  from TopoDS, 
31     Face  from TopoDS,  
32     Edge  from TopoDS,
33     Solid from TopoDS,
34      
35     ShapeEnum   from TopAbs,     
36     Orientation from TopAbs, 
37     State       from TopAbs, 
38
39     ListOfShape from BOPCol,  
40      
41     Context     from IntTools,
42
43     IndexedDataMapOfShapeListOfShape from BOPCol
44
45 is  
46
47     DoSplitSEAMOnFace (myclass;  
48               aSp:  Edge from TopoDS;              
49               aF :  Face from TopoDS);
50           ---Purpose:  
51           -- Make the edge <aSp> seam edge for the face <aF>                            
52           --
53         
54     GetNormalToFaceOnEdge (myclass;  
55               aE:  Edge from TopoDS;              
56               aF:  Face from TopoDS;   
57               aT:  Real from Standard; 
58               aD:out Dir from gp); 
59           ---Purpose:  
60           --- Computes normal to the face <aF> for the point on the edge <aE>  
61           --- at parameter <aT>           
62           ---
63     GetNormalToFaceOnEdge (myclass;  
64               aE:  Edge from TopoDS;              
65               aF:  Face from TopoDS;   
66               aD:out Dir from gp);          
67           ---Purpose:  
68           --- Computes normal to the face <aF> for the point on the edge <aE>  
69           --- at arbitrary intermediate parameter 
70           ---
71  
72     SenseFlag    (myclass;  
73              aNF1   :  Dir from gp;
74              aNF2   :  Dir from gp) 
75           returns Integer from Standard;   
76           ---Purpose: 
77           --- Returns 1  if scalar product aNF1* aNF2>0.   
78           --- Returns 0  if directions aNF1 aNF2 coinside  
79           --- Returns -1 if scalar product aNF1* aNF2<0.      
80           ---
81     GetNormalToSurface    (myclass;  
82               aS:  Surface from Geom; 
83               U :  Real from Standard;
84               V :  Real from Standard; 
85               aD:out Dir from gp)
86           returns Boolean from Standard;   
87           ---Purpose:  
88           --- Compute normal <aD> to surface <aS> in point (U,V)  
89           --- Returns TRUE if directions aD1U, aD1V coinside 
90           ---
91  
92     GetApproxNormalToFaceOnEdge (myclass;  
93               aE:  Edge from TopoDS;              
94               aF:  Face from TopoDS;   
95               aT:  Real from Standard;  
96               aPx:out Pnt from gp;
97               aD:out Dir from gp; 
98               theContext:out Context from IntTools); 
99           ---Purpose:  
100           --- Computes normal to the face <aF> for the 3D-point that 
101           --- belonds to the edge <aE> at parameter <aT>. 
102           --  Output: 
103           --- aPx  -  the 3D-point where the normal computed 
104           --- aD   -  the normal; 
105           ---
106           --  Warning:
107           --- The normal is computed not exactly in the point on the 
108           --- edge, but in point that is near to the edge towards to 
109           --- the face material (so, we'll have approx. normal) 
110           --- 
111            
112     GetApproxNormalToFaceOnEdge(myclass; 
113               theE : Edge from TopoDS; 
114               theF : Face from TopoDS; 
115               aT   : Real from Standard; 
116               aP   : out Pnt  from gp; 
117               aDNF : out Dir  from gp; 
118               aDt2D: Real from Standard);
119           
120     PointNearEdge   (myclass;   
121               aE   :  Edge from TopoDS;              
122               aF   :  Face from TopoDS;   
123               aT   :  Real from Standard;  
124               aDt2D:  Real from Standard;  
125               aP2D :out Pnt2d from  gp; 
126               aPx  :out Pnt from gp);
127           ---Purpose: 
128           --- Compute the point <aPx>,  (<aP2D>)  that is near to  
129           --- the edge <aE>   at parameter <aT>  towards to the  
130           --- material of the face <aF>. The value of shifting in 
131           --- 2D is <aDt2D> 
132           ---
133     PointNearEdge   (myclass;   
134               aE:  Edge from TopoDS;              
135               aF:  Face from TopoDS;   
136               aT:  Real from Standard;  
137               aP2D:out Pnt2d from  gp; 
138               aPx:out Pnt from gp; 
139               theContext:out Context from IntTools);
140           ---Purpose: 
141           --- Computes the point <aPx>,  (<aP2D>)  that is near to  
142           --- the edge <aE>   at parameter <aT>  towards to the  
143           --- material of the face <aF>. The value of shifting in 
144           --  2D is  dt2D=BOPTools_AlgoTools3D::MinStepIn2d()
145           ---
146     PointNearEdge   (myclass;   
147               aE:  Edge from TopoDS;              
148               aF:  Face from TopoDS;   
149               aP2D:out Pnt2d from  gp; 
150               aPx:out Pnt from gp; 
151               theContext:out Context from IntTools);
152           ---Purpose: 
153           --- Compute the point <aPx>,  (<aP2D>)  that is near to  
154           --- the edge <aE>   at arbitrary  parameter  towards to the  
155           --- material of the face <aF>. The value of shifting in 
156           --  2D is  dt2D=BOPTools_AlgoTools3D::MinStepIn2d()
157           ---
158  
159     MinStepIn2d(myclass) 
160           returns  Real from Standard;  
161           ---Purpose:  
162           --- Returns simple step value that is used in 2D-computations 
163           --- = 1.e-5 
164           ---
165     IsEmptyShape(myclass; 
166               aS:  Shape from TopoDS) 
167           returns Boolean from Standard; 
168           ---Purpose: 
169           --- Returns TRUE if the shape <aS> does not contain 
170           --- geometry information  (e.g. empty compound) 
171           ---
172  
173     OrientEdgeOnFace  (myclass;  
174               aE    :  Edge from TopoDS;
175               aF    :  Face from TopoDS;  
176               aER   : out  Edge from TopoDS); 
177           ---Purpose:  
178           --- Get the edge <aER> from the face <aF> that is the same as   
179           --- the edge <aE>    
180           --- 
181
182     PointInFace(myclass;
183               theF:Face from TopoDS;
184               theP:out Pnt from gp;
185               theP2D:out Pnt2d from gp; 
186               theContext:out Context from IntTools) 
187           returns Integer from Standard; 
188           ---Purpose: Computes a point <theP> inside the face <theF>. <br>
189           --          <theP2D> -  2D  representation of <theP> <br>
190           --          on the surface of <theF> <br>
191           --          Returns 0 in case of success. <br>
192
193 end AlgoTools3D;