36#ifndef __gluglsurfeval_h_
37#define __gluglsurfeval_h_
52#define VERTEX_CACHE_SIZE 3
55#ifndef IN_MAX_BEZIER_ORDER
56#define IN_MAX_BEZIER_ORDER 40
59#ifndef IN_MAX_DIMENSION
60#define IN_MAX_DIMENSION 4
115 void mapmesh2f(
long,
long,
long,
long,
long );
133 int n_lower,
REAL v_lower,
REAL* lower_val);
135 int n_right,
REAL u_right,
REAL* right_val);
299 void inEvalMesh2(
int lowU,
int lowV,
int highU,
int highV);
310 int n_lower,
REAL v_lower,
REAL* lower_val
void range2f(long, REAL *, REAL *)
void newtmeshvert(REAL, REAL)
surfEvalMachine em_normal
void inBPMListEvalEM(bezierPatchMesh *list)
REAL global_vcoeffDeriv[IN_MAX_BEZIER_ORDER]
REAL global_ucoeffDeriv[IN_MAX_BEZIER_ORDER]
void inDoDomain2WithDerivs(int k, REAL u, REAL v, REAL u1, REAL u2, int uorder, REAL v1, REAL v2, int vorder, REAL *baseData, REAL *retPoint, REAL *retdu, REAL *retdv)
void evalVStrip(int n_left, REAL u_left, REAL *left_val, int n_right, REAL u_right, REAL *right_val)
REAL global_ev_ctlPoints[IN_MAX_BEZIER_ORDER *IN_MAX_BEZIER_ORDER *IN_MAX_DIMENSION]
void inBPMEval(bezierPatchMesh *bpm)
void LOD_eval(int num_vert, REAL *verts, int type, int level)
void vertexCallBack(const GLfloat *vert, void *data)
void texcoordCallBack(const GLfloat *texcoord, void *data)
bezierPatchMesh * global_bpm
void domain2f(REAL, REAL, REAL, REAL)
void(GLAPIENTRY *beginCallBackN)(GLenum type)
void(GLAPIENTRY *normalCallBackN)(const GLfloat *normal)
void inDoEvalCoord2NOGE(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
void inEvalCoord2f(REAL u, REAL v)
void inDoEvalCoord2EM(REAL u, REAL v)
void(GLAPIENTRY *normalCallBackData)(const GLfloat *normal
void endCallBack(void *data)
void inPreEvaluateBV_intfac(REAL v)
void addMap(SurfaceMap *)
void inComputeNormal2(REAL *pu, REAL *pv, REAL *n)
void putCallBack(GLenum which, _GLUfuncptr fn)
void set_callback_userData(void *data)
void inDoDomain2WithDerivsBV(int k, REAL u, REAL v, REAL u1, REAL u2, int uorder, REAL v1, REAL v2, int vorder, REAL *baseData, REAL *retPoint, REAL *retdu, REAL *retdv)
void(GLAPIENTRY *colorCallBackN)(const GLfloat *color)
void LOD_eval_list(int level)
void inDoEvalCoord2NOGE_BU(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
void inDoDomain2EM(surfEvalMachine *em, REAL u, REAL v, REAL *retPoint)
void inComputeFirstPartials(REAL *p, REAL *pu, REAL *pv)
void inEvalULine(int n_points, REAL v, REAL *u_vals, int stride, REAL ret_points[][3], REAL ret_normals[][3])
void inBPMListEval(bezierPatchMesh *list)
void put_callback_auto_normal(int flag)
void(GLAPIENTRY *texcoordCallBackN)(const GLfloat *texcoord)
int get_callback_auto_normal()
void inPreEvaluateBU(int k, int uorder, int vorder, REAL uprime, REAL *baseData)
REAL global_PBU[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
REAL global_ucoeff[IN_MAX_BEZIER_ORDER]
void beginCallBack(GLenum type, void *data)
void inEvalUStrip(int n_upper, REAL v_upper, REAL *upper_val, int n_lower, REAL v_lower, REAL *lower_val)
void inDoDomain2WithDerivsEM(surfEvalMachine *em, REAL u, REAL v, REAL *retPoint, REAL *retdu, REAL *retdv)
void mapmesh2f(long, long, long, long, long)
surfEvalMachine em_vertex
void evalcoord2f(long, REAL, REAL)
REAL global_PBV[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
void evalpoint2i(long, long)
void colorCallBack(const GLfloat *color, void *data)
void inPreEvaluateBV(int k, int uorder, int vorder, REAL vprime, REAL *baseData)
void inPreEvaluateBU_intfac(REAL u)
void inEvalVStrip(int n_left, REAL u_left, REAL *left_val, int n_right, REAL u_right, REAL *right_val)
void normalCallBack(const GLfloat *normal, void *data)
void inPreEvaluate(int order, REAL vprime, REAL *coeff)
void(GLAPIENTRY *vertexCallBackData)(const GLfloat *vert
void inMap2f(int k, REAL ulower, REAL uupper, int ustride, int uorder, REAL vlower, REAL vupper, int vstride, int vorder, REAL *ctlPoints)
void inMapGrid2f(int nu, REAL u0, REAL u1, int nv, REAL v0, REAL v1)
REAL global_BV[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
void inDoEvalCoord2NOGE_BV(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
void map2f(long, REAL, REAL, long, long, REAL, REAL, long, long, REAL *)
virtual ~OpenGLSurfaceEvaluator(void)
void(GLAPIENTRY *endCallBackN)(void)
void inEvalPoint2(int i, int j)
void inMap2fEM(int which, int dimension, REAL ulower, REAL uupper, int ustride, int uorder, REAL vlower, REAL vupper, int vstride, int vorder, REAL *ctlPoints)
void mapgrid2f(long, REAL, REAL, long, REAL, REAL)
void put_vertices_call_back(int flag)
void inEvalVLine(int n_points, REAL u, REAL *v_vals, int stride, REAL ret_points[][3], REAL ret_normals[][3])
void inDoDomain2WithDerivsBU(int k, REAL u, REAL v, REAL u1, REAL u2, int uorder, REAL v1, REAL v2, int vorder, REAL *baseData, REAL *retPoint, REAL *retdu, REAL *retdv)
void LOD_triangle(REAL A[2], REAL B[2], REAL C[2], int level)
void polymode(long style)
void inPreEvaluateWithDeriv(int order, REAL vprime, REAL *coeff, REAL *coeffDeriv)
void(GLAPIENTRY *vertexCallBackN)(const GLfloat *vert)
StoredVertex * vertexCache[VERTEX_CACHE_SIZE]
int get_vertices_call_back()
surfEvalMachine em_texcoord
void(GLAPIENTRY *texcoordCallBackData)(const GLfloat *texcoord
void(GLAPIENTRY *endCallBackData)(void *data)
void(GLAPIENTRY *colorCallBackData)(const GLfloat *color
void inDoEvalCoord2(REAL u, REAL v, REAL *retPoint, REAL *retNormal)
void inBPMEvalEM(bezierPatchMesh *bpm)
void evalUStrip(int n_upper, REAL v_upper, REAL *upper_val, int n_lower, REAL v_lower, REAL *lower_val)
REAL global_vcoeff[IN_MAX_BEZIER_ORDER]
void inEvalMesh2(int lowU, int lowV, int highU, int highV)
REAL global_BU[IN_MAX_BEZIER_ORDER][IN_MAX_DIMENSION]
void saveEvalPoint(long x, long y)
void invoke(OpenGLSurfaceEvaluator *eval)
void saveEvalCoord(REAL x, REAL y)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLint ustride
GLdouble GLdouble GLint GLint uorder
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint vorder
GLuint GLdouble GLdouble GLint GLint order
GLfloat GLfloat GLfloat v2
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint vstride
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define IN_MAX_BEZIER_ORDER
#define VERTEX_CACHE_SIZE
REAL ucoeffDeriv[IN_MAX_BEZIER_ORDER]
REAL ucoeff[IN_MAX_BEZIER_ORDER]
REAL vcoeff[IN_MAX_BEZIER_ORDER]
REAL vcoeffDeriv[IN_MAX_BEZIER_ORDER]
REAL ctlPoints[IN_MAX_BEZIER_ORDER *IN_MAX_BEZIER_ORDER *IN_MAX_DIMENSION]
static GLenum _GLUfuncptr fn
void(WINAPI * _GLUfuncptr)(void)