1#ifndef QWT3D_OPENGLHELPER_H
2#define QWT3D_OPENGLHELPER_H
18#ifndef QWT3D_NOT_FOR_DOXYGEN
31 stateval_ = glIsEnabled(what);
46 void turnOn(
bool persist =
false)
53 void turnOff(
bool persist =
false)
66inline const GLubyte* gl_error()
69 const GLubyte* err =
nullptr;
71 if ((errcode = glGetError()) != GL_NO_ERROR) {
72 err = gluErrorString(errcode);
78inline void SaveGlDeleteLists(GLuint& lstidx, GLsizei range)
81 glDeleteLists(lstidx, range);
89inline void getMatrices(GLdouble* modelMatrix, GLdouble* projMatrix, GLint* viewport)
91 glGetIntegerv(GL_VIEWPORT, viewport);
92 glGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix);
93 glGetDoublev(GL_PROJECTION_MATRIX, projMatrix);
100inline bool ViewPort2World(
double& objx,
double& objy,
double& objz,
double winx,
double winy,
double winz)
102 GLdouble modelMatrix[ 16 ];
103 GLdouble projMatrix[ 16 ];
106 getMatrices(modelMatrix, projMatrix, viewport);
107 int res = gluUnProject(winx, winy, winz, modelMatrix, projMatrix, viewport, &objx, &objy, &objz);
109 return (res == GL_FALSE) ? false :
true;
116inline bool World2ViewPort(
double& winx,
double& winy,
double& winz,
double objx,
double objy,
double objz)
118 GLdouble modelMatrix[ 16 ];
119 GLdouble projMatrix[ 16 ];
122 getMatrices(modelMatrix, projMatrix, viewport);
123 int res = gluProject(objx, objy, objz, modelMatrix, projMatrix, viewport, &winx, &winy, &winz);
125 return (res == GL_FALSE) ? false :
true;
Helper class for managing OpenGL state enable/disable
Definition qwt3d_openglhelper.h:26