30 m_degree(degree), m_index(
index), m_controlPoints(controlPoints)
35 m_degree(controlPoints.size() - 1), m_index(0), m_controlPoints(controlPoints)
42 assert((t >= 0) && (t <= 1.0 + std::numeric_limits<float>::epsilon()));
46 return m_controlPoints.at(m_index);
49 Beziercurve left{m_controlPoints, m_degree - 1, m_index};
50 Beziercurve right{m_controlPoints, m_degree - 1, m_index + 1};
52 assert((m_degree > 0) && (m_degree < m_controlPoints.size()));
53 assert(m_index < m_controlPoints.size() - m_degree);
55 return (1 - t) * left.evaluate(t) + t * right.evaluate(t);