0025292: Face/Face intersection algorithm gives different results for different order...
[occt.git] / src / Extrema / Extrema_ExtPExtS.cdl
CommitLineData
b311480e 1-- Created on: 1999-09-16
2-- Created by: Edward AGAPOV
3-- Copyright (c) 1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 8-- This library is free software; you can redistribute it and/or modify it under
9-- the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10-- by the Free Software Foundation, with special exception defined in the file
11-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12-- distribution for complete text of the license and disclaimer of any warranty.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
0734c53d 17class ExtPExtS from Extrema inherits Transient from Standard
7fd59977 18
19 ---Purpose: It calculates all the extremum (minimum and
20 -- maximum) distances between a point and a linear
21 -- extrusion surface.
22
23uses
24 POnSurf from Extrema,
25 GenExtPS from Extrema,
26 FuncExtPS from Extrema,
27
28 HCurve from Adaptor3d,
0734c53d 29
30 HSurfaceOfLinearExtrusion from Adaptor3d,
31
7fd59977 32 Ax2 from gp,
33 Vec from gp,
34 Pnt from gp
35
36raises
37 NotDone from StdFail,
38 OutOfRange
39
40
41is
42 Create returns ExtPExtS;
43
0734c53d 44 Create (P: Pnt; S: HSurfaceOfLinearExtrusion from Adaptor3d;
7fd59977 45 Umin, Usup, Vmin, Vsup: Real;
46 TolU,TolV: Real)
47 returns ExtPExtS;
48 ---Purpose: It calculates all the distances between a point
49 -- from gp and a Surface.
50
0734c53d 51 Create (P: Pnt; S: HSurfaceOfLinearExtrusion from Adaptor3d;
7fd59977 52 TolU,TolV: Real)
53 returns ExtPExtS;
54 ---Purpose: It calculates all the distances between a point
55 -- from gp and a Surface.
56
0734c53d 57 Initialize(me: mutable; S: HSurfaceOfLinearExtrusion from Adaptor3d;
7fd59977 58 Uinf, Usup, Vinf, Vsup: Real;
59 TolU, TolV: Real)
60 ---Purpose: Initializes the fields of the algorithm.
61 is static;
62
0734c53d 63 Perform(me: mutable; P: Pnt)
7fd59977 64 is static;
65
66 IsDone (me) returns Boolean
67 ---Purpose: Returns True if the distances are found.
68 is static;
69
70 NbExt (me) returns Integer
71 ---Purpose: Returns the number of extremum distances.
72 raises NotDone from StdFail
73 -- if IsDone(me)=False.
74 is static;
75
76 SquareDistance (me; N: Integer) returns Real
77 ---Purpose: Returns the value of the Nth resulting square distance.
78 raises NotDone from StdFail,
79 -- if IsDone(me)=False.
80 OutOfRange
81 -- if N < 1 or N > NbPoints(me).
82 is static;
83
84 Point (me; N: Integer) returns POnSurf
5d99f2c8 85 ---C++: return const &
7fd59977 86 ---Purpose: Returns the point of the Nth resulting distance.
87 raises NotDone from StdFail,
88 -- if IsDone(me)=False.
89 OutOfRange
90 -- if N < 1 or N > NbPoints(me).
91 is static;
92
93 --- Private methods
94
95 MakePreciser (me; U : in out Real from Standard;
96 P : Pnt from gp;
97 isMin : Boolean from Standard;
98 OrtogSection: Ax2 from gp) is static private;
99
100fields
101 myuinf : Real from Standard;
102 myusup : Real from Standard;
103 mytolu : Real from Standard;
104 myvinf : Real from Standard;
105 myvsup : Real from Standard;
106 mytolv : Real from Standard;
7fd59977 107
0734c53d 108 myF : FuncExtPS from Extrema;
109 myC : HCurve from Adaptor3d;
110 myS : HSurfaceOfLinearExtrusion from Adaptor3d;
111 myDirection : Vec from gp;
112 myPosition : Ax2 from gp;
113 myExtPS : GenExtPS from Extrema;
7fd59977 114
115 myIsAnalyticallyComputable : Boolean from Standard;
116
117 myDone : Boolean from Standard;
118 myNbExt: Integer from Standard;
119 mySqDist: Real from Standard [4];
120 myPoint: POnSurf from Extrema [4];
121
122end ExtPExtS;