hp2FEM  0.1
Public Member Functions | Protected Member Functions | Protected Attributes
NURBSLine Class Reference

Class NURBSLine. More...

#include <NURBSLine.h>

Collaboration diagram for NURBSLine:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 NURBSLine ()
 Default constructor.
 ~NURBSLine ()
 Destructor.
void Save (FILE *File)
 Writes class information to a binary file. The current object state can be completely recovered when applying the Restore() operation.
void Restore (FILE *File)
 Restores class data (written using Save()) from a binary file.
void Read (FILE *File)
 Reads class data from an ASCII file in FEAWEB format.
void Print (FILE *File=stdout)
 Prints class information in an ASCII file.
void Free ()
 Releases the memory allocated for the class attributes.
void SetNumber (long number)
 Sets the external number of this curve.
long GetNumber ()
 Returns the external number of this curve.
void SetOrder (long orderu)
 Sets the order of the NURBS basis functions.
void GetOrder (long &orderu)
 Returns the order of the NURBS basis functions.
void SetNumberOfCPs (long NCPu)
 Sets the number of control points and adjust the size of the correspondent data structures.
void GetNumberOfCPs (long &NCPu)
 Returns the number of control points.
void SetKnotVector (BuiltInArray< double > &KnotU)
 Sets the knot vector using external values.
void SetOpenUniformKnotVector ()
 Sets the knot vector as open uniform.
double * GetCPCoords (long CpU)
 Returns a pointer to the coordinates of the control point Cpu.
double GetWeight (long CpU)
 Returns the weight of the control point Cp U.
void SetCPData (BuiltInArray< double > &X, BuiltInArray< double > &Y, BuiltInArray< double > &W)
 Sets the data of all control points.
void GetCPData (BuiltInArray< double > &X, BuiltInArray< double > &Y, BuiltInArray< double > &W)
 Returns the data of all control points.
void SetCPData (long CpU, Variable_Defs_E VarType, double Value)
 Sets the data of the control point Cpu.
double EvalRBSplineBasisFunction (long CpU, double u)
 Returns the value of the rational basis function CpU at the parametric coordinate u.
void SetParametricCoordinates (double *ParametricCoordinates, long *const BoundaryNodes, long NumNodes, Nodes &NN)
 Finds the parametric coordinates of the nodes on this curve.
void SetParametricCoordinates (double &u, double *pCoordsi)
 Finds the parametric coordinate of a point on the curve.

Protected Member Functions

void EvalRBSplineBasisFunctions (double u)
 Evaluate rational basis functions and their derivatives at the parametric coordinate u and stores those values in class' attributes.

Protected Attributes

long OrderU
 Order of this curve. @.
BuiltInArray< double > KnotVectU
 Knot vector. @ ## begin NURBSLine::KnotVectU%39D9ED570253.attr preserve=no protected: BuiltInArray<double> {UA} ()
BuiltInArray< double > Weights
 Weights of control points. @ ## begin NURBSLine::Weights%39D9ED720139.attr preserve=no protected: BuiltInArray<double> {UA} ()
BuiltInArray< double > CoordsX
 X-coordinates of control points. @ ## begin NURBSLine::CoordsX%39D9ED8D03D7.attr preserve=no protected: BuiltInArray<double> {UA} ()
BuiltInArray< double > CoordsY
 Y-coordinates of control points. @ ## begin NURBSLine::CoordsY%39D9ED970092.attr preserve=no protected: BuiltInArray<double> {UA} ()

Detailed Description

Class NURBSLine.


Member Function Documentation

void NURBSLine::Read ( FILE *  File)

Reads class data from an ASCII file in FEAWEB format.

See the document "FEAWEB ASCII File Format" for details.

void NURBSLine::SetKnotVector ( BuiltInArray< double > &  KnotU)

Sets the knot vector using external values.

The purpose of this operation is to allow the specification of non-uniform knot vectors. Observe that the values of the knot vector must be normalized by its maximum value.

void NURBSLine::SetParametricCoordinates ( double *  ParametricCoordinates,
long *const  BoundaryNodes,
long  NumNodes,
Nodes NN 
)

Finds the parametric coordinates of the nodes on this curve.

This operation assumes that the list of nodes is ordered. If its true it is possible to approximate the parametric coordinate linearly. Then this estimative is refined by Newton-Raphson iterations. Note, however, that the linear approximation is not mandatory and the parametric coordinates can be found only applying Newton-Raphson.


Member Data Documentation

BuiltInArray<double> NURBSLine::CoordsX [protected]

X-coordinates of control points. @ ## begin NURBSLine::CoordsX%39D9ED8D03D7.attr preserve=no protected: BuiltInArray<double> {UA} ()

## Attribute: CoordsX%39D9ED8D03D7

BuiltInArray<double> NURBSLine::CoordsY [protected]

Y-coordinates of control points. @ ## begin NURBSLine::CoordsY%39D9ED970092.attr preserve=no protected: BuiltInArray<double> {UA} ()

## Attribute: CoordsY%39D9ED970092

BuiltInArray<double> NURBSLine::KnotVectU [protected]

Knot vector. @ ## begin NURBSLine::KnotVectU%39D9ED570253.attr preserve=no protected: BuiltInArray<double> {UA} ()

## Attribute: KnotVectU%39D9ED570253

long NURBSLine::OrderU [protected]

Order of this curve. @.

## Attribute: OrderU%3728AC55019B

the In the notation of [DF_Rogers1990 pag. 336], order=degree+1. @ ## begin NURBSLine::OrderU%3728AC55019B.attr preserve=no protected: long {VA} (0)

BuiltInArray<double> NURBSLine::Weights [protected]

Weights of control points. @ ## begin NURBSLine::Weights%39D9ED720139.attr preserve=no protected: BuiltInArray<double> {UA} ()

## Attribute: Weights%39D9ED720139


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Friends Defines