# Curve3D

data class Curve3D(val curveXY: AbstractCurve2D, val heightFunction: UnivariateFunction, val torsionFunction: UnivariateFunction = LinearFunction.X_AXIS) : AbstractCurve3D

A curve in 3D defined by a curve in 2D and a height function. Furthermore, the curve can have a torsion, which is relevant for pose and transformation matrix calculations along the curve. See the wikipedia article on torsion of a curve.

#### Parameters

curveXY

the curve in the xy plane

heightFunction

the definition of the height, which must be defined where the curveXY is defined

torsionFunction

the torsion of the curve, which must be defined where the curveXY is defined

## Constructors

constructor(curveXY: AbstractCurve2D, heightFunction: UnivariateFunction, torsionFunction: UnivariateFunction = LinearFunction.X_AXIS)

## Properties

List of affine transformation matrices to move and rotate the geometric object.

open override val domain: Range<Double>

definable domain

BoundType at the end of the curve

Length of the curve

open override val tolerance: Double

tolerable threshold value

## Functions

open override fun accept(visitor: Geometry3DVisitor)

Accepting function so that a geometry visitor can pass by.

Returns an Affine3D at the position along the curve curveRelativePoint.

Returns the end point in the global cartesian coordinate system that is located on this curve.

Returns a discretized curve as a LineString3D.

Returns the point in the global cartesian coordinate system that is located on this curve and given by a point in the curve relative coordinate system. An error is returned, if the requested point is not within this curve's domain.

Returns the point in the global cartesian coordinate system that is located on this curve and given by a point in the curve relative coordinate system.

fun calculatePointListGlobalCS(step: Double, includeEndPoint: Boolean = true): Either<GeometryException.ValueNotContainedInDomain, NonEmptyList<Vector3D>>

Returns a list of points on the curve with a step size of step.

Returns the point in the local cartesian coordinate system that is located on this curve and given by a point in the curve relative coordinate system. An error is returned, if the requested point is not within this curve's domain.

fun calculatePose(curveRelativePoint: CurveRelativeVector1D): Pose3D

Returns a pose at the position along the curve curveRelativePoint.

Returns the start point in the global cartesian coordinate system that is located on this curve.