#include <nurbs.h>
Public Member Functions | |
NURBS (const Transform &o2w, bool reverseOrientation, int nu, int uorder, const float *uknot, float umin, float umax, int nv, int vorder, const float *vknot, float vmin, float vmax, const float *P, bool isHomogeneous) | |
virtual | ~NURBS () |
virtual BBox | ObjectBound () const |
virtual BBox | WorldBound () const |
virtual bool | CanIntersect () const |
virtual void | Refine (vector< boost::shared_ptr< Shape > > &refined) const |
Static Public Member Functions | |
static Shape * | CreateShape (const Transform &o2w, bool reverseOrientation, const ParamSet ¶ms) |
Private Attributes | |
int | nu |
int | uorder |
int | nv |
int | vorder |
float | umin |
float | umax |
float | vmin |
float | vmax |
float * | uknot |
float * | vknot |
bool | isHomogeneous |
float * | P |
Definition at line 33 of file nurbs.h.
NURBS::~NURBS | ( | ) | [virtual] |
virtual bool lux::NURBS::CanIntersect | ( | ) | const [inline, virtual] |
Returns whether this primitive can be intersected.
Reimplemented from lux::Shape.
Shape * NURBS::CreateShape | ( | const Transform & | o2w, | |
bool | reverseOrientation, | |||
const ParamSet & | params | |||
) | [static] |
Definition at line 278 of file nurbs.cpp.
References lux::ParamSet::FindFloat(), lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), lux::ParamSet::FindPoint(), isHomogeneous, nu, NURBS(), nv, P, uorder, and vorder.
BBox NURBS::ObjectBound | ( | ) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 160 of file nurbs.cpp.
References isHomogeneous, nu, nv, P, and lux::Union().
void NURBS::Refine | ( | vector< boost::shared_ptr< Shape > > & | refined | ) | const [virtual] |
Reimplemented from lux::Shape.
Definition at line 203 of file nurbs.cpp.
References lux::ParamSet::AddFloat(), lux::ParamSet::AddInt(), lux::ParamSet::AddNormal(), lux::ParamSet::AddPoint(), lux::Cross(), isHomogeneous, Lerp(), lux::MakeShape(), lux::Normalize(), nu, NURBSEvaluateSurface(), nv, lux::Shape::ObjectToWorld, P, lux::Shape::reverseOrientation, uknot, umax, umin, uorder, vknot, vmax, vmin, VN, vorder, Homogeneous3::w, lux::Point::x, Homogeneous3::x, lux::Point::y, Homogeneous3::y, lux::Point::z, and Homogeneous3::z.
BBox NURBS::WorldBound | ( | ) | const [virtual] |
Returns the world bounds of this primitive.
Reimplemented from lux::Shape.
Definition at line 177 of file nurbs.cpp.
References isHomogeneous, nu, nv, lux::Shape::ObjectToWorld, P, and lux::Union().
bool lux::NURBS::isHomogeneous [private] |
Definition at line 52 of file nurbs.h.
Referenced by CreateShape(), NURBS(), ObjectBound(), Refine(), and WorldBound().
int lux::NURBS::nu [private] |
Definition at line 49 of file nurbs.h.
Referenced by CreateShape(), NURBS(), ObjectBound(), Refine(), and WorldBound().
int lux::NURBS::nv [private] |
Definition at line 49 of file nurbs.h.
Referenced by CreateShape(), NURBS(), ObjectBound(), Refine(), and WorldBound().
float* lux::NURBS::P [private] |
Definition at line 53 of file nurbs.h.
Referenced by CreateShape(), NURBS(), ObjectBound(), Refine(), WorldBound(), and ~NURBS().
float* lux::NURBS::uknot [private] |
float lux::NURBS::umax [private] |
float lux::NURBS::umin [private] |
int lux::NURBS::uorder [private] |
Definition at line 49 of file nurbs.h.
Referenced by CreateShape(), NURBS(), and Refine().
float * lux::NURBS::vknot [private] |
float lux::NURBS::vmax [private] |
float lux::NURBS::vmin [private] |
int lux::NURBS::vorder [private] |
Definition at line 49 of file nurbs.h.
Referenced by CreateShape(), NURBS(), and Refine().