class that copies the nurbs++-library using the fmatvec as a basis-math-library More...
#include <nurbs_curve.h>
Public Member Functions | |
NurbsCurve () | |
standard constructor | |
int | degree () const |
< a reference to the degree of the curve | |
const fmatvec::MatVx4 & | ctrlPnts () const |
< a reference to the vector of control points | |
const fmatvec::Vec4 | ctrlPnts (int i) const |
< a reference to one of the control points | |
const fmatvec::Vec & | knot () const |
< a reference to the vector of knots | |
double | knot (int i) const |
< the i-th knot | |
const fmatvec::Vec | getuVec () const |
virtual fmatvec::HPoint< 3 > | operator() (double u) const |
fmatvec::HPoint< 3 > | hpointAt (double u) const |
< calls operator() | |
fmatvec::HPoint< 3 > | hpointAt (double u, int span) const |
fmatvec::Point< 3 > | pointAt (double u) const |
void | deriveAtH (double u, int d, fmatvec::MatVx4 &ders) const |
fmatvec::Point< 3 > | derive3D (double u, int d) const |
fmatvec::HPoint< 3 > | derive (double u, int d) const |
fmatvec::Point< 3 > | normal (double u, const fmatvec::Point< 3 > &v) const |
fmatvec::HPoint< 3 > | firstD (double u) const |
fmatvec::HPoint< 3 > | firstD (double u, int span) const |
fmatvec::Point< 3 > | firstDn (double u) const |
fmatvec::Point< 3 > | firstDn (double u, int span) const |
void | globalInterp (const std::vector< fmatvec::Point< 3 > > &Q, const std::vector< double > &uk, int d, bool updateLater=false) |
do global interpolation for given interpolation-points list and knots with the given degree | |
void | globalInterp (const std::vector< fmatvec::Point< 3 > > &Q, double uMin, double uMax, int d, bool updateLater=false) |
void | globalInterp (const fmatvec::MatVx3 &Q, double uMin, double uMax, int d, bool updateLater=false) |
void | globalInterpH (const MatVx4 &Q, const Vec &ub, const Vec &Uc, int d, bool updateLater=false) |
void | globalInterpClosed (const fmatvec::MatVx3 &Q, double uMin, double uMax, int d, bool updateLater=false) |
closed interpolation of the given (not yet wrapped) points at the given knot vector "ub" in a degree of "d" | |
void | update (const fmatvec::MatVx3 &Q) |
update the control points with the same matrix as before | |
void | update (const fmatvec::MatVx4 &Q) |
void | globalInterpClosedH (const MatVx4 &Qw, const Vec &ub, const Vec &Uc, int d, bool updateLater=false) |
global curve interpolation with homogenous points More... | |
void | modCP (int i, const fmatvec::HPoint< 3 > &a) |
int | findSpan (double u) const |
Protected Member Functions | |
void | resize (int n, int Deg) |
void | knotAveraging (const std::vector< double > &uk, int deg) |
double | chordLengthParam (const MatVx3 &Q, Vec &ub) |
void | updateUVecs (double uMin, double uMax) |
void | knotAveragingClosed (const std::vector< double > &uk, int deg) |
void | updateUVecsClosed (double uMin, double uMax) |
Protected Attributes | |
fmatvec::MatVx4 | P |
fmatvec::SqrMat | inverse |
fmatvec::Vec | u |
fmatvec::Vec | U |
int | deg |
Related Functions | |
(Note that these are not member functions.) | |
void | knotAveraging (const Vec &uk, int deg, Vec &U) |
Generates a knot vector using the averaging technique. More... | |
class that copies the nurbs++-library using the fmatvec as a basis-math-library
void MBSim::NurbsCurve::globalInterpClosedH | ( | const MatVx4 & | Qw, |
const Vec & | ub, | ||
const Vec & | Uc, | ||
int | d, | ||
bool | updateLater = false |
||
) |
global curve interpolation with homogenous points
Global curve interpolation with 4D points, a knot vector defined and the parametric value vector defined.The curve will have C(d-1) continuity at the point u=0 and u=1.
Qw | the 3D points to interpolate (wrapped around) |
ub | the parametric values vector |
Uc | the knot vector computed using knotAveragingClosed |
d | the degree of the closed curve |
Generates a knot vector using the averaging technique.
There is more information about this routine in the LaTeX version.uk | the knot coefficients |
deg | the degree of the curve associated with the knot vector |
U | an average knot vector |