NURBSMath.h File Reference

Classes

class  NURBSCurveInterface
 
class  StackArrayHelper< N, T >
 
class  StackMatrixHelper< T, N, M >
 
struct  KnotInfo
 
class  NURBSCurve< D >
 

Namespaces

 maxon
 
 maxon::detail
 

Typedefs

template<Int N, typename T >
using SmallStackArray = typename std::conditional_t< N==SMALLSTACK, BaseArray< T >, StackArrayHelper< N, T > >
 
template<Int N, typename T >
using SmallSquareStackMatrix = typename std::conditional_t< N==SMALLSTACK, MatrixNxM< T >, StackMatrixHelper< T, N, N > >
 
template<Int N, Int M, typename T >
using SmallStackMatrix = typename std::conditional_t< N==SMALLSTACK||M==SMALLSTACK, MatrixNxM< T >, StackMatrixHelper< T, N, M > >
 

Enumerations

enum class  NURBSCURVE_KNOTMODE {
  CLAMPED_UNIFORM ,
  CLAMPED_CHORDAL ,
  CLAMPED_CENTRIPETAL ,
  UNCLAMPED_UNIFORM ,
  USER_DEFINED
}
 

Functions

Vector4d HomogeneousToNormal (const Vector4d &p)
 
Vector4d NormalToHomogeneous (const Vector4d &p)
 
enum maxon::NURBSCURVE_KNOTMODE MAXON_ENUM_LIST (NURBSCURVE_KNOTMODE)
 
template<Int D>
 MAXON_IMPLEMENTATION_SIMPLE_REGISTER (NURBSCurve< D >)
 

Variables

static constexpr Int SMALLSTACK
 
 CLAMPED_UNIFORM
 
 CLAMPED_CHORDAL
 
 CLAMPED_CENTRIPETAL
 
 UNCLAMPED_UNIFORM
 
 USER_DEFINED
 
static constexpr Int DYNAMICDEGREE
 

Variable Documentation

◆ CLAMPED_UNIFORM

CLAMPED_UNIFORM

Clamped uniform (open uniform / quasi uniform) NURBS/B-Spline/Bezier knot vector with end knots of multiplicity of degree. Internal knots are uniform e.g. [0, 0, 0, 1/3, 2/3, 1, 1, 1]. If there are no internal knots then the spline is equal to a bezier spline of same degree e.g. [0, 0, 0, 0, 1, 1, 1, 1].

◆ CLAMPED_CHORDAL

CLAMPED_CHORDAL

Clamped nonuniform knot vector whose inner knots are computed according to the actual position of control points in space according to the chord length method. Works only correct if SetPoints has been called before since the routines needs to compute the point distances.

◆ CLAMPED_CENTRIPETAL

CLAMPED_CENTRIPETAL

Clamped nonuniform knot vector whose inner knots are computed according to the actual position of control points in space according to the centripetal method.Works only correct if SetPoints has been called before since the routines needs to compute the point distances.

◆ UNCLAMPED_UNIFORM

UNCLAMPED_UNIFORM

uniform knot vector e.g. [0.0, 0.25, 0.5, 0.75, 1.0]. Mostly useful for periodic (closed) splines

◆ USER_DEFINED

USER_DEFINED

Arbitrary knot vector, supplied by the user.