0024708: Convertation of the generic classes to the non-generic. Part 2
[occt.git] / src / AppParCurves / AppParCurves.cdl
1 -- Created on: 1991-04-11
2 -- Created by: Laurent PAINNOT
3 -- Copyright (c) 1991-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 package AppParCurves 
18
19     ---Purpose: Parallel Approximation in n curves.
20     -- This package gives all the algorithms used to approximate a MultiLine
21     -- described by the tool MLineTool. 
22     -- The result of the approximation will be a MultiCurve. 
23     
24 uses  math, FEmTool,  gp, TColgp, StdFail, TColStd, TCollection, Standard, MMgt, GeomAbs, PLib
25
26 is
27
28     enumeration Constraint is
29         NoConstraint,
30         PassPoint,
31         TangencyPoint,
32         CurvaturePoint
33     end Constraint;
34 ---Purpose:
35 -- -   NoConstraint: this point has no constraints.
36 -- -   PassPoint: the approximation curve passes through this point.
37 -- -   TangencyPoint: this point has a tangency constraint.
38 -- -   CurvaturePoint: this point has a curvature constraint.
39
40
41     class MultiPoint;
42
43     class MultiCurve;
44
45     class MultiBSpCurve;
46
47     class ConstraintCouple;
48
49
50 -- Algorithms:
51     
52     
53     generic class LeastSquare;
54         ---Purpose: computes in parallel the least square resolution of a 
55         --          set of points (MultiLine). The result is a 
56         --          set of Bezier curves (MultiCurve).
57  
58     generic class ResolConstraint;
59         ---Purpose: computes the approximating resolution with constraints
60         --          starting from a guess solution issued, for example, 
61         --          from the least squares.
62         --          It uses the Uzawa method from the mathematical package.
63
64
65     generic class Function;
66
67
68     generic class BSpFunction;
69     
70
71     generic class Gradient,  Gradient_BFGS, ParLeastSquare, ResConstraint, ParFunction;
72         ---Purpose: computes the approximation of a MultiLine by the
73         --          search for a new parameters to minimize the 
74         --          sum||C(ui)-Qi||2 with a gradient method.
75
76
77
78     generic class BSpGradient, BSpGradient_BFGS,  BSpParLeastSquare, BSpParFunction;
79         ---Purpose: computes the approximation of a MultiLine by the
80         --          search for a new parameters to minimize the 
81         --          sum||C(ui)-Qi||2 with a gradient method.
82         --          The Result is a Bspline set.
83
84
85     --- instantiate classes:
86     --  
87
88     class Array1OfConstraintCouple instantiates Array1 from TCollection
89             (ConstraintCouple);
90
91     class HArray1OfConstraintCouple instantiates HArray1 from TCollection
92             (ConstraintCouple,Array1OfConstraintCouple);
93
94
95     class Array1OfMultiPoint instantiates Array1 from TCollection
96             (MultiPoint);
97             
98     class HArray1OfMultiPoint instantiates HArray1 from TCollection
99              (MultiPoint,Array1OfMultiPoint);
100
101
102     class Array1OfMultiCurve instantiates Array1 from TCollection
103              (MultiCurve);
104
105     class HArray1OfMultiCurve instantiates HArray1 from TCollection
106              (MultiCurve, Array1OfMultiCurve);
107
108     class SequenceOfMultiCurve instantiates Sequence from TCollection
109              (MultiCurve);
110
111
112     class Array1OfMultiBSpCurve instantiates Array1 from TCollection
113              (MultiBSpCurve);
114
115     class HArray1OfMultiBSpCurve instantiates HArray1 from TCollection
116              (MultiBSpCurve, Array1OfMultiBSpCurve);
117
118     class SequenceOfMultiBSpCurve instantiates Sequence from TCollection
119              (MultiBSpCurve);
120      
121     
122      BernsteinMatrix(NbPoles: in Integer    from Standard;
123                      U      : in Vector     from math;
124                      A      : in out Matrix from math);
125      
126
127      Bernstein(NbPoles: in Integer    from Standard;
128                U      : in Vector     from math;
129                A      : in out Matrix from math; 
130                DA     : in out Matrix from math);
131
132     
133      SecondDerivativeBernstein(U: Real; DDA: in out Vector from math);
134
135
136      SplineFunction(NbPoles    : in     Integer        from Standard;
137                     Degree     : in     Integer        from Standard;
138                     Parameters : in     Vector         from math;
139                     FlatKnots  : in     Vector         from math;
140                     A          : in out Matrix         from math;
141                     DA         : in out Matrix         from math;
142                     Index      : in out IntegerVector  from math);
143                     
144 end AppParCurves;