BEZIER Class Reference

#include <bezier.h>

Collaboration diagram for BEZIER:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BEZIER ()
 ~BEZIER ()
void SetFromCorners (VERTEX fl, VERTEX fr, VERTEX bl, VERTEX br)
void Visualize (bool wireframe, bool fill, VERTEX color)
void Attach (BEZIER &other)
int NumTris (int divs)
void GetTri (int divs, int num, VERTEX outtri[3])
bool CollideSubDiv (VERTEX origin, VERTEX direction, VERTEX &outtri)
bool CollideNewton (VERTEX origin, VERTEX direction, VERTEX &outtri)
bool CollideSingleQuad (VERTEX origin, VERTEX direction, VERTEX &outtri)
bool CollideSubDivQuad (VERTEX origin, VERTEX direction, VERTEX &outtri)
bool CollideSubDivQuadSimple (VERTEX origin, VERTEX direction, VERTEX &outtri)
bool CollideSubDivQuadSimpleNorm (VERTEX origin, VERTEX direction, VERTEX &outtri, VERTEX &normal)
bool CollideQuadNewton (VERTEX origin, VERTEX direction, VERTEX &outtri)
void CopyFrom (BEZIER &other)
bool ReadFrom (ifstream &openfile)
bool WriteTo (ofstream &openfile)

Public Attributes

VERTEX points [4][4]
VERTEX center
float radius

Private Member Functions

void DrawSurf (int div, float trans)
void DrawControlPoints ()
VERTEX Bernstein (float u, VERTEX *p)
VERTEX BernsteinTangent (float u, VERTEX *p)
VERTEX SurfCoord (float px, float py)
VERTEX SurfNorm (float px, float py)

Detailed Description

Definition at line 39 of file bezier.h.


Constructor & Destructor Documentation

BEZIER::BEZIER  ) 
 

Definition at line 27 of file bezier.cpp.

References points.

BEZIER::~BEZIER  ) 
 

Definition at line 40 of file bezier.cpp.


Member Function Documentation

void BEZIER::Attach BEZIER other  ) 
 

Definition at line 218 of file bezier.cpp.

References VERTEX::normalize(), points, VERTEX::ScaleR(), and SetFromCorners().

Referenced by ROADSTRIP::Add().

VERTEX BEZIER::Bernstein float  u,
VERTEX p
[private]
 

Definition at line 248 of file bezier.cpp.

References pix32::a, pix32::b, pix32::r, and VERTEX::ScaleR().

Referenced by SurfCoord(), and SurfNorm().

VERTEX BEZIER::BernsteinTangent float  u,
VERTEX p
[private]
 

Definition at line 316 of file bezier.cpp.

References pix32::a, pix32::b, and pix32::r.

bool BEZIER::CollideNewton VERTEX  origin,
VERTEX  direction,
VERTEX outtri
 

Definition at line 421 of file bezier.cpp.

References COLLISION_DIVS, GetTri(), INTERSECT_FUNCTION, NumTris(), SurfCoord(), and VERTEX::v3().

bool BEZIER::CollideQuadNewton VERTEX  origin,
VERTEX  direction,
VERTEX outtri
 

Definition at line 716 of file bezier.cpp.

References INTERSECT_QUAD_FUNCTION, VERTEX::len(), VERTEX::normalize(), points, VERTEX::ScaleR(), and SurfCoord().

bool BEZIER::CollideSingleQuad VERTEX  origin,
VERTEX  direction,
VERTEX outtri
 

Definition at line 675 of file bezier.cpp.

References INTERSECT_QUAD_FUNCTION, points, and SurfCoord().

bool BEZIER::CollideSubDiv VERTEX  origin,
VERTEX  direction,
VERTEX outtri
 

Definition at line 369 of file bezier.cpp.

References COLLISION_DIVS, GetTri(), INTERSECT_FUNCTION, NumTris(), SurfCoord(), and VERTEX::v3().

bool BEZIER::CollideSubDivQuad VERTEX  origin,
VERTEX  direction,
VERTEX outtri
 

Definition at line 892 of file bezier.cpp.

References COLLISION_QUAD_DIVS, points, SurfCoord(), and VERTEX::y.

