1 -- File: Extrema_ExtPExtS.cdl
2 -- Created: Thu Sep 16 16:53:38 1999
3 -- Author: Edward AGAPOV
4 -- <eap@strelox.nnov.matra-dtv.fr>
5 ---Copyright: Matra Datavision 1999
8 class ExtPExtS from Extrema
10 ---Purpose: It calculates all the extremum (minimum and
11 -- maximum) distances between a point and a linear
16 GenExtPS from Extrema,
17 FuncExtPS from Extrema,
19 HCurve from Adaptor3d,
20 SurfacePtr from Adaptor3d,
21 SurfaceOfLinearExtrusion from Adaptor3d,
33 Create returns ExtPExtS;
35 Create (P: Pnt; S: SurfaceOfLinearExtrusion from Adaptor3d;
36 Umin, Usup, Vmin, Vsup: Real;
39 ---Purpose: It calculates all the distances between a point
40 -- from gp and a Surface.
42 Create (P: Pnt; S: SurfaceOfLinearExtrusion from Adaptor3d;
45 ---Purpose: It calculates all the distances between a point
46 -- from gp and a Surface.
48 Initialize(me: in out; S: SurfaceOfLinearExtrusion from Adaptor3d;
49 Uinf, Usup, Vinf, Vsup: Real;
51 ---Purpose: Initializes the fields of the algorithm.
54 Perform(me: in out; P: Pnt)
57 IsDone (me) returns Boolean
58 ---Purpose: Returns True if the distances are found.
61 NbExt (me) returns Integer
62 ---Purpose: Returns the number of extremum distances.
63 raises NotDone from StdFail
64 -- if IsDone(me)=False.
67 SquareDistance (me; N: Integer) returns Real
68 ---Purpose: Returns the value of the Nth resulting square distance.
69 raises NotDone from StdFail,
70 -- if IsDone(me)=False.
72 -- if N < 1 or N > NbPoints(me).
75 Point (me; N: Integer) returns POnSurf
76 ---Purpose: Returns the point of the Nth resulting distance.
77 raises NotDone from StdFail,
78 -- if IsDone(me)=False.
80 -- if N < 1 or N > NbPoints(me).
85 MakePreciser (me; U : in out Real from Standard;
87 isMin : Boolean from Standard;
88 OrtogSection: Ax2 from gp) is static private;
91 myuinf : Real from Standard;
92 myusup : Real from Standard;
93 mytolu : Real from Standard;
94 myvinf : Real from Standard;
95 myvsup : Real from Standard;
96 mytolv : Real from Standard;
98 myVRange : Real from Standard;
100 myF : FuncExtPS from Extrema;
101 myC : HCurve from Adaptor3d;
102 myS : SurfacePtr from Adaptor3d;
103 myDirection : Vec from gp;
104 myPosition : Ax2 from gp;
105 myExtPS : GenExtPS from Extrema;
107 myIsAnalyticallyComputable : Boolean from Standard;
109 myDone : Boolean from Standard;
110 myNbExt: Integer from Standard;
111 mySqDist: Real from Standard [4];
112 myPoint: POnSurf from Extrema [4];