1 -- Created on: 1998-06-02
2 -- Created by: Philippe NOUAILLE
3 -- Copyright (c) 1998-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 class ChAsym from BlendFunc
19 inherits Function from Blend
23 uses Vector from math,
25 Tensor from BlendFunc,
30 Array1OfPnt from TColgp,
31 Array1OfVec from TColgp,
32 Array1OfPnt2d from TColgp,
33 Array1OfVec2d from TColgp,
34 Array1OfReal from TColStd,
35 Array1OfInteger from TColStd,
38 HCurve from Adaptor3d,
39 HSurface from Adaptor3d
42 Create(S1, S2 : HSurface from Adaptor3d; C : HCurve from Adaptor3d)
43 returns ChAsym from BlendFunc;
46 ---Purpose: returns the number of equations of the function.
47 returns Integer from Standard
50 Set(me: in out; Param : Real from Standard);
52 Set(me: in out; First, Last : Real from Standard);
54 GetTolerance(me; Tolerance : out Vector from math; Tol : Real from Standard);
56 GetBounds(me; InfBound,SupBound : out Vector from math);
58 IsSolution(me: in out; Sol : Vector from math; Tol : Real from Standard)
59 returns Boolean from Standard;
61 GetMinimalDistance(me)
62 ---Purpose: Returns the minimal Distance beetween two
63 -- extremitys of calculed sections.
64 returns Real from Standard;
66 ComputeValues(me : in out;
68 DegF : Integer from Standard;
69 DegL : Integer from Standard)
70 ---Purpose: computes the values <F> of the derivatives for the
71 -- variable <X> between DegF and DegL.
72 -- Returns True if the computation was done successfully,
74 returns Boolean from Standard
77 Value(me: in out; X : Vector; F : out Vector)
78 ---Purpose: computes the values <F> of the Functions for the
80 -- Returns True if the computation was done successfully,
82 returns Boolean from Standard
85 Derivatives(me: in out; X : Vector; D : out Matrix)
86 ---Purpose: returns the values <D> of the derivatives for the
88 -- Returns True if the computation was done successfully,
90 returns Boolean from Standard
93 Values(me: in out; X : Vector; F : out Vector; D : out Matrix)
94 ---Purpose: returns the values <F> of the functions and the derivatives
95 -- <D> for the variable <X>.
96 -- Returns True if the computation was done successfully,
98 returns Boolean from Standard
102 PointOnS1(me) returns Pnt from gp;
103 ---C++: return const&
105 PointOnS2(me) returns Pnt from gp;
106 ---C++: return const&
108 IsTangencyPoint(me) returns Boolean from Standard;
110 TangentOnS1(me) returns Vec from gp;
111 ---C++: return const&
113 Tangent2dOnS1(me) returns Vec2d from gp;
114 ---C++: return const&
116 TangentOnS2(me) returns Vec from gp;
117 ---C++: return const&
119 Tangent2dOnS2(me) returns Vec2d from gp;
120 ---C++: return const&
123 returns Boolean from Standard
127 returns Boolean from Standard
130 Tangent(me; U1,V1,U2,V2: Real from Standard;
131 TgFirst,TgLast,NormFirst,NormLast: out Vec from gp)
133 ---Purpose: Returns the tangent vector at the section,
134 -- at the beginning and the end of the section, and
135 -- returns the normal (of the surfaces) at
141 -- methodes hors template (en plus du create)
143 Section(me: in out; Param: Real from Standard;
144 U1,V1,U2,V2: Real from Standard;
145 Pdeb,Pfin: out Real from Standard;
147 ---Purpose: Utile pour une visu rapide et approximative de la surface.
150 --- Pour les approximations
152 IsRational(me) returns Boolean
153 ---Purpose: Returns if the section is rationnal
156 GetSectionSize(me) returns Real
157 ---Purpose: Returns the length of the maximum section
160 GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd)
161 ---Purpose: Compute the minimal value of weight for each poles
165 NbIntervals(me; S : Shape from GeomAbs) returns Integer
166 ---Purpose: Returns the number of intervals for continuity
167 -- <S>. May be one if Continuity(me) >= <S>
170 Intervals(me; T : in out Array1OfReal from TColStd;
171 S : Shape from GeomAbs)
172 ---Purpose: Stores in <T> the parameters bounding the intervals
173 -- of continuity <S>.
175 -- The array must provide enough room to accomodate
176 -- for the parameters. i.e. T.Length() > NbIntervals()
180 NbPoles : out Integer from Standard;
181 NbKnots : out Integer from Standard;
182 Degree : out Integer from Standard;
183 NbPoles2d : out Integer from Standard)
188 BoundTol, SurfTol, AngleTol : Real;
191 ---Purpose: Returns the tolerance to reach in approximation
193 -- BoundTol error at the Boundary
194 -- AngleTol tangent error at the Boundary
195 -- SurfTol error inside the surface.
198 Knots(me: in out; TKnots: out Array1OfReal from TColStd)
202 Mults(me: in out; TMults: out Array1OfInteger from TColStd)
206 Section(me: in out ; P: Point from Blend;
207 Poles : out Array1OfPnt from TColgp;
208 Poles2d : out Array1OfPnt2d from TColgp;
209 Weigths : out Array1OfReal from TColStd)
214 Section(me: in out ; P: Point from Blend;
215 Poles : out Array1OfPnt from TColgp;
216 DPoles : out Array1OfVec from TColgp;
217 Poles2d : out Array1OfPnt2d from TColgp;
218 DPoles2d : out Array1OfVec2d from TColgp;
219 Weigths : out Array1OfReal from TColStd;
220 DWeigths : out Array1OfReal from TColStd)
221 ---Purpose: Used for the first and last section
222 returns Boolean from Standard
225 Section(me: in out ; P: Point from Blend;
226 Poles : out Array1OfPnt from TColgp;
227 DPoles : out Array1OfVec from TColgp;
228 D2Poles : out Array1OfVec from TColgp;
229 Poles2d : out Array1OfPnt2d from TColgp;
230 DPoles2d : out Array1OfVec2d from TColgp;
231 D2Poles2d : out Array1OfVec2d from TColgp;
232 Weigths : out Array1OfReal from TColStd;
233 DWeigths : out Array1OfReal from TColStd;
234 D2Weigths : out Array1OfReal from TColStd)
235 ---Purpose: Used for the first and last section
236 returns Boolean from Standard
241 IC2d : Integer from Standard;
242 Tol : Real from Standard;
243 TolU, TolV : out Real from Standard);
246 Dist1 : Real from Standard;
247 Angle : Real from Standard;
248 Choix : Integer from Standard)
249 ---Purpose: Sets the distances and the angle.
253 surf1 : HSurface from Adaptor3d;
254 surf2 : HSurface from Adaptor3d;
255 curv : HCurve from Adaptor3d;
256 tcurv : HCurve from Adaptor3d;
258 param : Real from Standard;
259 dist1 : Real from Standard;
260 angle : Real from Standard;
261 tgang : Real from Standard;
265 tsurf1 : Vec from gp;
267 FX : Vector from math;
268 DX : Matrix from math;
270 istangent: Boolean from Standard;
272 tg12d : Vec2d from gp;
274 tg22d : Vec2d from gp;
276 choix : Integer from Standard;
277 distmin : Real from Standard;