#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<> | |
| void | makeCircle (const Point_nD< double, 2 > &O, double r, double as, double ae) |
| 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
|
1.4.6