Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 1999-09-21 |
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 | 17 | class ExtPRevS 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 surface | |
21 | -- of revolution. | |
22 | ||
23 | uses | |
24 | POnSurf from Extrema, | |
25 | GenExtPS from Extrema, | |
26 | ||
0734c53d | 27 | HSurfaceOfRevolution from Adaptor3d, |
28 | ||
7fd59977 | 29 | Ax2 from gp, |
30 | Pnt from gp | |
31 | ||
32 | raises | |
33 | NotDone from StdFail, | |
34 | OutOfRange | |
35 | ||
36 | ||
37 | is | |
38 | ||
39 | Create returns ExtPRevS from Extrema; | |
40 | ||
0734c53d | 41 | Create (P: Pnt; S: HSurfaceOfRevolution from Adaptor3d; |
7fd59977 | 42 | Umin, Usup, Vmin, Vsup: Real; |
43 | TolU,TolV: Real) | |
44 | returns ExtPRevS from Extrema; | |
45 | ---Purpose: It calculates all the distances between a point | |
46 | -- from gp and a SurfacePtr from Adaptor3d. | |
47 | ||
0734c53d | 48 | Create (P: Pnt; S: HSurfaceOfRevolution from Adaptor3d; |
7fd59977 | 49 | TolU,TolV: Real) |
50 | returns ExtPRevS from Extrema; | |
51 | ---Purpose: It calculates all the distances between a point | |
52 | -- from gp and a SurfacePtr from Adaptor3d. | |
53 | ||
0734c53d | 54 | Initialize(me: mutable; S: HSurfaceOfRevolution from Adaptor3d; |
7fd59977 | 55 | Umin, Usup, Vmin, Vsup: Real; |
56 | TolU,TolV: Real) | |
57 | is static; | |
58 | ||
0734c53d | 59 | Perform (me: mutable; P: Pnt) |
7fd59977 | 60 | is static; |
61 | ||
62 | IsDone (me) returns Boolean | |
63 | ---Purpose: Returns True if the distances are found. | |
64 | is static; | |
65 | ||
66 | NbExt (me) returns Integer | |
67 | ---Purpose: Returns the number of extremum distances. | |
68 | raises NotDone from StdFail | |
69 | -- if IsDone(me)=False. | |
70 | is static; | |
71 | ||
72 | SquareDistance (me; N: Integer) returns Real | |
73 | ---Purpose: Returns the value of the Nth resulting square distance. | |
74 | raises NotDone from StdFail, | |
75 | -- if IsDone(me)=False. | |
76 | OutOfRange | |
77 | -- if N < 1 or N > NbPoints(me). | |
78 | is static; | |
79 | ||
80 | Point (me; N: Integer) returns POnSurf | |
5d99f2c8 | 81 | ---C++: return const & |
7fd59977 | 82 | ---Purpose: Returns the point of the Nth resulting distance. |
83 | raises NotDone from StdFail, | |
84 | -- if IsDone(me)=False. | |
85 | OutOfRange | |
86 | -- if N < 1 or N > NbPoints(me). | |
87 | is static; | |
88 | ||
89 | fields | |
0734c53d | 90 | myS : HSurfaceOfRevolution from Adaptor3d; |
91 | myvinf : Real from Standard; | |
92 | myvsup : Real from Standard; | |
93 | mytolv : Real from Standard; | |
7fd59977 | 94 | |
95 | myPosition : Ax2 from gp; | |
96 | myExtPS : GenExtPS from Extrema; | |
97 | ||
98 | myIsAnalyticallyComputable : Boolean from Standard; | |
99 | ||
100 | myDone : Boolean; | |
101 | myNbExt: Integer; | |
6f94f1df RL |
102 | mySqDist: Real [8]; |
103 | myPoint: POnSurf from Extrema [8]; | |
7fd59977 | 104 | |
105 | end ExtPRevS; |