OCC22610 The algorithm GeomAPI_ProjectPointOnSurf produces wrong results
[occt.git] / src / Extrema / Extrema_FuncExtPC.cdl
1 -- File:        FuncExtPC.cdl
2 -- Created:     Wed Jul 24 14:31:49 1991
3 -- Author:      Michel CHAUVAT
4 --              <mca@topsn3>
5 ---Copyright:    Matra Datavision 1991
6
7
8 private generic class FuncExtPC from Extrema 
9 (Curve    as any;
10  Tool     as any;
11  POnC     as any;
12  Pnt      as any;
13  Vec      as any)
14                                                      
15     inherits FunctionWithDerivative from math
16     ---Purpose: Fonction permettant de rechercher les extrema de la 
17     --          distance entre un point et une courbe.
18
19 uses    SequenceOfReal    from TColStd,
20         SequenceOfInteger from TColStd
21         
22 raises  OutOfRange   from Standard,
23         TypeMismatch from Standard
24
25 private class SeqPC instantiates Sequence from TCollection(POnC);       
26
27
28 is
29
30     Create returns FuncExtPC;
31
32     Create (P: Pnt; C: Curve) returns FuncExtPC;
33         ---Purpose: 
34
35     Initialize(me: in out; C: Curve)
36         ---Purpose: sets the field mycurve of the function.
37     is static;
38     
39     SetPoint(me: in out; P: Pnt)
40         ---Purpose: sets the field P of the function.
41     is static;
42
43
44     -- In all next methods, an exception is raised if the fields 
45     -- were not initialized.
46
47     Value (me: in out; U: Real; F: out Real) returns Boolean;
48         ---Purpose: Calcul de F(U).
49
50     Derivative (me: in out; U: Real; DF: out Real) returns Boolean;
51         ---Purpose: Calcul de F'(U).
52
53     Values (me: in out; U: Real; F,DF: out Real) returns Boolean;
54         ---Purpose: Calcul de F(U) et F'(U).
55
56     GetStateNumber (me: in out) returns Integer
57         ---Purpose: Memorise l'extremum trouve.
58         is redefined;
59
60     NbExt (me) returns Integer
61         ---Purpose: Renvoie le nombre d'extrema trouves.
62     raises TypeMismatch from Standard;
63
64     SquareDistance (me; N: Integer) returns Real
65         ---Purpose: Renvoie la Nieme distance.
66         raises  OutOfRange from Standard,
67                 TypeMismatch from Standard;
68                 -- si N < 1 ou N > NbExt(me).
69
70     IsMin (me; N: Integer) returns Boolean
71         ---Purpose: Indique si la Nieme distance est un minimum.
72         raises  OutOfRange from Standard,
73                 TypeMismatch from Standard;
74                 -- si N < 1 ou N > NbExt(me).
75
76     Point (me; N: Integer) returns POnC
77         ---Purpose: Renvoie le Nieme extremum.
78         raises  OutOfRange from Standard,
79                 TypeMismatch from Standard;
80                 -- si N < 1 ou N > NbExt(me).
81
82 fields
83     myP    : Pnt;
84     myC    : Address from Standard;
85
86     myU    : Real;          -- valeur courante
87     myPc   : Pnt;           -- point courant
88     myD1f  : Real;          -- valeur de la derivee de la fonction
89
90     mySqDist: SequenceOfReal    from TColStd;
91     myIsMin: SequenceOfInteger from TColStd;
92     myPoint: SeqPC;
93     myPinit: Boolean;
94     myCinit: Boolean;
95     myD1Init: Boolean;
96
97 end FuncExtPC;