using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace sharp3d { public class OpenGLU { /* Boolean */ public const uint GLU_FALSE = 0; public const uint GLU_TRUE = 1; /* Version */ public const uint GLU_VERSION_1_1 = 1; public const uint GLU_VERSION_1_2 = 1; /* StringName */ public const uint GLU_VERSION = 100800; public const uint GLU_EXTENSIONS = 100801; /* ErrorCode */ public const uint GLU_INVALID_ENUM = 100900; public const uint GLU_INVALID_VALUE = 100901; public const uint GLU_OUT_OF_MEMORY = 100902; public const uint GLU_INVALID_OPERATION = 100904; /* NurbsDisplay */ /* GLU_FILL */ public const uint GLU_OUTLINE_POLYGON = 100240; public const uint GLU_OUTLINE_PATCH = 100241; /* NurbsError */ public const uint GLU_NURBS_ERROR1 = 100251; public const uint GLU_NURBS_ERROR2 = 100252; public const uint GLU_NURBS_ERROR3 = 100253; public const uint GLU_NURBS_ERROR4 = 100254; public const uint GLU_NURBS_ERROR5 = 100255; public const uint GLU_NURBS_ERROR6 = 100256; public const uint GLU_NURBS_ERROR7 = 100257; public const uint GLU_NURBS_ERROR8 = 100258; public const uint GLU_NURBS_ERROR9 = 100259; public const uint GLU_NURBS_ERROR10 = 100260; public const uint GLU_NURBS_ERROR11 = 100261; public const uint GLU_NURBS_ERROR12 = 100262; public const uint GLU_NURBS_ERROR13 = 100263; public const uint GLU_NURBS_ERROR14 = 100264; public const uint GLU_NURBS_ERROR15 = 100265; public const uint GLU_NURBS_ERROR16 = 100266; public const uint GLU_NURBS_ERROR17 = 100267; public const uint GLU_NURBS_ERROR18 = 100268; public const uint GLU_NURBS_ERROR19 = 100269; public const uint GLU_NURBS_ERROR20 = 100270; public const uint GLU_NURBS_ERROR21 = 100271; public const uint GLU_NURBS_ERROR22 = 100272; public const uint GLU_NURBS_ERROR23 = 100273; public const uint GLU_NURBS_ERROR24 = 100274; public const uint GLU_NURBS_ERROR25 = 100275; public const uint GLU_NURBS_ERROR26 = 100276; public const uint GLU_NURBS_ERROR27 = 100277; public const uint GLU_NURBS_ERROR28 = 100278; public const uint GLU_NURBS_ERROR29 = 100279; public const uint GLU_NURBS_ERROR30 = 100280; public const uint GLU_NURBS_ERROR31 = 100281; public const uint GLU_NURBS_ERROR32 = 100282; public const uint GLU_NURBS_ERROR33 = 100283; public const uint GLU_NURBS_ERROR34 = 100284; public const uint GLU_NURBS_ERROR35 = 100285; public const uint GLU_NURBS_ERROR36 = 100286; public const uint GLU_NURBS_ERROR37 = 100287; /* NurbsProperty */ public const uint GLU_AUTO_LOAD_MATRIX = 100200; public const uint GLU_CULLING = 100201; public const uint GLU_SAMPLING_TOLERANCE = 100203; public const uint GLU_DISPLAY_MODE = 100204; public const uint GLU_PARAMETRIC_TOLERANCE = 100202; public const uint GLU_SAMPLING_METHOD = 100205; public const uint GLU_U_STEP = 100206; public const uint GLU_V_STEP = 100207; /* NurbsSampling */ public const uint GLU_PATH_LENGTH = 100215; public const uint GLU_PARAMETRIC_ERROR = 100216; public const uint GLU_DOMAIN_DISTANCE = 100217; /* NurbsTrim */ public const uint GLU_MAP1_TRIM_2 = 100210; public const uint GLU_MAP1_TRIM_3 = 100211; /* QuadricDrawStyle */ public const uint GLU_POINT = 100010; public const uint GLU_LINE = 100011; public const uint GLU_FILL = 100012; public const uint GLU_SILHOUETTE = 100013; /* QuadricCallback */ public const uint GLU_ERROR = 100103; /* QuadricNormal */ public const uint GLU_SMOOTH = 100000; public const uint GLU_FLAT = 100001; public const uint GLU_NONE = 100002; /* QuadricOrientation */ public const uint GLU_OUTSIDE = 100020; public const uint GLU_INSIDE = 100021; /* TessCallback */ public const uint GLU_TESS_BEGIN = 100100; public const uint GLU_BEGIN = 100100; public const uint GLU_TESS_VERTEX = 100101; public const uint GLU_VERTEX = 100101; public const uint GLU_TESS_END = 100102; public const uint GLU_END = 100102; public const uint GLU_TESS_ERROR = 100103; public const uint GLU_TESS_EDGE_FLAG = 100104; public const uint GLU_EDGE_FLAG = 100104; public const uint GLU_TESS_COMBINE = 100105; public const uint GLU_TESS_BEGIN_DATA = 100106; public const uint GLU_TESS_VERTEX_DATA = 100107; public const uint GLU_TESS_END_DATA = 100108; public const uint GLU_TESS_ERROR_DATA = 100109; public const uint GLU_TESS_EDGE_FLAG_DATA = 100110; public const uint GLU_TESS_COMBINE_DATA = 100111; /* TessContour */ public const uint GLU_CW = 100120; public const uint GLU_CCW = 100121; public const uint GLU_INTERIOR = 100122; public const uint GLU_EXTERIOR = 100123; public const uint GLU_UNKNOWN = 100124; /* TessProperty */ public const uint GLU_TESS_WINDING_RULE = 100140; public const uint GLU_TESS_BOUNDARY_ONLY = 100141; public const uint GLU_TESS_TOLERANCE = 100142; /* TessError */ public const uint GLU_TESS_ERROR1 = 100151; public const uint GLU_TESS_ERROR2 = 100152; public const uint GLU_TESS_ERROR3 = 100153; public const uint GLU_TESS_ERROR4 = 100154; public const uint GLU_TESS_ERROR5 = 100155; public const uint GLU_TESS_ERROR6 = 100156; public const uint GLU_TESS_ERROR7 = 100157; public const uint GLU_TESS_ERROR8 = 100158; public const uint GLU_TESS_MISSING_BEGIN_POLYGON = 100151; public const uint GLU_TESS_MISSING_BEGIN_CONTOUR = 100152; public const uint GLU_TESS_MISSING_END_POLYGON = 100153; public const uint GLU_TESS_MISSING_END_CONTOUR = 100154; public const uint GLU_TESS_COORD_TOO_LARGE = 100155; public const uint GLU_TESS_NEED_COMBINE_CALLBACK = 100156; /* TessWinding */ public const uint GLU_TESS_WINDING_ODD = 100130; public const uint GLU_TESS_WINDING_NONZERO = 100131; public const uint GLU_TESS_WINDING_POSITIVE = 100132; public const uint GLU_TESS_WINDING_NEGATIVE = 100133; public const uint GLU_TESS_WINDING_ABS_GEQ_TWO = 100134; /* Obsolete. For compatibility with previous Sun OpenGL versions */ public const uint GLU_INCOMPATIBLE_GL_VERSION = 100903; //class GLUnurbs; //class GLUquadric; //class GLUtesselator; //#else //typedef struct GLUnurbs GLUnurbs; //typedef struct GLUquadric GLUquadric; //typedef struct GLUtesselator GLUtesselator; //#endif //typedef GLUnurbs GLUnurbsObj; //typedef GLUquadric GLUquadricObj; //typedef GLUtesselator GLUtesselatorObj; //typedef GLUtesselator GLUtriangulatorObj; //#define GLU_TESS_MAX_COORD 1.0e150 /* Internal convenience typedefs */ //typedef void (APIENTRY *_GLUfuncptr)(); //GLAPI void APIENTRY gluBeginCurve (GLUnurbs* nurb); //GLAPI void APIENTRY gluBeginPolygon (GLUtesselator* tess); //GLAPI void APIENTRY gluBeginSurface (GLUnurbs* nurb); //GLAPI void APIENTRY gluBeginTrim (GLUnurbs* nurb); //GLAPI GLint APIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data); //GLAPI GLint APIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data); //GLAPI void APIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks); //GLAPI void APIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb); //GLAPI void APIENTRY gluDeleteQuadric (GLUquadric* quad); //GLAPI void APIENTRY gluDeleteTess (GLUtesselator* tess); //GLAPI void APIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops); //GLAPI void APIENTRY gluEndCurve (GLUnurbs* nurb); //GLAPI void APIENTRY gluEndPolygon (GLUtesselator* tess); //GLAPI void APIENTRY gluEndSurface (GLUnurbs* nurb); //GLAPI void APIENTRY gluEndTrim (GLUnurbs* nurb); //GLAPI const GLubyte * APIENTRY gluErrorString (GLenum error); //GLAPI const wchar_t * APIENTRY gluErrorUnicodeStringEXT (GLenum error); //GLAPI void APIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data); //GLAPI const GLubyte * APIENTRY gluGetString (GLenum name); //GLAPI void APIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data); //GLAPI void APIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view); [DllImport("glu32.dll")] public static extern void gluLookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX, double upY, double upZ); //GLAPI GLUnurbs* APIENTRY gluNewNurbsRenderer (void); //GLAPI GLUquadric* APIENTRY gluNewQuadric (void); //GLAPI GLUtesselator* APIENTRY gluNewTess (void); //GLAPI void APIENTRY gluNextContour (GLUtesselator* tess, GLenum type); //GLAPI void APIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc); //GLAPI void APIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type); //GLAPI void APIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value); //GLAPI void APIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type); //GLAPI void APIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); //GLAPI void APIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep); [DllImport("glu32.dll")] public static extern void gluPerspective(double fovy, double aspect, double zNear, double zFar); //GLAPI void APIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport); //GLAPI GLint APIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ); //GLAPI void APIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type); //GLAPI void APIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc); //GLAPI void APIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw); //GLAPI void APIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal); //GLAPI void APIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation); //GLAPI void APIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture); //GLAPI GLint APIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut); //GLAPI void APIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks); //GLAPI void APIENTRY gluTessBeginContour (GLUtesselator* tess); //GLAPI void APIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data); //GLAPI void APIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); //GLAPI void APIENTRY gluTessEndContour (GLUtesselator* tess); //GLAPI void APIENTRY gluTessEndPolygon (GLUtesselator* tess); //GLAPI void APIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ); //GLAPI void APIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data); //GLAPI void APIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data); //GLAPI GLint APIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ); //GLAPI GLint APIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW); //#ifdef UNICODE //#define gluErrorStringWIN gluErrorUnicodeStringEXT //#else //#define gluErrorStringWIN gluErrorString //#endif } }