#include <loopsubdiv.h>
Public Member Functions | |
| LoopSubdiv (const Transform *o2w, const Transform *w2o, 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 37 of file loopsubdiv.h.
| LoopSubdiv::LoopSubdiv | ( | const Transform * | o2w, | |
| const Transform * | w2o, | |||
| bool | ro, | |||
| int | nt, | |||
| int | nv, | |||
| const int * | vi, | |||
| const Point * | P, | |||
| int | nlevels | |||
| ) |
Definition at line 148 of file loopsubdiv.cpp.
References SDVertex::boundary, SDFace::f, SDEdge::f, SDEdge::f0edgeNum, faces, NEXT, SDFace::nextFace(), nLevels, SDVertex::regular, SDVertex::startFace, SDFace::v, SDVertex::valence(), and vertices.
| LoopSubdiv::~LoopSubdiv | ( | ) |
Definition at line 218 of file loopsubdiv.cpp.
| static float LoopSubdiv::beta | ( | int | valence | ) | [inline, static, private] |
Definition at line 50 of file loopsubdiv.h.
| bool LoopSubdiv::CanIntersect | ( | ) | const [virtual] |
Reimplemented from Shape.
Definition at line 240 of file loopsubdiv.cpp.
| static float LoopSubdiv::gamma | ( | int | valence | ) | [inline, static, private] |
| BBox LoopSubdiv::ObjectBound | ( | ) | const [virtual] |
Reimplemented from Shape.
Definition at line 245 of file loopsubdiv.cpp.
References ParamSet::AddInt(), ParamSet::AddNormal(), ParamSet::AddPoint(), MemoryArena::Alloc(), arena, beta(), SDVertex::boundary, SDVertex::child, SDFace::children, CreateTriangleMeshShape(), Cross(), SDFace::f, faces, gamma(), M_PI, NEXT, nLevels, Shape::ObjectToWorld, SDVertex::oneRing(), SDFace::otherVert(), P, SDVertex::P, PREV, SDVertex::regular, Shape::ReverseOrientation, SDVertex::startFace, SDEdge::v, SDFace::v, SDVertex::valence(), vertices, SDFace::vnum(), weightBoundary(), weightOneRing(), and Shape::WorldToObject.
Definition at line 475 of file loopsubdiv.cpp.
References ALLOCA, SDVertex::oneRing(), SDVertex::P, P, and SDVertex::valence().
Referenced by Refine().
Definition at line 440 of file loopsubdiv.cpp.
References ALLOCA, SDVertex::oneRing(), SDVertex::P, P, and SDVertex::valence().
Referenced by Refine().
| BBox LoopSubdiv::WorldBound | ( | ) | const [virtual] |
Reimplemented from Shape.
Definition at line 232 of file loopsubdiv.cpp.
References Shape::ObjectToWorld, Union(), and vertices.
vector<SDFace *> LoopSubdiv::faces [private] |
Definition at line 63 of file loopsubdiv.h.
Referenced by LoopSubdiv(), Refine(), and ~LoopSubdiv().
int LoopSubdiv::nLevels [private] |
Definition at line 61 of file loopsubdiv.h.
Referenced by LoopSubdiv(), and Refine().
vector<SDVertex *> LoopSubdiv::vertices [private] |
Definition at line 62 of file loopsubdiv.h.
Referenced by LoopSubdiv(), ObjectBound(), Refine(), WorldBound(), and ~LoopSubdiv().
1.6.3