111 std::vector<vpImagePoint> controlPoints;
127 inline unsigned int get_p()
const {
return p; }
138 for (
unsigned int i = 0; i < controlPoints.size(); i++) {
139 list.push_back(*(&(controlPoints[0]) + i));
151 for (
unsigned int i = 0; i <
knots.size(); i++) {
152 list.push_back(*(&(
knots[0]) + i));
175 inline void set_p(
unsigned int degree) { this->p = degree; }
184 controlPoints.clear();
185 for (std::list<vpImagePoint>::const_iterator it = list.begin(); it != list.end(); ++it) {
186 controlPoints.push_back(*it);
198 for (std::list<double>::const_iterator it = list.begin(); it != list.end(); ++it) {
199 knots.push_back(*it);
212 for (std::list<vpImagePoint>::const_iterator it = list.begin(); it != list.end(); ++it) {
217 static unsigned int findSpan(
double l_u,
unsigned int l_p,
const std::vector<double> &l_knots);
218 unsigned int findSpan(
double u)
const;
220 static vpBasisFunction *computeBasisFuns(
double l_u,
unsigned int l_i,
unsigned int l_p,
221 const std::vector<double> &l_knots);
222 vpBasisFunction *computeBasisFuns(
double u)
const;
224 static vpBasisFunction **computeDersBasisFuns(
double l_u,
unsigned int l_i,
unsigned int l_p,
unsigned int l_der,
225 const std::vector<double> &l_knots);
226 vpBasisFunction **computeDersBasisFuns(
double u,
unsigned int der)
const;
228 static vpImagePoint computeCurvePoint(
double l_u,
unsigned int l_i,
unsigned int l_p,
const std::vector<double> &l_knots,
229 const std::vector<vpImagePoint> &l_controlPoints);
232 static vpImagePoint *computeCurveDers(
double l_u,
unsigned int l_i,
unsigned int l_p,
unsigned int l_der,
233 const std::vector<double> &l_knots,
const std::vector<vpImagePoint> &l_controlPoints);
234 vpImagePoint *computeCurveDers(
double u,
unsigned int der)
const;