nurbs.cpp File Reference

#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 ShapeCreateShape (const Transform &o2w, bool reverseOrientation, const ParamSet &params)


Define Documentation

#define VN ( u,
 )     ((v)*diceu+(u))

Referenced by NURBS::Refine().


Function Documentation

DLLEXPORT Shape* CreateShape ( const Transform o2w,
bool  reverseOrientation,
const ParamSet params 
)

static int KnotOffset ( const float *  knot,
int  order,
int  np,
float  t 
) [static]

Definition at line 52 of file nurbs.cpp.

Referenced by NURBSEvaluate(), and NURBSEvaluateSurface().

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]


Generated on Mon Jul 20 17:31:54 2009 for pbrt by  doxygen 1.5.6