0024530: TKMesh - remove unused package IntPoly
[occt.git] / src / IntImp / IntImp_Int2S.cdl
CommitLineData
b311480e 1-- Created on: 1991-04-30
2-- Created by: Isabelle GRIGNON
3-- Copyright (c) 1991-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 Int2S from IntImp
18 (ThePSurface as any;
19 ThePSurfaceTool as any) -- as PSurfaceTool from IntImp (ThePSurface)
20
21
22 ---Purpose: Determination of the intersection between 2 surfaces
23 -- from an point close to the solution.
24
25
26uses Array1OfReal from TColStd,
27 ConstIsoparametric from IntImp,
28 PntOn2S from IntSurf,
29 Dir from gp,
30 Dir2d from gp,
31 FunctionSetRoot from math
32
33raises NotDone from StdFail,
34 DomainError from Standard,
35 ConstructionError from Standard,
36 UndefinedDerivative from StdFail
37
38
39 class TheFunction instantiates ZerParFunc from IntImp
40 (ThePSurface, ThePSurfaceTool);
41
42
43is
44
45 Create
46 ---Purpose: Raises Construction Error
47
48 returns Int2S from IntImp;
49
50 Create( Param: Array1OfReal from TColStd;
51 S1,S2: ThePSurface;
52 TolTangency: Real)
53
54 ---Purpose: compute the solution point with the close point
55
56 returns Int2S from IntImp;
57
58
59 Create( S1,S2: ThePSurface;
60 TolTangency: Real from Standard)
61
62 ---Purpose: initialize the parameters to compute the solution point
63 -- it 's possible to write to optimize:
64 -- IntImp_Int2S inter(S1,S2,Func,TolTangency);
65 -- math_FunctionSetRoot rsnld(inter.Function());
66 -- while ...{
67 -- Param(1)=...
68 -- Param(2)=...
69 -- param(3)=...
70 -- inter.Perform(Param,rsnld);
71 -- }
72
73 returns Int2S from IntImp;
74
75
76 Perform(me : in out; Param : Array1OfReal from TColStd;
77 Rsnld : in out FunctionSetRoot from math)
78
79 ---Purpose: returns the best constant isoparametric to find
80 -- the next intersection's point +stores the solution
81 -- point (the solution point is found with the close point
82 -- to intersect the isoparametric with the other patch;
83 -- the choice of the isoparametic is calculated)
84
85 returns ConstIsoparametric from IntImp
86
87 is static;
88
89
90 Perform(me : in out;
91 Param : Array1OfReal from TColStd;
92 Rsnld : in out FunctionSetRoot from math;
93 ChoixIso : ConstIsoparametric from IntImp)
94
95 ---Purpose: returns the best constant isoparametric to find
96 -- the next intersection's point +stores the solution
97 -- point (the solution point is found with the close point
98 -- to intersect the isoparametric with the other patch;
99 -- the choice of the isoparametic is given by ChoixIso)
100
101 returns ConstIsoparametric from IntImp
102
103 is static;
104
105
106 IsDone(me)
107
108 ---Purpose: Returns TRUE if the creation completed without failure.
109
110 returns Boolean from Standard
111 ---C++: inline
112
113 is static;
114
115
116 IsEmpty(me)
117
118 ---Purpose: Returns TRUE when there is no solution to the problem.
119
120 returns Boolean from Standard
121 ---C++: inline
122
123 raises NotDone from StdFail
124 is static;
125
126
127 Point(me)
128
129 ---Purpose: Returns the intersection point.
130
131 returns PntOn2S from IntSurf
132 ---C++: return const&
133 ---C++: inline
134
135 raises NotDone from StdFail,
136 DomainError from Standard
137 -- The exception NotDone is raised if IsDone is false.
138 -- The exception DomainError is raised if IsEmpty is true.
139
140 is static;
141
142
143 IsTangent(me)
144
145 ---Purpose: Returns True if the surfaces are tangent at the
146 -- intersection point.
147
148 returns Boolean from Standard
149 ---C++: inline
150
151 raises NotDone from StdFail,
152 DomainError from Standard
153 -- The exception NotDone is raised if IsDone is false.
154 -- The exception DomainError is raised if IsEmpty is true.
155
156 is static;
157
158
159 Direction(me)
160
161 ---Purpose: Returns the tangent at the intersection line.
162
163 returns Dir from gp
164 ---C++: return const&
165 ---C++: inline
166
167 raises NotDone from StdFail,
168 DomainError from Standard,
169 UndefinedDerivative from StdFail
170 -- The exception NotDone is raised if IsDone is false.
171 -- The exception DomainError is raised if IsEmpty is true.
172 -- The exception UndefinedDerivative is raised if IsTangent
173 -- returns True.
174
175 is static;
176
177
178 DirectionOnS1(me)
179
180 ---Purpose: Returns the tangent at the intersection line in the
181 -- parametric space of the first surface.
182
183 returns Dir2d from gp
184 ---C++: return const&
185 ---C++: inline
186
187 raises NotDone from StdFail,
188 DomainError from Standard,
189 UndefinedDerivative from StdFail
190 -- The exception NotDone is raised if IsDone is false.
191 -- The exception DomainError is raised if IsEmpty is true.
192 -- The exception UndefinedDerivative is raised if IsTangent
193 -- returns True.
194
195 is static;
196
197
198 DirectionOnS2(me)
199
200 ---Purpose: Returns the tangent at the intersection line in the
201 -- parametric space of the second surface.
202
203 returns Dir2d from gp
204 ---C++: return const&
205 ---C++: inline
206
207 raises NotDone from StdFail,
208 DomainError from Standard,
209 UndefinedDerivative from StdFail
210 -- The exception NotDone is raised if IsDone is false.
211 -- The exception DomainError is raised if IsEmpty is true.
212 -- The exception UndefinedDerivative is raised if IsTangent
213 -- returns True.
214
215 is static;
216
217
218 Function(me: in out)
219 ---Purpose: return the math function which
220 -- is used to compute the intersection
221
222 returns TheFunction
223 ---C++: return &
224 ---C++: inline
225
226 is static;
227
228
229fields
230
231 done : Boolean from Standard;
232 empty : Boolean from Standard;
233 pint : PntOn2S from IntSurf;
234 tangent : Boolean from Standard;
235 d3d : Dir from gp;
236 d2d1 : Dir2d from gp;
237 d2d2 : Dir2d from gp;
238 myZerParFunc : TheFunction;
239 tol : Real from Standard;
240
241 ua0,va0,ua1,va1 : Real from Standard; -- surf1
242 ub0,vb0,ub1,vb1 : Real from Standard; -- surf2
243 ures1,ures2,vres1,vres2 : Real from Standard; -- U et V Resolution
244
245end Int2S;