Main Page   Class Hierarchy   Compound List   File List   Compound Members  

PLib::HNurbsSurfaceGL Class Reference

a HNURBS surface class for OpenGL. More...

#include <nurbsGL.hh>

Inheritance diagram for PLib::HNurbsSurfaceGL::

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

Public Methods

 HNurbsSurfaceGL ()
 HNurbsSurfaceGL (const NurbsSurface &nS)
 HNurbsSurfaceGL (const HNurbsSurfaceGL &bS)
 HNurbsSurfaceGL (const HNurbsSurfaceGL *bS)
virtual ~HNurbsSurfaceGL ()
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 ()
HNurbsSurfaceSPf * addLevel ()
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
HNurbsSurfaceGL * activePatch

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 NurbsSurface   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::HNurbsSurface.

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

Reimplemented from 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

Reimplemented from 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

Reimplemented from 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::ObjectGL.

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

Reads the information from a stream.

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

Reimplemented from PLib::ObjectGL.

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 level Activates the previous patch at the same level Activates 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

Reimplemented from PLib::NurbsGL.

int PLib::HNurbsSurfaceGL::write ofstream &    fout const [virtual]
 

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::ObjectGL.

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

Writes a ObjectGL to a file.

Parameters:
filename  the filename to write to.
Returns:
0 if an error occurs, 1 otherwise
Author:
Philippe Lavoie
Date:
19 June 1998

Reimplemented from PLib::ObjectGL.


The documentation for this class was generated from the following files:
Generated on Sun Feb 3 00:46:12 2002 for NURBS++ by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001