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