0025890: Intersection algorithm produces curves overlaped
[occt.git] / src / IntImp / IntImp_ZerImpFunc.cdl
1 -- Created on: 1992-03-27
2 -- Created by: Isabelle GRIGNON
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License 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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 generic class ZerImpFunc from IntImp
18     (ThePSurface     as any;
19      ThePSurfaceTool as any;
20      TheISurface     as any;
21      TheISurfaceTool as any)
22
23
24 inherits FunctionSetWithDerivatives from math                          
25
26         ---Purpose: this function is associated to IWalking
27         --          it's the function : F(x,y,z)=0 
28         --          where    x=X(u,v), y=Y(u,v), z=Z(u,v)
29
30 uses Vector  from math,
31      Matrix  from math,
32      Pnt     from gp,
33      Vec     from gp,
34      Dir2d   from gp
35
36 raises UndefinedDerivative from StdFail
37
38 is
39
40     Create
41     
42         returns ZerImpFunc from IntImp;
43         
44
45     Create(PS: ThePSurface;
46            IS: TheISurface)
47
48         returns ZerImpFunc from IntImp;
49     
50
51     Create(IS: TheISurface)
52     
53         returns ZerImpFunc from IntImp;
54
55
56     Set(me: in out; PS: ThePSurface)
57
58         ---C++: inline
59         is static;
60
61     
62     SetImplicitSurface(me: in out; IS: TheISurface)
63
64         ---C++: inline
65         is static;
66
67
68     Set(me: in out; Tolerance: Real from Standard)    
69
70         ---C++: inline
71         is static;
72
73
74     NbVariables(me)
75
76         returns Integer from Standard
77
78         is static;
79
80
81     NbEquations(me)
82
83         returns Integer from Standard
84
85         is static;
86
87
88     Value(me : in out; X : Vector from math;
89                        F : out Vector from math)
90
91         returns Boolean from Standard
92         is static;
93
94
95     Derivatives(me : in out; X : Vector from math;
96                              D : out Matrix from math)
97
98         returns Boolean from Standard
99         is static;
100
101
102     Values(me : in out; X : Vector from math;
103                         F : out Vector from math;
104                         D : out Matrix from math)
105
106         returns Boolean from Standard
107         is static;
108
109
110     Root(me)
111
112         returns Real from Standard
113         ---C++: inline
114
115         is static;
116
117
118     Tolerance(me)
119     
120         ---Purpose: Returns the value Tol so that if Abs(Func.Root())<Tol
121         --          the function is considered null.
122         --          
123         ---C++: inline
124     
125         returns Real from Standard
126         is static;
127
128
129     Point(me)
130
131         returns Pnt from gp
132         ---C++: return const&
133         ---C++: inline
134
135         is static;
136     
137
138     IsTangent(me : in out)
139
140         returns Boolean from Standard 
141
142         is static;
143     
144
145     Direction3d(me: in out)
146
147         returns Vec from gp
148         ---C++: return const&
149         ---C++: inline
150
151         raises UndefinedDerivative from StdFail
152         is static;
153     
154
155     Direction2d(me: in out)
156
157         returns Dir2d from gp
158         ---C++: return const&
159         ---C++: inline
160
161         raises UndefinedDerivative from StdFail
162         is static;
163     
164
165     PSurface(me)
166
167         returns ThePSurface
168         ---C++: return const&
169         ---C++: inline
170
171         is static;
172     
173
174     ISurface(me)
175
176         returns TheISurface
177         ---C++: return const&
178         ---C++: inline
179
180         is static;
181
182
183
184 fields
185
186   surf        : Address from Standard; --- ThePSurface;
187   func        : Address from Standard; --- TheISurface;
188   u           : Real    from Standard;
189   v           : Real    from Standard;
190   tol         : Real    from Standard;
191   pntsol      : Pnt     from gp;
192   valf        : Real    from Standard;
193   computed    : Boolean from Standard; 
194   tangent     : Boolean from Standard;
195   tgdu        : Real    from Standard;
196   tgdv        : Real    from Standard;
197   gradient    : Vec     from gp;
198   derived     : Boolean from Standard;
199   d1u         : Vec     from gp;
200   d1v         : Vec     from gp;
201   d3d         : Vec     from gp;
202   d2d         : Dir2d   from gp;
203
204 end ZerImpFunc;
205