32 m_controlPoints(controlPoints)
36 : m_degree(controlPoints.size() - 1),
38 m_controlPoints(controlPoints)
43 assert((t >= 0) && (t <= 1.0 + std::numeric_limits<float>::epsilon()));
47 return m_controlPoints.at(m_index);
50 Beziercurve left {m_controlPoints, m_degree - 1, m_index};
51 Beziercurve right {m_controlPoints, m_degree - 1, m_index + 1};
53 assert((m_degree > 0) && (m_degree < m_controlPoints.size()));
54 assert(m_index < m_controlPoints.size() - m_degree);
56 return (1 - t) * left.evaluate(t) + t * right.evaluate(t);