1 -- Created on: 1993-12-06
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
21 -- jlr le 28-07-97 F(t) in Edge/Face
27 uses Blend, BlendFunc, AppBlend, Approx, Adaptor3d,Adaptor2d,
28 Law, gp, TopAbs, IntSurf, Convert,
29 TCollection,TColStd,TColgp,GeomAbs,Geom,Geom2d,
30 AdvApprox, StdFail, math
34 generic class HCurveToolGen;
35 generic class HCurve2dToolGen;
37 class HCurveTool instantiates HCurveToolGen from BRepBlend (
38 HCurve from Adaptor3d);
40 class HCurve2dTool instantiates HCurve2dToolGen from BRepBlend (
41 HCurve2d from Adaptor2d);
45 alias ConstRad is ConstRad from BlendFunc;
47 alias ConstRadInv is ConstRadInv from BlendFunc;
49 alias Ruled is Ruled from BlendFunc;
51 alias RuledInv is RuledInv from BlendFunc;
53 alias EvolRad is EvolRad from BlendFunc;
55 alias EvolRadInv is EvolRadInv from BlendFunc;
57 alias CSConstRad is CSConstRad from BlendFunc;
59 alias CSCircular is CSCircular from BlendFunc;
61 alias Chamfer is Chamfer from BlendFunc;
63 alias ChamfInv is ChamfInv from BlendFunc;
65 alias ChAsym is ChAsym from BlendFunc;
67 alias ChAsymInv is ChAsymInv from BlendFunc;
70 class PointOnRst instantiates PointOnRst from Blend
71 (HCurve2d from Adaptor2d);
74 class SequenceOfPointOnRst instantiates Sequence from TCollection
75 (PointOnRst from BRepBlend);
78 class Extremity instantiates Extremity from Blend
79 (HVertex from Adaptor3d,
80 HCurve2d from Adaptor2d,
81 PointOnRst from BRepBlend,
82 SequenceOfPointOnRst from BRepBlend);
84 class Line instantiates Line from Blend
85 (HVertex from Adaptor3d,
86 HCurve2d from Adaptor2d,
87 PointOnRst from BRepBlend,
88 SequenceOfPointOnRst from BRepBlend,
89 Extremity from BRepBlend);
92 class Walking instantiates Walking from Blend
93 (HVertex from Adaptor3d,
94 HCurve2d from Adaptor2d,
95 HSurface from Adaptor3d,
96 HCurve from Adaptor3d,
97 Integer from Standard,
98 HCurve2dTool from BRepBlend,
99 HSurfaceTool from Adaptor3d,
100 HCurveTool from BRepBlend,
101 TopolTool from Adaptor3d,
102 BlendTool from BRepBlend,
103 PointOnRst from BRepBlend,
104 SequenceOfPointOnRst from BRepBlend,
105 Extremity from BRepBlend,
106 Line from BRepBlend);
108 class CSWalking instantiates CSWalking from Blend
109 (HVertex from Adaptor3d,
110 HCurve2d from Adaptor2d,
111 HSurface from Adaptor3d,
112 HCurve from Adaptor3d,
113 Integer from Standard,
114 HCurve2dTool from BRepBlend,
115 HSurfaceTool from Adaptor3d,
116 HCurveTool from BRepBlend,
117 TopolTool from Adaptor3d,
118 BlendTool from BRepBlend,
119 PointOnRst from BRepBlend,
120 SequenceOfPointOnRst from BRepBlend,
121 Extremity from BRepBlend,
122 Line from BRepBlend);
124 class AppSurf instantiates AppSurf from AppBlend
125 (AppFunction from Blend,
126 Line from BRepBlend);
129 class SequenceOfLine instantiates Sequence from TCollection
130 (Line from BRepBlend);
134 ---Purpose: Used to Approximate the surfaces.
136 deferred class AppFuncRoot;
137 ---Purpose: Root Class Function to approximate by AppSurface
140 ---Purpose: Function to approximate by AppSurface for
141 -- Surface/Surface contact.
144 ---Purpose: Function to approximate by AppSurface for
145 -- Curve/Surface contact.
148 ---Purpose: Function to approximate by AppSurface for
149 -- Curve/Curve contact.
151 class SurfRstEvolRad;
152 ---Purpose: Function to approximate by AppSurface for
153 -- Edge/Face and evolutif radius
155 class SurfRstConstRad;
156 ---Purpose: Copy of CSConstRad with pcurve on surface
160 ---Purpose: Function to approximate by AppSurface for
161 -- Edge/Edge and evolutif radius
163 class RstRstConstRad;
164 ---Purpose: Copy of CSConstRad with a pcurve on surface
167 class SurfPointConstRadInv;
168 ---Purpose: Function of reframing between a point and a surface.
170 class SurfCurvConstRadInv;
171 ---Purpose: Function of reframing between a restriction surface of the
172 -- surface and a curve.
174 class SurfPointEvolRadInv;
175 ---Purpose: Fonction of reframing between a point and a surface.
177 class CurvPointRadInv;
178 ---Purpose: Function of reframing between a point and a curve.
179 -- valid in cases of constant and progressive radius
180 class SurfCurvEvolRadInv;
181 ---Purpose: Function of reframing between a surface restriction
182 -- of the surface and a curve.
184 class SurfRstLineBuilder;
185 ---Purpose: Construction of a BRepBlend_Line between a surface and
186 -- a pcurve on surface from an approached
187 -- starting solution. The output entries of this builder
188 -- are of the same nature as of the traditional walking
189 -- but the requirements on the Line are not the same
190 -- If the determination of validity range is always
191 -- guaranteed, the criteria of correct repartition of sections
192 -- before smoothing are not respected. The resulting Line
195 class RstRstLineBuilder;
196 ---Purpose: Construction of a BRepBlend_Line between two pcurves
197 -- from an approached starting solution. The output
198 -- entries of this builder are of the same nature
199 -- as of a traditional walking, but the requirements
200 -- to the Line are not the same. If the determination of validity range is always
201 -- guaranteed, the criteria of correct repartition of sections
202 -- before smoothing are not respected. The resulting Line