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

◆ rebuild_kernel()

void MayaFlux::Kinesis::CurveEvaluator::rebuild_kernel ( )
private

Definition at line 569 of file MotionCurves.cpp.

570{
571 m_trigonometric = false;
572
573 switch (m_mode) {
576 m_overlap = 1;
577 m_supports_multi = true;
578 m_basis = { -1.0, 1.0, 1.0, 0.0 };
579 break;
580 }
581
584 m_overlap = 1;
585 m_supports_multi = true;
586 m_trigonometric = true;
587 m_basis.clear();
588 break;
589
592 m_overlap = 3;
593 m_supports_multi = true;
594 const Eigen::Matrix4d m = BasisMatrices::catmull_rom_with_tension(m_tension);
595 flatten_basis(m.data(), 4, m_basis);
596 break;
597 }
598
601 m_overlap = 3;
602 m_supports_multi = true;
603 const Eigen::Matrix4d m = BasisMatrices::catmull_rom_with_tension(m_tension);
604 m_basis.resize(16);
605 for (Eigen::Index q = 0; q < 4; ++q) {
606 for (Eigen::Index p = 0; p < 4; ++p) {
607 m_basis[static_cast<size_t>(q * 4 + p)] = m(q, p);
608 }
609 }
610 break;
611 }
612
615 m_overlap = 3;
616 m_supports_multi = true;
617 flatten_basis(BasisMatrices::BSPLINE_CUBIC.data(), 4, m_basis);
618 break;
619
622 m_overlap = 1;
623 m_supports_multi = true;
624 flatten_basis(BasisMatrices::CUBIC_BEZIER.data(), 4, m_basis);
625 break;
626
629 m_overlap = 1;
630 m_supports_multi = true;
631 flatten_basis(BasisMatrices::QUADRATIC_BEZIER.data(), 3, m_basis);
632 break;
633
636 m_overlap = 0;
637 m_supports_multi = false;
638 m_basis = {
639 2.0, -3.0, 0.0, 1.0,
640 -2.0, 3.0, 0.0, 0.0,
641 1.0, -2.0, 1.0, 0.0,
642 1.0, -1.0, 0.0, 0.0
643 };
644 break;
645
646 default:
648 m_overlap = 0;
649 m_supports_multi = false;
650 m_basis.clear();
651 break;
652 }
653}
double q
static const Eigen::Matrix4d BSPLINE_CUBIC
static const Eigen::Matrix3d QUADRATIC_BEZIER
static Eigen::Matrix4d catmull_rom_with_tension(double tension)
static const Eigen::Matrix4d CUBIC_BEZIER

References MayaFlux::Kinesis::BSPLINE, MayaFlux::Kinesis::BasisMatrices::BSPLINE_CUBIC, MayaFlux::Kinesis::CATMULL_ROM, MayaFlux::Kinesis::BasisMatrices::catmull_rom_with_tension(), MayaFlux::Kinesis::COSINE, MayaFlux::Kinesis::BasisMatrices::CUBIC_BEZIER, MayaFlux::Kinesis::CUBIC_BEZIER, MayaFlux::Kinesis::CUBIC_HERMITE, MayaFlux::Kinesis::LINEAR, m_basis, m_mode, m_overlap, m_points_per_segment, m_supports_multi, m_tension, m_trigonometric, q, MayaFlux::Kinesis::BasisMatrices::QUADRATIC_BEZIER, MayaFlux::Kinesis::QUADRATIC_BEZIER, and MayaFlux::Kinesis::RADIAL_FAN_CUBIC.

Referenced by configure(), and CurveEvaluator().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: