hp2FEM
0.1
|
#include <NURBSLine.h>
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} () |
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.
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