43 #include <visp3/core/vpBSpline.h>
44 #include <visp3/core/vpImagePoint.h>
45 #include <visp3/core/vpList.h>
46 #include <visp3/core/vpMath.h>
47 #include <visp3/core/vpMatrix.h>
48 #include <visp3/me/vpMeSite.h>
130 std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints,
131 std::vector<double> &l_weights);
181 for (
unsigned int i = 0; i < weights.size(); i++)
182 list.push_back(*(&(weights[0]) + i));
193 for (std::list<double>::const_iterator it = list.begin(); it != list.end(); ++it) {
194 weights.push_back(*it);
215 std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
248 static vpImagePoint *computeCurveDersPoint(
double l_u,
unsigned int l_i,
unsigned int l_p,
unsigned int l_der,
249 std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints,
250 std::vector<double> &l_weights);
265 vpImagePoint *computeCurveDersPoint(
double u,
unsigned int der);
284 static void curveKnotIns(
double l_u,
unsigned int l_k,
unsigned int l_s,
unsigned int l_r,
unsigned int l_p,
285 std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints,
286 std::vector<double> &l_weights);
300 void curveKnotIns(
double u,
unsigned int s = 0,
unsigned int r = 1);
316 static void refineKnotVectCurve(
double *l_x,
unsigned int l_r,
unsigned int l_p, std::vector<double> &l_knots,
317 std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
329 void refineKnotVectCurve(
double *x,
unsigned int r);
357 static unsigned int removeCurveKnot(
double l_u,
unsigned int l_r,
unsigned int l_num,
double l_TOL,
unsigned int l_s,
358 unsigned int l_p, std::vector<double> &l_knots,
359 std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
382 unsigned int removeCurveKnot(
double l_u,
unsigned int l_r,
unsigned int l_num,
double l_TOL);
397 static void globalCurveInterp(std::vector<vpImagePoint> &l_crossingPoints,
unsigned int l_p,
398 std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints,
399 std::vector<double> &l_weights);
423 void globalCurveInterp(
const std::list<vpImagePoint> &l_crossingPoints);
435 void globalCurveInterp(
const std::list<vpMeSite> &l_crossingPoints);
444 void globalCurveInterp();
463 static void globalCurveApprox(std::vector<vpImagePoint> &l_crossingPoints,
unsigned int l_p,
unsigned int l_n,
464 std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints,
465 std::vector<double> &l_weights);
497 void globalCurveApprox(
const std::list<vpImagePoint> &l_crossingPoints,
unsigned int n);
514 void globalCurveApprox(
const std::list<vpMeSite> &l_crossingPoints,
unsigned int n);
525 void globalCurveApprox(
unsigned int n);
Class that provides tools to compute and manipulate a B-Spline curve.
static vpImagePoint computeCurvePoint(double l_u, unsigned int l_i, unsigned int l_p, const std::vector< double > &l_knots, const std::vector< vpImagePoint > &l_controlPoints)
static vpImagePoint * computeCurveDers(double l_u, unsigned int l_i, unsigned int l_p, unsigned int l_der, const std::vector< double > &l_knots, const std::vector< vpImagePoint > &l_controlPoints)
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Provide simple list management.
Implementation of a matrix and operations on matrices.
Class that provides tools to compute and manipulate a Non Uniform Rational B-Spline curve.
void get_weights(std::list< double > &list) const
std::vector< double > weights
Vector which contains the weights associated to each control Points.
void set_weights(const std::list< double > &list)