# Class Ifc4::IfcOffsetCurve3D¶

## Nested Relationships¶

This class is a nested type of Struct Ifc4.

## Class Documentation¶

class `Ifc4::``IfcOffsetCurve3D` : public Ifc4::IfcCurve

Definition from ISO/CD 10303-42:1992: An offset curve 3d is a curve at a constant distance from a basis curve in three-dimensional space. The underlying curve shall have a well-defined tangent direction at every point. In the case of a composite curve the transition code between each segment shall be cont same gradient or cont same gradient same curvature. The offset curve at any point (parameter) on the basis curve is in the direction V x T where V is the fixed reference direction and T is the unit tangent to the basis curve. For the offset direction to be well defined, T shall not at any point of the curve be in the same, or opposite, direction as V.

NOTE: The offset curve 3d may differ in nature from the basis curve; the offset of a non self- intersecting curve can be self-intersecting. Care should be taken to ensure that the offset to a continuous curve does not become discontinuous.

The offset curve 3d takes its parameterization from the basis curve. The offset curve 3d is parameterized as

where T is the unit tangent vector to the basis curve C(u) at parameter value u, and d is distance. The underlying curve shall be three-dimensional.

NOTE Corresponding ISO 10303 entity: offset_curve_3d, Please refer to ISO/IS 10303-42:1994, p.66 for the final definition of the formal standard.

HISTORY New entity in IFC Release 2.x

Informal propositions:

At no point on the curve shall ref direction be parallel, or opposite to, the direction of the tangent vector.

Public Types

typedef IfcTemplatedEntityList<IfcOffsetCurve3D> `list`

Public Functions

::Ifc4::IfcCurve *`BasisCurve`() const

The curve that is being offset.

void `setBasisCurve`(::Ifc4::IfcCurve *v)
double `Distance`() const

The distance of the offset curve from the basis curve. The distance may be positive, negative or zero.

void `setDistance`(double v)
bool `SelfIntersect`() const

An indication of whether the offset curve self-intersects, this is for information only.

void `setSelfIntersect`(bool v)
::Ifc4::IfcDirection *`RefDirection`() const

The direction used to define the direction of the offset curve 3d from the basis curve.

void `setRefDirection`(::Ifc4::IfcDirection *v)
const IfcParse::entity &`declaration`() const
`IfcOffsetCurve3D`(IfcEntityInstanceData *e)
`IfcOffsetCurve3D`(::Ifc4::IfcCurve *v1_BasisCurve, double v2_Distance, bool v3_SelfIntersect, ::Ifc4::IfcDirection *v4_RefDirection)

Public Static Functions

const IfcParse::entity &`Class`()