blob: d62daf743c6263ba69222a1d547da2a6c0ffeddc (
plain)
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
|
-- File: FairCurve_EnergyOfMVC.cdl
-- Created: Mon Apr 1 09:10:45 1996
-- Author: Philippe MANGIN
-- <pmn@sgi29>
---Copyright: Matra Datavision 1996
private class EnergyOfMVC from FairCurve inherits Energy from FairCurve
---Purpose: Energy Criterium to minimize in MinimalVariationCurve.
---Category: Private use
uses BattenLaw from FairCurve,
DistributionOfTension from FairCurve,
DistributionOfSagging from FairCurve,
DistributionOfJerk from FairCurve,
AnalysisCode from FairCurve,
Vector from math,
Matrix from math,
HArray1OfPnt2d from TColgp,
Array1OfXY from TColgp,
Pnt2d from gp,
HArray1OfReal from TColStd
raises DomainError
is
Create( BSplOrder : Integer;
FlatKnots : HArray1OfReal;
Poles : HArray1OfPnt2d;
ContrOrder1 : Integer;
ContrOrder2 : Integer;
Law : BattenLaw;
PhysicalRatio : Real;
LengthSliding : Real;
FreeSliding : Boolean = Standard_True;
Angle1 : Real = 0;
Angle2 : Real = 0;
Curvature1 : Real = 0;
Curvature2 : Real = 0 )
---Purpose: Angles corresspond to the Ox axis
returns EnergyOfMVC
raises DomainError; -- if PhysicalRatio < 0 or PhysicalRatio > 1
LengthSliding(me)
---Purpose: return the lengthSliding = P1P2 + Sliding
---C++: inline
returns Real;
Status(me)
---Purpose: return the status
---C++: inline
returns AnalysisCode;
ComputePoles(me: in out; X: Vector)
---Purpose: compute the poles wich correspond with the variable X
is redefined protected;
Variable(me; X: out Vector)
---Purpose: compute the variables <X> wich correspond with the field <MyPoles>
returns Boolean
is redefined;
Compute(me:in out; DerivativeOrder : Integer; Result : out Vector)
---Purpose: compute the energy in intermediat format
returns Boolean
is redefined protected;
fields
MyLengthSliding : Real;
OriginalSliding : Real;
MyFreeSliding : Boolean;
MyBattenLaw : BattenLaw;
MyPhysicalRatio : Real;
MyTension : DistributionOfTension;
MySagging : DistributionOfSagging;
MyJerk : DistributionOfJerk;
MyStatus : AnalysisCode;
end EnergyOfMVC;
|