All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Related Functions | List of all members
MBSim::NurbsCurve Class Reference

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::MatVx4ctrlPnts () 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::Vecknot () 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...
 

Detailed Description

class that copies the nurbs++-library using the fmatvec as a basis-math-library

Todo:
: could/should be derived by function<Vec3(double)>

Member Function Documentation

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.

Parameters
Qwthe 3D points to interpolate (wrapped around)
ubthe parametric values vector
Ucthe knot vector computed using knotAveragingClosed
dthe degree of the closed curve
Warning
The number of points to interpolate must be greater than the degree specified for the curve. Uc must be compatible with the values given for Q.n(), ub.n().
Author
Alejandro Frangi
Date
13 July, 1998

Friends And Related Function Documentation

void knotAveraging ( const Vec uk,
int  deg,
Vec U 
)
related

Generates a knot vector using the averaging technique.

There is more information about this routine in the LaTeX version.
Parameters
ukthe knot coefficients
degthe degree of the curve associated with the knot vector
Uan average knot vector
Author
Philippe Lavoie
Date
24 January, 1997

The documentation for this class was generated from the following files:

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML