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 | |
17 | generic 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 | |
24 | uses |
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 | |
33 | raises |
34 | OutOfRange from Standard, |
35 | NotDone from StdFail |
36 | |
37 | class ThePrmPrmSvSurfaces instantiates PrmPrmSvSurfaces from ApproxInt ( |
38 | ThePSurface, |
39 | ThePSurfaceTool, |
40 | TheWLine); |
41 | |
42 | class TheImpPrmSvSurfaces instantiates ImpPrmSvSurfaces from ApproxInt ( |
43 | ThePSurface, |
44 | ThePSurfaceTool, |
45 | TheISurface, |
46 | TheISurfaceTool, |
47 | TheWLine); |
48 | |
49 | class TheMultiLine instantiates MultiLine from ApproxInt ( |
50 | TheWLine, |
51 | SvSurfaces from ApproxInt); |
52 | |
53 | class TheMultiLineTool instantiates MultiLineTool from ApproxInt( |
54 | TheMultiLine, |
55 | SvSurfaces from ApproxInt); |
56 | |
57 | class TheComputeLine instantiates BSplComputeLine from Approx ( |
58 | TheMultiLine, |
59 | TheMultiLineTool); |
60 | |
61 | class TheComputeLineBezier instantiates ComputeLine from Approx ( |
62 | TheMultiLine, |
63 | TheMultiLineTool); |
64 | |
65 | is |
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 | |
158 | fields |
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 | |
179 | end Approx; |