lugre_gfx2D_L.cpp

Go to the documentation of this file.
00001 #include "lugre_prefix.h"
00002 #include "lugre_scripting.h"
00003 #include "lugre_luabind.h"
00004 #include "lugre_gfx2D.h"
00005 #include "lugre_BorderColourClipPaneOverlay.h"
00006 #include "lugre_CompassOverlay.h"
00007 #include "lugre_RobRenderableOverlay.h"
00008 #include "lugre_SortedOverlayContainer.h"
00009 #include "lugre_gfx3D.h"
00010 #include "lugre_ogrewrapper.h"
00011 
00012 extern "C" {
00013     #include "lua.h"
00014     #include "lauxlib.h"
00015     #include "lualib.h"
00016 }
00017 
00018 #define kCursorOverlayZOrder        640
00019 
00020 
00021 namespace Lugre {
00022 
00023 class cGfx2D_L : public cLuaBind<cGfx2D> { public:
00025         virtual void RegisterMethods    (lua_State *L) { PROFILE
00026             // mlMethod.push_back((struct luaL_reg){"Meemba",       cGfx_L::Get});
00027             // lua_register(L,"MyGlobalFun",    MyGlobalFun);
00028             // lua_register(L,"MyStaticMethod", &cSomeClass::MyStaticMethod);
00029 
00030             lua_register(L,"CreateGfx2D",           &cGfx2D_L::CreateGfx2D);
00031             lua_register(L,"CreateCursorGfx2D",     &cGfx2D_L::CreateCursorGfx2D);
00032             lua_register(L,"GetGfx2DCount",         &cGfx2D_L::GetGfx2DCount);
00033 
00034             #define REGISTER_METHOD(methodname) mlMethod.push_back(make_luaL_reg(#methodname,&cGfx2D_L::methodname));
00035 
00036             REGISTER_METHOD(Destroy);
00037             REGISTER_METHOD(InitCompass);
00038             REGISTER_METHOD(InitPanel);
00039             REGISTER_METHOD(InitCCPO);
00040             REGISTER_METHOD(InitCCTO);
00041             REGISTER_METHOD(InitBCCPO);
00042             REGISTER_METHOD(InitSOC);
00043             REGISTER_METHOD(InitRROC);
00044             REGISTER_METHOD(InitText);
00045             REGISTER_METHOD(SetPrepareFrameStep);
00046             REGISTER_METHOD(SetTransparent);
00047             REGISTER_METHOD(SetVisible);
00048             REGISTER_METHOD(GetVisible);
00049             REGISTER_METHOD(SetMaterial);
00050             REGISTER_METHOD(SetBorderMaterial);
00051             REGISTER_METHOD(SetPos);
00052             REGISTER_METHOD(GetPos);
00053             REGISTER_METHOD(SetDimensions);
00054             REGISTER_METHOD(GetDimensions);
00055             REGISTER_METHOD(SetTextAlignment);
00056             REGISTER_METHOD(SetAlignment);
00057             REGISTER_METHOD(SetUV);
00058             REGISTER_METHOD(SetPartUV);
00059             REGISTER_METHOD(SetClip);
00060             REGISTER_METHOD(SetBorder);
00061             REGISTER_METHOD(SetCharHeight);
00062             REGISTER_METHOD(SetFont);
00063             REGISTER_METHOD(SetText);
00064             REGISTER_METHOD(SetAutoWrap);
00065             REGISTER_METHOD(SetColour);
00066             REGISTER_METHOD(SetColours);
00067             REGISTER_METHOD(SetPartColours);
00068             REGISTER_METHOD(SetRotate);
00069             REGISTER_METHOD(GetTextBounds);
00070             REGISTER_METHOD(GetGlyphAtPos);
00071             REGISTER_METHOD(GetGlyphBounds);
00072             REGISTER_METHOD(SetUVMid);
00073             REGISTER_METHOD(SetUVRad);
00074             REGISTER_METHOD(SetAngBias);
00075             REGISTER_METHOD(SetRankFactor);
00076             
00077             REGISTER_METHOD(SetTrackPosSceneNode);
00078             REGISTER_METHOD(SetTrackOffset);
00079             REGISTER_METHOD(SetTrackMouse);
00080     
00081             REGISTER_METHOD(GetLeft);
00082             REGISTER_METHOD(GetTop);
00083             REGISTER_METHOD(GetDerivedLeft);
00084             REGISTER_METHOD(GetDerivedTop);
00085             REGISTER_METHOD(GetWidth);
00086             REGISTER_METHOD(GetHeight);
00087             
00088             REGISTER_METHOD(RenderableBegin);
00089             REGISTER_METHOD(RenderableVertex);
00090             REGISTER_METHOD(RenderableIndex);
00091             REGISTER_METHOD(RenderableIndex3);
00092             REGISTER_METHOD(RenderableEnd);
00093             REGISTER_METHOD(RenderableSkipVertices);
00094             REGISTER_METHOD(RenderableSkipIndices);
00095             
00096             REGISTER_METHOD(SOC_ChildBringToFront);
00097             REGISTER_METHOD(SOC_ChildSendToBack);
00098             REGISTER_METHOD(SOC_ChildInsertAfter);
00099             REGISTER_METHOD(SOC_ChildInsertBefore);
00100             
00101             // synced with include/gfx2D.h
00102             #define RegisterClassConstant(name) cScripting::SetGlobal(L,#name,cGfx2D::name)
00103             
00104             RegisterClassConstant(kGfx2DAlign_Left);
00105             RegisterClassConstant(kGfx2DAlign_Top);
00106             RegisterClassConstant(kGfx2DAlign_Right);
00107             RegisterClassConstant(kGfx2DAlign_Bottom);
00108             RegisterClassConstant(kGfx2DAlign_Center);
00109             
00110             #undef RegisterClassConstant
00111             #define RegisterClassConstant(name) cScripting::SetGlobal(L,#name,cBorderColourClipPaneOverlay::name)
00112             RegisterClassConstant(kBCCPOPart_LT);
00113             RegisterClassConstant(kBCCPOPart_T);
00114             RegisterClassConstant(kBCCPOPart_RT);
00115             RegisterClassConstant(kBCCPOPart_L);
00116             RegisterClassConstant(kBCCPOPart_R);
00117             RegisterClassConstant(kBCCPOPart_LB);
00118             RegisterClassConstant(kBCCPOPart_B);
00119             RegisterClassConstant(kBCCPOPart_RB);
00120             RegisterClassConstant(kBCCPOPart_M);
00121         }
00122 
00124         virtual void RegisterMembers    () { PROFILE
00125             cGfx2D* prototype = new cGfx2D(); // memory leak : never deleted, but better than side effects
00126             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvTrackPosOffset,           0);
00127             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvTrackPosTargetSizeFactor, 0);
00128             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvTrackPosOwnSizeFactor,    0);
00129             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvTrackClampMin,            0);
00130             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvTrackClampMax,            0);
00131             cMemberVar_REGISTER(prototype,  kVarType_Vector2,       mvTrackSetSizeFactor,       0);
00132             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbTrackClamp,               0);
00133             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbTrackHideIfClamped,       0);
00134             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbTrackHideIfBehindCam,     0);
00135             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbTrackClampMaxXIfBehindCam,    0);
00136             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbTrackClampMaxYIfBehindCam,    0);
00137             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbTrackSetSize,             0);
00138             cMemberVar_REGISTER(prototype,  kVarType_bool,          mbTrackMouse,               0);
00139         }
00140 
00142 
00144         static int  GetGfx2DCount       (lua_State *L) { PROFILE
00145             lua_pushnumber(L,cGfx2D::miCount);
00146             return 1;
00147         }
00148 
00150         static int  CreateGfx2D     (lua_State *L) { PROFILE
00151             cGfx2D* target = new cGfx2D();
00152             return CreateUData(L,target);
00153         }
00154 
00157         static int  CreateCursorGfx2D       (lua_State *L) { PROFILE
00158             Ogre::Overlay* pCursorOverlay = cGfx2D::CreateOverlay(cGfx2D::GetUniqueName().c_str(),kCursorOverlayZOrder);
00159             cGfx2D* target = new cGfx2D(pCursorOverlay);
00160             return CreateUData(L,target);
00161         }
00162         
00164         static int  Destroy         (lua_State *L) { PROFILE
00165             //printf("cGfx2D_L::Destroy start\n");
00166             delete checkudata_alive(L);
00167             //printf("cGfx2D_L::Destroy end\n");
00168             return 0;
00169         }
00170         
00173         static int  InitPanel       (lua_State *L) { PROFILE /*(cGfx2D* pParent=0); */
00174             checkudata_alive(L)->InitPanel((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00175             return 0;
00176         }
00177         
00180         static int  InitCompass     (lua_State *L) { PROFILE /*(cGfx2D* pParent=0); */
00181             checkudata_alive(L)->InitCompass((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00182             return 0;
00183         }
00184         
00187         static int  InitCCPO        (lua_State *L) { PROFILE /*(cGfx2D* pParent=0); */
00188             checkudata_alive(L)->InitCCPO((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00189             return 0;
00190         }
00191         
00194         static int  InitCCTO        (lua_State *L) { PROFILE /*(cGfx2D* pParent=0); */
00195             checkudata_alive(L)->InitCCTO((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00196             return 0;
00197         }
00198         
00201         static int  InitBCCPO       (lua_State *L) { PROFILE /*(cGfx2D* pParent=0); */
00202             checkudata_alive(L)->InitBCCPO((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00203             return 0;
00204         }
00205         
00208         static int  InitSOC     (lua_State *L) { PROFILE
00209             checkudata_alive(L)->InitSOC((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00210             return 0;
00211         }
00212         
00215         static int  InitRROC        (lua_State *L) { PROFILE
00216             checkudata_alive(L)->InitRROC((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00217             return 0;
00218         }
00219         
00222         static int  InitText        (lua_State *L) { PROFILE
00223             checkudata_alive(L)->InitText((lua_gettop(L) > 1 && !lua_isnil(L,2))?checkudata_alive(L,2):0);
00224             return 0;
00225         }
00226 
00227         
00230         static int  SetPrepareFrameStep     (lua_State *L) { PROFILE
00231             checkudata_alive(L)->SetPrepareFrameStep(lua_isboolean(L,2) ? lua_toboolean(L,2) : luaL_checkint(L,2));
00232             return 0;
00233         }
00234         
00238         static int  SetVisible      (lua_State *L) { PROFILE /*(const bool bVisible); */
00239             checkudata_alive(L)->SetVisible(lua_isboolean(L,2) ? lua_toboolean(L,2) : luaL_checkint(L,2));
00240             return 0;
00241         }
00242 
00247         static int  SetTransparent      (lua_State *L) { PROFILE /*(const bool bVisible); */
00248             cColourClipPaneOverlay* pCCPO = checkudata_alive(L)->mpCCPO; 
00249             if (pCCPO) pCCPO->setTransparent(lua_isboolean(L,2) ? lua_toboolean(L,2) : luaL_checkint(L,2));
00250             return 0;
00251         }
00252         
00254         static int  GetVisible      (lua_State *L) { PROFILE /*(const bool bVisible); */
00255             lua_pushboolean(L,checkudata_alive(L)->GetVisible());
00256             return 1;
00257         }
00258         
00261         static int  SetMaterial     (lua_State *L) { PROFILE /*(const char* szMat); */
00262             checkudata_alive(L)->SetMaterial(luaL_checkstring(L, 2));
00263             return 0;
00264         }
00265         
00268         static int  SetBorderMaterial       (lua_State *L) { PROFILE
00269             checkudata_alive(L)->SetBorderMaterial(luaL_checkstring(L, 2));
00270             return 0;
00271         }
00272         
00275         static int  SetPos          (lua_State *L) { PROFILE 
00276             checkudata_alive(L)->SetPos(luaL_checknumber(L, 2),luaL_checknumber(L, 3));
00277             return 0;
00278         }
00279         
00282         static int  GetPos          (lua_State *L) { PROFILE
00283             lua_pushnumber(L,checkudata_alive(L)->GetLeft());
00284             lua_pushnumber(L,checkudata_alive(L)->GetTop());
00285             return 2;
00286         }
00287         
00290         static int  SetDimensions   (lua_State *L) { PROFILE
00291             checkudata_alive(L)->SetDimensions(luaL_checknumber(L, 2),luaL_checknumber(L, 3));
00292             return 0;
00293         }
00294 
00296         static int  GetDimensions           (lua_State *L) { PROFILE
00297             lua_pushnumber(L,checkudata_alive(L)->GetWidth());
00298             lua_pushnumber(L,checkudata_alive(L)->GetHeight());
00299             return 2;
00300         }
00301 
00305         static int  SetAlignment    (lua_State *L) { PROFILE
00306             checkudata_alive(L)->SetAlignment(luaL_checkint(L, 2),luaL_checkint(L, 3));
00307             return 0;
00308         }
00309         
00312         static int  SetTextAlignment    (lua_State *L) { PROFILE 
00313             checkudata_alive(L)->SetTextAlignment(luaL_checkint(L, 2));
00314             return 0;
00315         }
00316         
00319         static int  SetUV           (lua_State *L) { PROFILE 
00320             checkudata_alive(L)->SetUV(luaL_checknumber(L, 2),luaL_checknumber(L, 3),luaL_checknumber(L, 4),luaL_checknumber(L, 5));
00321             return 0;
00322         }
00323         
00327         static int  SetPartUV           (lua_State *L) { PROFILE
00328             checkudata_alive(L)->SetPartUV(luaL_checkint(L, 2),luaL_checknumber(L, 3),luaL_checknumber(L, 4),luaL_checknumber(L, 5),luaL_checknumber(L, 6));
00329             return 0;
00330         }
00331         
00335         static int  SetClip         (lua_State *L) { PROFILE
00336             checkudata_alive(L)->SetClip(luaL_checknumber(L, 2),luaL_checknumber(L, 3),luaL_checknumber(L, 4),luaL_checknumber(L, 5));
00337             return 0;
00338         }
00339         
00342         static int  SetBorder           (lua_State *L) { PROFILE
00343             checkudata_alive(L)->SetBorder(luaL_checknumber(L, 2),luaL_checknumber(L, 3),luaL_checknumber(L, 4),luaL_checknumber(L, 5));
00344             return 0;
00345         }
00346         
00350         static int  SetCharHeight   (lua_State *L) { PROFILE /*(float fHeight); */
00351             checkudata_alive(L)->SetCharHeight(luaL_checknumber(L, 2));
00352             return 0;
00353         }
00354         
00358         static int  SetFont         (lua_State *L) { PROFILE /*(const char* szFont); */
00359             checkudata_alive(L)->SetFont(luaL_checkstring(L, 2));
00360             return 0;
00361         }
00362         
00367         static int  SetText         (lua_State *L) { PROFILE /*(const char* szText); */
00368             checkudata_alive(L)->SetText(luaL_checkstring(L, 2));
00369             return 0;
00370         }
00371         
00374         static int  SetAutoWrap         (lua_State *L) { PROFILE
00375             checkudata_alive(L)->SetAutoWrap(luaL_checkint(L, 2));
00376             return 0;
00377         }
00378         
00382         static int  SetColour       (lua_State *L) { PROFILE 
00383             checkudata_alive(L)->SetColour(luaSFZ_checkColour4(L, 2));
00384             return 0;
00385         }
00386 
00389         static int  SetColours      (lua_State *L) { PROFILE 
00390             checkudata_alive(L)->SetColours(luaSFZ_checkColour4(L,2),luaSFZ_checkColour4(L,6),luaSFZ_checkColour4(L,10),luaSFZ_checkColour4(L,14));
00391             return 0;
00392         }
00393 
00397         static int  SetPartColours      (lua_State *L) { PROFILE 
00398             checkudata_alive(L)->SetPartColours(luaL_checkint(L, 2),luaSFZ_checkColour4(L,3),luaSFZ_checkColour4(L,7),luaSFZ_checkColour4(L,11),luaSFZ_checkColour4(L,15));
00399             return 0;
00400         }
00401         
00404         static int  SetRotate           (lua_State *L) { PROFILE /*(float radians); */
00405             checkudata_alive(L)->SetRotate(luaL_checknumber(L, 2));
00406             return 0;
00407         }
00408         
00411         static int  GetTextBounds       (lua_State *L) { PROFILE
00412             Ogre::Real w,h;
00413             checkudata_alive(L)->GetTextBounds(w,h);
00414             lua_pushnumber(L,w);
00415             lua_pushnumber(L,h);
00416             return 2;
00417         }
00418         
00422         static int  GetGlyphAtPos       (lua_State *L) { PROFILE
00423             lua_pushnumber(L,checkudata_alive(L)->GetGlyphAtPos(luaL_checkint(L, 2),luaL_checkint(L, 3)));
00424             return 1;
00425         }
00426         
00430         static int  GetGlyphBounds      (lua_State *L) { PROFILE
00431             Ogre::Real l,t,r,b;
00432             checkudata_alive(L)->GetGlyphBounds(luaL_checkint(L, 2),l,t,r,b);
00433             lua_pushnumber(L,l);
00434             lua_pushnumber(L,t);
00435             lua_pushnumber(L,r);
00436             lua_pushnumber(L,b);
00437             return 4;
00438         }
00439         
00442         static int  GetLeft     (lua_State *L) { PROFILE
00443             lua_pushnumber(L,checkudata_alive(L)->GetLeft());
00444             return 1;
00445         }
00446         
00449         static int  GetTop      (lua_State *L) { PROFILE
00450             lua_pushnumber(L,checkudata_alive(L)->GetTop());
00451             return 1;
00452         }
00453         
00456         static int  GetDerivedLeft      (lua_State *L) { PROFILE
00457             lua_pushnumber(L,checkudata_alive(L)->GetDerivedLeft());
00458             return 1;
00459         }
00460         
00463         static int  GetDerivedTop       (lua_State *L) { PROFILE
00464             lua_pushnumber(L,checkudata_alive(L)->GetDerivedTop());
00465             return 1;
00466         }
00467         
00470         static int  GetWidth        (lua_State *L) { PROFILE
00471             lua_pushnumber(L,checkudata_alive(L)->GetWidth());
00472             return 1;
00473         }
00474         
00477         static int  GetHeight       (lua_State *L) { PROFILE
00478             lua_pushnumber(L,checkudata_alive(L)->GetHeight());
00479             return 1;
00480         }
00481         
00482         
00483         
00484         
00485         
00486         
00487 
00490         static int      RenderableBegin     (lua_State *L) { PROFILE
00491             // void Begin   (size_t iVertexCount,size_t iIndexCount,bool bDynamic,bool bKeepOldIndices,RenderOperation::OperationType opType);
00492             checkudata_alive(L)->mpRROC->Begin(
00493                 luaL_checkint(L,2),
00494                 luaL_checkint(L,3),
00495                 lua_isboolean(L,4) ? lua_toboolean(L,4) : luaL_checkint(L,4),
00496                 lua_isboolean(L,5) ? lua_toboolean(L,5) : luaL_checkint(L,5),
00497                 (Ogre::RenderOperation::OperationType)luaL_checkint(L,6)
00498                 );
00499             return 0;
00500         }
00501         
00508         static int      RenderableVertex    (lua_State *L) { PROFILE
00509             cRobRenderOp* pRobRenderOp = checkudata_alive(L)->mpRROC;
00510             if (!pRobRenderOp) return 0;
00511             #define F(i) luaL_checknumber(L,i)
00512             #define V(i) Vector3(F(i+0),F(i+1),F(i+2))
00513             #define C(i) ColourValue(F(i+0),F(i+1),F(i+2),F(i+3))
00514             Ogre::Vector3 p(F(2),F(3),F(4));
00515             int argc = lua_gettop(L) - 1; // arguments, not counting "this"-object
00516             switch (argc) {
00517                       case 3:   pRobRenderOp->Vertex(p);                    // x,y,z        
00518                 break;case 5:   pRobRenderOp->Vertex(p,F(5),F(6));          // x,y,z,u,v
00519                 break;case 6:   pRobRenderOp->Vertex(p,V(5));               // x,y,z,nx,ny,nz
00520                 break;case 8:   pRobRenderOp->Vertex(p,V(5),F(8),F(9));     // x,y,z,nx,ny,nz,u,v
00521                     
00522                 break;case 7:   pRobRenderOp->Vertex(p,C(5));               // x,y,z,               r,g,b,a
00523                 break;case 9:   pRobRenderOp->Vertex(p,F(5),F(6),C(7));     // x,y,z,u,v,           r,g,b,a
00524                 break;case 10:  pRobRenderOp->Vertex(p,V(5),C(8));          // x,y,z,nx,ny,nz,      r,g,b,a
00525                 break;case 12:  pRobRenderOp->Vertex(p,V(5),F(8),F(9),C(10));// x,y,z,nx,ny,nz,u,v, r,g,b,a
00526                 break;default: printf("WARNING ! cGfx3D_L::RenderableVertex : strange argument count : %d\n",argc);
00527             }
00528             return 0;
00529         }
00530         
00533         static int      RenderableIndex     (lua_State *L) { PROFILE
00534             checkudata_alive(L)->mpRROC->Index(luaL_checkint(L,2));
00535             return 0;
00536         }
00537 
00540         static int      RenderableIndex3        (lua_State *L) { PROFILE
00541             checkudata_alive(L)->mpRROC->Index(luaL_checkint(L,2));
00542             checkudata_alive(L)->mpRROC->Index(luaL_checkint(L,3));
00543             checkudata_alive(L)->mpRROC->Index(luaL_checkint(L,4));
00544             return 0;
00545         }
00546         
00548         static int      RenderableSkipVertices  (lua_State *L) { PROFILE
00549             checkudata_alive(L)->mpRROC->SkipVertices(luaL_checkint(L,2));
00550             return 0;
00551         }
00552         
00554         static int      RenderableSkipIndices   (lua_State *L) { PROFILE
00555             checkudata_alive(L)->mpRROC->SkipIndices(luaL_checkint(L,2));
00556             return 0;
00557         }
00558         
00560         static int      RenderableEnd       (lua_State *L) { PROFILE
00561             checkudata_alive(L)->mpRROC->End();
00562             return 0;
00563         }
00564         
00565         
00567         
00569         static int      SOC_ChildBringToFront       (lua_State *L) { PROFILE
00570             cSortedOverlayContainer*    pSOC = checkudata_alive(L)->mpSOC;
00571             Ogre::OverlayElement*       pChild = checkudata_alive(L,2)->mpOverlayElement;
00572             if (pSOC && pChild) pSOC->ChildBringToFront(pChild);
00573             return 0;
00574         }
00576         static int      SOC_ChildSendToBack     (lua_State *L) { PROFILE
00577             cSortedOverlayContainer*    pSOC = checkudata_alive(L)->mpSOC;
00578             Ogre::OverlayElement*       pChild = checkudata_alive(L,2)->mpOverlayElement;
00579             if (pSOC && pChild) pSOC->ChildSendToBack(pChild);
00580             return 0;
00581         }
00583         static int      SOC_ChildInsertAfter        (lua_State *L) { PROFILE
00584             cSortedOverlayContainer*    pSOC = checkudata_alive(L)->mpSOC;
00585             Ogre::OverlayElement*       pChild = checkudata_alive(L,2)->mpOverlayElement;
00586             Ogre::OverlayElement*       pOther = checkudata_alive(L,3)->mpOverlayElement;
00587             if (pSOC && pChild && pOther) pSOC->ChildInsertAfter(pChild,pOther);
00588             return 0;
00589         }
00591         static int      SOC_ChildInsertBefore       (lua_State *L) { PROFILE
00592             cSortedOverlayContainer*    pSOC = checkudata_alive(L)->mpSOC;
00593             Ogre::OverlayElement*       pChild = checkudata_alive(L,2)->mpOverlayElement;
00594             Ogre::OverlayElement*       pOther = checkudata_alive(L,3)->mpOverlayElement;
00595             if (pSOC && pChild && pOther) pSOC->ChildInsertBefore(pChild,pOther);
00596             return 0;
00597         }
00598         
00599         
00601         
00604         static int  SetUVMid        (lua_State *L) { PROFILE
00605             cCompassOverlay* pCompass = checkudata_alive(L)->mpCompass;
00606             if (pCompass) pCompass->SetUVMid(luaL_checknumber(L,2),luaL_checknumber(L,3));
00607             return 0;
00608         }
00609         
00612         static int  SetUVRad        (lua_State *L) { PROFILE
00613             cCompassOverlay* pCompass = checkudata_alive(L)->mpCompass;
00614             if (pCompass) pCompass->SetUVRad(luaL_checknumber(L,2),luaL_checknumber(L,3));
00615             return 0;
00616         }
00617         
00621         static int  SetAngBias      (lua_State *L) { PROFILE
00622             cCompassOverlay* pCompass = checkudata_alive(L)->mpCompass;
00623             if (pCompass) pCompass->SetAngBias(luaL_checknumber(L,2));
00624             return 0;
00625         }
00626         
00630         static int  SetRankFactor   (lua_State *L) { PROFILE
00631             cSortedOverlayContainer* pSortedContainer = checkudata_alive(L)->mpSOC;
00632             if (pSortedContainer) pSortedContainer->SetRankFactor(luaL_checkint(L,2));
00633             return 0;
00634         }
00635         
00638         static int  SetTrackPosSceneNode            (lua_State *L) { PROFILE
00639             cGfx3D* target = (lua_gettop(L) > 1 && !lua_isnil(L,2))?cLuaBind<cGfx3D>::checkudata_alive(L,2):0;
00640             checkudata_alive(L)->mpTrackPosTarget = target;
00641             if (target) checkudata_alive(L)->SetPrepareFrameStep(true);
00642             return 0;
00643         }
00644         
00647         static int  SetTrackOffset      (lua_State *L) { PROFILE /*(const bool bVisible); */
00648             checkudata_alive(L)->mvTrackPosOffset.x = luaL_checknumber(L,2);
00649             checkudata_alive(L)->mvTrackPosOffset.y = luaL_checknumber(L,3);
00650             return 0;
00651         }
00652         
00656         static int  SetTrackMouse       (lua_State *L) { PROFILE /*(const bool bVisible); */
00657             bool bOn = (lua_isboolean(L,2) ? lua_toboolean(L,2) : luaL_checkint(L,2));
00658             checkudata_alive(L)->mbTrackMouse = bOn;
00659             if (bOn) checkudata_alive(L)->SetPrepareFrameStep(true);
00660             return 0;
00661         }
00662 
00663         virtual const char* GetLuaTypeName () { return "lugre.gfx2D"; }
00664 };
00665 
00667 void    cGfx2D::LuaRegister     (lua_State *L) { PROFILE
00668     cLuaBind<cGfx2D>::GetSingletonPtr(new cGfx2D_L())->LuaRegister(L);
00669 }
00670 
00671 };

Generated on Wed May 23 06:00:14 2012 for cpp by  doxygen 1.5.6