00001 /*************************************************************************** 00002 * Copyright (C) 2005 by Jacques Gasselin de Richebourg * 00003 * jacquesgasselin@hotmail.com * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU Library General Public License as * 00007 * published by the Free Software Foundation; either version 2 of the * 00008 * License, or (at your option) any later version. * 00009 * * 00010 * This program is distributed in the hope that it will be useful, * 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00013 * GNU General Public License for more details. * 00014 * * 00015 * You should have received a copy of the GNU Library General Public * 00016 * License along with this program; if not, write to the * 00017 * Free Software Foundation, Inc., * 00018 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 00019 ***************************************************************************/ 00020 #ifndef MATHGLPPGLFUNCTIONS_H 00021 #define MATHGLPPGLFUNCTIONS_H 00022 00023 00024 #ifdef _WIN32 00025 #pragma warning (disable:4069) 00026 #pragma warning (disable:4201) 00027 #include <windows.h> 00028 #include <GL/gl.h> 00029 #define M_PI 3.14159265358979323846 00030 #else 00031 #ifdef HAVE_CONFIG_H 00032 #include "config.h" 00033 #ifndef OPENGL_HEADER 00034 #define OPENGL_HEADER <GL/gl.h> 00035 #endif 00036 #include OPENGL_HEADER 00037 #else 00038 #include <GL/gl.h> 00039 #endif 00040 #endif 00041 00042 #include <cstring> 00043 #include <cmath> 00044 #include <cassert> 00045 00046 namespace mathglpp{ 00047 00048 template <int D, typename T> 00049 void glVertexv(const T* /*arr*/);// { assert(0 && "OpenGL does not support glVertexv for this type and dimension"); } 00050 00051 template <typename T> 00052 void glVertex2(T /*x*/, T /*y*/);// { assert(0 && "OpenGL does not support glVertex2 for this type"); } 00053 00054 template <typename T> 00055 void glVertex3(T /*x*/, T /*y*/, T /*z*/);// { assert(0 && "OpenGL does not support glVertex3 for this type"); } 00056 00057 template <typename T> 00058 void glVertex4(T /*x*/, T /*y*/, T /*z*/, T /*w*/);// { assert(0 && "OpenGL does not support glVertex4 for this type"); } 00059 00060 template <typename T> 00061 void glLoadMatrix(const T* /*m*/);// { assert(0 && "OpenGL does not support glLoadMatrix for this type"); } 00062 00063 template <typename T> 00064 void glMultMatrix(const T* /*m*/);// { assert(0 && "OpenGL does not support glMultMatrix for this type"); } 00065 00066 template <typename T> 00067 void glGet(GLenum /*pname*/, T* /*params*/);// { assert(0 && "OpenGL does not support glGet for this type"); } 00068 00069 template <typename T> 00070 void glMap1(GLenum /*target*/, T /*u1*/, T /*u2*/, GLint /*stride*/, GLint /*order*/, const T* /*points*/);// { assert(0 && "OpenGL does not support glMap1 for this type"); } 00071 00072 template <typename T> 00073 void glMap2(GLenum /*target*/, T /*u1*/, T /*u2*/, GLint /*ustride*/, GLint /*uorder*/, T /*v1*/, T /*v2*/, GLint /*vstride*/, GLint /*vorder*/, const T* /*points*/);// { assert(0 && "OpenGL does not support glMap1 for this type"); } 00074 00075 template <typename T> 00076 void glMapGrid1(GLint /*un*/, T /*u1*/, T /*u2*/);// { assert(0 && "OpenGL does not support glMapGrid1 for this type"); } 00077 00078 template <typename T> 00079 void glMapGrid2(GLint /*un*/, T /*u1*/, T /*u2*/, GLint /*vn*/, T /*v1*/, T /*v2*/);// { assert(0 && "OpenGL does not support glMapGrid2 for this type"); } 00080 00081 template <typename T> 00082 void glEvalCoord1(T /*u*/);// { assert(0 && "OpenGL does not support glEvalCoord1 for this type"); } 00083 00084 template <typename T> 00085 void glEvalCoord2(T /*u*/, T /*v*/);// { assert(0 && "OpenGL does not support glEvalCoord2 for this type"); } 00086 00087 }; 00088 00089 #endif 00090