![]() |
Visual Servoing Platform version 3.7.0
|
#include <vpNurbs.h>
Public Member Functions | |
| vpNurbs () | |
| vpNurbs (const vpNurbs &nurbs) | |
| void | get_weights (std::list< double > &list) const |
| void | set_weights (const std::list< double > &list) |
| vpImagePoint | computeCurvePoint (double u) |
| vpImagePoint * | computeCurveDersPoint (double u, unsigned int der) |
| void | curveKnotIns (double u, unsigned int s=0, unsigned int r=1) |
| void | refineKnotVectCurve (double *x, unsigned int r) |
| unsigned int | removeCurveKnot (double l_u, unsigned int l_r, unsigned int l_num, double l_TOL) |
| void | globalCurveInterp (vpList< vpMeSite > &l_crossingPoints) |
| void | globalCurveInterp (const std::list< vpImagePoint > &l_crossingPoints) |
| void | globalCurveInterp (const std::list< vpMeSite > &l_crossingPoints) |
| void | globalCurveInterp () |
| void | globalCurveApprox (vpList< vpMeSite > &l_crossingPoints, unsigned int n) |
| void | globalCurveApprox (const std::list< vpImagePoint > &l_crossingPoints, unsigned int n) |
| void | globalCurveApprox (const std::list< vpMeSite > &l_crossingPoints, unsigned int n) |
| void | globalCurveApprox (unsigned int n) |
| unsigned int | get_p () const |
| void | get_controlPoints (std::list< vpImagePoint > &list) const |
| void | get_knots (std::list< double > &list) const |
| void | get_crossingPoints (std::list< vpImagePoint > &list) const |
| void | set_p (unsigned int degree) |
| void | set_controlPoints (const std::list< vpImagePoint > &list) |
| void | set_knots (const std::list< double > &list) |
| void | set_crossingPoints (const std::list< vpImagePoint > &list) |
| unsigned int | findSpan (double u) const |
| vpBasisFunction * | computeBasisFuns (double u) const |
| vpBasisFunction ** | computeDersBasisFuns (double u, unsigned int der) const |
| vpImagePoint | computeCurvePoint (double u) const |
| vpImagePoint * | computeCurveDers (double u, unsigned int der) const |
Static Public Member Functions | |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| static unsigned int | findSpan (double l_u, unsigned int l_p, const std::vector< double > &l_knots) |
| static vpBasisFunction * | computeBasisFuns (double l_u, unsigned int l_i, unsigned int l_p, const std::vector< double > &l_knots) |
| static vpBasisFunction ** | computeDersBasisFuns (double l_u, unsigned int l_i, unsigned int l_p, unsigned int l_der, const std::vector< double > &l_knots) |
| 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) |
Public Attributes | |
| : std::vector<vpImagePoint> controlPoints | |
| std::vector< double > | knots |
| unsigned int | p |
| std::vector< vpImagePoint > | crossingPoints |
Protected Member Functions | |
| vpMatrix | computeCurveDers (double u, unsigned int der) |
Static Protected Member Functions | |
| 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) |
Protected Attributes | |
| std::vector< double > | weights |
Class that provides tools to compute and manipulate a Non Uniform Rational B-Spline curve.
The different parameters are :
The B-Spline basis functions
defined as :
where
and p is the degree of the B-Spline basis functions.
It is possible to compute the coordinates of a point corresponding to the knots
(
) thanks to the formula :
You can find much more information about the B-Splines and the implementation of all the methods in the Nurbs Book.
| vpNurbs::vpNurbs | ( | ) |
Basic constructor.
The degree
of the NURBS basis functions is set to 3 to compute cubic NURBS.
Definition at line 52 of file vpNurbs.cpp.
References vpBSpline::p, and weights.
Referenced by vpNurbs().
| vpNurbs::vpNurbs | ( | const vpNurbs & | nurbs | ) |
Copy constructor.
Definition at line 54 of file vpNurbs.cpp.
References vpBSpline::vpBSpline(), vpNurbs(), and weights.
|
staticinherited |
Compute the nonvanishing basis functions at
which is in the
th knot interval. All the basis functions are stored in an array such as :
N =
,
,
, ... ,
, ...,
, ... ,
, ... , ![]()
| l_u | : A real number which is between the extremities of the knot vector. |
| l_i | : The number of the knot interval in which |
| l_p | : Degree of the B-Spline basis functions. |
| l_knots | : The knot vector. |
Definition at line 124 of file vpBSpline.cpp.
Referenced by computeBasisFuns(), computeCurvePoint(), computeCurvePoint(), vpNurbs::computeCurvePoint(), vpNurbs::computeCurvePoint(), vpNurbs::globalCurveApprox(), and vpNurbs::globalCurveInterp().
|
inherited |
Compute the nonvanishing basis functions at
. All the basis functions are stored in an array such as :
N =
,
,
, ... ,
, ...,
, ... ,
, ... , ![]()
where i the number of the knot interval in which
lies.
| u | : A real number which is between the extremities of the knot vector |
Definition at line 175 of file vpBSpline.cpp.
References computeBasisFuns(), findSpan(), knots, and p.
|
staticinherited |
Compute the kth derivatives of
for
.
The formula used is the following :
where
is the knot interval number in which
lies and
is the degree of the B-Spline basis function.
| l_u | : A real number which is between the extremities of the knot vector. |
| l_i | : The number of the knot interval in which |
| l_p | : Degree of the B-Spline basis functions. |
| l_der | : The last derivative to be computed. |
| l_knots | : The knot vector. |
| l_controlPoints | : The list of control points. |
Definition at line 428 of file vpBSpline.cpp.
References computeDersBasisFuns(), vpImagePoint::set_i(), vpImagePoint::set_ij(), vpImagePoint::set_j(), and vpTRACE.
|
inherited |
Compute the kth derivatives of
for
.
The formula used is the following :
where
is the knot interval number in which
lies and
is the degree of the B-Spline basis function.
| u | : A real number which is between the extremities of the knot vector |
| der | : The last derivative to be computed. |
Definition at line 474 of file vpBSpline.cpp.
References computeDersBasisFuns(), p, vpImagePoint::set_i(), vpImagePoint::set_ij(), vpImagePoint::set_j(), and vpTRACE.
|
staticprotected |
This function is used in the computeCurveDersPoint method.
Compute the kth derivatives of
for
.
The formula used is the following :
where
is the knot interval number in which
lies,
is the degree of the NURBS basis function and
contains the control points and the associated weights.
| l_u | : A real number which is between the extremities of the knot vector. |
| l_i | : the number of the knot interval in which |
| l_p | : Degree of the NURBS basis functions. |
| l_der | : The last derivative to be computed. |
| l_knots | : The knot vector. |
| l_controlPoints | : the list of control points. |
| l_weights | : the list of weights. |
Definition at line 105 of file vpNurbs.cpp.
References vpBSpline::computeDersBasisFuns().
Referenced by computeCurveDersPoint().
|
protected |
This function is used in the computeCurveDersPoint method.
Compute the kth derivatives of
for
.
The formula used is the following :
where
is the knot interval number in which
lies,
is the degree of the NURBS basis function and
contains the control points and the associated weights.
| u | : A real number which is between the extremities of the knot vector |
| der | : The last derivative to be computed. |
Definition at line 133 of file vpNurbs.cpp.
References vpBSpline::computeDersBasisFuns(), vpBSpline::p, and weights.
|
static |
Compute the kth derivatives of
for
.
To see how the derivatives are computed refers to the Nurbs book.
| l_u | : A real number which is between the extremities of the knot vector. |
| l_i | : the number of the knot interval in which |
| l_p | : Degree of the NURBS basis functions. |
| l_der | : The last derivative to be computed. |
| l_knots | : The knot vector. |
| l_controlPoints | : the list of control points. |
| l_weights | : the list of weights. |
Definition at line 156 of file vpNurbs.cpp.
References vpMath::comb(), computeCurveDers(), vpImagePoint::get_i(), vpImagePoint::get_j(), vpImagePoint::set_i(), vpImagePoint::set_ij(), and vpImagePoint::set_j().
Referenced by computeCurveDersPoint().
| vpImagePoint * vpNurbs::computeCurveDersPoint | ( | double | u, |
| unsigned int | der ) |
Compute the kth derivatives of
for
.
To see how the derivatives are computed refers to the Nurbs book.
| u | : A real number which is between the extremities of the knot vector |
| der | : The last derivative to be computed. |
Definition at line 187 of file vpNurbs.cpp.
References computeCurveDersPoint(), vpBSpline::findSpan(), vpBSpline::knots, vpBSpline::p, and weights.
|
staticinherited |
Compute the coordinates of a point
corresponding to the knot
.
| l_u | : A real number which is between the extremities of the knot vector. |
| l_i | : The number of the knot interval in which |
| l_p | : Degree of the B-Spline basis functions. |
| l_knots | : The knot vector. |
| l_controlPoints | : the list of control points. |
Definition at line 359 of file vpBSpline.cpp.
References computeBasisFuns(), vpImagePoint::set_i(), and vpImagePoint::set_j().
|
inherited |
Compute the coordinates of a point
corresponding to the knot
.
| u | : A real number which is between the extremities of the knot vector. |
Definition at line 388 of file vpBSpline.cpp.
References computeBasisFuns(), p, vpImagePoint::set_i(), and vpImagePoint::set_j().
|
static |
Compute the coordinates of a point
corresponding to the knot
.
| l_u | : A real number which is between the extremities of the knot vector. |
| l_i | : the number of the knot interval in which |
| l_p | : Degree of the NURBS basis functions. |
| l_knots | : The knot vector. |
| l_controlPoints | : the list of control points. |
| l_weights | : the list of weights. |
Definition at line 56 of file vpNurbs.cpp.
References vpBSpline::computeBasisFuns(), vpImagePoint::set_i(), and vpImagePoint::set_j().
Referenced by vpMeNurbs::display(), and vpMeNurbs::display().
| vpImagePoint vpNurbs::computeCurvePoint | ( | double | u | ) |
Compute the coordinates of a point
corresponding to the knot
.
| u | : A real number which is between the extremities of the knot vector |
return the coordinates of a point corresponding to the knot
.
Definition at line 81 of file vpNurbs.cpp.
References vpBSpline::computeBasisFuns(), vpBSpline::p, vpImagePoint::set_i(), vpImagePoint::set_j(), and weights.
|
staticinherited |
Compute the nonzero basis functions and their derivatives until the
th derivative. All the functions are computed at l_u.
The result is given as an array of size l_der+1 x l_p+1. The kth line corresponds to the kth basis functions derivatives.
The formula to compute the kth derivative at
is :
where
is the knot interval number in which
lies and
is the degree of the B-Spline basis function.
| l_u | : A real number which is between the extremities of the knot vector. |
| l_i | : The number of the knot interval in which |
| l_p | : Degree of the B-Spline basis functions. |
| l_der | : The last derivative to be computed. |
| l_knots | : The knot vector. |
Example : return[0] is the list of the 0th derivatives ie the basis functions. return[k] is the list of the kth derivatives.
Definition at line 211 of file vpBSpline.cpp.
References vpTRACE.
Referenced by computeCurveDers(), computeCurveDers(), vpNurbs::computeCurveDers(), vpNurbs::computeCurveDers(), and computeDersBasisFuns().
|
inherited |
Compute the nonzero basis functions and their derivatives until the
th derivative. All the functions are computed at u.
The result is given as an array of size der+1 x p+1. The kth line corresponds to the kth basis functions derivatives.
The formula to compute the kth derivative at
is :
where
is the knot interval number in which
lies and
is the degree of the B-Spline basis function.
| u | : A real number which is between the extremities of the knot vector |
| der | : The last derivative to be computed. |
Example : return[0] is the list of the 0th derivatives ie the basis functions. return[k] is the list of the kth derivatives.
Definition at line 341 of file vpBSpline.cpp.
References computeDersBasisFuns(), findSpan(), knots, and p.
|
static |
Insert
times a knot in the
th interval of the knot vector. The inserted knot
has multiplicity
.
Of course the knot vector changes. But The list of control points and the list of the associated weights change too.
| l_u | : A real number which is between the extremities of the knot vector and which has to be inserted. |
| l_k | : The number of the knot interval in which |
| l_s | : Multiplicity of |
| l_r | : Number of times |
| l_p | : Degree of the NURBS basis functions. |
| l_knots | : The knot vector |
| l_controlPoints | : the list of control points. |
| l_weights | : the list of weights. |
Definition at line 194 of file vpNurbs.cpp.
References vpImagePoint::set_ij().
Referenced by curveKnotIns().
| void vpNurbs::curveKnotIns | ( | double | u, |
| unsigned int | s = 0, | ||
| unsigned int | r = 1 ) |
Insert
times a knot in the
th interval of the knot vector. The inserted knot
has multiplicity
.
Of course the knot vector changes. But The list of control points and the list of the associated weights change too.
| u | : A real number which is between the extremities of the knot vector and which has to be inserted. |
| s | : Multiplicity of |
| r | : Number of times |
Definition at line 246 of file vpNurbs.cpp.
References curveKnotIns(), vpBSpline::findSpan(), vpBSpline::knots, vpBSpline::p, and weights.
|
staticinherited |
Find the knot interval in which the parameter
lies. Indeed
.
Example : The knot vector is the following
with
is equal to 1.
| l_u | : The knot whose knot interval is seeked. |
| l_p | : Degree of the B-Spline basis functions. |
| l_knots | : The knot vector. |
Definition at line 63 of file vpBSpline.cpp.
References vpMath::maximum(), and vpMath::round().
Referenced by computeBasisFuns(), vpNurbs::computeCurveDersPoint(), computeDersBasisFuns(), vpNurbs::curveKnotIns(), findSpan(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), and vpNurbs::refineKnotVectCurve().
|
inherited |
Find the knot interval in which the parameter
lies. Indeed
.
Example : The knot vector is the following
with
is equal to 1.
| u | : The knot whose knot interval is seeked. |
Definition at line 106 of file vpBSpline.cpp.
References findSpan(), knots, and p.
|
inlineinherited |
Gets all the control points.
| list | : A std::list containing the coordinates of the control points. |
Definition at line 135 of file vpBSpline.h.
|
inlineinherited |
Gets all the crossing points (used in the interpolation method)
| list | : A std::list containing the coordinates of the crossing points. |
Definition at line 162 of file vpBSpline.h.
References crossingPoints.
|
inlineinherited |
Gets all the knots.
| list | : A std::list containing the value of the knots. |
Definition at line 148 of file vpBSpline.h.
References knots.
|
inlineinherited |
Gets the degree of the B-Spline.
Definition at line 127 of file vpBSpline.h.
References p.
|
inline |
Gets all the weights relative to the control points.
| list | [out] : A std::list containing weights relative to the control points. |
Definition at line 178 of file vpNurbs.h.
References weights.
| void vpNurbs::globalCurveApprox | ( | const std::list< vpImagePoint > & | l_crossingPoints, |
| unsigned int | n ) |
Method which enables to compute a NURBS curve approximating a set of data points.
The data points are approximated thanks to a least square method.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
| n | : The desired number of control points. The parameter n must be under or equal to the number of data points. |
Definition at line 728 of file vpNurbs.cpp.
References globalCurveApprox(), vpBSpline::knots, vpBSpline::p, and weights.
| void vpNurbs::globalCurveApprox | ( | const std::list< vpMeSite > & | l_crossingPoints, |
| unsigned int | n ) |
Method which enables to compute a NURBS curve approximating a set of data points.
The data points are approximated thanks to a least square method.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
| n | : The desired number of control points. This parameter n must be under or equal to the number of data points. |
Definition at line 737 of file vpNurbs.cpp.
References globalCurveApprox(), vpBSpline::knots, vpBSpline::p, and weights.
|
static |
Method which enables to compute a NURBS curve approximating a set of data points.
The data points are approximated thanks to a least square method.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
| l_p | : Degree of the NURBS basis functions. |
| l_n | : The desired number of control points. l_n must be under or equal to the number of data points. |
| l_knots | : The knot vector. |
| l_controlPoints | : the list of control points. |
| l_weights | : the list of weights. |
Definition at line 595 of file vpNurbs.cpp.
References vpMatrix::AtA(), vpBSpline::computeBasisFuns(), vpBSpline::findSpan(), vpMatrix::pseudoInverse(), and vpImagePoint::set_ij().
Referenced by globalCurveApprox(), globalCurveApprox(), globalCurveApprox(), and globalCurveApprox().
| void vpNurbs::globalCurveApprox | ( | unsigned int | n | ) |
Method which enables to compute a NURBS curve approximating a set of data points.
The data points are approximated thanks to a least square method.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
Definition at line 747 of file vpNurbs.cpp.
References vpBSpline::crossingPoints, globalCurveApprox(), vpBSpline::knots, vpBSpline::p, and weights.
Method which enables to compute a NURBS curve approximating a set of data points.
The data points are approximated thanks to a least square method.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
| n | : The desired number of control points. This parameter n must be under or equal to the number of data points. |
Definition at line 714 of file vpNurbs.cpp.
References vpList< type >::front(), globalCurveApprox(), vpBSpline::knots, vpList< type >::next(), vpList< type >::outside(), vpBSpline::p, vpList< type >::value(), and weights.
| void vpNurbs::globalCurveInterp | ( | ) |
Method which enables to compute a NURBS curve passing through a set of data points.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
Definition at line 593 of file vpNurbs.cpp.
References vpBSpline::crossingPoints, globalCurveInterp(), vpBSpline::knots, vpBSpline::p, and weights.
Referenced by globalCurveInterp(), globalCurveInterp(), globalCurveInterp(), and globalCurveInterp().
| void vpNurbs::globalCurveInterp | ( | const std::list< vpImagePoint > & | l_crossingPoints | ) |
Method which enables to compute a NURBS curve passing through a set of data points.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
Definition at line 564 of file vpNurbs.cpp.
References globalCurveInterp(), vpBSpline::knots, vpBSpline::p, and weights.
| void vpNurbs::globalCurveInterp | ( | const std::list< vpMeSite > & | l_crossingPoints | ) |
Method which enables to compute a NURBS curve passing through a set of data points.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
Definition at line 574 of file vpNurbs.cpp.
References vpImagePoint::distance(), globalCurveInterp(), vpBSpline::knots, vpBSpline::p, and weights.
|
static |
Method which enables to compute a NURBS curve passing through a set of data points.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
| l_p | : Degree of the NURBS basis functions. This value need to be > 0. |
| l_knots | : The knot vector. |
| l_controlPoints | : The list of control points. |
| l_weights | : the list of weights. |
Definition at line 466 of file vpNurbs.cpp.
References vpException::badValue, vpBSpline::computeBasisFuns(), vpBSpline::findSpan(), vpMatrix::pseudoInverse(), and vpImagePoint::set_ij().
Method which enables to compute a NURBS curve passing through a set of data points.
The result of the method is composed by a knot vector, a set of control points and a set of associated weights.
| l_crossingPoints | : The list of data points which have to be interpolated. |
Definition at line 543 of file vpNurbs.cpp.
References vpImagePoint::distance(), vpList< type >::front(), globalCurveInterp(), vpBSpline::knots, vpList< type >::next(), vpList< type >::outside(), vpBSpline::p, vpImagePoint::set_ij(), vpList< type >::value(), and weights.
|
static |
Insert
knots in the knot vector.
Of course the knot vector changes. But The list of control points and the list of the associated weights change too.
| l_x | : Several real numbers which are between the extremities of the knot vector and which have to be inserted. |
| l_r | : Number of knot in the array |
| l_p | : Degree of the NURBS basis functions. |
| l_knots | : The knot vector |
| l_controlPoints | : the list of control points. |
| l_weights | : the list of weights. |
Definition at line 253 of file vpNurbs.cpp.
References vpBSpline::findSpan().
Referenced by refineKnotVectCurve().
| void vpNurbs::refineKnotVectCurve | ( | double * | x, |
| unsigned int | r ) |
Insert
knots in the knot vector.
Of course the knot vector changes. But The list of control points and the list of the associated weights change too.
| x | : Several real numbers which are between the extremities of the knot vector and which have to be inserted. |
| r | : Number of knot in the array |
Definition at line 333 of file vpNurbs.cpp.
References vpBSpline::knots, vpBSpline::p, refineKnotVectCurve(), and weights.
| unsigned int vpNurbs::removeCurveKnot | ( | double | l_u, |
| unsigned int | l_r, | ||
| unsigned int | l_num, | ||
| double | l_TOL ) |
Remove
times the knot
from the knot vector. The removed knot
is the
th vector in the knot vector.
Of course the knot vector changes. But The list of control points and the list of the associated weights change too.
| l_u | : A real number which is between the extremities of the knot vector and which has to be removed. |
| l_r | : Index of |
| l_num | : Number of times |
| l_TOL | : A parameter which has to be computed. |
![]()
where
is the minimal weight on the original curve,
is the maximum distance of any point on the original curve from the origin and
is the desired bound on deviation.
Definition at line 461 of file vpNurbs.cpp.
References vpBSpline::knots, vpBSpline::p, removeCurveKnot(), and weights.
|
static |
Remove
times the knot
from the knot vector. The removed knot
is the
th vector in the knot vector.
Of course the knot vector changes. But The list of control points and the list of the associated weights change too.
| l_u | : A real number which is between the extremities of the knot vector and which has to be removed. |
| l_r | : Index of |
| l_num | : Number of times |
| l_TOL | : A parameter which has to be computed. |
| l_s | : Multiplicity of |
| l_p | : Degree of the NURBS basis functions. |
| l_knots | : The knot vector |
| l_controlPoints | : the list of control points. |
| l_weights | : the list of weights. |
![]()
where
is the minimal weight on the original curve,
is the maximum distance of any point on the original curve from the origin and
is the desired bound on deviation.
Definition at line 338 of file vpNurbs.cpp.
References vpImagePoint::get_i(), vpImagePoint::get_j(), vpImagePoint::set_i(), vpImagePoint::set_j(), and vpMath::sqr().
Referenced by removeCurveKnot().
|
inlineinherited |
Sets all the control points.
| list | : A std::list containing the coordinates of the control points |
Definition at line 182 of file vpBSpline.h.
|
inlineinherited |
Sets all the crossing points (used in the interpolation method)
| list | : A std::list containing the coordinates of the crossing points |
Definition at line 209 of file vpBSpline.h.
References crossingPoints.
|
inlineinherited |
Sets all the knots.
| list | : A std::list containing the value of the knots. |
Definition at line 195 of file vpBSpline.h.
References knots.
|
inlineinherited |
Sets the degree of the B-Spline.
| degree | : the degree of the B-Spline. |
Definition at line 175 of file vpBSpline.h.
|
inline |
Sets all the knots.
| list | : A std::list containing the value of the knots. |
Definition at line 190 of file vpNurbs.h.
References weights.
|
inherited |
Definition at line 236 of file vpBSpline.h.
|
inherited |
Vector which contains the points used during the interpolation method.
Definition at line 117 of file vpBSpline.h.
Referenced by get_crossingPoints(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), set_crossingPoints(), and vpBSpline().
|
inherited |
Vector which contain the knots
.
Definition at line 113 of file vpBSpline.h.
Referenced by computeBasisFuns(), vpNurbs::computeCurveDersPoint(), computeDersBasisFuns(), vpNurbs::curveKnotIns(), findSpan(), get_knots(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), vpNurbs::globalCurveInterp(), vpNurbs::globalCurveInterp(), vpNurbs::globalCurveInterp(), vpNurbs::refineKnotVectCurve(), vpNurbs::removeCurveKnot(), set_knots(), and vpBSpline().
|
inherited |
Degree of the B-Spline basis functions.
Definition at line 115 of file vpBSpline.h.
Referenced by computeBasisFuns(), computeCurveDers(), vpNurbs::computeCurveDers(), vpNurbs::computeCurveDersPoint(), computeCurvePoint(), vpNurbs::computeCurvePoint(), computeDersBasisFuns(), vpNurbs::curveKnotIns(), findSpan(), get_p(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveApprox(), vpNurbs::globalCurveInterp(), vpNurbs::globalCurveInterp(), vpNurbs::globalCurveInterp(), vpNurbs::globalCurveInterp(), vpNurbs::refineKnotVectCurve(), vpNurbs::removeCurveKnot(), vpBSpline(), and vpNurbs::vpNurbs().
|
protected |
Vector which contains the weights associated to each control Points.
Definition at line 96 of file vpNurbs.h.
Referenced by computeCurveDers(), computeCurveDersPoint(), computeCurvePoint(), curveKnotIns(), visp.python.rbt.xfeat.RBXFeatFeatureTracker.RBXFeatFeatureTracker::display(), get_weights(), globalCurveApprox(), globalCurveApprox(), globalCurveApprox(), globalCurveApprox(), globalCurveInterp(), globalCurveInterp(), globalCurveInterp(), globalCurveInterp(), visp.python.rbt.xfeat.RBXFeatFeatureTracker.RBXFeatFeatureTracker::initVVS(), refineKnotVectCurve(), removeCurveKnot(), set_weights(), vpNurbs(), and vpNurbs().