0023024: Update headers of OCCT files
[occt.git] / src / ApproxInt / ApproxInt_Approx.cdl
1 -- Created on: 1993-03-17
2 -- Created by: Laurent BUCHARD
3 -- Copyright (c) 1993-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 generic class Approx from ApproxInt (
24     ThePSurface        as any;
25     ThePSurfaceTool    as any;
26     TheISurface        as any;
27     TheISurfaceTool    as any;
28     TheWLine           as Transient)
29     
30 uses 
31     MCurvesToBSpCurve from Approx,
32     MultiBSpCurve     from AppParCurves,
33     Pnt               from gp,
34     Pnt2d             from gp,
35     Vec               from gp,
36     Vec2d             from gp,
37     ParametrizationType from Approx   
38      
39 raises 
40     OutOfRange    from Standard,
41     NotDone       from StdFail
42     
43 class ThePrmPrmSvSurfaces instantiates PrmPrmSvSurfaces from ApproxInt (
44     ThePSurface,
45     ThePSurfaceTool,
46     TheWLine); 
47
48 class TheImpPrmSvSurfaces instantiates ImpPrmSvSurfaces from ApproxInt (
49     ThePSurface,
50     ThePSurfaceTool,
51     TheISurface,
52     TheISurfaceTool,
53     TheWLine); 
54
55 class TheMultiLine instantiates MultiLine from ApproxInt (
56     TheWLine,
57     SvSurfaces  from ApproxInt);
58
59 class TheMultiLineTool instantiates MultiLineTool from ApproxInt(
60     TheMultiLine,
61     SvSurfaces  from ApproxInt);
62     
63 class TheComputeLine instantiates BSplComputeLine from Approx (
64     TheMultiLine,
65     TheMultiLineTool);
66
67 class TheComputeLineBezier instantiates ComputeLine from Approx (
68     TheMultiLine,
69     TheMultiLineTool);
70
71 is
72
73     Create
74     returns Approx from ApproxInt;
75
76     Perform(me: in out;
77             Surf1,Surf2 : ThePSurface;
78             aLine       : TheWLine;
79             ApproxXYZ   : Boolean from Standard = Standard_True;
80             ApproxU1V1  : Boolean from Standard = Standard_True;
81             ApproxU2V2  : Boolean from Standard = Standard_True;
82             indicemin   : Integer from Standard = 0;
83             indicemax   : Integer from Standard = 0)
84     is static;
85     
86     Perform(me: in out;
87             aLine       : TheWLine;
88             ApproxXYZ   : Boolean from Standard = Standard_True;
89             ApproxU1V1  : Boolean from Standard = Standard_True;
90             ApproxU2V2  : Boolean from Standard = Standard_True;
91             indicemin   : Integer from Standard = 0;
92             indicemax   : Integer from Standard = 0)        
93     is static;
94
95     
96     SetParameters(me: in out; Tol3d               : Real    from Standard;
97                               Tol2d               : Real    from Standard;
98                               DegMin              : Integer from Standard;
99                               DegMax              : Integer from Standard;
100                               NbIterMax           : Integer from Standard;
101                               ApproxWithTangency  : Boolean from Standard = Standard_True; 
102                               Parametrization     : ParametrizationType from Approx = Approx_ChordLength)
103     is static;
104
105     SetParameters(me: in out; Tol3d               : Real    from Standard;
106                               Tol2d               : Real    from Standard;
107                               RelativeTol         : Boolean from Standard;
108                               DegMin              : Integer from Standard;
109                               DegMax              : Integer from Standard;
110                               NbIterMax           : Integer from Standard;
111                               NbPntMax            : Integer from Standard;
112                               ApproxWithTangency  : Boolean from Standard = Standard_True; 
113                               Parametrization     : ParametrizationType from Approx = Approx_ChordLength)
114     is static;
115
116     Perform(me:in out) 
117     is static;
118
119     TolReached3d(me) returns Real from Standard
120     is static;
121
122     TolReached2d(me) returns Real from Standard
123     is static;
124
125     IsDone(me) returns Boolean from Standard 
126     is static;
127     
128     NbMultiCurves(me) returns Integer from Standard 
129     is static ;
130     
131     Value(me; Index: Integer from Standard) 
132         ---C++: return const &
133     returns MultiBSpCurve from AppParCurves 
134     is static;
135
136
137
138 ---- private methods
139
140     Perform(me: in out ;Surf1       : ThePSurface;
141                         Surf2       : TheISurface;
142                         aLine       : TheWLine;
143                         ApproxXYZ   : Boolean from Standard;
144                         ApproxU1V1  : Boolean from Standard;
145                         ApproxU2V2  : Boolean from Standard;
146                         indicemin   : Integer from Standard;
147                         indicemax   : Integer from Standard)                          
148
149     is static private;
150
151     Perform(me: in out ;Surf1       : TheISurface;
152                         Surf2       : ThePSurface;
153                         aLine       : TheWLine;
154                         ApproxXYZ   : Boolean from Standard;
155                         ApproxU1V1  : Boolean from Standard;
156                         ApproxU2V2  : Boolean from Standard;
157                         indicemin   : Integer from Standard;
158                         indicemax   : Integer from Standard) 
159     is static private;
160     
161     UpdateTolReached(me: in out)
162     is static private;
163
164 fields
165     myComputeLine       : TheComputeLine       from ApproxInt;
166     myComputeLineBezier : TheComputeLineBezier from ApproxInt;    
167     myBezToBSpl         : MCurvesToBSpCurve    from Approx;
168     myTolReached        : Boolean              from Standard; 
169     myApproxBez         : Boolean              from Standard;
170     
171     myWithTangency      : Boolean               from Standard;
172     myTol3d             : Real                  from Standard;
173     myTol2d             : Real                  from Standard;
174     myRelativeTol       : Boolean               from Standard;
175     myDegMin            : Integer               from Standard;
176     myDegMax            : Integer               from Standard;    
177     myNbPntMax          : Integer               from Standard;        
178     myNbIterMax         : Integer               from Standard;        
179
180     myMinFactorXYZ      : Real                  from Standard;    
181     myMinFactorUV       : Real                  from Standard;
182     myTolReached3d      : Real                  from Standard;    
183     myTolReached2d      : Real                  from Standard;
184
185 end Approx;