Main Page | Class Hierarchy | Class List | File List | Class Members

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

A NURBS curve with surface point. More...

#include <nurbs_sp.h>

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

PLib::NurbsCurve< T, N > PLib::ParaCurve< T, N > PLib::NurbsCurveGL List of all members.

Public Member Functions

 NurbsCurveSP (const NurbsCurve< T, N > &nurb)
 NurbsCurveSP (const NurbsCurveSP< T, N > &nurb)
 NurbsCurveSP (const Vector< HPoint_nD< T, N > > &P1, const Vector< T > &U1, int degree=3)
 NurbsCurveSP (const Vector< Point_nD< T, N > > &P1, const Vector< T > &W, const Vector< T > &U1, int degree=3)
virtual void reset (const Vector< HPoint_nD< T, N > > &P1, const Vector< T > &U1, int degree)
virtual NurbsCurve< T, N > & operator= (const NurbsCurve< T, N > &a)
NurbsCurveSP< T, N > & operator= (const NurbsCurveSP< T, N > &a)
virtual void modKnot (const Vector< T > &knot)
virtual void removeKnot (int r, int s, int num)
virtual void removeKnotsBound (const Vector< T > &ub, Vector< T > &ek, T E)
virtual void refineKnotVector (const Vector< T > &X)
virtual void mergeKnotVector (const Vector< T > &Um)
virtual void knotInsertion (T u, int r, NurbsCurveSP< T, N > &nc)
virtual void degreeElevate (int t)
int read (ifstream &fin)
void modSurfCPby (int i, const HPoint_nD< T, N > &a)
void modSurfCP (int i, const HPoint_nD< T, N > &a)
void modOnlySurfCPby (int i, const HPoint_nD< T, N > &a)
void modOnlySurfCP (int i, const HPoint_nD< T, N > &a)
maxAt (int i) const
HPoint_nD< T, N > surfP (int i) const
void updateMaxU ()
int okMax ()

Protected Attributes

Vector< T > maxU
Vector< T > maxAt_

Detailed Description

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

A NURBS curve with surface point.

A Nurbs curve with surface point manipulators. This allows someone to modify the point on a curve for which a ControlPoint has maximal influence over it. This might provide a more intuitive method to modify a curve.

Author:
Philippe Lavoie
Date:
7 May, 1998


Member Function Documentation

template<class T, int N>
void PLib::NurbsCurveSP< T, N >::modOnlySurfCPby int  i,
const HPoint_nD< T, N > &  a
 

Move the surface point only.

Moves only the specified surface point. The other surface points normally affected by moving this point are {not} moved.

The point a is in the 4D homogenous space, but only the x,y,z value are used. The weight is not moved by this function.

Parameters:
i the surface point to move
a move that surface point by that amount.
Warning:
The degree of the curve must be of 3 or less.
Author:
Philippe Lavoie
Date:
7 June, 1998

template<class T, int N>
NurbsCurve< T, N > & PLib::NurbsCurveSP< T, N >::operator= const NurbsCurve< T, N > &  a  )  [inline, virtual]
 

The assignment operator for a NURBS curve.

Parameters:
curve the NURBS curve to copy
Returns:
A reference to itself
Warning:
The curve being copied must be valid, otherwise strange results might occur.
Author:
Philippe Lavoie
Date:
24 January 1997

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

template<class T, int N>
void PLib::NurbsCurveSP< T, N >::removeKnot int  r,
int  s,
int  num
[inline, virtual]
 

Removes an internal knot from a curve. This is A5.8 on p185 from the NURB book modified to not check for tolerance before removing the knot.

Parameters:
r the knot to remove
s the multiplicity of the knot
num the number of times to try to remove the knot
Warning:
r must be an internal knot.
Author:
Philippe Lavoie
Date:
24 January 1997

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

template<class T, int N>
void PLib::NurbsCurveSP< T, N >::removeKnotsBound const Vector< T > &  ub,
Vector< T > &  ek,
E
[inline, virtual]
 

Remove knots from a curve without exceeding an error bound.

For more information about the algorithm, see A9.9 on p429 of the NURB book.

Parameters:
ub the knot coefficients
ek the error after removing
Author:
Philippe Lavoie
Date:
24 January 1997

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

template<class T, int N>
void PLib::NurbsCurveSP< T, N >::reset const Vector< HPoint_nD< T, N > > &  P1,
const Vector< T > &  U1,
int  degree
[inline, virtual]
 

Resets a NURBS curve to new values.

Parameters:
P1 the new values for the control points
U1 the new values for the knot vector
Degree the new degree of the curve
Warning:
The size of P1,U1 and Degree must agree: P.n()+degree+1=U.n()
Author:
Philippe Lavoie
Date:
24 January 1997

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

template<class T, int N>
void PLib::NurbsCurveSP< T, N >::updateMaxU  ) 
 

Updates the basis value.

Updates the basis value at which a control point has maximal influence. It also finds where the control point has maximal influence.

Warning:
The degree of the curve must be of 3 or less.
Author:
Philippe Lavoie
Date:
7 May, 1998


The documentation for this class was generated from the following files:
Generated on Fri Dec 5 17:26:59 2003 for NURBS++ by doxygen 1.3.4