IfcCompositeCurve
Definition from ISO/CD 10303-42:1992: A composite curve
(IfcCompositeCurve) is a collection of curves joined end-to-end. The individual
segments of the curve are themselves defined as composite curve segments. The
parameterization of the composite curve is an accumulation of the parametric
ranges of the referenced bounded curves. The first segment is parameterized
from 0 to l1, and, for i
³ 2, the ith
segment is parameterized from
where lk is the parametric length (i.e., difference
between maximum and minimum parameter values) of the curve underlying the
kth segment.
NOTE Corresponding STEP entity:
composite_curve, please refer to ISO/IS 10303-42:1994, p. 56 for the final
definition of the formal standard. The WR2 is added to ensure consistent Dim at
all segments.
HISTORY New class in IFC Release 1.0
Informal Propositions:
- The SameSense attribute of each segment correctly specifies the
senses of the component curves. When traversed in the direction indicated by
SameSense, the segments shall join end-to-end.
EXPRESS specification:
|
|
|
NSegments
|
:
|
INTEGER := SIZEOF(Segments);
|
ClosedCurve
|
:
|
LOGICAL := Segments[NSegments].Transition <> Discontinuous;
|
|
|
WR41
|
:
|
((NOT ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 1)) OR ((ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 0));
|
WR42
|
:
|
SIZEOF( QUERY( Temp <* Segments | Temp.Dim <> Segments[1].Dim)) = 0;
|
|
|
|
Attribute definitions:
Segments
|
:
|
The component bounded curves, their transitions and senses. The transition attribute for the last segment
defines the transition between the end of the last segment and the start of the first; this transition
attribute may take the value discontinuous, which indicates an open curve.
|
SelfIntersect
|
:
|
Indication of whether the curve intersects itself or not; this is for information only.
|
NSegments
|
:
|
The number of component curves.
|
ClosedCurve
|
:
|
Indication whether the curve is closed or not; this is derived from the transition code of the last segment.
|
Formal Propositions:
WR41
|
:
|
No transition code should be Discontinuous, except for the last code of an open curve.
|
WR42
|
:
|
Ensures, that all segments used in the curve have the same dimensionality.
|
Inheritance graph
|
ENTITY IfcCompositeCurve;
|
|
|
NSegments
|
:
|
INTEGER := SIZEOF(Segments);
|
ClosedCurve
|
:
|
LOGICAL := Segments[NSegments].Transition <> Discontinuous;
|
|
|
|