Public Member Functions | |
LoopSubdiv (const Transform &o2w, bool ro, int nt, int nv, const int *vi, const Point *P, int nlevels) | |
~LoopSubdiv () | |
bool | CanIntersect () const |
void | Refine (vector< Reference< Shape > > &refined) const |
BBox | ObjectBound () const |
BBox | WorldBound () const |
Static Private Member Functions | |
static float | beta (int valence) |
static Point | weightOneRing (SDVertex *vert, float beta) |
static Point | weightBoundary (SDVertex *vert, float beta) |
static float | gamma (int valence) |
Private Attributes | |
int | nLevels |
vector< SDVertex * > | vertices |
vector< SDFace * > | faces |
Definition at line 112 of file loopsubdiv.cpp.
LoopSubdiv::LoopSubdiv | ( | const Transform & | o2w, | |
bool | ro, | |||
int | nt, | |||
int | nv, | |||
const int * | vi, | |||
const Point * | P, | |||
int | nlevels | |||
) |
Definition at line 161 of file loopsubdiv.cpp.
References SDVertex::boundary, SDFace::f, SDEdge::f, SDEdge::f0edgeNum, faces, if(), NEXT, SDFace::nextFace(), nLevels, SDVertex::regular, SDVertex::startFace, SDFace::v, SDVertex::valence(), and vertices.
Referenced by CreateShape().
LoopSubdiv::~LoopSubdiv | ( | ) |
bool LoopSubdiv::CanIntersect | ( | ) | const [virtual] |
Reimplemented from Shape.
Definition at line 247 of file loopsubdiv.cpp.
References ParamSet::AddInt(), ParamSet::AddNormal(), ParamSet::AddPoint(), beta(), SDVertex::boundary, SDVertex::child, SDFace::children, Cross(), SDFace::f, faces, gamma(), M_PI, MakeShape(), NEXT, nLevels, Shape::ObjectToWorld, SDVertex::oneRing(), SDFace::otherVert(), SDVertex::P, PREV, SDVertex::regular, Shape::reverseOrientation, SDVertex::startFace, SDEdge::v, SDFace::v, SDVertex::valence(), vertices, SDFace::vnum(), weightBoundary(), and weightOneRing().
BBox LoopSubdiv::ObjectBound | ( | ) | const [virtual] |
BBox LoopSubdiv::WorldBound | ( | ) | const [virtual] |
Reimplemented from Shape.
Definition at line 237 of file loopsubdiv.cpp.
References Shape::ObjectToWorld, Union(), and vertices.
static float LoopSubdiv::beta | ( | int | valence | ) | [inline, static, private] |
Definition at line 439 of file loopsubdiv.cpp.
References SDVertex::oneRing(), SDVertex::P, and SDVertex::valence().
Referenced by Refine().
Definition at line 470 of file loopsubdiv.cpp.
References SDVertex::oneRing(), SDVertex::P, and SDVertex::valence().
Referenced by Refine().
static float LoopSubdiv::gamma | ( | int | valence | ) | [inline, static, private] |
int LoopSubdiv::nLevels [private] |
vector<SDVertex *> LoopSubdiv::vertices [private] |
Definition at line 136 of file loopsubdiv.cpp.
Referenced by LoopSubdiv(), ObjectBound(), Refine(), WorldBound(), and ~LoopSubdiv().
vector<SDFace *> LoopSubdiv::faces [private] |
Definition at line 137 of file loopsubdiv.cpp.
Referenced by LoopSubdiv(), Refine(), and ~LoopSubdiv().