#include <nurbs.h>
Inheritance diagram for PLib::NurbsCurve< T, N >:
Public Member Functions | |
NurbsCurve (const NurbsCurve< T, N > &nurb) | |
NurbsCurve (const Vector< HPoint_nD< T, N > > &P1, const Vector< T > &U1, int deg=3) | |
NurbsCurve (const Vector< Point_nD< T, N > > &P1, const Vector< T > &W, const Vector< T > &U1, int deg=3) | |
int | degree () const |
const Vector< HPoint_nD< T, N > > & | ctrlPnts () const |
const HPoint_nD< T, N > | ctrlPnts (int i) const |
const Vector< T > & | knot () const |
T | knot (int i) const |
void | resize (int n, int Deg) |
virtual void | reset (const Vector< HPoint_nD< T, N > > &P1, const Vector< T > &U1, int deg) |
virtual NurbsCurve & | operator= (const NurbsCurve< T, N > &) |
virtual HPoint_nD< T, N > | operator() (T u) const |
HPoint_nD< T, N > | hpointAt (T u) const |
HPoint_nD< T, N > | hpointAt (T u, int span) const |
void | deriveAtH (T u, int, Vector< HPoint_nD< T, N > > &) const |
void | deriveAt (T u, int, Vector< Point_nD< T, N > > &) const |
void | deriveAtH (T u, int, int, Vector< HPoint_nD< T, N > > &) const |
void | deriveAt (T u, int, int, Vector< Point_nD< T, N > > &) const |
Point_nD< T, N > | derive3D (T u, int d) const |
HPoint_nD< T, N > | derive (T u, int d) const |
Point_nD< T, N > | normal (T u, const Point_nD< T, N > &v) const |
HPoint_nD< T, N > | firstD (T u) const |
HPoint_nD< T, N > | firstD (T u, int span) const |
Point_nD< T, N > | firstDn (T u) const |
Point_nD< T, N > | firstDn (T u, int span) const |
T | basisFun (T u, int i, int p=-1) const |
void | basisFuns (T u, int span, Vector< T > &N) const |
void | dersBasisFuns (int n, T u, int span, Matrix< T > &N) const |
T | minKnot () const |
T | maxKnot () const |
int | findSpan (T u) const |
void | findMultSpan (T u, int &r, int &s) const |
int | findMult (int r) const |
int | findKnot (T u) const |
T | getRemovalBnd (int r, int s) const |
void | removeKnot (int r, int s, int num) |
void | removeKnotsBound (const Vector< T > &ub, Vector< T > &ek, T E) |
int | knotInsertion (T u, int r, NurbsCurve< T, N > &nc) |
void | refineKnotVector (const Vector< T > &X) |
void | refineKnotVectorClosed (const Vector< T > &X) |
void | mergeKnotVector (const Vector< T > &Um) |
void | clamp () |
void | unclamp () |
int | leastSquares (const Vector< Point_nD< T, N > > &Q, int degC, int n) |
int | leastSquares (const Vector< Point_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub) |
int | leastSquaresH (const Vector< HPoint_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub) |
int | leastSquares (const Vector< Point_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub, const Vector< T > &knot) |
int | leastSquaresH (const Vector< HPoint_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub, const Vector< T > &knot) |
int | leastSquaresClosed (const Vector< Point_nD< T, N > > &Q, int degC, int n) |
int | leastSquaresClosed (const Vector< Point_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub) |
int | leastSquaresClosedH (const Vector< HPoint_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub) |
int | leastSquaresClosed (const Vector< Point_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub, const Vector< T > &knot) |
int | leastSquaresClosedH (const Vector< HPoint_nD< T, N > > &Q, int degC, int n, const Vector< T > &ub, const Vector< T > &knot) |
void | globalApproxErrBnd (Vector< Point_nD< T, N > > &Q, int deg, T E) |
void | globalApproxErrBnd (Vector< Point_nD< T, N > > &Q, Vector< T > &ub, int deg, T E) |
void | globalApproxErrBnd2 (Vector< Point_nD< T, N > > &Q, int degC, T E) |
void | globalApproxErrBnd3 (Vector< Point_nD< T, N > > &Q, int degC, T E) |
void | globalApproxErrBnd3 (Vector< Point_nD< T, N > > &Q, const Vector< T > &ub, int degC, T E) |
void | globalInterp (const Vector< Point_nD< T, N > > &Q, int d) |
void | globalInterp (const Vector< Point_nD< T, N > > &Q, const Vector< T > &ub, int d) |
void | globalInterpH (const Vector< HPoint_nD< T, N > > &Q, int d) |
void | globalInterpH (const Vector< HPoint_nD< T, N > > &Q, const Vector< T > &U, int d) |
void | globalInterpH (const Vector< HPoint_nD< T, N > > &Q, const Vector< T > &ub, const Vector< T > &U, int d) |
void | globalInterpClosed (const Vector< Point_nD< T, N > > &Qw, int d) |
void | globalInterpClosed (const Vector< Point_nD< T, N > > &Qw, const Vector< T > &ub, int d) |
void | globalInterpClosedH (const Vector< HPoint_nD< T, N > > &Qw, int d) |
void | globalInterpClosedH (const Vector< HPoint_nD< T, N > > &Qw, const Vector< T > &U, int d) |
void | globalInterpClosedH (const Vector< HPoint_nD< T, N > > &Qw, const Vector< T > &ub, const Vector< T > &U, int d) |
void | globalInterpClosed (const Vector< Point_nD< T, N > > &Qw, const Vector< T > &ub, const Vector< T > &Uc, int d) |
void | globalInterpD (const Vector< Point_nD< T, N > > &Q, const Vector< Point_nD< T, N > > &D, int d, int unitD, T a=1.0) |
void | projectTo (const Point_nD< T, N > &p, T guess, T &u, Point_nD< T, N > &r, T e1=0.001, T e2=0.001, int maxTry=100) const |
T | length (T eps=0.001, int n=100) const |
T | lengthIn (T us, T ue, T eps=0.001, int n=100) const |
T | lengthF (T) const |
T | lengthF (T, int) const |
void | makeCircle (const Point_nD< T, N > &O, const Point_nD< T, N > &X, const Point_nD< T, N > &Y, T r, double as, double ae) |
void | makeCircle (const Point_nD< T, N > &O, T r, double as, double ae) |
void | makeCircle (const Point_nD< T, N > &O, T r) |
void | makeLine (const Point_nD< T, N > &P0, const Point_nD< T, N > &P1, int d) |
virtual void | degreeElevate (int t) |
void | decompose (NurbsCurveArray< T, N > &c) const |
void | decomposeClosed (NurbsCurveArray< T, N > &c) const |
int | splitAt (T u, NurbsCurve< T, N > &cl, NurbsCurve< T, N > &cu) const |
int | mergeOf (const NurbsCurve< T, N > &cl, const NurbsCurve< T, N > &cu) |
void | transform (const MatrixRT< T > &A) |
void | modCP (int i, const HPoint_nD< T, N > &a) |
void | modCPby (int i, const HPoint_nD< T, N > &a) |
virtual void | modKnot (const Vector< T > &knotU) |
int | movePoint (T u, const Point_nD< T, N > &delta) |
int | movePoint (T u, const BasicArray< Point_nD< T, N > > &delta) |
int | movePoint (const BasicArray< T > &ur, const BasicArray< Point_nD< T, N > > &D) |
int | movePoint (const BasicArray< T > &ur, const BasicArray< Point_nD< T, N > > &D, const BasicArray_INT &Dr, const BasicArray_INT &Dk) |
int | movePoint (const BasicArray< T > &ur, const BasicArray< Point_nD< T, N > > &D, const BasicArray_INT &Dr, const BasicArray_INT &Dk, const BasicArray_INT &fixCP) |
void | setTangent (T u, const Point_nD< T, N > &T0) |
void | setTangentAtEnd (const Point_nD< T, N > &T0, const Point_nD< T, N > &T1) |
int | read (const char *) |
int | write (const char *) const |
virtual int | read (ifstream &fin) |
int | write (ofstream &fout) const |
int | writePS (const char *, int cp=0, T magFact=T(-1), T dash=T(5), bool bOpen=true) const |
int | writePSp (const char *, const Vector< Point_nD< T, N > > &, const Vector< Point_nD< T, N > > &, int cp=0, T magFact=0.0, T dash=5.0, bool bOpen=true) const |
int | writeVRML (ostream &fout, T radius, int K, const Color &color, int Nu, int Nv, T u_s, T u_e) const |
int | writeVRML (const char *filename, T radius, int K, const Color &color, int Nu, int Nv, T u_s, T u_e) const |
int | writeVRML (const char *filename, T radius=1, int K=5, const Color &color=whiteColor, int Nu=20, int Nv=20) const |
int | writeVRML (ostream &fout, T radius=1, int K=5, const Color &color=whiteColor, int Nu=20, int Nv=20) const |
int | writeVRML97 (const char *filename, T radius, int K, const Color &color, int Nu, int Nv, T u_s, T u_e) const |
int | writeVRML97 (ostream &fout, T radius, int K, const Color &color, int Nu, int Nv, T u_s, T u_e) const |
int | writeVRML97 (const char *filename, T radius=1, int K=5, const Color &color=whiteColor, int Nu=20, int Nv=20) const |
int | writeVRML97 (ostream &fout, T radius=1, int K=5, const Color &color=whiteColor, int Nu=20, int Nv=20) const |
int | writeDisplayLINE (const char *filename, int iNu, const Color &color=blueColor, T fA=1) const |
int | writeDisplayLINE (const char *filename, const Color &color, int iNu, T u_s, T u_e) const |
void | drawImg (Image_UBYTE &Img, unsigned char color=255, T step=0.01) |
void | drawImg (Image_Color &Img, const Color &color, T step=0.01) |
void | drawAaImg (Image_Color &Img, const Color &color, int precision=3, int alpha=1) |
void | drawAaImg (Image_Color &Img, const Color &color, const NurbsCurve< T, 3 > &profile, int precision=3, int alpha=1) |
NurbsSurface< T, 3 > | drawAaImg (Image_Color &Img, const Color &color, const NurbsCurve< T, 3 > &profile, const NurbsCurve< T, 3 > &scaling, int precision=3, int alpha=1) |
BasicList< Point_nD< T, N > > | tesselate (T tolerance, BasicList< T > *uk) const |
template<> | |
Point_nD< double, 2 > | normal (double u, const Point_nD< double, 2 > &v) const |
template<> | |
int | writeVRML (const char *filename, double radius, int K, const Color &color, int Nu, int Nv, double u_s, double u_e) const |
template<> | |
int | writeVRML97 (const char *filename, double radius, int K, const Color &color, int Nu, int Nv, double u_s, double u_e) const |
template<> | |
int | writeVRML (ostream &fout, double radius, int K, const Color &color, int Nu, int Nv, double u_s, double u_e) const |
template<> | |
int | writeVRML97 (ostream &fout, double radius, int K, const Color &color, int Nu, int Nv, double u_s, double u_e) const |
template<> | |
void | drawAaImg (Image_Color &Img, const Color &color, int precision, int alpha) |
template<> | |
Point_nD< float, 2 > | normal (float u, const Point_nD< float, 2 > &v) const |
template<> | |
void | makeCircle (const Point_nD< float, 2 > &O, float r, double as, double ae) |
template<> | |
int | writeVRML (const char *filename, float radius, int K, const Color &color, int Nu, int Nv, float u_s, float u_e) const |
template<> | |
int | writeVRML97 (const char *filename, float radius, int K, const Color &color, int Nu, int Nv, float u_s, float u_e) const |
template<> | |
int | writeVRML (ostream &fout, float radius, int K, const Color &color, int Nu, int Nv, float u_s, float u_e) const |
template<> | |
int | writeVRML97 (ostream &fout, float radius, int K, const Color &color, int Nu, int Nv, float u_s, float u_e) const |
template<> | |
void | drawAaImg (Image_Color &Img, const Color &color, int precision, int alpha) |
Protected Attributes | |
Vector< HPoint_nD< T, N > > | P |
Vector< T > | U |
int | deg_ |
Friends | |
HPoint_nD< T, N > | C (T u, const NurbsCurve< T, N > &nurb) |
Point_nD< T, N > | Cp (T u, const NurbsCurve< T, N > &nurb) |
void | generateCompatibleCurves (NurbsCurveArray< T, N > &ca) |
This class is used to represent and manipulate NURBS curve. The curves are composed of points in 4D. They can have any degree and have any number of control points.
|
< a reference to one of the control points
|
|
< a reference to the vector of control points
|
|
< a reference to the degree of the curve
|
|
abstract function
Implements PLib::ParaCurve< T, N >. |
|
abstract function
Implements PLib::ParaCurve< T, N >. |
|
abstract function
Implements PLib::ParaCurve< T, N >. |
|
< calls operator()
Reimplemented from PLib::ParaCurve< T, N >. |
|
< the i-th knot
|
|
< a reference to the vector of knots
|
|
< the maximal value for the knot vector
Implements PLib::ParaCurve< T, N >. |
|
the minimal value for the knot vector
Implements PLib::ParaCurve< T, N >. |
|
abstract function Implements PLib::ParaCurve< T, N >. |
|
a function interface to operator()
|
|
returns the curvePoint in 3D
|