0024940: WOK: Cyclic dependency detected between: BOPInt IntTools
[occt.git] / src / BOPTools / BOPTools_AlgoTools3D.cdl
CommitLineData
4e57c75e 1-- Created by: Peter KURNEV
973c2be1 2-- Copyright (c) 1999-2014 OPEN CASCADE SAS
4e57c75e 3--
973c2be1 4-- This file is part of Open CASCADE Technology software library.
4e57c75e 5--
d5f74e42 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
973c2be1 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.
4e57c75e 11--
973c2be1 12-- Alternatively, this file may be used under the terms of Open CASCADE
13-- commercial license or contractual agreement.
4e57c75e 14
15class 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
21uses
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
1e143abb 41 Context from IntTools,
4e57c75e 42
43 IndexedDataMapOfShapeListOfShape from BOPCol
44
45is
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;
1e143abb 98 theContext:out Context from IntTools);
4e57c75e 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;
1e143abb 139 theContext:out Context from IntTools);
4e57c75e 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;
1e143abb 151 theContext:out Context from IntTools);
4e57c75e 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;
1e143abb 186 theContext:out Context from IntTools)
4e57c75e 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
193end AlgoTools3D;