2 -- Created: Wed Jul 24 14:31:49 1991
3 -- Author: Michel CHAUVAT
5 ---Copyright: Matra Datavision 1991
8 private generic class FuncExtCC from Extrema
10 Tool1 as any;-- as ToolCurve(Curve1);
12 Tool2 as any;-- as ToolCurve(Curve2);
18 inherits FunctionSetWithDerivatives from math
19 ---Purpose: Fonction permettant de rechercher les extrema de la
20 -- distance entre 2 courbes.
22 uses Vector from math,
24 SequenceOfReal from TColStd
26 raises OutOfRange from Standard
28 private class SeqPOnC instantiates Sequence from TCollection(POnC);
32 Create (thetol: Real = 1.0e-10) returns FuncExtCC;
35 Create (C1: Curve1; C2: Curve2; thetol: Real = 1.0e-10) returns FuncExtCC;
38 SetCurve (me: in out; theRank: Integer; C1: Curve1);
42 SetTolerance (me: in out; theTol: Real);
46 NbVariables (me) returns Integer is redefined;
49 NbEquations (me) returns Integer is redefined;
52 Value (me: in out; UV: Vector; F: out Vector) returns Boolean is redefined;
53 ---Purpose: Calcul de Fi(U,V).
55 Derivatives (me: in out; UV: Vector; DF: out Matrix)
57 ---Purpose: Calcul de Fi'(U,V).
59 Values (me: in out; UV: Vector; F: out Vector; DF: out Matrix)
61 ---Purpose: Calcul de Fi(U,V) et Fi'(U,V).
63 GetStateNumber (me: in out) returns Integer
64 ---Purpose: Memorise l'extremum trouve.
67 NbExt (me) returns Integer;
69 ---Purpose: Renvoie le nombre d'extrema trouves.
71 SquareDistance (me; N: Integer) returns Real
73 ---Purpose: Renvoie la valeur de la Nieme distance.
75 -- si N < 1 ou N > NbExt(me).
77 Points (me; N: Integer; P1,P2: out POnC)
78 ---Purpose: Renvoie les points de la Nieme distance extremale.
80 -- si N < 1 ou N > NbExt(me).
82 CurvePtr (me; theRank: Integer) returns Address;
84 ---Purpose: Returns a pointer to the curve specified in the constructor
85 -- or in SetCurve() method.
87 Tolerance (me) returns Real;
89 ---Purpose: Returns a tolerance specified in the constructor
90 -- or in SetTolerance() method.
93 myC1 : Address from Standard;
94 myC2 : Address from Standard;
96 myU : Real; -- valeur courante de U
97 myV : Real; -- valeur courante de V
98 myP1 : Pnt; -- point courant C1(U)
99 myP2 : Pnt; -- point courant C2(U)
101 mySqDist: SequenceOfReal from TColStd;