0023024: Update headers of OCCT files
[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-2012 OPEN CASCADE SAS
5 --
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.
10 --
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.
13 --
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.
20
21
22
23
24 package AppParCurves 
25
26     ---Purpose: Parallel Approximation in n curves.
27     -- This package gives all the algorithms used to approximate a MultiLine
28     -- described by the tool MLineTool. 
29     -- The result of the approximation will be a MultiCurve. 
30     
31 uses  math, FEmTool,  gp, TColgp, StdFail, TColStd, TCollection, Standard, MMgt, GeomAbs, 
32       PLib
33
34 is
35
36     enumeration Constraint is
37         NoConstraint,
38         PassPoint,
39         TangencyPoint,
40         CurvaturePoint
41     end Constraint;
42 ---Purpose:
43 -- -   NoConstraint: this point has no constraints.
44 -- -   PassPoint: the approximation curve passes through this point.
45 -- -   TangencyPoint: this point has a tangency constraint.
46 -- -   CurvaturePoint: this point has a curvature constraint.
47
48
49
50
51     deferred generic class MLineTool;    --- Template
52
53
54     class MultiPoint;
55
56     class MultiCurve;
57
58     class MultiBSpCurve;
59
60     class ConstraintCouple;
61
62
63 -- Algorithms:
64     
65     
66     generic class LeastSquare;
67         ---Purpose: computes in parallel the least square resolution of a 
68         --          set of points (MultiLine). The result is a 
69         --          set of Bezier curves (MultiCurve).
70  
71     generic class ResolConstraint;
72         ---Purpose: computes the approximating resolution with constraints
73         --          starting from a guess solution issued, for example, 
74         --          from the least squares.
75         --          It uses the Uzawa method from the mathematical package.
76
77
78     generic class Function;
79
80
81     generic class BSpFunction;
82     
83
84     generic class Gradient,  Gradient_BFGS, ParLeastSquare, ResConstraint, ParFunction;
85         ---Purpose: computes the approximation of a MultiLine by the
86         --          search for a new parameters to minimize the 
87         --          sum||C(ui)-Qi||2 with a gradient method.
88
89
90
91     generic class BSpGradient, BSpGradient_BFGS,  BSpParLeastSquare, BSpParFunction;
92         ---Purpose: computes the approximation of a MultiLine by the
93         --          search for a new parameters to minimize the 
94         --          sum||C(ui)-Qi||2 with a gradient method.
95         --          The Result is a Bspline set.
96
97
98     generic class Projection, ProLeastSquare, ProConstraint, ProFunction;
99         ---Purpose: computes the approximation of a Multiline by
100         --          searching for a new parameter with a projection
101         --          method.
102       
103     deferred  class  SmoothCriterion;
104     generic  class  LinearCriteria; 
105
106     class  MyCriterion;
107          ---Level: Internal
108                  
109     generic class Variational;
110         ---Purpose: computes the approximation of a Multiline by
111         --          Variational optimization.
112
113
114
115     --- instantiate classes:
116     --  
117
118     class Array1OfConstraintCouple instantiates Array1 from TCollection
119             (ConstraintCouple);
120
121     class HArray1OfConstraintCouple instantiates HArray1 from TCollection
122             (ConstraintCouple,Array1OfConstraintCouple);
123
124
125
126     class Array1OfMultiPoint instantiates Array1 from TCollection
127             (MultiPoint);
128             
129     class HArray1OfMultiPoint instantiates HArray1 from TCollection
130              (MultiPoint,Array1OfMultiPoint);
131
132
133     class Array1OfMultiCurve instantiates Array1 from TCollection
134              (MultiCurve);
135
136     class HArray1OfMultiCurve instantiates HArray1 from TCollection
137              (MultiCurve, Array1OfMultiCurve);
138
139     class SequenceOfMultiCurve instantiates Sequence from TCollection
140              (MultiCurve);
141
142
143     class Array1OfMultiBSpCurve instantiates Array1 from TCollection
144              (MultiBSpCurve);
145
146     class HArray1OfMultiBSpCurve instantiates HArray1 from TCollection
147              (MultiBSpCurve, Array1OfMultiBSpCurve);
148
149     class SequenceOfMultiBSpCurve instantiates Sequence from TCollection
150              (MultiBSpCurve);
151      
152     
153      BernsteinMatrix(NbPoles: in Integer    from Standard;
154                      U      : in Vector     from math;
155                      A      : in out Matrix from math);
156      
157
158      Bernstein(NbPoles: in Integer    from Standard;
159                U      : in Vector     from math;
160                A      : in out Matrix from math; 
161                DA     : in out Matrix from math);
162
163     
164      SecondDerivativeBernstein(U: Real; DDA: in out Vector from math);
165
166
167      SplineFunction(NbPoles    : in     Integer        from Standard;
168                     Degree     : in     Integer        from Standard;
169                     Parameters : in     Vector         from math;
170                     FlatKnots  : in     Vector         from math;
171                     A          : in out Matrix         from math;
172                     DA         : in out Matrix         from math;
173                     Index      : in out IntegerVector  from math);
174                     
175 end AppParCurves;