PLib::HNurbsSurfaceGL Class Reference

a HNURBS surface class for OpenGL More...

#include <nurbsGL.h>

Inheritance diagram for PLib::HNurbsSurfaceGL:

PLib::HNurbsSurfaceSP< T, N > PLib::NurbsGL PLib::HNurbsSurface< T, N > PLib::ObjectGL PLib::NurbsSurface< T, N > List of all members.

Public Member Functions

 HNurbsSurfaceGL ()
 HNurbsSurfaceGL (const NurbsSurfacef &nS)
 HNurbsSurfaceGL (const HNurbsSurfaceGL &bS)
 HNurbsSurfaceGL (const HNurbsSurfaceGL *bS)
void setLevelOfDetail (int l)
int levelOfDetail () const
void increaseLevelOfDetail ()
void decreaseLevelOfDetail ()
void highestLevelOfDetail ()
int maxLevelOfDetail ()
void gluNurbs () const
void point (float &u, float &v, int pSize, const Color &colorP, int cp_flag=0) const
void resetBoundingBox ()
void resetCPoints ()
void resetPolygon ()
void resetKnots ()
int read (const char *f)
int write (const char *f) const
int read (ifstream &fin)
int write (ofstream &fout) const
int writeRIB (ofstream &fout) const
int writePOVRAY (ofstream &fout) const
void selectBasePatch ()
void selectNextPatch ()
void selectPrevPatch ()
void selectHigherLevel ()
void selectLowerLevel ()
void selectHighestLevel ()
int editLevel ()
void updateUpToLOD ()
HNurbsSurfaceSPfaddLevel ()
void applyTransform ()
void modifyPoint (float u, float v, float dx, float dy, float dz)
ObjectGLcopy ()
void setSym (int set, int uDir, float x, float y, float z, float w)
void axis (int i, int j, Point3Df &xaxis, Point3Df &yaxis, Point3Df &zaxis) const

Protected Attributes

int lod
HNurbsSurfaceGLactivePatch

Detailed Description

a HNURBS surface class for OpenGL

Author:
Philippe Lavoie
Date:
23 September 1997


Constructor & Destructor Documentation

PLib::HNurbsSurfaceGL::HNurbsSurfaceGL  ) 
 

Default constructor.

Author:
Philippe Lavoie
Date:
7 November 1997

PLib::HNurbsSurfaceGL::HNurbsSurfaceGL const NurbsSurfacef nS  ) 
 

Constructor from a surface.

Parameters:
nS a Nurbs Surface
Author:
Philippe Lavoie
Date:
7 November 1997

PLib::HNurbsSurfaceGL::HNurbsSurfaceGL const HNurbsSurfaceGL bS  ) 
 

Copy constructor with patch information.

Parameters:
bS the object to copy
us the start of the U parametric patch
ue the end of the U parametric patch
vs the start of the V parametric patch
ue the end of the V parametric patch
Author:
Philippe Lavoie
Date:
7 November 1997

PLib::HNurbsSurfaceGL::HNurbsSurfaceGL const HNurbsSurfaceGL bS  ) 
 

Copy constructor.

Parameters:
bS a pointer to the object to copy
Author:
Philippe Lavoie
Date:
7 November 1997


Member Function Documentation

HNurbsSurfaceSPf * PLib::HNurbsSurfaceGL::addLevel  )  [virtual]
 

Adds a level to the Hierarchical surface.

Author:
Philippe Lavoie
Date:
28 January 1998

Reimplemented from PLib::HNurbsSurfaceSP< T, N >.

void PLib::HNurbsSurfaceGL::applyTransform  )  [virtual]
 

apply the local transformation to the surface.

Apply the local transformation to the surface. This is necessary if you want to get the proper position for the control points before doing anymore processing on them.

Author:
Philippe Lavoie
Date:
7 November 1997

Reimplemented from PLib::ObjectGL.

void PLib::HNurbsSurfaceGL::decreaseLevelOfDetail  ) 
 

Activates the patch at a higher level.

Author:
Philippe Lavoie
Date:
3 November 1997

void PLib::HNurbsSurfaceGL::gluNurbs  )  const [virtual]
 

creates a HNURBS surface for OpenGL

This draws a HNURBS. Presently only isocurves are drawn to represent the surface.

Author:
Philippe Lavoie
Date:
23 September 1997

