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
160
161
162
163
164
165
|
-- File: AbscissaPoint.cdl
-- Created: Wed Mar 25 13:17:28 1992
-- Author: Herve LEGRAND
-- <hl@topsn3>
---Copyright: Matra Datavision 1992
class AbscissaPoint from GCPnts
---Purpose: Provides an algorithm to compute a point on a curve
-- situated at a given distance from another point on the
-- curve, the distance being measured along the curve
-- (curvilinear abscissa on the curve).
-- This algorithm is also used to compute the length of a curve.
-- An AbscissaPoint object provides a framework for:
-- - defining the point to compute
-- - implementing the construction algorithm
-- - consulting the result.
uses
Curve from Adaptor3d,
Curve2d from Adaptor2d,
AbscissaPoint from CPnts
raises NotDone from StdFail,
ConstructionError from Standard
is
Length(myclass; C : in out Curve from Adaptor3d) returns Real;
---Purpose: Computes the length of the Curve <C>.
Length(myclass; C : in out Curve2d from Adaptor2d) returns Real;
---Purpose: Computes the length of the Curve <C>.
Length(myclass; C : in out Curve from Adaptor3d; Tol : Real) returns Real;
---Purpose: Computes the length of the Curve <C> with the given tolerance.
Length(myclass; C : in out Curve2d from Adaptor2d; Tol : Real) returns Real;
---Purpose: Computes the length of the Curve <C> with the given tolerance.
Length(myclass; C : in out Curve from Adaptor3d; U1, U2 : Real) returns Real;
---Purpose: Computes the length of the Curve <C>.
Length(myclass; C : in out Curve2d from Adaptor2d; U1, U2 : Real) returns Real;
---Purpose: Computes the length of the Curve <C>.
Length(myclass; C : in out Curve from Adaptor3d; U1, U2, Tol : Real) returns Real;
---Purpose: Computes the length of the Curve <C> with the given tolerance.
Length(myclass; C : in out Curve2d from Adaptor2d; U1, U2, Tol : Real) returns Real;
---Purpose: Computes the length of the Curve <C> with the given tolerance.
Create
---Purpose: Constructs an empty algorithm. This function is used
-- only for initializing a framework to compute the length
-- of a curve (or a series of curves).
-- Warning
-- The function IsDone will return the value false after the use of this function.
returns AbscissaPoint from GCPnts ;
Create (C : in out Curve from Adaptor3d; Abscissa, U0 : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at the
-- distance <Abscissa> from the point of parameter <U0>.
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
Create (Tol: Real; C : in out Curve from Adaptor3d; Abscissa, U0 : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at
-- the distance <Abscissa> from the point of parameter
-- <U0> with the given tolerance.
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
Create (Tol: Real; C : in out Curve2d from Adaptor2d; Abscissa, U0 : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at
-- the distance <Abscissa> from the point of parameter
-- <U0> with the given tolerance.
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
Create (C : in out Curve2d from Adaptor2d; Abscissa, U0 : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at the
-- distance <Abscissa> from the point of parameter <U0>.
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
Create (C : in out Curve from Adaptor3d; Abscissa, U0, Ui : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at the
-- distance <Abscissa> from the point of parameter <U0>.
-- <Ui> is the starting value used in the iterative process
-- which find the solution, it must be close to the final
-- solution
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
Create (C : in out Curve2d from Adaptor2d; Abscissa, U0, Ui : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at the
-- distance <Abscissa> from the point of parameter <U0>.
-- <Ui> is the starting value used in the iterative process
-- which find the solution, it must be closed to the final
-- solution
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
Create (C : in out Curve from Adaptor3d; Abscissa, U0, Ui, Tol : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at the
-- distance <Abscissa> from the point of parameter <U0>.
-- <Ui> is the starting value used in the iterative process
-- which find the solution, it must be close to the final
-- solution
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
Create (C : in out Curve2d from Adaptor2d; Abscissa, U0, Ui, Tol : Real)
---Purpose: the algorithm computes a point on a curve <Curve> at the
-- distance <Abscissa> from the point of parameter <U0>.
-- <Ui> is the starting value used in the iterative process
-- which find the solution, it must be close to the final
-- solution
returns AbscissaPoint from GCPnts
raises ConstructionError;
-- raised when it is not possible to compute the curve's length or if
-- the curve is null;
IsDone(me)
---Purpose: True if the computation was successful, False otherwise.
-- IsDone is a protection against:
-- - non-convergence of the algorithm
-- - querying the results before computation.
---C++: inline
returns Boolean
is static;
Parameter(me) returns Real
---Purpose: Returns the parameter on the curve of the point
-- solution of this algorithm.
-- Exceptions
-- StdFail_NotDone if the computation was not
-- successful, or was not done.
---C++: inline
raises NotDone from StdFail
is static;
fields
myComputer : AbscissaPoint from CPnts;
end AbscissaPoint;
|