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