23 using namespace mondschein;
26 Beziercurve::Beziercurve() : points()
31 Beziercurve::Beziercurve(
const std::vector<Eigen::Vector4d> &_p) : points(_p)
36 Beziercurve::Beziercurve(Beziercurve_c _c) : points(_c->points)
41 Beziercurve::~Beziercurve()
46 Beziercurve &Beziercurve::operator=(Beziercurve_c _c)
60 std::string err(*boost::get_error_info<exception_error>(e));
61 err+=
", called in function\n\t";
62 err+=
"Eigen::Vector3d mondschein::math::Beziercurve::operator()(float64 _t) const";
80 return points.size()-1;
91 std::vector<Eigen::Vector3d> v;
93 for (
uint32 i=0; i<points.size(); ++i) v.push_back(Eigen::Vector3d(points.at(i)(0)*points.at(i)(3),
94 points.at(i)(1)*points.at(i)(3),
95 points.at(i)(2)*points.at(i)(3)));
98 for (
uint32 j=1; j<v.size(); ++j)
100 for (
uint32 k=0; k<v.size()-j; ++k)
102 v.at(j)=(1-_t)*v.at(j)+_t*v.at(j+1);
107 catch (std::exception &e)
109 std::string err(
"Mondschein Engine ERROR: ");
111 err+=
", exception raised in function\n\t";
112 err+=
"Eigen::Vector3d mondschein::math::Beziercurve::get_curve_point(float64 _t) const";