PLib::ParaCurve< T, N > Class Template Reference

An abstract parametric curve class. More...

#include <curve.h>

Inheritance diagram for PLib::ParaCurve< T, N >:

PLib::NurbsCurve< T, N > PLib::NurbsCurve< float, 3 > PLib::NurbsCurve< float, N > PLib::NurbsCurveSP< T, N > PLib::NurbsCurveSP< float, 3 > PLib::SimpleNurbsCurveGL PLib::NurbsCurveGL List of all members.

Public Member Functions

virtual HPoint_nD< T, N > operator() (T u) const =0
HPoint_nD< T, N > hpointAt (T u) const
Point_nD< T, N > pointAt (T u) const
virtual HPoint_nD< T, N > hpointAt (T u, int span) const =0
Point_nD< T, N > pointAt (T u, int span)
virtual void deriveAtH (T u, int, Vector< HPoint_nD< T, N > > &) const =0
virtual void deriveAt (T u, int, Vector< Point_nD< T, N > > &) const =0
virtual T minKnot () const =0
virtual T maxKnot () const =0
virtual T minDist2 (const Point_nD< T, N > &p, T &guess, T error=0.0001, T s=0.2, int sep=9, int maxIter=10, T um=-1, T uM=-1) const
virtual Point_nD< T, N > minDistY (T y, T &guessU, T error=0.0001, T s=-1, int sep=9, int maxIter=10, T um=-1, T uM=-1) const
virtual Point_nD< T, N > minDistX (T y, T &guessU, T error=0.0001, T s=-1, int sep=9, int maxIter=10, T um=-1, T uM=-1) const
virtual Point_nD< T, N > minDistZ (T y, T &guessU, T error=0.0001, T s=-1, int sep=9, int maxIter=10, T um=-1, T uM=-1) const
virtual T extremum (int findMin, CoordinateType coord, T minDu=0.0001, int sep=9, int maxIter=10, T um=-1, T uM=-1) const

Detailed Description

template<class T, int N>
class PLib::ParaCurve< T, N >

An abstract parametric curve class.

This is an abstract class used as a basis for NURBS and HNURBS curves.

Author:
Philippe Lavoie
Date:
4 Oct. 1996


Member Function Documentation

template<class T, int N>
virtual void PLib::ParaCurve< T, N >::deriveAt u,
int  ,
Vector< Point_nD< T, N > > & 
const [pure virtual]
 

abstract function

Implemented in PLib::NurbsCurve< T, N >.

template<class T, int N>
virtual void PLib::ParaCurve< T, N >::deriveAtH u,
int  ,
Vector< HPoint_nD< T, N > > & 
const [pure virtual]
 

abstract function

Implemented in PLib::NurbsCurve< T, N >.

template<class T, int N>
T PLib::ParaCurve< T, N >::extremum int  findMin,
CoordinateType  coord,
minDu = 0.0001,
int  sep = 9,
int  maxIter = 10,
um = -1,
uM = -1
const [virtual]
 

Finds the minimal or maximal value on the curve of the x,y or z coordinate.

Finds the minimal or maximal value on the curve of the x,y or z coordinate.

Parameters:
findMin a flag indicatinf if we're looking for the minimal value or the maximal value.
coord Which coordinate to find: x,y or z.
minDu The minimal distance between iterations in the parametric space.
sep the number of points initially looked at to find a minimal distance
maxiter the maximal number of iterations
um the minimal parametric value
uM the maximal parametric value
Returns:
The minimal value of z along the curve
Warning:
It has not been tested with closed loop curves.
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T, int N>
virtual HPoint_nD<T,N> PLib::ParaCurve< T, N >::hpointAt u,
int  span
const [pure virtual]
 

abstract function

Implemented in PLib::NurbsCurve< T, N >.

template<class T, int N>
HPoint_nD<T,N> PLib::ParaCurve< T, N >::hpointAt u  )  const [inline]
 

Wrapper to the operator() function.

Reimplemented in PLib::NurbsCurve< T, N >.

template<class T, int N>
virtual T PLib::ParaCurve< T, N >::maxKnot  )  const [pure virtual]
 

abstract function

Implemented in PLib::NurbsCurve< T, N >, PLib::NurbsCurve< float, N >, and PLib::NurbsCurve< float, 3 >.

template<class T, int N>
T PLib::ParaCurve< T, N >::minDist2 const Point_nD< T, N > &  p,
T &  guess,
error = 0.0001,
s = 0.2,
int  sep = 9,
int  maxIter = 10,
um = -1,
uM = -1
const [virtual]
 

