MFEM v2.0
|
#include <nurbs.hpp>
Public Member Functions | |
NURBSPatch (istream &input) | |
NURBSPatch (KnotVector *kv0, KnotVector *kv1, int dim_) | |
NURBSPatch (KnotVector *kv0, KnotVector *kv1, KnotVector *kv2, int dim_) | |
NURBSPatch (Array< KnotVector * > &kv, int dim_) | |
~NURBSPatch () | |
void | Print (ostream &out) |
void | DegreeElevate (int dir, int t) |
void | KnotInsert (int dir, const KnotVector &knot) |
void | KnotInsert (int dir, const Vector &knot) |
void | KnotInsert (Array< KnotVector * > &knot) |
void | DegreeElevate (int t) |
void | UniformRefinement () |
KnotVector * | GetKV (int i) |
double & | operator() (int i, int j, int l) |
const double & | operator() (int i, int j, int l) const |
double & | operator() (int i, int j, int k, int l) |
const double & | operator() (int i, int j, int k, int l) const |
void | FlipDirection (int dir) |
void | SwapDirections (int dir1, int dir2) |
void | Rotate3D (double normal[], double angle) |
int | MakeUniformDegree () |
Static Public Member Functions | |
static void | Get3DRotationMatrix (double n[], double angle, double r, DenseMatrix &T) |
Protected Member Functions | |
void | swap (NURBSPatch *np) |
int | SetLoopDirection (int dir) |
double & | operator() (int i, int j) |
const double & | operator() (int i, int j) const |
void | init (int dim_) |
NURBSPatch (NURBSPatch *parent, int dir, int Order, int NCP) | |
Protected Attributes | |
int | ni |
int | nj |
int | nk |
int | Dim |
double * | data |
Array< KnotVector * > | kv |
int | sd |
int | nd |
Friends | |
NURBSPatch * | Interpolate (NURBSPatch &p1, NURBSPatch &p2) |
NURBSPatch * | Revolve3D (NURBSPatch &patch, double n[], double ang, int times) |
NURBSPatch::NURBSPatch | ( | NURBSPatch * | parent, |
int | dir, | ||
int | Order, | ||
int | NCP | ||
) | [protected] |
Definition at line 345 of file nurbs.cpp.
References Dim, init(), kv, Array< T >::SetSize(), and Array< T >::Size().
Referenced by DegreeElevate(), KnotInsert(), and SwapDirections().
NURBSPatch::NURBSPatch | ( | istream & | input | ) |
NURBSPatch::NURBSPatch | ( | KnotVector * | kv0, |
KnotVector * | kv1, | ||
int | dim_ | ||
) |
Definition at line 319 of file nurbs.cpp.
References init(), kv, and Array< T >::SetSize().
NURBSPatch::NURBSPatch | ( | KnotVector * | kv0, |
KnotVector * | kv1, | ||
KnotVector * | kv2, | ||
int | dim_ | ||
) |
Definition at line 327 of file nurbs.cpp.
References init(), kv, and Array< T >::SetSize().
NURBSPatch::NURBSPatch | ( | Array< KnotVector * > & | kv, |
int | dim_ | ||
) |
Definition at line 337 of file nurbs.cpp.
References init(), kv, Array< T >::SetSize(), and Array< T >::Size().
NURBSPatch::~NURBSPatch | ( | ) |
Definition at line 380 of file nurbs.cpp.
References data, kv, and Array< T >::Size().
void NURBSPatch::DegreeElevate | ( | int | dir, |
int | t | ||
) |
Definition at line 610 of file nurbs.cpp.
References KnotVector::GetElements(), KnotVector::GetNCP(), KnotVector::GetNE(), KnotVector::GetOrder(), kv, mfem_error(), NURBSPatch(), SetLoopDirection(), Array< T >::Size(), and swap().
Referenced by DegreeElevate(), KnotInsert(), and MakeUniformDegree().
void NURBSPatch::DegreeElevate | ( | int | t | ) |
Definition at line 601 of file nurbs.cpp.
References DegreeElevate(), kv, and Array< T >::Size().
void NURBSPatch::FlipDirection | ( | int | dir | ) |
Definition at line 827 of file nurbs.cpp.
References kv, nd, and SetLoopDirection().
void NURBSPatch::Get3DRotationMatrix | ( | double | n[], |
double | angle, | ||
double | r, | ||
DenseMatrix & | T | ||
) | [static] |
Definition at line 859 of file nurbs.cpp.
References DenseMatrix::SetSize().
Referenced by Revolve3D(), and Rotate3D().
KnotVector* NURBSPatch::GetKV | ( | int | i | ) | [inline] |
void NURBSPatch::init | ( | int | dim_ | ) | [protected] |
Definition at line 260 of file nurbs.cpp.
References data, Dim, kv, mfem_error(), nd, ni, nj, nk, sd, and Array< T >::Size().
Referenced by NURBSPatch().
void NURBSPatch::KnotInsert | ( | int | dir, |
const Vector & | knot | ||
) |
Definition at line 515 of file nurbs.cpp.
References KnotVector::findKnotSpan(), KnotVector::GetElements(), KnotVector::GetNCP(), KnotVector::GetOrder(), kv, mfem_error(), NURBSPatch(), SetLoopDirection(), Vector::Size(), Array< T >::Size(), and swap().
void NURBSPatch::KnotInsert | ( | int | dir, |
const KnotVector & | knot | ||
) |
Definition at line 490 of file nurbs.cpp.
References DegreeElevate(), KnotVector::Difference(), GetKV(), KnotVector::GetOrder(), kv, mfem_error(), Vector::Size(), and Array< T >::Size().
Referenced by Interpolate(), KnotInsert(), and UniformRefinement().
void NURBSPatch::KnotInsert | ( | Array< KnotVector * > & | knot | ) |
Definition at line 482 of file nurbs.cpp.
References KnotInsert(), kv, and Array< T >::Size().
int NURBSPatch::MakeUniformDegree | ( | ) |
Definition at line 920 of file nurbs.cpp.
References DegreeElevate(), kv, and Array< T >::Size().
double & NURBSPatch::operator() | ( | int | i, |
int | j, | ||
int | k, | ||
int | l | ||
) | [inline] |
double & NURBSPatch::operator() | ( | int | i, |
int | j | ||
) | [inline, protected] |
const double & NURBSPatch::operator() | ( | int | i, |
int | j | ||
) | const [inline, protected] |
const double & NURBSPatch::operator() | ( | int | i, |
int | j, | ||
int | k, | ||
int | l | ||
) | const [inline] |
double & NURBSPatch::operator() | ( | int | i, |
int | j, | ||
int | l | ||
) | [inline] |
const double & NURBSPatch::operator() | ( | int | i, |
int | j, | ||
int | l | ||
) | const [inline] |
void NURBSPatch::Print | ( | ostream & | out | ) |
Definition at line 391 of file nurbs.cpp.
References data, Dim, kv, Array< T >::Print(), and Array< T >::Size().
void NURBSPatch::Rotate3D | ( | double | normal[], |
double | angle | ||
) |
Definition at line 898 of file nurbs.cpp.
References data, Dim, Get3DRotationMatrix(), kv, mfem_error(), DenseMatrix::Mult, Vector::SetData(), and Array< T >::Size().
int NURBSPatch::SetLoopDirection | ( | int | dir | ) | [protected] |
Definition at line 413 of file nurbs.cpp.
References Dim, mfem_error(), nd, ni, nj, nk, and sd.
Referenced by DegreeElevate(), FlipDirection(), KnotInsert(), and SwapDirections().
void NURBSPatch::swap | ( | NURBSPatch * | np | ) | [protected] |
Definition at line 356 of file nurbs.cpp.
References Array< T >::Copy(), data, Dim, kv, ni, nj, nk, Array< T >::SetSize(), and Array< T >::Size().
Referenced by DegreeElevate(), KnotInsert(), and SwapDirections().
void NURBSPatch::SwapDirections | ( | int | dir1, |
int | dir2 | ||
) |
Definition at line 837 of file nurbs.cpp.
References Array< T >::Copy(), Dim, kv, mfem_error(), nd, NURBSPatch(), SetLoopDirection(), and swap().
void NURBSPatch::UniformRefinement | ( | ) |
Definition at line 472 of file nurbs.cpp.
References KnotInsert(), kv, and Array< T >::Size().
NURBSPatch* Interpolate | ( | NURBSPatch & | p1, |
NURBSPatch & | p2 | ||
) | [friend] |
NURBSPatch* Revolve3D | ( | NURBSPatch & | patch, |
double | n[], | ||
double | ang, | ||
int | times | ||
) | [friend] |
double* NURBSPatch::data [protected] |
Definition at line 73 of file nurbs.hpp.
Referenced by init(), Interpolate(), NURBSPatch(), operator()(), Print(), Revolve3D(), Rotate3D(), swap(), and ~NURBSPatch().
int NURBSPatch::Dim [protected] |
Definition at line 72 of file nurbs.hpp.
Referenced by init(), Interpolate(), NURBSPatch(), operator()(), Print(), Revolve3D(), Rotate3D(), SetLoopDirection(), swap(), and SwapDirections().
Array<KnotVector *> NURBSPatch::kv [protected] |
Definition at line 75 of file nurbs.hpp.
Referenced by DegreeElevate(), FlipDirection(), GetKV(), init(), Interpolate(), KnotInsert(), MakeUniformDegree(), NURBSPatch(), Print(), Revolve3D(), Rotate3D(), swap(), SwapDirections(), UniformRefinement(), and ~NURBSPatch().
int NURBSPatch::nd [protected] |
Definition at line 77 of file nurbs.hpp.
Referenced by FlipDirection(), init(), operator()(), SetLoopDirection(), and SwapDirections().
int NURBSPatch::ni [protected] |
Definition at line 72 of file nurbs.hpp.
Referenced by init(), operator()(), SetLoopDirection(), and swap().
int NURBSPatch::nj [protected] |
Definition at line 72 of file nurbs.hpp.
Referenced by init(), operator()(), SetLoopDirection(), and swap().
int NURBSPatch::nk [protected] |
Definition at line 72 of file nurbs.hpp.
Referenced by init(), operator()(), SetLoopDirection(), and swap().
int NURBSPatch::sd [protected] |
Definition at line 77 of file nurbs.hpp.
Referenced by init(), operator()(), and SetLoopDirection().