0022627: Change OCCT memory management defaults
[occt.git] / src / Extrema / Extrema_ExtPExtS.cdl
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
6
7
8 class ExtPExtS from Extrema 
9                     
10         ---Purpose: It calculates all the extremum (minimum and
11         --          maximum) distances between a point and a linear
12         --          extrusion surface.
13                     
14 uses
15     POnSurf from Extrema,
16     GenExtPS from Extrema,
17     FuncExtPS from Extrema,
18     
19     HCurve from Adaptor3d,
20     SurfacePtr from Adaptor3d, 
21     SurfaceOfLinearExtrusion from Adaptor3d,
22     
23     Ax2 from gp,
24     Vec from gp,
25     Pnt from gp
26
27 raises 
28     NotDone from StdFail,
29     OutOfRange
30
31
32 is
33     Create returns ExtPExtS;
34
35     Create (P: Pnt; S: SurfaceOfLinearExtrusion from Adaptor3d; 
36                     Umin, Usup, Vmin, Vsup: Real; 
37                     TolU,TolV: Real) 
38                     returns ExtPExtS;
39     ---Purpose: It calculates all the distances between a point 
40     --          from gp and a Surface.
41     
42     Create (P: Pnt; S: SurfaceOfLinearExtrusion from Adaptor3d; 
43                     TolU,TolV: Real) 
44                     returns ExtPExtS;
45     ---Purpose: It calculates all the distances between a point 
46     --          from gp and a Surface.
47
48     Initialize(me: in out; S: SurfaceOfLinearExtrusion from Adaptor3d;
49                            Uinf, Usup, Vinf, Vsup: Real;
50                            TolU, TolV: Real)
51     ---Purpose: Initializes the fields of the algorithm.
52                     is static;
53
54     Perform(me: in out; P: Pnt)
55                     is static;
56     
57     IsDone (me) returns Boolean
58     ---Purpose: Returns True if the distances are found.
59                     is static;
60     
61     NbExt (me) returns Integer
62     ---Purpose: Returns the number of extremum distances.
63                     raises  NotDone from StdFail
64                 -- if IsDone(me)=False.
65                     is static;
66
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.
71                 OutOfRange
72                 -- if N < 1 or N > NbPoints(me).
73                     is static;
74
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.
79                 OutOfRange
80                 -- if N < 1 or N > NbPoints(me).
81                     is static;
82
83     --- Private methods
84     
85     MakePreciser (me; U : in out Real from Standard;
86                       P : Pnt from gp;
87                       isMin : Boolean from Standard;
88                       OrtogSection: Ax2 from gp) is static private;
89
90 fields
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;
97                     
98     myVRange  : Real from Standard;
99     
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;
106     
107     myIsAnalyticallyComputable : Boolean  from Standard;
108
109     myDone : Boolean from Standard;
110     myNbExt: Integer from Standard;
111     mySqDist: Real    from Standard [4];
112     myPoint: POnSurf from Extrema  [4];
113     
114 end ExtPExtS;