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