1 -- Created on: 1994-04-07
2 -- Created by: Isabelle GRIGNON
3 -- Copyright (c) 1994-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.
19 ---Purpose: Multiple services concerning 1d functions.
21 uses Adaptor3d,GeomAbs,TColgp,TColStd,TCollection,MMgt,Standard,StdFail
25 class BSpline; -- inherits TShared from MMgt
27 class Interpolate; -- duplication of GeomAPI algorithm!?!
29 deferred class Function; -- inherits TShared from MMgt
31 class Constant; -- inherits Function from Law
33 class Linear; -- inherits Function from Law
35 class BSpFunc; -- inherits Function from Law
37 class S; -- inherits BSpFunc from Law
39 class Interpol; -- inherits BSpFunc from Law
41 class Laws instantiates List from TCollection (Function from Law);
43 class Composite; -- inherits Function from Law
45 class BSplineKnotSplitting;
47 -- This algorithm searches the knot values corresponding to the
48 -- splitting of a given B-spline law into several arcs with
49 -- the same continuity. The continuity order is given at the
52 MixBnd(Lin : Linear from Law)
53 ---Purpose: Builds a 1d bspline that is near from Lin with null
54 -- derivatives at the extremities.
55 returns BSpFunc from Law;
57 MixBnd(Degree : Integer from Standard;
58 Knots : Array1OfReal from TColStd;
59 Mults : Array1OfInteger from TColStd;
60 Lin : Linear from Law)
61 ---Purpose: Builds the poles of the 1d bspline that is near from
62 -- Lin with null derivatives at the extremities.
63 returns HArray1OfReal from TColStd;
65 MixTgt(Degree : Integer from Standard;
66 Knots : Array1OfReal from TColStd;
67 Mults : Array1OfInteger from TColStd;
68 NulOnTheRight : Boolean from Standard;
69 Index : Integer from Standard)
70 ---Purpose: Builds the poles of the 1d bspline that is null on the
71 -- rigth side of Knots(Index) (on the left if
72 -- NulOnTheRight is false) and that is like a
73 -- t*(1-t)(1-t) curve on the left side of Knots(Index)
74 -- (on the rigth if NulOnTheRight is false). The result
75 -- curve is C1 with a derivative equal to 1. at first
76 -- parameter (-1 at last parameter if NulOnTheRight is
78 -- Warning: Mults(Index) must greater or equal to degree-1.
79 returns HArray1OfReal from TColStd;
82 Reparametrize(Curve : Curve from Adaptor3d;
83 First, Last : Real from Standard;
84 HasDF, HasDL : Boolean from Standard;
85 DFirst, DLast : Real from Standard;
86 Rev : Boolean from Standard;
87 NbPoints : Integer from Standard)
88 returns BSpline from Law;
89 ---Purpose: Computes a 1 d curve to reparametrize a curve. Its an
90 -- interpolation of NbPoints points calculated at quasi
93 Scale(First, Last : Real from Standard;
94 HasF, HasL : Boolean from Standard;
95 VFirst, VLast : Real from Standard)
96 returns BSpline from Law;
97 ---Purpose: Computes a 1 d curve to scale a field of tangency.
98 -- Value is 1. for t = (First+Last)/2 .
99 -- If HasFirst value for t = First is VFirst (null derivative).
100 -- If HasLast value for t = Last is VLast (null derivative).
110 ScaleCub(First, Last : Real from Standard;
111 HasF, HasL : Boolean from Standard;
112 VFirst, VLast : Real from Standard)
113 returns BSpline from Law;