From cda8e426f609530062524bb43f103612d25cacc7 Mon Sep 17 00:00:00 2001 From: pixel Date: Mon, 2 Apr 2007 23:35:59 +0000 Subject: Adding gluLookAt and gluPerspective bindings to LuaGL. --- lib/LuaGL.cc | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'lib') diff --git a/lib/LuaGL.cc b/lib/LuaGL.cc index 19eb0b2..375be99 100644 --- a/lib/LuaGL.cc +++ b/lib/LuaGL.cc @@ -4544,6 +4544,42 @@ static int gl_viewport(lua_State *L) return 0; } +/*LookAt (eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ ) -> none*/ +static int gl_lookat(lua_State *L) +{ + /* test arguments type */ + if(!( lua_isnumber(L, 1) && lua_isnumber(L, 2) && + lua_isnumber(L, 3) && lua_isnumber(L, 4) && + lua_isnumber(L, 5) && lua_isnumber(L, 6) && + lua_isnumber(L, 7) && lua_isnumber(L, 8) && + lua_isnumber(L, 9) )) + luaL_error(L, "incorrect argument to function 'gl.LookAt'"); + + /* call openGL function */ + gluLookAt((GLdouble)lua_tonumber(L, 1), (GLdouble)lua_tonumber(L, 2), + (GLdouble)lua_tonumber(L, 3), (GLdouble)lua_tonumber(L, 4), + (GLdouble)lua_tonumber(L, 5), (GLdouble)lua_tonumber(L, 6), + (GLdouble)lua_tonumber(L, 7), (GLdouble)lua_tonumber(L, 8), + (GLdouble)lua_tonumber(L, 9)); + + return 0; +} + +/*Perspective (eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ ) -> none*/ +static int gl_perspective(lua_State *L) +{ + /* test arguments type */ + if(!( lua_isnumber(L, 1) && lua_isnumber(L, 2) && + lua_isnumber(L, 3) && lua_isnumber(L, 4) )) + luaL_error(L, "incorrect argument to function 'gl.Perspective'"); + + /* call openGL function */ + gluPerspective((GLdouble)lua_tonumber(L, 1), (GLdouble)lua_tonumber(L, 2), + (GLdouble)lua_tonumber(L, 3), (GLdouble)lua_tonumber(L, 4)); + + return 0; +} + static const luaL_reg gllib[] = { {"Accum", gl_accum}, {"AlphaFunc", gl_alpha_func}, @@ -4683,6 +4719,8 @@ static const luaL_reg gllib[] = { {"Vertex", gl_vertex}, {"VertexPointer", gl_vertex_pointer}, {"Viewport", gl_viewport}, + {"LookAt", gl_lookat}, + {"Perspective", gl_perspective}, {NULL, NULL} }; -- cgit v1.2.3