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

◆ quadratic_bezier()

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

Quadratic Bezier interpolation using Eigen matrices.

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

Definition at line 322 of file MotionCurves.cpp.

325{
326 if (control_points.cols() != 3) {
327 error<std::invalid_argument>(
328 Journal::Component::Kinesis,
329 Journal::Context::Runtime,
330 std::source_location::current(),
331 "Quadratic Bezier interpolation requires 3 control points, but got {}",
332 control_points.cols());
333 }
334
335 Eigen::Vector3d t_vector(t * t, t, 1.0);
336 Eigen::Vector3d coeffs = BasisMatrices::QUADRATIC_BEZIER * t_vector;
337
338 return control_points * coeffs;
339}

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

Referenced by interpolate().

+ Here is the caller graph for this function: