0022550: Fixing data races
[occt.git] / src / Plate / Plate_Plate.cdl
CommitLineData
7fd59977 1-- File: Plate_Plate.cdl
2-- Created: Wed Oct 18 12:44:50 1995
3-- Author: Andre LIEUTIER
4-- <ds@sgi63>
5---Copyright: Matra Datavision 1995
6-- 26-Mar-96 : xab non inlinage des methodes
7-- 19-Fev-97 : jct ajout des methodes UVBox et UVConstraints pour l'etude G1134
8-- 24-Mar-98 : alr prise en compte nouveaux types de contraintes (Linear..Constraint)
9--
10class Plate from Plate
11---Purpose: This class implement a variationnal spline algorithm able
12-- to define a two variable function satisfying some constraints
13-- and minimizing an energy like criterion.
14
15uses
16 SequenceOfPinpointConstraint from Plate,
17 SequenceOfLinearXYZConstraint from Plate,
18 SequenceOfLinearScalarConstraint from Plate,
19 PinpointConstraint from Plate,
20 LinearXYZConstraint from Plate,
21 LinearScalarConstraint from Plate,
22 GtoCConstraint from Plate,
23 FreeGtoCConstraint from Plate,
24 GlobalTranslationConstraint from Plate,
25 LineConstraint from Plate,
26 PlaneConstraint from Plate,
27 SampledCurveConstraint from Plate,
28 XY from gp,
29 XYZ from gp,
30 SequenceOfXY from TColgp,
31 Matrix from math,
32 HArray2OfXYZ from TColgp
33
34
35is
36
37 Create returns Plate;
38 Create (Ref : Plate from Plate) returns Plate;
39
40 Copy(me: in out; Ref: Plate)
41 ---C++: alias operator=
42 ---C++: return &
43 returns Plate;
44-- basics Constraints
45--
46--
47 Load (me : in out; PConst : PinpointConstraint);
48 Load (me : in out; LXYZConst : LinearXYZConstraint);
49 Load (me : in out; LScalarConst : LinearScalarConstraint);
50-- Geometric Constraints
51--
52 Load (me : in out; GTConst : GlobalTranslationConstraint);
53 Load (me : in out; LConst : LineConstraint);
54 Load (me : in out; PConst : PlaneConstraint);
55 Load (me : in out; SCConst : SampledCurveConstraint);
56-- Specific Geometric Constraints
57--
58 Load (me : in out; GtoCConst : GtoCConstraint);
59 Load (me : in out; FGtoCConst : FreeGtoCConstraint);
60
61 SolveTI(me : in out; ord : Integer = 4; anisotropie : Real = 1.0);
62
63 IsDone(me)
64 ---Purpose: returns True if all has been correctly done.
65 returns Boolean;
66
67 destroy(me : in out);
68 ---C++: alias ~
69
70
71 Init(me: in out );
72 ---Purpose: reset the Plate in the initial state
73 -- ( same as after Create())
74
75 Evaluate(me ; point2d : XY from gp )
76 returns XYZ from gp ;
77
78 EvaluateDerivative(me; point2d: XY from gp;
79 iu,iv : Integer)
80 returns XYZ from gp ;
81
82 CoefPol(me; Coefs: out HArray2OfXYZ from TColgp);
83
84 SetPolynomialPartOnly(me : in out; PPOnly : Boolean = Standard_True);
85
86 Continuity(me) returns Integer;
87
88 -- private methods :
89 --
90 SolEm (me ; point2d : XY from gp; iu,iv : Integer)
91 returns Real is private;
92
93 Polm (me; point2d : XY from gp; iu,iv,idu,idv : Integer)
94 ---C++: inline
95
96 returns Real is private;
97
98 Deru(me; index : Integer)
99
100 ---C++: inline
101 ---C++: return &
102 returns Integer is private;
103
104 Derv(me; index : Integer)
105
106 ---C++: inline
107 ---C++: return &
108 returns Integer is private;
109
110 Solution(me; index : Integer)
111
112 ---C++: inline
113 ---C++: return &
114 returns XYZ is private;
115
116 Points(me; index : Integer)
117
118 ---C++: inline
119 ---C++: return &
120 returns XY is private;
121
122 UVBox(me ; UMin,UMax,VMin,VMax : out Real );
123 UVConstraints(me; Seq : out SequenceOfXY from TColgp );
124 SolveTI1(me : in out; IterationNumber : Integer) is private;
125 SolveTI2(me : in out; IterationNumber : Integer) is private;
126 SolveTI3(me : in out; IterationNumber : Integer) is private;
127 fillXYZmatrix(me; mat : in out Matrix from math;i0,j0,ncc1,ncc2 : Integer) is private;
128
129
130
131fields
132 order : Integer;
133 n_el, n_dim : Integer;
134 solution, points, deru, derv : Address ;
135 OK : Boolean;
136 myConstraints : SequenceOfPinpointConstraint;
137 myLXYZConstraints : SequenceOfLinearXYZConstraint;
138 myLScalarConstraints : SequenceOfLinearScalarConstraint;
139 ddu : Real[10];
140 ddv : Real[10];
141 maxConstraintOrder : Integer;
41194117
K
142 PolynomialPartOnly : Boolean;
143 Uold, Vold, U2, R, L : Real; -- these fields should be mutable
7fd59977 144end;