0023964: Extrema_ExtXX::Point methods might return constant reference instead of...
[occt.git] / src / Extrema / Extrema_GenLocateExtPS.cdl
1 -- Created on: 1995-07-18
2 -- Created by: Modelistation
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23 class   GenLocateExtPS from Extrema
24                                          
25         ---Purpose: With a close point, it calculates the distance 
26         --          between a point and a surface.
27         --          This distance can be a minimum or a maximum.
28
29 uses    POnSurf from Extrema,
30         Pnt     from gp,
31         Surface from Adaptor3d
32  
33 raises  DomainError from Standard,
34         NotDone     from StdFail
35
36
37 is
38     Create returns GenLocateExtPS;
39
40     Create (P: Pnt; S: Surface from Adaptor3d; U0,V0: Real; TolU,TolV: Real)
41         returns GenLocateExtPS
42         ---Purpose: Calculates the distance with a close point.
43         --          The close point is defined by the parameter values
44         --          U0 and V0.
45         --          The function F(u,v)=distance(S(u,v),p) has an
46         --          extremun when gradient(F)=0. The algorithm searchs
47         --          a zero near the close point.
48         raises  DomainError;
49                 -- if U0,V0 are outside the definition ranges of the 
50                 -- surface.
51     
52     IsDone (me) returns Boolean
53         ---Purpose: Returns True if the distance is found.
54         is static;
55
56     SquareDistance (me) returns Real
57         ---Purpose: Returns the value of the extremum square distance.
58         raises  NotDone from StdFail
59                 -- if IsDone(me)=False.
60         is static;
61
62     Point (me) returns POnSurf
63         ---C++: return const &
64         ---Purpose: Returns the point of the extremum distance.
65         raises  NotDone from StdFail
66                 -- if IsDone(me)=False.
67         is static;
68
69 fields
70     myDone : Boolean;
71     mySqDist: Real;
72     myPoint: POnSurf from Extrema;
73
74 end GenLocateExtPS;