33 for (
int i = 0; i < 3; ++i )
34 q[i] =
lerp( p[i], p[i+1], t );
37 for (
int i = 0; i < 2; ++i )
38 r[i] =
lerp( q[i], q[i+1], t );
40 return lerp( r[0], r[1], t );
53 w[3] = 1 - w[0] - w[1] - w[2];
constexpr auto lerp(V v0, V v1, T t) noexcept
Linear interpolation: returns v0 when t==0 and v1 when t==1.
Definition MRMesh/MRMeshFwd.h:677
Cubic Bezier curve.
Definition MRBezier.h:13
V p[4]
4 control points
Definition MRBezier.h:19
static std::array< T, 4 > getWeights(T t)
computes weights of every control point for given parameter value, the sum of all weights is equal to...
Definition MRBezier.h:44
typename VTraits::BaseType T
Definition MRBezier.h:15
V getPoint(T t) const
computes point on the curve from parameter value
Definition MRBezier.h:29
static constexpr int elements
Definition MRBezier.h:16
Definition MRMesh/MRVectorTraits.h:15
static constexpr int size
Definition MRMesh/MRVectorTraits.h:19
T BaseType
Definition MRMesh/MRVectorTraits.h:18