Find the minimal distance between a point and the curve.

This is an iterative method to find the closest point to a curve.

Parameters:
p the minimal distance from that point
guess a starting value for the parameter u, on exit this will be set to the value of the point on the curve closest to p.
error when iterations have an error smaller than this value, the function exits
s the size of the search in the parametric space.
sep the number of points initially looked at to find a minimal distance
maxiter the maximal number of iterations
um the minimal parametric value
uM the maximal parametric value
Returns:
The value of the minimal distance between p and the curve. The variable guess now holds the parametric value of the curve point closest to p.
Warning:
It has not been tested with closed loop curves.
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T, int N>
Point_nD< T, N > PLib::ParaCurve< T, N >::minDistX x,
T &  guessU,
error = 0.0001,
s = -1,
int  sep = 9,
int  maxIter = 10,
um = -1,
uM = -1
const [virtual]
 

Find the closest point on the curve to the x coordinate.

This is an iterative method to find the closest point on the curve to the x coordinate.

Parameters:
x the x coordinate to be close too.
guess a starting value for the parameter u, on exit this will be set to the value of the point on the curve closest to x.
error when iterations have an error smaller than this value, the function exits
s the size of the search in the parametric space.
sep the number of points initially looked at to find a minimal distance
maxiter the maximal number of iterations
um the minimal parametric value
uM the maximal parametric value
Returns:
The value of the minimal distance between p and the curve. The variable guess now holds the parametric value of the curve point closest to p.
Warning:
It has not been tested with closed loop curves.
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T, int N>
Point_nD< T, N > PLib::ParaCurve< T, N >::minDistY y,
T &  guessU,
error = 0.0001,
s = -1,
int  sep = 9,
int  maxIter = 10,
um = -1,
uM = -1
const [virtual]
 

Find the closest point on the curve to the y coordinate.

This is an iterative method to find the closest point on the curve to the y coordinate.

Parameters:
y the y coordinate to be close too.
guess a starting value for the parameter u, on exit this will be set to the value of the point on the curve closest to y.
error when iterations have an error smaller than this value, the function exits
s the size of the search in the parametric space.
sep the number of points initially looked at to find a minimal distance
maxiter the maximal number of iterations
um the minimal parametric value
uM the maximal parametric value
Returns:
The value of the minimal distance between p and the curve. The variable guess now holds the parametric value of the curve point closest to p.
Warning:
It has not been tested with closed loop curves.
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T, int N>
Point_nD< T, N > PLib::ParaCurve< T, N >::minDistZ z,
T &  guessU,
error = 0.0001,
s = -1,
int  sep = 9,
int  maxIter = 10,
um = -1,
uM = -1
const [virtual]
 

Find the closest point on the curve to the x coordinate.

This is an iterative method to find the closest point on the curve to the x coordinate.

Parameters:
z the x coordinate to be close too.
guess a starting value for the parameter u, on exit this will be set to the value of the point on the curve closest to x.
error when iterations have an error smaller than this value, the function exits
s the size of the search in the parametric space.
sep the number of points initially looked at to find a minimal distance
maxiter the maximal number of iterations
um the minimal parametric value
uM the maximal parametric value
Returns:
The value of the minimal distance between p and the curve. The variable guess now holds the parametric value of the curve point closest to p.
Warning:
It has not been tested with closed loop curves.
Author:
Philippe Lavoie
Date:
24 January 1997

template<class T, int N>
virtual T PLib::ParaCurve< T, N >::minKnot  )  const [pure virtual]
 

abstract function

Implemented in PLib::NurbsCurve< T, N >, PLib::NurbsCurve< float, N >, and PLib::NurbsCurve< float, 3 >.

template<class T, int N>
virtual HPoint_nD<T,N> PLib::ParaCurve< T, N >::operator() u  )  const [pure virtual]
 

abstract function

Implemented in PLib::NurbsCurve< T, N >.

template<class T, int N>
Point_nD<T,N> PLib::ParaCurve< T, N >::pointAt u,
int  span
[inline]
 

Projects the homogenouse point at u into normal space.

template<class T, int N>
Point_nD<T,N> PLib::ParaCurve< T, N >::pointAt u  )  const [inline]
 

Projects the homogenouse point at u into normal space.


The documentation for this class was generated from the following files:
Generated on Sat May 27 11:47:41 2006 for NURBS++ by  doxygen 1.4.6