bool BEZIER::CollideSubDivQuadSimple VERTEX  origin,
VERTEX  direction,
VERTEX outtri
 

Definition at line 1196 of file bezier.cpp.

References CollideSubDivQuadSimpleNorm().

bool BEZIER::CollideSubDivQuadSimpleNorm VERTEX  origin,
VERTEX  direction,
VERTEX outtri,
VERTEX normal
 

Definition at line 1202 of file bezier.cpp.

References COLLISION_QUAD_DIVS, VERTEX::DebugPrint(), INTERSECT_QUAD_FUNCTION, points, QUAD_DIV_FAST_DISCARD, SurfCoord(), and VERTEX::y.

Referenced by CollideSubDivQuadSimple(), and LoadWorld().

void BEZIER::CopyFrom BEZIER other  ) 
 

Definition at line 625 of file bezier.cpp.

References points.

Referenced by ROADSTRIP::Add().

void BEZIER::DrawControlPoints  )  [private]
 

Definition at line 184 of file bezier.cpp.

References points.

Referenced by Visualize().

void BEZIER::DrawSurf int  div,
float  trans
[private]
 

Definition at line 133 of file bezier.cpp.

References VERTEX::normalize(), SurfCoord(), and VERTEX::y.

Referenced by Visualize().

void BEZIER::GetTri int  divs,
int  num,
VERTEX  outtri[3]
 

Definition at line 330 of file bezier.cpp.

References SurfCoord().

Referenced by CollideNewton(), and CollideSubDiv().

int BEZIER::NumTris int  divs  )  [inline]
 

Definition at line 56 of file bezier.h.

Referenced by CollideNewton(), and CollideSubDiv().

bool BEZIER::ReadFrom ifstream &  openfile  ) 
 

Definition at line 638 of file bezier.cpp.

References points, VERTEX::y, and VERTEX::z.

Referenced by ROADSTRIP::ReadFrom().

void BEZIER::SetFromCorners VERTEX  fl,
VERTEX  fr,
VERTEX  bl,
VERTEX  br
 

Definition at line 45 of file bezier.cpp.

References center, VERTEX::len(), VERTEX::normalize(), points, radius, VERTEX::Scale(), and VERTEX::ScaleR().

Referenced by Attach().

VERTEX BEZIER::SurfCoord float  px,
float  py
[private]
 

Definition at line 263 of file bezier.cpp.

References Bernstein(), and points.

Referenced by CollideNewton(), CollideQuadNewton(), CollideSingleQuad(), CollideSubDiv(), CollideSubDivQuad(), CollideSubDivQuadSimpleNorm(), DrawSurf(), and GetTri().

VERTEX BEZIER::SurfNorm float  px,
float  py
[private]
 

Definition at line 289 of file bezier.cpp.

References Bernstein(), and points.

void BEZIER::Visualize bool  wireframe,
bool  fill,
VERTEX  color
 

Definition at line 88 of file bezier.cpp.

References DrawControlPoints(), DrawSurf(), SURFDRAW_VIS, VERTEX::x, VERTEX::y, and VERTEX::z.

bool BEZIER::WriteTo ofstream &  openfile  ) 
 

Definition at line 658 of file bezier.cpp.

References points, VERTEX::y, and VERTEX::z.

Referenced by ROADSTRIP::WriteTo().


Member Data Documentation

VERTEX BEZIER::center
 

Definition at line 73 of file bezier.h.

Referenced by SetFromCorners(), and ROADSTRIP::Visualize().

VERTEX BEZIER::points[4][4]
 

Definition at line 72 of file bezier.h.

Referenced by Attach(), BEZIER(), CollideQuadNewton(), CollideSingleQuad(), CollideSubDivQuad(), CollideSubDivQuadSimpleNorm(), CopyFrom(), DrawControlPoints(), TRACK::GetPatch(), ReadFrom(), SetFromCorners(), SurfCoord(), SurfNorm(), and WriteTo().

float BEZIER::radius
 

Definition at line 74 of file bezier.h.

Referenced by SetFromCorners().


The documentation for this class was generated from the following files:
Generated on Thu Oct 19 04:11:44 2006 by  doxygen 1.4.6