24 #ifndef __GEOMETRY_BEZIER_H_
25 #define __GEOMETRY_BEZIER_H_
27 #include <geometry/transformable.h>
38 Bezier(
const std::vector<HomPoint>& control_points);
48 unsigned int degree()
const;
54 const std::vector<HomPoint>&
approximate(
unsigned int num_subdivisions = 4);
62 void init_dclj_array();
63 unsigned int get_dclj_array_index(
unsigned int k,
unsigned int i)
const;
65 std::vector<HomPoint> m_control_points;
66 std::vector<HomPoint> m_approximation;
67 unsigned int m_num_subdivisions;
69 HomPoint de_casteljau(
unsigned int k,
unsigned int i,
float t);
71 std::pair<HomPoint*, bool>* m_de_casteljau_points;
72 unsigned int m_dclj_array_size;
74 unsigned int m_num_control_points;