Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

xchen::TensorBlossom< dims, sp_dims > Class Template Reference

Tensor of piecewise blossoms (one in each direction), the diagonalization of which is NURB tensor manifold. More...

#include <TensorBlossom.H>

Inheritance diagram for xchen::TensorBlossom< dims, sp_dims >:

xchen::TensorManifold< dims, sp_dims > xchen::Model List of all members.

Public Methods

template<int from_sp_dims>  TensorBlossom (int mtd, SubMFType const *, SubMFType const *=0)
 Currently only construct a revolution(around y-axis) manifold in P3 and ruled manifold.

 TensorBlossom (int arg1,...)
 1st(2nd) arg is deg(sz)[dims-1], etc. Should use ControlMesh(), KnotVector() later.

 TensorBlossom (mesh_t const &mesh)
 Construct a Bezier manifold.

TensorBlossom & Transform (xchen::Transform const &trans)
 All sbd data will be reset.

knot_t & KnotVector ()
 Used to set control knot vector.

bool Insert (double u, int i=0)
 If non-periodic && valid u, insert into dir i; Else just return false.

bool IsPeriodicEnd (int i=0)
 Get periodic end for dir i.

void SetPeriodicEnd (int i=0, bool v=1)
 Set periodic end at dir i to v.Shoud call before set knot.

void SetUniformFloatingEndKnots ()
 Set to 0,1,... n, where n = pnts[i]+deg[i]-2.

void SetUniformOpenEndKnots ()
 Set to 0^(deg[i]), 1, ..., seg[i]-1, (seg[i])^(deg[i]).

IsoMFType GetSubTensorBlossom (double u, int=0)
 Get iso sub manifold at u along the given direction(2nd arg).

void RaiseDegree (int inc=1, int i=0)
 deg[i] += inc, without changing the actual NURB.

void DecVarity (double *u)
 Decrease varity of Blossom for all directions.

void DecVarity (double u, int i=0)
 Decrease direction i varity of Blossom via evaluation at u.

void Convert2FloatingEnd (int i)
 Convert periodic to floating end at direction i.

void Convert2Bzr (int i)
 Connvert to Bzr manifold at dir i.

void Convert2OpenEnd (int i)
 Connvert to open end condition at dir i.

void Convert2Bzr ()
 Connvert to Bzr manifold.

void Convert2OpenEnd ()
 Connvert to Bzr manifold.

void Convert2FloatingEnd ()
 Convert periodic to floating ends.

void Subdivide (int depth=1) const
 Subdivide 'depth' times.


Friends

class TensorBlossom
class glModel
struct generate_iso_functor
struct draw_iso_functor
ostream & operator<< (ostream &os, TensorBlossom const &rhs)

Detailed Description

template<int dims = 2, int sp_dims = 3>
class xchen::TensorBlossom< dims, sp_dims >

Tensor of piecewise blossoms (one in each direction), the diagonalization of which is NURB tensor manifold.


Constructor & Destructor Documentation

template<int dims, int sp_dims>
template<int from_sp_dims>
xchen::TensorBlossom< dims, sp_dims >::TensorBlossom int    mtd,
SubMFType const *   ,
SubMFType const *    = 0
[inline]
 

Currently only construct a revolution(around y-axis) manifold in P3 and ruled manifold.

template<int dims, int sp_dims>
xchen::TensorBlossom< dims, sp_dims >::TensorBlossom int    arg1,
...   
[inline]
 

1st(2nd) arg is deg(sz)[dims-1], etc. Should use ControlMesh(), KnotVector() later.

template<int dims, int sp_dims>
xchen::TensorBlossom< dims, sp_dims >::TensorBlossom mesh_t const &    mesh [inline]
 

Construct a Bezier manifold.


Member Function Documentation

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::Convert2Bzr   [inline]
 

Connvert to Bzr manifold.

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::Convert2Bzr int    i [inline]
 

Connvert to Bzr manifold at dir i.

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::Convert2FloatingEnd   [inline]
 

Convert periodic to floating ends.

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::Convert2FloatingEnd int    i [inline]
 

Convert periodic to floating end at direction i.

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::Convert2OpenEnd   [inline]
 

Connvert to Bzr manifold.

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::Convert2OpenEnd int    i [inline]
 

Connvert to open end condition at dir i.

template<int dims, int sp_dims>
void xchen::TensorBlossom< dims, sp_dims >::DecVarity double    u,
int    i = 0
[inline]
 

Decrease direction i varity of Blossom via evaluation at u.

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::DecVarity double *    u [inline]
 

Decrease varity of Blossom for all directions.

template<int dims = 2, int sp_dims = 3>
IsoMFType xchen::TensorBlossom< dims, sp_dims >::GetSubTensorBlossom double    u,
int    = 0
 

Get iso sub manifold at u along the given direction(2nd arg).

template<int dims, int sp_dims>
bool xchen::TensorBlossom< dims, sp_dims >::Insert double    u,
int    i = 0
[inline]
 

If non-periodic && valid u, insert into dir i; Else just return false.

template<int dims = 2, int sp_dims = 3>
bool xchen::TensorBlossom< dims, sp_dims >::IsPeriodicEnd int    i = 0 [inline]
 

Get periodic end for dir i.

template<int dims = 2, int sp_dims = 3>
knot_t& xchen::TensorBlossom< dims, sp_dims >::KnotVector   [inline]
 

Used to set control knot vector.

template<int dims, int sp_dims>
void xchen::TensorBlossom< dims, sp_dims >::RaiseDegree int    inc = 1,
int    i = 0
 

deg[i] += inc, without changing the actual NURB.

template<int dims = 2, int sp_dims = 3>
void xchen::TensorBlossom< dims, sp_dims >::SetPeriodicEnd int    i = 0,
bool    v = 1
[inline]
 

Set periodic end at dir i to v.Shoud call before set knot.

template<int dims, int sp_dims>
void xchen::TensorBlossom< dims, sp_dims >::SetUniformFloatingEndKnots   [inline]
 

Set to 0,1,... n, where n = pnts[i]+deg[i]-2.

template<int dims, int sp_dims>
void xchen::TensorBlossom< dims, sp_dims >::SetUniformOpenEndKnots   [inline]
 

Set to 0^(deg[i]), 1, ..., seg[i]-1, (seg[i])^(deg[i]).

template<int dims, int sp_dims>
void xchen::TensorBlossom< dims, sp_dims >::Subdivide int    depth = 1 const [virtual]
 

Subdivide 'depth' times.

Implements xchen::TensorManifold< dims, sp_dims >.

template<int dims, int sp_dims>
TensorBlossom< dims, sp_dims > & xchen::TensorBlossom< dims, sp_dims >::Transform xchen::Transform const &    trans [inline]
 

All sbd data will be reset.


Friends And Related Function Documentation

template<int dims = 2, int sp_dims = 3>
friend struct draw_iso_functor [friend]
 

template<int dims = 2, int sp_dims = 3>
friend struct generate_iso_functor [friend]
 

template<int dims = 2, int sp_dims = 3>
friend class glModel [friend]
 

Reimplemented from xchen::TensorManifold< dims, sp_dims >.

template<int dims = 2, int sp_dims = 3>
ostream& operator<< ostream &    os,
TensorBlossom< dims, sp_dims > const &    rhs
[friend]
 

template<int dims = 2, int sp_dims = 3>
friend class TensorBlossom [friend]
 


The documentation for this class was generated from the following file:
Generated on Wed Apr 7 21:40:52 2004 by doxygen1.2.18