Implements PLib::NurbsGL.

void PLib::HNurbsSurfaceGL::modifyPoint float  u,
float  v,
float  dx,
float  dy,
float  dz
[virtual]
 

Modifies a point on the surface.

Parameters:
u the u parametric value
v the v parametric value
dx the delta value in the $x$-axis direction
dy the delta value in the $y$-axis direction
dz the delta value in the $z$-axis direction
Author:
Philippe Lavoie
Date:
7 November 1997

Implements PLib::NurbsGL.

void PLib::HNurbsSurfaceGL::point float &  u,
float &  v,
int  pSize,
const Color colorP,
int  cp_flag = 0
const [virtual]
 

draws a point at the location C(u)

This function calls between a glBegin/glEnd the proper functions to represent the point which is at S(u,v) on the hierarchical surface.

Parameters:
u the U parametric value
v the V parametric value
psize the size of the control points
colorP the color of the control points
Author:
Philippe Lavoie
Date:
23 September 1997

Implements PLib::NurbsGL.

int PLib::HNurbsSurfaceGL::read ifstream &  fin  )  [virtual]
 

Reads the information from a stream.

Parameters:
fin the input stream
Returns:
1 on sucess, 0 on failure
Author:
Philippe Lavoie
Date:
19 June 1998

Reimplemented from PLib::HNurbsSurfaceSP< T, N >.

int PLib::HNurbsSurfaceGL::read const char *  f  )  [inline]
 

Reads a HNURBS surface from a file.

Parameters:
filename the filename to read from
Returns:
0 if an error occurs, 1 otherwise
Author:
Philippe Lavoie
Date:
7 October 1997

Reimplemented from PLib::HNurbsSurface< T, N >.

void PLib::HNurbsSurfaceGL::resetBoundingBox  )  [virtual]
 

resets the minP and maxP values of bbox

Resets the minP and maxP values for the bouding box.

Warning:
Calling this function without a proper surface initialized might result in strange results.
Author:
Philippe Lavoie
Date:
23 September 1997

Reimplemented from PLib::NurbsGL.

void PLib::HNurbsSurfaceGL::resetCPoints  )  [virtual]
 

Reset the control point information.

Reset the control point information stored in cpoints

Author:
Philippe Lavoie
Date:
23 September 1997

Reimplemented from PLib::NurbsGL.

void PLib::HNurbsSurfaceGL::resetPolygon  )  [virtual]
 

Reset the control point information stored in cpoints.

Author:
Philippe Lavoie
Date:
29 January 1998

Reimplemented from PLib::NurbsGL.

void PLib::HNurbsSurfaceGL::selectHigherLevel  ) 
 

Activates the next patch at the same levelActivates the previous patch at the same levelActivates the patch at a higher level.

Author:
Philippe Lavoie
Date:
3 November 1997

void PLib::HNurbsSurfaceGL::selectHighestLevel  ) 
 

Activates the patch at a higher level.

Author:
Philippe Lavoie
Date:
28 January 1998

void PLib::HNurbsSurfaceGL::selectLowerLevel  ) 
 

Activates the patch at a higher level.

Author:
Philippe Lavoie
Date:
3 November 1997

void PLib::HNurbsSurfaceGL::setSym int  set,
int  uDir,
float  x,
float  y,
float  z,
float  w
[virtual]
 

Sets the symmetry for the control points.

Parameters:
true 1 if it should be in symmetrical mode
Author:
Philippe Lavoie
Date:
29 January 1998

Implements PLib::NurbsGL.

int PLib::HNurbsSurfaceGL::write ofstream &  fout  )  const
 

Writes a NurbsCurveGL to an output stream.

Parameters:
fout the output stream
Returns:
0 if an error occurs, 1 otherwise
Author:
Philippe Lavoie
Date:
19 June 1998

Reimplemented from PLib::HNurbsSurface< T, N >.

int PLib::HNurbsSurfaceGL::write const char *  f  )  const [inline]
 

write a HNURBS surface to a file

Parameters:
filename the filename to write to
Returns:
1 on success, 0 on failure
Author:
Philippe Lavoie
Date:
7 October 1997

Reimplemented from PLib::HNurbsSurface< T, N >.


The documentation for this class was generated from the following files:
Generated on Tue Jun 20 07:10:15 2006 for NURBS++ by  doxygen 1.4.6