50 #include <visp/vpImagePoint.h>
51 #include <visp/vpMatrix.h>
52 #include <visp/vpMath.h>
53 #include <visp/vpMeSite.h>
54 #include <visp/vpBSpline.h>
55 #include <visp/vpList.h>
96 static vpMatrix computeCurveDers(
double l_u,
unsigned int l_i,
unsigned int l_p,
unsigned int l_der, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
112 for (
unsigned int i = 0; i < weights.size(); i++)
113 list.push_back(*(&(weights[0])+i));
123 for(std::list<double>::const_iterator it=list.begin(); it!=list.end(); ++it){
124 weights.push_back(*it);
128 static vpImagePoint computeCurvePoint(
double l_u,
unsigned int l_i,
unsigned int l_p, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
131 static vpImagePoint* computeCurveDersPoint(
double l_u,
unsigned int l_i,
unsigned int l_p,
unsigned int l_der, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
132 vpImagePoint* computeCurveDersPoint(
double u,
unsigned int der);
134 static void curveKnotIns(
double l_u,
unsigned int l_k,
unsigned int l_s,
unsigned int l_r,
unsigned int l_p, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
135 void curveKnotIns(
double u,
unsigned int s = 0,
unsigned int r = 1);
137 static void refineKnotVectCurve(
double* l_x,
unsigned int l_r,
unsigned int l_p, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
138 void refineKnotVectCurve(
double* x,
unsigned int r);
140 static unsigned int removeCurveKnot(
double l_u,
unsigned int l_r,
unsigned int l_num,
double l_TOL,
unsigned int l_s,
unsigned int l_p, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
141 unsigned int removeCurveKnot(
double l_u,
unsigned int l_r,
unsigned int l_num,
double l_TOL);
143 static void globalCurveInterp(std::vector<vpImagePoint> &l_crossingPoints,
unsigned int l_p, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
145 void globalCurveInterp(
const std::list<vpImagePoint>& l_crossingPoints);
146 void globalCurveInterp(
const std::list<vpMeSite>& l_crossingPoints);
147 void globalCurveInterp();
149 static void globalCurveApprox(std::vector<vpImagePoint> &l_crossingPoints,
unsigned int l_p,
unsigned int l_n, std::vector<double> &l_knots, std::vector<vpImagePoint> &l_controlPoints, std::vector<double> &l_weights);
151 void globalCurveApprox(
const std::list<vpImagePoint>& l_crossingPoints,
unsigned int n);
152 void globalCurveApprox(
const std::list<vpMeSite>& l_crossingPoints,
unsigned int n);
153 void globalCurveApprox(
unsigned int n);
155 #ifdef VISP_BUILD_DEPRECATED_FUNCTIONS
167 for (
unsigned int i = 0; i < weights.size(); i++) list.
addRight(*(&(weights[0])+i));
179 for (
unsigned int i = 0; i < list.
nbElements(); i++)
181 weights.push_back(list.
value());