|
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 |