Fluxus::NURBSPrimitive Class Reference

#include <NURBSPrimitive.h>

Inheritance diagram for Fluxus::NURBSPrimitive:

Inheritance graph
[legend]
Collaboration diagram for Fluxus::NURBSPrimitive:

Collaboration graph
[legend]

Public Member Functions

 NURBSPrimitive ()
 NURBSPrimitive (const NURBSPrimitive &other)
virtual ~NURBSPrimitive ()
Primitive Interface
virtual NURBSPrimitiveClone () const
virtual void Render ()
virtual void RecalculateNormals (bool smooth)
 Only makes sense for certain primitive types.
virtual dBoundingBox GetBoundingBox ()
virtual void ApplyTransform (bool ScaleRotOnly=false)
virtual string GetTypeName ()
 This needs to be set appropriately for all derived types.
Piecewise construction
Sets the order of the patches - call this first

void Init (int orderu, int orderv, int ucvs, int vcvs)
void AddCV (const dVector &CV)
void AddN (const dVector &N)
void AddTex (const dVector &ST)
void AddUKnot (float k)
void AddVKnot (float k)

Protected Member Functions

virtual void PDataDirty ()
 Called when a named pdata mapping changes.
void SetupSurface ()

Protected Attributes

vector< dVector > * m_CVVec
vector< dVector > * m_STVec
vector< dVector > * m_NVec
vector< float > m_UKnotVec
vector< float > m_VKnotVec
int m_UOrder
int m_VOrder
int m_UCVCount
int m_VCVCount
int m_Stride
GLUnurbsObj * m_Surface

Detailed Description

A Non Uniform Rational B Spline patch primitive

Definition at line 27 of file NURBSPrimitive.h.


Constructor & Destructor Documentation

NURBSPrimitive::NURBSPrimitive (  ) 

Definition at line 23 of file NURBSPrimitive.cpp.

NURBSPrimitive::NURBSPrimitive ( const NURBSPrimitive other  ) 

Definition at line 40 of file NURBSPrimitive.cpp.

NURBSPrimitive::~NURBSPrimitive (  )  [virtual]

Definition at line 54 of file NURBSPrimitive.cpp.


Member Function Documentation

NURBSPrimitive * NURBSPrimitive::Clone (  )  const [virtual]

Implements Fluxus::Primitive.

Definition at line 59 of file NURBSPrimitive.cpp.

void NURBSPrimitive::Render (  )  [virtual]

Implements Fluxus::Primitive.

Definition at line 83 of file NURBSPrimitive.cpp.

void NURBSPrimitive::RecalculateNormals ( bool  smooth  )  [virtual]

Only makes sense for certain primitive types.

Reimplemented from Fluxus::Primitive.

Definition at line 163 of file NURBSPrimitive.cpp.

dBoundingBox NURBSPrimitive::GetBoundingBox (  )  [virtual]

Implements Fluxus::Primitive.

Definition at line 199 of file NURBSPrimitive.cpp.

void NURBSPrimitive::ApplyTransform ( bool  ScaleRotOnly = false  )  [virtual]

Implements Fluxus::Primitive.

Definition at line 209 of file NURBSPrimitive.cpp.

virtual string Fluxus::NURBSPrimitive::GetTypeName (  )  [inline, virtual]

This needs to be set appropriately for all derived types.

Reimplemented from Fluxus::Primitive.

Definition at line 42 of file NURBSPrimitive.h.

void Fluxus::NURBSPrimitive::Init ( int  orderu,
int  orderv,
int  ucvs,
int  vcvs 
) [inline]

Definition at line 49 of file NURBSPrimitive.h.

void Fluxus::NURBSPrimitive::AddCV ( const dVector CV  )  [inline]

Definition at line 50 of file NURBSPrimitive.h.

void Fluxus::NURBSPrimitive::AddN ( const dVector N  )  [inline]

Definition at line 51 of file NURBSPrimitive.h.

void Fluxus::NURBSPrimitive::AddTex ( const dVector ST  )  [inline]

Definition at line 52 of file NURBSPrimitive.h.

void Fluxus::NURBSPrimitive::AddUKnot ( float  k  )  [inline]

Definition at line 53 of file NURBSPrimitive.h.

void Fluxus::NURBSPrimitive::AddVKnot ( float  k  )  [inline]

Definition at line 54 of file NURBSPrimitive.h.

void NURBSPrimitive::PDataDirty (  )  [protected, virtual]

Called when a named pdata mapping changes.

Implements Fluxus::PDataContainer.

Definition at line 64 of file NURBSPrimitive.cpp.

void NURBSPrimitive::SetupSurface (  )  [protected]

Definition at line 72 of file NURBSPrimitive.cpp.


Field Documentation

vector<dVector>* Fluxus::NURBSPrimitive::m_CVVec [protected]

Definition at line 62 of file NURBSPrimitive.h.

vector<dVector>* Fluxus::NURBSPrimitive::m_STVec [protected]

Definition at line 63 of file NURBSPrimitive.h.

vector<dVector>* Fluxus::NURBSPrimitive::m_NVec [protected]

Definition at line 64 of file NURBSPrimitive.h.

vector<float> Fluxus::NURBSPrimitive::m_UKnotVec [protected]

Definition at line 65 of file NURBSPrimitive.h.

vector<float> Fluxus::NURBSPrimitive::m_VKnotVec [protected]

Definition at line 66 of file NURBSPrimitive.h.

int Fluxus::NURBSPrimitive::m_UOrder [protected]

Definition at line 68 of file NURBSPrimitive.h.

int Fluxus::NURBSPrimitive::m_VOrder [protected]

Definition at line 69 of file NURBSPrimitive.h.

int Fluxus::NURBSPrimitive::m_UCVCount [protected]

Definition at line 70 of file NURBSPrimitive.h.

int Fluxus::NURBSPrimitive::m_VCVCount [protected]

Definition at line 71 of file NURBSPrimitive.h.

int Fluxus::NURBSPrimitive::m_Stride [protected]

Definition at line 72 of file NURBSPrimitive.h.

GLUnurbsObj* Fluxus::NURBSPrimitive::m_Surface [protected]

Definition at line 74 of file NURBSPrimitive.h.


The documentation for this class was generated from the following files:
Generated on Mon Feb 11 06:54:48 2008 for The Fluxus Renderer (libfluxus) by  doxygen 1.5.1