1 -- Created on: 1993-04-22
2 -- Created by: Laurent PAINNOT
3 -- Copyright (c) 1993-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
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.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
19 ---Purpose: This package provides the least square algorithms
20 -- necessary to approximate a set of continous curves
21 -- or a continous surface.
24 -- It also provides an instantiation of these algorithms
25 -- for a class Function, a function f(t).
26 -- The user will have to inherit class Function to use it.
30 -- All methods of all classes will be advanced.
35 uses AppParCurves, Geom, math, StdFail, TCollection, TColStd, gp,
42 deferred generic class TheLineTool; --- Template
43 ---Purpose: Tool describing a continous MultiLine.
44 -- The MultiLine is described by a parameter.
46 deferred generic class TheSurfTool; --- Template
47 ---Purpose: Tool describing a continous Surface.
48 -- The Surface is described by a couple of parameters.
52 -------------------------------
54 -------------------------------
56 ---Purpose: The two following algorithms are using the same recipe:
57 -- Minimizing the difference between the approximate result
58 -- Curve or Surface and respectively a continous MultiLine
59 -- or a continous surface.
61 generic class LeastSquare;
62 ---Purpose: makes an approximation of a continous Line described by
63 -- the tool TheLineTool.
65 generic class SurfLeastSquare;
66 ---Purpose: makes an approximation of a continous Surface
67 -- described by the tool TheSurfaceTool.
71 ------------------------------------------------------
72 --- Necessary class for approximation a function f(t):
73 ------------------------------------------------------
75 deferred class Function;
76 ---Purpose: This class must be provided by the user to use the
77 -- approximation algorithm FittingCurve.
81 ---Purpose: This class is the inteface between the Function
82 -- class and the tool asked by LeastSquare.
85 ---------------------------------------------------------
86 --- Necessary class for approximation a 2d function f(t):
87 ---------------------------------------------------------
89 deferred class Function2d;
90 ---Purpose: This class must be provided by the user to use the
91 -- approximation algorithm FittingCurve2d.
95 ---Purpose: This class is the inteface between the Function2d
96 -- class and the tool asked by LeastSquare.
100 class FitFunction instantiates LeastSquare from AppCont
101 (Function from AppCont, FunctionTool from AppCont);
103 class FitFunction2d instantiates LeastSquare from AppCont
104 (Function2d from AppCont, FunctionTool2d from AppCont);