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