#include "pbrt.h"
#include "shape.h"
#include "geometry.h"
#include "dynload.h"
#include "texture.h"
Go to the source code of this file.
Classes | |
class | NURBS |
struct | Homogeneous3 |
Defines | |
#define | VN(u, v) ((v)*diceu+(u)) |
Functions | |
static int | KnotOffset (const float *knot, int order, int np, float t) |
static Homogeneous3 | NURBSEvaluate (int order, const float *knot, const Homogeneous3 *cp, int np, int cpStride, float t, Vector *deriv=NULL) |
static Point | NURBSEvaluateSurface (int uOrder, const float *uKnot, int ucp, float u, int vOrder, const float *vKnot, int vcp, float v, const Homogeneous3 *cp, Vector *dPdu, Vector *dPdv) |
DLLEXPORT Shape * | CreateShape (const Transform &o2w, bool reverseOrientation, const ParamSet ¶ms) |
#define VN | ( | u, | |||
v | ) | ((v)*diceu+(u)) |
Referenced by NURBS::Refine().
DLLEXPORT Shape* CreateShape | ( | const Transform & | o2w, | |
bool | reverseOrientation, | |||
const ParamSet & | params | |||
) |
Definition at line 299 of file nurbs.cpp.
References Assert, ParamSet::FindFloat(), ParamSet::FindOneFloat(), ParamSet::FindOneInt(), ParamSet::FindPoint(), NURBS::isHomogeneous, NURBS::nu, NURBS::NURBS(), NURBS::nv, NURBS::P, NURBS::uorder, and NURBS::vorder.
static int KnotOffset | ( | const float * | knot, | |
int | order, | |||
int | np, | |||
float | t | |||
) | [static] |
static Homogeneous3 NURBSEvaluate | ( | int | order, | |
const float * | knot, | |||
const Homogeneous3 * | cp, | |||
int | np, | |||
int | cpStride, | |||
float | t, | |||
Vector * | deriv = NULL | |||
) | [static] |
Definition at line 74 of file nurbs.cpp.
References KnotOffset(), Homogeneous3::w, Homogeneous3::x, Homogeneous3::y, and Homogeneous3::z.
Referenced by NURBSEvaluateSurface().
static Point NURBSEvaluateSurface | ( | int | uOrder, | |
const float * | uKnot, | |||
int | ucp, | |||
float | u, | |||
int | vOrder, | |||
const float * | vKnot, | |||
int | vcp, | |||
float | v, | |||
const Homogeneous3 * | cp, | |||
Vector * | dPdu, | |||
Vector * | dPdv | |||
) | [static] |
Definition at line 125 of file nurbs.cpp.
References KnotOffset(), NURBSEvaluate(), Homogeneous3::w, Homogeneous3::x, Homogeneous3::y, and Homogeneous3::z.
Referenced by NURBS::Refine().