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

◆ evaluate()

void MayaFlux::Kinesis::CurveEvaluator::evaluate ( const Eigen::MatrixXd &  control_points,
Eigen::Index  num_samples,
Eigen::MatrixXd &  out 
)

Evaluate a curve into a caller-owned matrix.

Parameters
control_pointsMxN matrix, columns are control points.
num_samplesOutput column count, at least 2.
outResized to rows(control_points) x num_samples and overwritten.

Boundary overload. Wraps evaluate_planar and transposes the result.

Definition at line 814 of file MotionCurves.cpp.

818{
819 const auto dim = static_cast<size_t>(control_points.rows());
820
822 std::span<const double>(control_points.data(),
823 static_cast<size_t>(control_points.size())),
824 dim, num_samples, m_planar);
825
826 out.resize(control_points.rows(), num_samples);
827
828 const auto samples = static_cast<size_t>(num_samples);
829 double* dst = out.data();
830
831 for (size_t d = 0; d < dim; ++d) {
832 const double* row = m_planar.data() + d * samples;
833 for (size_t i = 0; i < samples; ++i) {
834 dst[d + i * dim] = row[i];
835 }
836 }
837}
void evaluate_planar(std::span< const double > control_points, size_t dim, Eigen::Index num_samples, std::vector< double > &out)
Evaluate a curve into a coordinate-major buffer.

Referenced by MayaFlux::Kinesis::generate_interpolated_points().

+ Here is the caller graph for this function: