1 -- Created by: Peter KURNEV
2 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
4 -- This file is part of Open CASCADE Technology software library.
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.
12 -- Alternatively, this file may be used under the terms of Open CASCADE
13 -- commercial license or contractual agreement.
15 class AlgoTools3D from BOPTools
17 -- The class contains handy static functions
18 -- dealing with the topology
19 -- This is the copy of BOPTools_AlgoTools3D.cdl file
35 ShapeEnum from TopAbs,
36 Orientation from TopAbs,
39 ListOfShape from BOPCol,
41 Context from IntTools,
43 IndexedDataMapOfShapeListOfShape from BOPCol
47 DoSplitSEAMOnFace (myclass;
48 aSp: Edge from TopoDS;
49 aF : Face from TopoDS);
51 -- Make the edge <aSp> seam edge for the face <aF>
54 GetNormalToFaceOnEdge (myclass;
57 aT: Real from Standard;
60 --- Computes normal to the face <aF> for the point on the edge <aE>
63 GetNormalToFaceOnEdge (myclass;
68 --- Computes normal to the face <aF> for the point on the edge <aE>
69 --- at arbitrary intermediate parameter
75 returns Integer from Standard;
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.
81 GetNormalToSurface (myclass;
82 aS: Surface from Geom;
83 U : Real from Standard;
84 V : Real from Standard;
86 returns Boolean from Standard;
88 --- Compute normal <aD> to surface <aS> in point (U,V)
89 --- Returns TRUE if directions aD1U, aD1V coinside
92 GetApproxNormalToFaceOnEdge (myclass;
95 aT: Real from Standard;
98 theContext:out Context from IntTools);
100 --- Computes normal to the face <aF> for the 3D-point that
101 --- belonds to the edge <aE> at parameter <aT>.
103 --- aPx - the 3D-point where the normal computed
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)
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);
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);
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
133 PointNearEdge (myclass;
134 aE: Edge from TopoDS;
135 aF: Face from TopoDS;
136 aT: Real from Standard;
137 aP2D:out Pnt2d from gp;
139 theContext:out Context from IntTools);
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()
146 PointNearEdge (myclass;
147 aE: Edge from TopoDS;
148 aF: Face from TopoDS;
149 aP2D:out Pnt2d from gp;
151 theContext:out Context from IntTools);
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()
160 returns Real from Standard;
162 --- Returns simple step value that is used in 2D-computations
165 IsEmptyShape(myclass;
166 aS: Shape from TopoDS)
167 returns Boolean from Standard;
169 --- Returns TRUE if the shape <aS> does not contain
170 --- geometry information (e.g. empty compound)
173 OrientEdgeOnFace (myclass;
174 aE : Edge from TopoDS;
175 aF : Face from TopoDS;
176 aER : out Edge from TopoDS);
178 --- Get the edge <aER> from the face <aF> that is the same as
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>