1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
-- File: Extrema_FuncExtCS.cdl
-- Created: Mon Jan 22 17:06:01 1996
-- Author: Laurent PAINNOT
-- <lpa@nonox>
---Copyright: Matra Datavision 1996
private class FuncExtCS from Extrema
inherits FunctionSetWithDerivatives from math
---Purpose: Fonction permettant de rechercher les extrema de la
-- distance entre une courbe et une surface.
uses POnSurf from Extrema,
POnCurv from Extrema,
SequenceOfPOnSurf from Extrema,
SequenceOfPOnCurv from Extrema,
SequenceOfReal from TColStd,
Pnt from gp,
Vector from math,
Matrix from math,
Curve from Adaptor3d,
CurvePtr from Adaptor3d,
Surface from Adaptor3d,
SurfacePtr from Adaptor3d
raises OutOfRange from Standard
is
Create returns FuncExtCS;
Create (C: Curve from Adaptor3d; S: Surface from Adaptor3d) returns FuncExtCS;
---Purpose:
Initialize(me: in out; C: Curve from Adaptor3d; S: Surface from Adaptor3d)
---Purpose: sets the field mysurf of the function.
is static;
------------------------------------------------------------
-- In all next methods, an exception is raised if the fields
-- were not initialized.
NbVariables (me) returns Integer;
NbEquations (me) returns Integer;
Value (me: in out; UV: Vector; F: out Vector) returns Boolean;
---Purpose: Calcul de Fi(U,V).
Derivatives (me: in out; UV: Vector; DF: out Matrix)
returns Boolean;
---Purpose: Calcul de Fi'(U,V).
Values (me: in out; UV: Vector; F: out Vector; DF: out Matrix)
returns Boolean;
---Purpose: Calcul de Fi(U,V) et Fi'(U,V).
GetStateNumber (me: in out) returns Integer
---Purpose: Memorise l'extremum trouve.
is redefined;
NbExt (me) returns Integer;
---Purpose: Renvoie le nombre d'extrema trouves.
SquareDistance (me; N: Integer) returns Real
---Purpose: Renvoie la valeur de la Nieme distance.
raises OutOfRange;
-- si N < 1 ou N > NbExt(me).
PointOnCurve (me; N: Integer) returns POnCurv
---Purpose: Renvoie le Nieme extremum sur C.
---C++: return const&
raises OutOfRange;
-- si N < 1 ou N > NbExt(me).
PointOnSurface (me; N: Integer) returns POnSurf
---Purpose: Renvoie le Nieme extremum sur S.
---C++: return const&
raises OutOfRange;
-- si N < 1 ou N > NbExt(me).
Bidon1(me) returns SurfacePtr from Adaptor3d
is static private;
Bidon2(me) returns CurvePtr from Adaptor3d
is static private;
fields
myC : CurvePtr from Adaptor3d;
myS : SurfacePtr from Adaptor3d;
myP1 : Pnt from gp;
myP2 : Pnt from gp;
myt : Real; -- valeur courante de U sur C
myU : Real; -- valeur courante de U sur S
myV : Real; -- valeur courante de V sur S
mySqDist: SequenceOfReal from TColStd;
myPoint1: SequenceOfPOnCurv from Extrema;
myPoint2: SequenceOfPOnSurf from Extrema;
myCinit: Boolean;
mySinit: Boolean;
end FuncExtCS;
|