#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) | |
| ~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 34 of file nurbs.h.
| NURBS::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 bool lux::NURBS::CanIntersect | ( | ) | const [inline, virtual] |
| Shape * NURBS::CreateShape | ( | const Transform & | o2w, | |
| bool | reverseOrientation, | |||
| const ParamSet & | params | |||
| ) | [static] |
Definition at line 277 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.
Referenced by lux::MakeShape().
| BBox NURBS::ObjectBound | ( | ) | const [virtual] |
Implements lux::Shape.
Definition at line 159 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 202 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] |
Reimplemented from lux::Shape.
Definition at line 176 of file nurbs.cpp.
References isHomogeneous, nu, nv, lux::Shape::ObjectToWorld, P, and lux::Union().
bool lux::NURBS::isHomogeneous [private] |
Definition at line 53 of file nurbs.h.
Referenced by CreateShape(), NURBS(), ObjectBound(), Refine(), and WorldBound().
int lux::NURBS::nu [private] |
Definition at line 50 of file nurbs.h.
Referenced by CreateShape(), NURBS(), ObjectBound(), Refine(), and WorldBound().
int lux::NURBS::nv [private] |
Definition at line 50 of file nurbs.h.
Referenced by CreateShape(), NURBS(), ObjectBound(), Refine(), and WorldBound().
float* lux::NURBS::P [private] |
Definition at line 54 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] |
float * lux::NURBS::vknot [private] |
float lux::NURBS::vmax [private] |
float lux::NURBS::vmin [private] |
int lux::NURBS::vorder [private] |
1.5.9