MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ bspline_cubic()

MAYAFLUX_API Eigen::VectorXd MayaFlux::Kinesis::bspline_cubic ( const Eigen::MatrixXd &  control_points,
double  t 
)

Uniform B-spline interpolation using Eigen matrices.

Parameters
control_points4xN matrix where columns are control points
tParameter in [0,1]
Returns
Interpolated point as Nx1 vector

Definition at line 366 of file MotionCurves.cpp.

369{
370 if (control_points.cols() != 4) {
371 error<std::invalid_argument>(
372 Journal::Component::Kinesis,
373 Journal::Context::Runtime,
374 std::source_location::current(),
375 "Cubic B-spline interpolation requires 4 control points, but got {}",
376 control_points.cols());
377 }
378
379 Eigen::Vector4d t_vector(t * t * t, t * t, t, 1.0);
380 Eigen::Vector4d coeffs = BasisMatrices::BSPLINE_CUBIC * t_vector;
381
382 return control_points * coeffs;
383}

References MayaFlux::Kinesis::BasisMatrices::BSPLINE_CUBIC, MayaFlux::Journal::Kinesis, and MayaFlux::Journal::Runtime.

Referenced by interpolate().

+ Here is the caller graph for this function: