Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 1996-01-09 |
2 | -- Created by: Laurent PAINNOT | |
3 | -- Copyright (c) 1996-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 | -- |
973c2be1 | 8 | -- This library is free software; you can redistribute it and / or modify it |
9 | -- under the terms of the GNU Lesser General Public version 2.1 as published | |
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 | |
17 | private class FuncExtSS from Extrema | |
18 | ||
19 | inherits FunctionSetWithDerivatives from math | |
0d969553 Y |
20 | ---Purpose: Function to find extrema of the |
21 | -- distance between two surfaces. | |
7fd59977 | 22 | |
23 | uses POnSurf from Extrema, | |
24 | SequenceOfPOnSurf from Extrema, | |
25 | SequenceOfReal from TColStd, | |
26 | Pnt from gp, | |
27 | Vector from math, | |
28 | Matrix from math, | |
29 | Surface from Adaptor3d, | |
30 | SurfacePtr from Adaptor3d | |
31 | ||
32 | raises OutOfRange from Standard | |
33 | ||
34 | is | |
35 | Create returns FuncExtSS; | |
36 | ||
37 | Create (S1, S2: Surface from Adaptor3d) returns FuncExtSS; | |
38 | ---Purpose: | |
39 | ||
40 | Initialize(me: in out; S1, S2: Surface from Adaptor3d) | |
41 | ---Purpose: sets the field mysurf of the function. | |
42 | is static; | |
43 | ||
44 | ------------------------------------------------------------ | |
45 | -- In all next methods, an exception is raised if the fields | |
46 | -- were not initialized. | |
47 | ||
48 | NbVariables (me) returns Integer; | |
49 | ||
50 | NbEquations (me) returns Integer; | |
51 | ||
52 | Value (me: in out; UV: Vector; F: out Vector) returns Boolean; | |
0d969553 | 53 | ---Purpose: Calculate Fi(U,V). |
7fd59977 | 54 | |
55 | Derivatives (me: in out; UV: Vector; DF: out Matrix) | |
56 | returns Boolean; | |
0d969553 | 57 | ---Purpose: Calculate Fi'(U,V). |
7fd59977 | 58 | |
59 | Values (me: in out; UV: Vector; F: out Vector; DF: out Matrix) | |
60 | returns Boolean; | |
0d969553 | 61 | ---Purpose: Calculate Fi(U,V) and Fi'(U,V). |
7fd59977 | 62 | |
63 | GetStateNumber (me: in out) returns Integer | |
0d969553 | 64 | ---Purpose: Save the found extremum. |
7fd59977 | 65 | is redefined; |
66 | ||
67 | NbExt (me) returns Integer; | |
0d969553 | 68 | ---Purpose: Return the number of found extrema. |
7fd59977 | 69 | |
70 | SquareDistance (me; N: Integer) returns Real | |
0d969553 | 71 | ---Purpose: Return the value of the Nth distance. |
7fd59977 | 72 | raises OutOfRange; |
0d969553 | 73 | -- if N < 1 or N > NbExt(me). |
7fd59977 | 74 | |
75 | PointOnS1 (me; N: Integer) returns POnSurf | |
5d99f2c8 | 76 | ---C++: return const & |
0d969553 | 77 | ---Purpose: Return the Nth extremum on S1. |
7fd59977 | 78 | raises OutOfRange; |
0d969553 | 79 | -- if N < 1 or N > NbExt(me). |
7fd59977 | 80 | |
81 | PointOnS2 (me; N: Integer) returns POnSurf | |
5d99f2c8 | 82 | ---C++: return const & |
7fd59977 | 83 | ---Purpose: Renvoie le Nieme extremum sur S2. |
84 | raises OutOfRange; | |
85 | -- si N < 1 ou N > NbExt(me). | |
86 | ||
87 | Bidon(me) returns SurfacePtr from Adaptor3d | |
88 | is static private; | |
89 | ||
90 | ||
91 | fields | |
92 | myS1 : SurfacePtr from Adaptor3d; | |
93 | myS2 : SurfacePtr from Adaptor3d; | |
94 | ||
95 | myP1 : Pnt from gp; | |
96 | myP2 : Pnt from gp; | |
97 | ||
0d969553 Y |
98 | myU1 : Real; -- current value of U on S1 |
99 | myV1 : Real; -- current value of V on S1 | |
100 | myU2 : Real; -- current value of U on S2 | |
101 | myV2 : Real; -- current value of V on S2 | |
7fd59977 | 102 | |
103 | mySqDist: SequenceOfReal from TColStd; | |
104 | myPoint1: SequenceOfPOnSurf from Extrema; | |
105 | myPoint2: SequenceOfPOnSurf from Extrema; | |
106 | ||
107 | myS1init: Boolean; | |
108 | myS2init: Boolean; | |
109 | ||
110 | end FuncExtSS; |