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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
-- File: GeomFill_GuideTrihedronPlan.cdl
-- Created: Tue Jun 23 15:36:58 1998
-- Author: Stephanie HUMEAU
-- <shu@sun17>
---Copyright: Matra Datavision 1998
class GuideTrihedronPlan from GeomFill
---Purpose: Trihedron in the case of sweeping along a guide curve defined
-- by the orthogonal plan on the trajectory
inherits TrihedronWithGuide from GeomFill
uses
Shape from GeomAbs,
Array1OfReal from TColStd,
HArray2OfPnt2d from TColgp,
Vec from gp,
Curve from Geom,
HCurve from Adaptor3d,
TrihedronLaw from GeomFill,
Frenet from GeomFill,
PipeError from GeomFill,
Vector from math
raises
OutOfRange, ConstructionError
is
Create (theGuide : HCurve from Adaptor3d)
returns GuideTrihedronPlan from GeomFill;
Init (me : mutable)
is static private;
SetCurve(me:mutable;
thePath : HCurve from Adaptor3d)
is redefined;
Copy(me) returns TrihedronLaw from GeomFill
is redefined;
ErrorStatus(me)
---Purpose:Give a status to the Law
-- Returns PipeOk (default implementation)
returns PipeError from GeomFill
is redefined;
Guide(me)
returns HCurve from Adaptor3d
is redefined;
D0( me : mutable;
Param : Real;
Tangent : out Vec from gp;
Normal : out Vec from gp;
BiNormal : out Vec from gp)
returns Boolean is redefined;
D1( me : mutable;
Param : Real;
Tangent : out Vec from gp;
DTangent : out Vec from gp;
Normal : out Vec from gp;
DNormal : out Vec from gp;
BiNormal : out Vec from gp;
DBiNormal : out Vec from gp)
returns Boolean is redefined;
D2( me : mutable;
Param : Real;
Tangent : out Vec from gp;
DTangent : out Vec from gp;
D2Tangent : out Vec from gp;
Normal : out Vec from gp;
DNormal : out Vec from gp;
D2Normal : out Vec from gp;
BiNormal : out Vec from gp;
DBiNormal : out Vec from gp;
D2BiNormal : out Vec from gp)
returns Boolean is redefined;
--
-- =================== Management of continuity ===================
--
SetInterval(me: mutable; First, Last: Real from Standard)
---Purpose: Sets the bounds of the parametric interval on
-- the function
-- This determines the derivatives in these values if the
-- function is not Cn.
is redefined;
NbIntervals(me; S : Shape from GeomAbs)
---Purpose: Returns the number of intervals for continuity
-- <S>.
-- May be one if Continuity(me) >= <S>
returns Integer is redefined;
Intervals(me; T : in out Array1OfReal from TColStd;
S : Shape from GeomAbs)
---Purpose: Stores in <T> the parameters bounding the intervals
-- of continuity <S>.
--
-- The array must provide enough room to accomodate
-- for the parameters. i.e. T.Length() > NbIntervals()
raises
OutOfRange from Standard
is redefined;
-- =================== To help computation of Tolerance ===============
GetAverageLaw(me : mutable;
ATangent : out Vec from gp;
ANormal : out Vec from gp;
ABiNormal : out Vec from gp)
---Purpose: Get average value of M(t) and V(t) it is usfull to
-- make fast approximation of rational surfaces.
is redefined;
-- =================== To help Particular case ===============
IsConstant(me)
---Purpose: Say if the law is Constant
-- Return False by Default.
returns Boolean
is redefined;
IsOnlyBy3dCurve(me)
---Purpose: Say if the law is defined, only by the 3d Geometry of
-- the setted Curve
-- Return False by Default.
returns Boolean
is redefined;
Origine(me : mutable;
OrACR1 : Real;
OrACR2 : Real)
is redefined;
InitX(me : mutable;
Param : Real from Standard)
is private;
fields
myTrimmed : HCurve from Adaptor3d;
myCurve : HCurve from Adaptor3d;
Pole : HArray2OfPnt2d from TColgp;
X, XTol : Vector from math;
Inf, Sup : Vector from math;
frenet : Frenet from GeomFill;
myNbPts : Integer from Standard;
myStatus : PipeError from GeomFill;
end GuideTrihedronPlan;
|