b311480e |
1 | -- Created on: 1991-04-11 |
2 | -- Created by: Laurent PAINNOT |
3 | -- Copyright (c) 1991-1999 Matra Datavision |
973c2be1 |
4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | -- |
973c2be1 |
6 | -- This file is part of Open CASCADE Technology software library. |
b311480e |
7 | -- |
973c2be1 |
8 | -- This library is free software; you can redistribute it and / or modify it |
9 | -- under the terms of the GNU Lesser General Public 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. |
b311480e |
13 | -- |
973c2be1 |
14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. |
7fd59977 |
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 | |
43 | |
44 | deferred generic class MLineTool; --- Template |
45 | |
46 | |
47 | class MultiPoint; |
48 | |
49 | class MultiCurve; |
50 | |
51 | class MultiBSpCurve; |
52 | |
53 | class ConstraintCouple; |
54 | |
55 | |
56 | -- Algorithms: |
57 | |
58 | |
59 | generic class LeastSquare; |
60 | ---Purpose: computes in parallel the least square resolution of a |
61 | -- set of points (MultiLine). The result is a |
62 | -- set of Bezier curves (MultiCurve). |
63 | |
64 | generic class ResolConstraint; |
65 | ---Purpose: computes the approximating resolution with constraints |
66 | -- starting from a guess solution issued, for example, |
67 | -- from the least squares. |
68 | -- It uses the Uzawa method from the mathematical package. |
69 | |
70 | |
71 | generic class Function; |
72 | |
73 | |
74 | generic class BSpFunction; |
75 | |
76 | |
77 | generic class Gradient, Gradient_BFGS, ParLeastSquare, ResConstraint, ParFunction; |
78 | ---Purpose: computes the approximation of a MultiLine by the |
79 | -- search for a new parameters to minimize the |
80 | -- sum||C(ui)-Qi||2 with a gradient method. |
81 | |
82 | |
83 | |
84 | generic class BSpGradient, BSpGradient_BFGS, BSpParLeastSquare, BSpParFunction; |
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 | -- The Result is a Bspline set. |
89 | |
90 | |
91 | generic class Projection, ProLeastSquare, ProConstraint, ProFunction; |
92 | ---Purpose: computes the approximation of a Multiline by |
93 | -- searching for a new parameter with a projection |
94 | -- method. |
95 | |
96 | deferred class SmoothCriterion; |
97 | generic class LinearCriteria; |
98 | |
99 | class MyCriterion; |
100 | ---Level: Internal |
101 | |
102 | generic class Variational; |
103 | ---Purpose: computes the approximation of a Multiline by |
104 | -- Variational optimization. |
105 | |
106 | |
107 | |
108 | --- instantiate classes: |
109 | -- |
110 | |
111 | class Array1OfConstraintCouple instantiates Array1 from TCollection |
112 | (ConstraintCouple); |
113 | |
114 | class HArray1OfConstraintCouple instantiates HArray1 from TCollection |
115 | (ConstraintCouple,Array1OfConstraintCouple); |
116 | |
117 | |
118 | |
119 | class Array1OfMultiPoint instantiates Array1 from TCollection |
120 | (MultiPoint); |
121 | |
122 | class HArray1OfMultiPoint instantiates HArray1 from TCollection |
123 | (MultiPoint,Array1OfMultiPoint); |
124 | |
125 | |
126 | class Array1OfMultiCurve instantiates Array1 from TCollection |
127 | (MultiCurve); |
128 | |
129 | class HArray1OfMultiCurve instantiates HArray1 from TCollection |
130 | (MultiCurve, Array1OfMultiCurve); |
131 | |
132 | class SequenceOfMultiCurve instantiates Sequence from TCollection |
133 | (MultiCurve); |
134 | |
135 | |
136 | class Array1OfMultiBSpCurve instantiates Array1 from TCollection |
137 | (MultiBSpCurve); |
138 | |
139 | class HArray1OfMultiBSpCurve instantiates HArray1 from TCollection |
140 | (MultiBSpCurve, Array1OfMultiBSpCurve); |
141 | |
142 | class SequenceOfMultiBSpCurve instantiates Sequence from TCollection |
143 | (MultiBSpCurve); |
144 | |
145 | |
146 | BernsteinMatrix(NbPoles: in Integer from Standard; |
147 | U : in Vector from math; |
148 | A : in out Matrix from math); |
149 | |
150 | |
151 | Bernstein(NbPoles: in Integer from Standard; |
152 | U : in Vector from math; |
153 | A : in out Matrix from math; |
154 | DA : in out Matrix from math); |
155 | |
156 | |
157 | SecondDerivativeBernstein(U: Real; DDA: in out Vector from math); |
158 | |
159 | |
160 | SplineFunction(NbPoles : in Integer from Standard; |
161 | Degree : in Integer from Standard; |
162 | Parameters : in Vector from math; |
163 | FlatKnots : in Vector from math; |
164 | A : in out Matrix from math; |
165 | DA : in out Matrix from math; |
166 | Index : in out IntegerVector from math); |
167 | |
168 | end AppParCurves; |