0024428: Implementation of LGPL license
[occt.git] / src / Approx / Approx.cdl
1 -- Created on: 1993-01-26
2 -- Created by: Laurent PAINNOT
3 -- Copyright (c) 1993-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
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 package Approx 
18
19      ---Purpose: Tis package provides algorithms approximating a set of
20      --          points or curves with the possibility of dividing into
21      --          one or many bezier curves.
22      --          It also provides an instantiation for approximating
23      --          a continous function f(t) into one or many curves. 
24      
25 uses AdvApprox, 
26      AppCont, 
27      AppParCurves, 
28      math, 
29      gp,
30      GeomAbs,
31      Geom,
32      Geom2d,
33      Adaptor3d,
34      Adaptor2d,
35      TColStd, 
36      TColGeom, 
37      TColgp, 
38      TCollection,  
39      Standard, 
40      StdFail
41
42
43 is
44
45 enumeration ParametrizationType is
46     ChordLength,
47     Centripetal,
48     IsoParametric
49 end;    
50
51 enumeration Status is
52     PointsAdded,
53     NoPointsAdded,
54     NoApproximation
55 end;    
56
57     deferred generic class TheLineTool;    ---Template
58         ---Purpose: This template is different from the one of AppParCurves.
59         --          In this case, it is possible to insert new points 
60         --          during the approximation with ComputeLine.
61     
62     
63     
64 ---------------------------------------------
65 ---Algorithms for Bezier curves construction:
66 ---------------------------------------------
67
68
69    generic class ComputeLine, MyGradient;
70     ---Purpose: Approximate a MultiLine with a cutting.
71
72    generic class ComputeCLine, MyLeastSquare;
73     ---Purpose: Approximate a continous MultiLine with a cutting.
74     --          The Tool of the line is the tool from AppCont.
75
76
77    generic class ComputeCSurface, MySLeastSquare;
78     ---Purpose: Approximate a continous Surface with or without cutting.
79     --          The tool is the tool of AppCont.   
80
81
82
83
84 ----------------------------------------------
85 ---Algorithms for BSpline curves construction:
86 ----------------------------------------------
87
88
89     generic class BSplComputeLine, MyBSplGradient, MyGradientbis;
90
91 ----------------------------------------------
92 ---Algorithms for BSpline Surface construction:
93 ----------------------------------------------
94                                                                                    class  SweepApproximation; 
95                                                                                    deferred  class  SweepFunction;
96 -----------------------------------------------------------------
97 --- Transformation of connecting MultiCurves into a MultiBSpCurve
98 -----------------------------------------------------------------
99
100
101     class MCurvesToBSpCurve;
102
103 ------------------------------------------------
104 ---Algorithms  for  PCurve  approximation:
105 ------------------------------------------------
106     class  CurveOnSurface;  
107     class  Curve3d;     
108     class  Curve2d; 
109 ------------------------------------------------
110 ---Algorithms  for  PCurve  approximation:
111 ------------------------------------------------
112     class  CurvilinearParameter;  
113     class  CurvlinFunc;
114 --------------------------
115 --- instantiate classes:
116 --------------------------
117
118     class SequenceOfHArray1OfReal instantiates Sequence from TCollection
119                                             (HArray1OfReal from TColStd);
120
121
122 -----------------------------------------------------------------
123 --- the folowing classes approximate a continous function f(t) in 
124 --- one or many bezier curves.
125 -----------------------------------------------------------------
126
127     class FitAndDivide instantiates ComputeCLine from Approx
128         (Function from AppCont, FunctionTool from AppCont);
129
130     class FitAndDivide2d instantiates ComputeCLine from Approx
131         (Function2d from AppCont, FunctionTool2d from AppCont);
132
133     class SameParameter from Approx ;
134     ---Purpose: this makes a 3D curve from Adaptor3d and
135     --          a curve on surface to check and build a 2D 
136     --          BSpline curve that has the same parameterisation
137     --          as the 3D curve.
138     class Array1OfAdHSurface    instantiates Array1 from TCollection 
139                             (HSurface  from  Adaptor3d)                      ;
140     class HArray1OfAdHSurface  instantiates HArray1 from TCollection
141                             (HSurface from   Adaptor3d, Array1OfAdHSurface)  ;
142     class Array1OfGTrsf2d     instantiates Array1 from TCollection
143                             (GTrsf2d  from  gp)                            ;
144  
145     class HArray1OfGTrsf2d  instantiates HArray1  from TCollection
146                             (GTrsf2d from  gp, Array1OfGTrsf2d)  ; 
147                             
148     --    class ApproxPoints from Approx ;
149     --    class ApproxPoints  from Approx ;
150     ---Purpose:  
151     --      this approximates a series of points
152     --   Boundary conditions can be given as well
153     --   a given parameterisation
154     --   
155  
156 end Approx;