mbsim
4.0.0
MBSim Kernel
|
class that copies the nurbs++-library using the fmatvec as a basis-math-library More...
#include <nurbs_curve.h>
Public Types | |
enum | Method { equallySpaced = 0 , chordLength } |
Public Member Functions | |
NurbsCurve ()=default | |
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::VecV & | knot () const |
a reference to the vector of knots | |
double | knot (int i) const |
the i-th knot | |
const fmatvec::VecV | getuVec () const |
a reference to the parametric points | |
void | setKnot (const fmatvec::VecV &U_) |
void | setCtrlPnts (const fmatvec::MatVx4 &P_) |
void | setDegree (int deg_) |
void | setu (const fmatvec::VecV &u_) |
void | resize (int n, int Deg) |
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 fmatvec::MatVx4 &Qw, int d, Method method=chordLength) |
void | globalInterpH (const fmatvec::MatVx4 &Qw, const fmatvec::VecV &ub, const fmatvec::VecV &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 &Qw) |
void | globalInterpClosedH (const fmatvec::MatVx4 &Qw, int d, Method method=chordLength) |
void | globalInterpClosedH (const fmatvec::MatVx4 &Qw, const fmatvec::VecV &ub, const fmatvec::VecV &Uc, int d, bool updateLater=false) |
void | modCP (int i, const fmatvec::HPoint< 3 > &a) |
int | findSpan (double u) const |
Protected Attributes | |
fmatvec::MatVx4 | P |
fmatvec::Vector< fmatvec::Ref, int > | Aipiv |
fmatvec::SquareMatrix< fmatvec::Ref, double > | ALU |
fmatvec::VecV | u |
fmatvec::VecV | U |
int | deg {0} |
Related Functions | |
(Note that these are not member functions.) | |
void | knotAveraging (const VecV &uk, int deg, VecV &U) |
Generates a knot vector using the averaging technique. More... | |
class that copies the nurbs++-library using the fmatvec as a basis-math-library
|
related |
Generates a knot vector using the averaging technique.
The technique is as follows:
where \(n\) is the size of the \(\bar{u}\) knot coefficient vector, \(m=n+deg+1\) is the size of the knot vector and $deg$ is the degree of the curve.
uk | the knot coefficients |
deg | the degree of the curve associated with the knot vector |
U | an average knot vector |