@@ -0,0 +1,28 @@ | |||||
{ | |||||
"configurations": [ | |||||
{ | |||||
"name": "Mac", | |||||
"includePath": ["/usr/include"], | |||||
"browse" : { | |||||
"limitSymbolsToIncludedHeaders" : true, | |||||
"databaseFilename" : "" | |||||
} | |||||
}, | |||||
{ | |||||
"name": "Linux", | |||||
"includePath": ["/usr/include"], | |||||
"browse" : { | |||||
"limitSymbolsToIncludedHeaders" : true, | |||||
"databaseFilename" : "" | |||||
} | |||||
}, | |||||
{ | |||||
"name": "Win32", | |||||
"includePath": ["c:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include", "src"], | |||||
"browse" : { | |||||
"limitSymbolsToIncludedHeaders" : true, | |||||
"databaseFilename" : "" | |||||
} | |||||
} | |||||
] | |||||
} |
@@ -66,6 +66,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{B629 | |||||
EndProject | EndProject | ||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "15_lolimgui", "..\doc\tutorial\15_lolimgui.vcxproj", "{81C83B42-D00A-4FA3-9A3D-80F9D46524BF}" | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "15_lolimgui", "..\doc\tutorial\15_lolimgui.vcxproj", "{81C83B42-D00A-4FA3-9A3D-80F9D46524BF}" | ||||
EndProject | EndProject | ||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "14_lol_lua", "..\doc\tutorial\14_lol_lua.vcxproj", "{31B96262-1C41-43B9-BA38-27AA385B05DB}" | |||||
EndProject | |||||
Global | Global | ||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
Debug|ORBIS = Debug|ORBIS | Debug|ORBIS = Debug|ORBIS | ||||
@@ -308,6 +310,18 @@ Global | |||||
{81C83B42-D00A-4FA3-9A3D-80F9D46524BF}.Release|Win32.Build.0 = Release|Win32 | {81C83B42-D00A-4FA3-9A3D-80F9D46524BF}.Release|Win32.Build.0 = Release|Win32 | ||||
{81C83B42-D00A-4FA3-9A3D-80F9D46524BF}.Release|x64.ActiveCfg = Release|x64 | {81C83B42-D00A-4FA3-9A3D-80F9D46524BF}.Release|x64.ActiveCfg = Release|x64 | ||||
{81C83B42-D00A-4FA3-9A3D-80F9D46524BF}.Release|x64.Build.0 = Release|x64 | {81C83B42-D00A-4FA3-9A3D-80F9D46524BF}.Release|x64.Build.0 = Release|x64 | ||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Debug|ORBIS.ActiveCfg = Debug|ORBIS | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Debug|ORBIS.Build.0 = Debug|ORBIS | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Debug|Win32.ActiveCfg = Debug|Win32 | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Debug|Win32.Build.0 = Debug|Win32 | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Debug|x64.ActiveCfg = Debug|x64 | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Debug|x64.Build.0 = Debug|x64 | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Release|ORBIS.ActiveCfg = Release|ORBIS | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Release|ORBIS.Build.0 = Release|ORBIS | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Release|Win32.ActiveCfg = Release|Win32 | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Release|Win32.Build.0 = Release|Win32 | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Release|x64.ActiveCfg = Release|x64 | |||||
{31B96262-1C41-43B9-BA38-27AA385B05DB}.Release|x64.Build.0 = Release|x64 | |||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(SolutionProperties) = preSolution | GlobalSection(SolutionProperties) = preSolution | ||||
HideSolutionNode = FALSE | HideSolutionNode = FALSE | ||||
@@ -341,5 +355,6 @@ Global | |||||
{73F1A804-1116-46C3-922A-9C0ADEB33F52} = {4C4BD478-3767-4C27-BD91-DAAFE7CD03A2} | {73F1A804-1116-46C3-922A-9C0ADEB33F52} = {4C4BD478-3767-4C27-BD91-DAAFE7CD03A2} | ||||
{B6297FF2-63D0-41EE-BE13-EFF720C9B0FA} = {1AFD580B-98B8-4689-B661-38C41132C60E} | {B6297FF2-63D0-41EE-BE13-EFF720C9B0FA} = {1AFD580B-98B8-4689-B661-38C41132C60E} | ||||
{81C83B42-D00A-4FA3-9A3D-80F9D46524BF} = {E74CF679-CA2A-47E9-B1F4-3779D6AC6B04} | {81C83B42-D00A-4FA3-9A3D-80F9D46524BF} = {E74CF679-CA2A-47E9-B1F4-3779D6AC6B04} | ||||
{31B96262-1C41-43B9-BA38-27AA385B05DB} = {E74CF679-CA2A-47E9-B1F4-3779D6AC6B04} | |||||
EndGlobalSection | EndGlobalSection | ||||
EndGlobal | EndGlobal |
@@ -0,0 +1,10 @@ | |||||
[Debug] | |||||
Pos=60,60 | |||||
Size=400,400 | |||||
Collapsed=0 | |||||
[Camera Setup] | |||||
Pos=60,60 | |||||
Size=307,314 | |||||
Collapsed=0 | |||||
@@ -159,93 +159,83 @@ SceneSetupLuaObject::~SceneSetupLuaObject() | |||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
SceneSetupLuaObject* SceneSetupLuaObject::New(lua_State* l, int arg_nb) | SceneSetupLuaObject* SceneSetupLuaObject::New(lua_State* l, int arg_nb) | ||||
{ | { | ||||
UNUSED(l); | |||||
UNUSED(arg_nb); | UNUSED(arg_nb); | ||||
LuaStack s(l); | |||||
LuaString n; | |||||
s >> n; | |||||
return new SceneSetupLuaObject(n()); | |||||
auto s = LuaStack::Begin(l); | |||||
auto n = s.Get<String>(); | |||||
return new SceneSetupLuaObject(n); | |||||
} | } | ||||
//-- Setup command ------------------------------------------------------------ | //-- Setup command ------------------------------------------------------------ | ||||
int SceneSetupLuaObject::AddLight(lua_State* l) | int SceneSetupLuaObject::AddLight(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
LuaString t; | |||||
s >> o >> t; | |||||
o->m_setup->AddLight(FindValue<LightType>(t().C())); | |||||
return 0; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
auto t = s.Get<String>(); | |||||
o->m_setup->AddLight(FindValue<LightType>(t.C())); | |||||
return s.End(); | |||||
} | } | ||||
int SceneSetupLuaObject::SetupScene(lua_State* l) | int SceneSetupLuaObject::SetupScene(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
s >> o; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
o->m_setup->SetupScene(); | o->m_setup->SetupScene(); | ||||
return 0; | |||||
return s.End(); | |||||
} | } | ||||
//-- main funcs --------------------------------------------------------------- | //-- main funcs --------------------------------------------------------------- | ||||
int SceneSetupLuaObject::SetPosition(lua_State* l) | int SceneSetupLuaObject::SetPosition(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
LuaVec3 c; | |||||
s >> o >> c; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
auto c = s.Get<vec3>(); | |||||
o->m_setup->SetPosition(c); | o->m_setup->SetPosition(c); | ||||
return 0; | |||||
return s.End(); | |||||
} | } | ||||
int SceneSetupLuaObject::SetLookAt(lua_State* l) | int SceneSetupLuaObject::SetLookAt(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
LuaVec3 c; | |||||
s >> o >> c; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
auto c = s.Get<vec3>(); | |||||
o->m_setup->SetLookAt(c); | o->m_setup->SetLookAt(c); | ||||
return 0; | |||||
return s.End(); | |||||
} | } | ||||
int SceneSetupLuaObject::SetColor(lua_State* l) | int SceneSetupLuaObject::SetColor(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
LuaColor c; | |||||
s >> o >> c; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
auto c = s.Get<vec4>(); | |||||
o->m_setup->SetColor(c); | o->m_setup->SetColor(c); | ||||
return 0; | |||||
return s.End(); | |||||
} | } | ||||
int SceneSetupLuaObject::Show(lua_State* l) | int SceneSetupLuaObject::Show(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
LuaDisplay e; | |||||
s >> o >> e; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
auto e = s.GetEnum<SceneSetup::DisplayBase>(); | |||||
o->m_setup->Show(e); | o->m_setup->Show(e); | ||||
return 0; | |||||
return s.End(); | |||||
} | } | ||||
int SceneSetupLuaObject::Hide(lua_State* l) | int SceneSetupLuaObject::Hide(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
LuaDisplay e; | |||||
s >> o >> e; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
auto e = s.GetEnum<SceneSetup::DisplayBase>(); | |||||
o->m_setup->Hide(e); | o->m_setup->Hide(e); | ||||
return 0; | |||||
return s.End(); | |||||
} | } | ||||
int SceneSetupLuaObject::Toggle(lua_State* l) | int SceneSetupLuaObject::Toggle(lua_State* l) | ||||
{ | { | ||||
LuaStack s(l); | |||||
LuaSSetupPtr o; | |||||
LuaDisplay e; | |||||
s >> o >> e; | |||||
auto s = LuaStack::Begin(l); | |||||
auto o = s.GetPtr<SceneSetupLuaObject>(); | |||||
auto e = s.GetEnum<SceneSetup::DisplayBase>(); | |||||
o->m_setup->Toggle(e); | o->m_setup->Toggle(e); | ||||
return 0; | |||||
return s.End(); | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
const LuaObjectLib* SceneSetupLuaObject::GetLib() | |||||
const LuaObjectLibrary* SceneSetupLuaObject::GetLib() | |||||
{ | { | ||||
typedef SceneSetupLuaObject SSLO; | typedef SceneSetupLuaObject SSLO; | ||||
static const LuaObjectLib lib = LuaObjectLib( | |||||
static const LuaObjectLibrary lib = LuaObjectLibrary( | |||||
"SceneSetup", | "SceneSetup", | ||||
//Statics | //Statics | ||||
{ { nullptr, nullptr } }, | { { nullptr, nullptr } }, | ||||
@@ -264,7 +254,7 @@ const LuaObjectLib* SceneSetupLuaObject::GetLib() | |||||
}, | }, | ||||
//Variables | //Variables | ||||
{ { nullptr, nullptr, nullptr } }); | { { nullptr, nullptr, nullptr } }); | ||||
return &lib; | |||||
return &lib; | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
@@ -273,7 +263,7 @@ SceneSetupLuaLoader::SceneSetupLuaLoader() : LuaLoader() | |||||
{ | { | ||||
lua_State* l = GetLuaState(); | lua_State* l = GetLuaState(); | ||||
LuaObjectDef::Register<SceneSetupLuaObject>(l); | |||||
LuaObjectHelper::Register<SceneSetupLuaObject>(l); | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
@@ -103,12 +103,10 @@ public: | |||||
bool m_show_gizmo; | bool m_show_gizmo; | ||||
bool m_show_lights; | bool m_show_lights; | ||||
}; | }; | ||||
typedef Lolua::VarEnum<SceneSetup::DisplayBase> LuaDisplay; | |||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
class SceneSetupLuaObject : public LuaObject | class SceneSetupLuaObject : public LuaObject | ||||
{ | { | ||||
typedef Lolua::VarPtr<SceneSetupLuaObject> LuaSSetupPtr; | |||||
public: | public: | ||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
SceneSetupLuaObject(String& name); | SceneSetupLuaObject(String& name); | ||||
@@ -116,7 +114,7 @@ public: | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
static SceneSetupLuaObject* New(lua_State* l, int arg_nb); | static SceneSetupLuaObject* New(lua_State* l, int arg_nb); | ||||
static const LuaObjectLib* GetLib(); | |||||
static const LuaObjectLibrary* GetLib(); | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
public: | public: | ||||
@@ -23,7 +23,6 @@ using namespace lol; | |||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
class DemoObject : public LuaObject | class DemoObject : public LuaObject | ||||
{ | { | ||||
typedef Lolua::VarPtr<DemoObject> LuaDemoObjectPtr; | |||||
public: | public: | ||||
DemoObject() : LuaObject() {} | DemoObject() : LuaObject() {} | ||||
virtual ~DemoObject() {} | virtual ~DemoObject() {} | ||||
@@ -37,47 +36,67 @@ public: | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
static int AddFive(lua_State* l) | static int AddFive(lua_State* l) | ||||
{ | { | ||||
LuaInt32 i; i.Get(l, 1); | |||||
auto stack = LuaStack::Begin(l); | |||||
int32_t i = stack.Get<int32_t>(); | |||||
i += 5; | i += 5; | ||||
return i.Return(l); | |||||
return (stack << i).End(); | |||||
} | } | ||||
static int AddTenInstance(lua_State* l) | |||||
LOLUA_DECLARE_RETURN_METHOD_ARGS(AddTenInstance, GetPtr<DemoObject>(), AddTenMethod, Get<float>(), Get<int32_t>(), Get<int32_t>()); | |||||
static int _AddTenInstance(lua_State* l) | |||||
{ | { | ||||
LuaStack stack(l); | |||||
LuaDemoObjectPtr obj; | |||||
LuaFloat f; | |||||
stack >> obj >> f; | |||||
f = obj->AddTenMethod(f); | |||||
return f.Return(l); | |||||
auto stack = LuaStack::Begin(l); | |||||
DemoObject* obj = stack.GetPtr<DemoObject>(); | |||||
float f = stack.Get<float>(); | |||||
int32_t i = stack.Get<int32_t>(); | |||||
int32_t i2 = stack.Get<int32_t>(); | |||||
f = obj->AddTenMethod(f, i, i2); | |||||
return (stack << f).End(); | |||||
} | } | ||||
float AddTenMethod(float f) | |||||
float AddTenMethod(float f, int32_t i, int32_t i2) | |||||
{ | { | ||||
UNUSED(i, i2); | |||||
return (f + 10); | return (f + 10); | ||||
} | } | ||||
static int GetX(lua_State* l) | static int GetX(lua_State* l) | ||||
{ | { | ||||
LuaStack stack(l); | |||||
LuaDemoObjectPtr obj; | |||||
LuaInt32 i; | |||||
stack >> obj; | |||||
auto stack = LuaStack::Begin(l); | |||||
DemoObject* obj = stack.GetPtr<DemoObject>(); | |||||
auto i = stack.Get<int32_t>(); | |||||
i = obj->m_x; | i = obj->m_x; | ||||
return stack << i; | |||||
return (stack << i).End(); | |||||
} | } | ||||
static int SetX(lua_State* l) | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(SetX, GetPtr<DemoObject>(), SetXMethod, Get<int32_t>()); | |||||
static int _SetX(lua_State* l) | |||||
{ | { | ||||
LuaStack stack(l); | |||||
LuaDemoObjectPtr obj; | |||||
LuaInt32 i; | |||||
stack >> obj >> i; | |||||
auto stack = LuaStack::Begin(l); | |||||
DemoObject* obj = stack.GetPtr<DemoObject>(); | |||||
auto i = stack.Get<int32_t>(); | |||||
obj->m_x = i; | obj->m_x = i; | ||||
return 0; | |||||
return stack.End(); | |||||
} | |||||
void SetXMethod(int32_t i) | |||||
{ | |||||
m_x = i; | |||||
} | } | ||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
static const LuaObjectLib* GetLib() | |||||
static const LuaObjectLibrary* GetLib() | |||||
{ | { | ||||
static const LuaObjectLib lib = LuaObjectLib( | |||||
static const LuaObjectLibrary lib = LuaObjectLibrary( | |||||
"LoluaDemo", | "LoluaDemo", | ||||
{ { "AddFive", &DemoObject::AddFive } }, | { { "AddFive", &DemoObject::AddFive } }, | ||||
{ { "AddTenInstance", &DemoObject::AddTenInstance } }, | { { "AddTenInstance", &DemoObject::AddTenInstance } }, | ||||
@@ -91,9 +110,12 @@ public: | |||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
static int GlobalAddString(lua_State* l) | static int GlobalAddString(lua_State* l) | ||||
{ | { | ||||
LuaString s; s.Get(l, 1); | |||||
s() += "_added"; | |||||
return s.Return(l); | |||||
auto stack = LuaStack::Begin(l); | |||||
auto s = stack.Get<String>(); | |||||
s += "_added"; | |||||
return (stack << s).End(); | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
@@ -105,7 +127,7 @@ public: | |||||
lua_State* l = GetLuaState(); | lua_State* l = GetLuaState(); | ||||
//Registering demo object | //Registering demo object | ||||
LuaObjectDef::Register<DemoObject>(l); | |||||
LuaObjectHelper::Register<DemoObject>(l); | |||||
//Registering function | //Registering function | ||||
LuaFunction add_string(l, "GlobalAddString", &GlobalAddString); | LuaFunction add_string(l, "GlobalAddString", &GlobalAddString); | ||||
@@ -158,27 +180,33 @@ public: | |||||
demo_loader->TestStuff(); | demo_loader->TestStuff(); | ||||
//Grab global test values | //Grab global test values | ||||
float testvalue_num = demo_loader->GetVar<float>("testvalue_num"); | |||||
int32_t testvalue_int = demo_loader->GetVar<int32_t>("testvalue_int"); | |||||
uint32_t testvalue_uint = demo_loader->GetVar<uint32_t>("testvalue_uint"); | |||||
String testvalue_str = demo_loader->GetVar<String>("testvalue_str"); | |||||
float testvalue_num = demo_loader->Get<float>("testvalue_num"); | |||||
int32_t testvalue_int = demo_loader->Get<int32_t>("testvalue_int"); | |||||
uint32_t testvalue_uint = demo_loader->Get<uint32_t>("testvalue_uint"); | |||||
String testvalue_str = demo_loader->Get<String>("testvalue_str"); | |||||
//Grab string modified with function | //Grab string modified with function | ||||
String function_return = demo_loader->GetVar<String>("function_return"); | |||||
String function_return = demo_loader->Get<String>("function_return"); | |||||
//Grab global values modified with DemoObject | //Grab global values modified with DemoObject | ||||
int32_t loluademo_return = demo_loader->GetVar<int32_t>("loluademo_return"); | |||||
int32_t loluademo_getx = demo_loader->GetVar<int32_t>("loluademo_getx"); | |||||
float loluademo_inst_return = demo_loader->GetVar<float>("loluademo_inst_return"); | |||||
int32_t loluademo_return = demo_loader->Get<int32_t>("loluademo_return"); | |||||
int32_t loluademo_getx = demo_loader->Get<int32_t>("loluademo_getx"); | |||||
float loluademo_inst_return = demo_loader->Get<float>("loluademo_inst_return"); | |||||
DemoObject* loluademo_inst = demo_loader->GetPtr<DemoObject>("loluademo_inst"); | DemoObject* loluademo_inst = demo_loader->GetPtr<DemoObject>("loluademo_inst"); | ||||
msg::info("Lua Vars: \ | msg::info("Lua Vars: \ | ||||
testvalue_num: %.2f, testvalue_int: %i, testvalue_uint: %i, testvalue_str: %s.\n", | testvalue_num: %.2f, testvalue_int: %i, testvalue_uint: %i, testvalue_str: %s.\n", | ||||
testvalue_num, testvalue_int, testvalue_uint, testvalue_str.C()); | testvalue_num, testvalue_int, testvalue_uint, testvalue_str.C()); | ||||
msg::info("Lua Vars: \ | msg::info("Lua Vars: \ | ||||
function_return: %s, loluademo_return: %i, loluademo_inst_return: %.f, loluademo_getx: %i, loluademo_inst->m_x: %i.\n", | |||||
function_return: %s, loluademo_return: %i, loluademo_inst_return: %.2f, loluademo_getx: %i, loluademo_inst->m_x: %i.\n", | |||||
function_return.C(), loluademo_return, loluademo_inst_return, loluademo_getx, loluademo_inst->m_x); | function_return.C(), loluademo_return, loluademo_inst_return, loluademo_getx, loluademo_inst->m_x); | ||||
#define /***/ _LOLUA_ARG_1(a00) (float)a00 | |||||
#define /***/ _LOLUA_ARG_2(a00, a01) _LOLUA_ARG_1(a00), _LOLUA_ARG_1(a01) | |||||
#define /***/ _LOLUA_ARG_3(a00, a01, a02) _LOLUA_ARG_1(a00), _LOLUA_ARG_2(a01, a02) | |||||
#define /***/ _LOLUA_ARG_4(a00, a01, a02, a03) _LOLUA_ARG_1(a00), _LOLUA_ARG_3(a01, a02, a03) | |||||
msg::info("_LOLUA_ARG_1: %f, %f, %f, %f\n", _LOLUA_ARG_4(0, 1, 2, 3)); | |||||
delete demo_loader; | delete demo_loader; | ||||
Ticker::Shutdown(); | Ticker::Shutdown(); | ||||
@@ -13,4 +13,4 @@ loluademo_return = LoluaDemo.AddFive(1); | |||||
loluademo_inst = LoluaDemo.New(); | loluademo_inst = LoluaDemo.New(); | ||||
loluademo_inst:SetX(10); | loluademo_inst:SetX(10); | ||||
loluademo_getx = loluademo_inst:GetX(); | loluademo_getx = loluademo_inst:GetX(); | ||||
loluademo_inst_return = loluademo_inst:AddTenInstance(2.0); | |||||
loluademo_inst_return = loluademo_inst:AddTenInstance(2.5, 4, 6); |
@@ -4,12 +4,12 @@ Size=400,400 | |||||
Collapsed=0 | Collapsed=0 | ||||
[testature] | [testature] | ||||
Pos=266,15 | |||||
Pos=187,98 | |||||
Size=494,359 | Size=494,359 | ||||
Collapsed=0 | Collapsed=0 | ||||
[SO FUN !!] | [SO FUN !!] | ||||
Pos=30,24 | |||||
Pos=16,24 | |||||
Size=113,99 | Size=113,99 | ||||
Collapsed=0 | Collapsed=0 | ||||
@@ -392,7 +392,11 @@ public: | |||||
- offset : useless | - offset : useless | ||||
*/ | */ | ||||
void AppendCog(int nbsides, float h, float d10, float d20, float d11, | void AppendCog(int nbsides, float h, float d10, float d20, float d11, | ||||
float d21, float d12, float d22, float sidemul=0.f, bool offset=false); | |||||
float d21, float d12, float d22, float sidemul = 0.f, bool offset = false); | |||||
void AppendCog(int nbsides, float h, vec2 d0, vec2 d1, vec2 d2, float sidemul = 0.f, bool offset = false) | |||||
{ | |||||
AppendCog(nbsides, h, d0.x, d0.y, d1.x, d1.y, d2.x, d2.y, sidemul, offset); | |||||
} | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
//TODO : Mesh Bone operations | //TODO : Mesh Bone operations | ||||
@@ -27,7 +27,7 @@ EasyMeshLuaLoader::EasyMeshLuaLoader() : LuaLoader() | |||||
lua_State* l = GetLuaState(); | lua_State* l = GetLuaState(); | ||||
//Registering demo object | //Registering demo object | ||||
LuaObjectDef::Register<EasyMeshLuaObject>(l); | |||||
LuaObjectHelper::Register<EasyMeshLuaObject>(l); | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
@@ -81,17 +81,17 @@ EasyMeshLuaObject* EasyMeshLuaObject::New(lua_State* l, int arg_nb) | |||||
{ | { | ||||
UNUSED(l); | UNUSED(l); | ||||
UNUSED(arg_nb); | UNUSED(arg_nb); | ||||
LuaStack s(l); | |||||
LuaString n("", true); | |||||
s >> n; | |||||
return new EasyMeshLuaObject(n()); | |||||
LuaStack s = LuaStack::Begin(l); | |||||
String str = s.Get<String>(""); | |||||
return new EasyMeshLuaObject(str); | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
const LuaObjectLib* EasyMeshLuaObject::GetLib() | |||||
const LuaObjectLibrary* EasyMeshLuaObject::GetLib() | |||||
{ | { | ||||
typedef EasyMeshLuaObject EMLO; | |||||
static const LuaObjectLib lib = LuaObjectLib( | |||||
#define EMLO EasyMeshLuaObject | |||||
static const LuaObjectLibrary lib = LuaObjectLibrary( | |||||
"EasyMesh", | "EasyMesh", | ||||
//Statics | //Statics | ||||
{ { nullptr, nullptr } }, | { { nullptr, nullptr } }, | ||||
@@ -182,6 +182,8 @@ const LuaObjectLib* EasyMeshLuaObject::GetLib() | |||||
//Variables | //Variables | ||||
{ { nullptr, nullptr, nullptr } }); | { { nullptr, nullptr, nullptr } }); | ||||
return &lib; | return &lib; | ||||
#undef EMLO | |||||
} | } | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
@@ -18,7 +18,6 @@ namespace lol | |||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
class EasyMeshLuaObject : public LuaObject | class EasyMeshLuaObject : public LuaObject | ||||
{ | { | ||||
typedef Lolua::VarPtr<EasyMeshLuaObject> EzMeshPtr; | |||||
EasyMesh m_instance; | EasyMesh m_instance; | ||||
public: | public: | ||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
@@ -28,610 +27,91 @@ public: | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
static EasyMeshLuaObject* New(lua_State* l, int arg_nb); | static EasyMeshLuaObject* New(lua_State* l, int arg_nb); | ||||
static const LuaObjectLib* GetLib(); | |||||
static const LuaObjectLibrary* GetLib(); | |||||
#define EMLO GetPtr<EasyMeshLuaObject>() | |||||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||||
static int AppendCylinder(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 nsides; | |||||
LuaFloat h, d1, d2; | |||||
LuaBool dualside(false, true), smooth(false, true), close(false, true); | |||||
s >> m >> nsides >> h >> d1 >> d2 >> dualside >> smooth >> close; | |||||
m->m_instance.AppendCylinder(nsides, h, d1, d2, dualside, smooth, close); | |||||
return 0; | |||||
} | |||||
static int AppendSphere(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 ndivisions; | |||||
LuaFloat d; | |||||
s >> m >> ndivisions >> d; | |||||
m->m_instance.AppendSphere(ndivisions, d); | |||||
return 0; | |||||
} | |||||
static int AppendCapsule(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 ndivisions; | |||||
LuaFloat h, d; | |||||
s >> m >> ndivisions >> h >> d; | |||||
m->m_instance.AppendCapsule(ndivisions, h, d); | |||||
return 0; | |||||
} | |||||
static int AppendTorus(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 ndivisions; | |||||
LuaFloat d1, d2; | |||||
s >> m >> ndivisions >> d1 >> d2; | |||||
m->m_instance.AppendTorus(ndivisions, d1, d2); | |||||
return 0; | |||||
} | |||||
static int AppendBox(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaVec3 size; | |||||
LuaFloat chamf(0.f, true); | |||||
LuaBool smooth(false, true); | |||||
s >> m >> size >> chamf >> smooth; | |||||
m->m_instance.AppendBox(size, chamf, smooth); | |||||
return 0; | |||||
} | |||||
static int AppendStar(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 nbranches; | |||||
LuaFloat d1, d2; | |||||
LuaBool fade(false, true), fade2(false, true); | |||||
s >> m >> nbranches >> d1 >> d2 >> fade >> fade2; | |||||
m->m_instance.AppendStar(nbranches, d1, d2, fade, fade2); | |||||
return 0; | |||||
} | |||||
static int AppendExpandedStar(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 nbranches; | |||||
LuaFloat d1, d2, extrad(0.f, true); | |||||
s >> m >> nbranches >> d1 >> d2 >> extrad; | |||||
m->m_instance.AppendExpandedStar(nbranches, d1, d2, extrad); | |||||
return 0; | |||||
} | |||||
static int AppendDisc(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 nsides; | |||||
LuaFloat d; | |||||
LuaBool fade(false, true); | |||||
s >> m >> nsides >> d >> fade; | |||||
m->m_instance.AppendDisc(nsides, d, fade); | |||||
return 0; | |||||
} | |||||
static int AppendSimpleTriangle(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat d; | |||||
LuaBool fade(false, true); | |||||
s >> m >> d >> fade; | |||||
m->m_instance.AppendSimpleTriangle(d, fade); | |||||
return 0; | |||||
} | |||||
static int AppendSimpleQuad(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat size; | |||||
LuaBool fade(false, true); | |||||
s >> m >> size >> fade; | |||||
m->m_instance.AppendSimpleQuad(size, fade); | |||||
return 0; | |||||
} | |||||
static int AppendCog(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 nbsides; | |||||
LuaFloat h, sidemul(0.f, true); | |||||
LuaVec2 d0, d1, d2; | |||||
LuaBool offset(false, true); | |||||
s >> m >> nbsides >> h >> d0 >> d1 >> d2 >> sidemul >> offset; | |||||
m->m_instance.AppendCog(nbsides, h, d0().x, d0().y, d1().x, d1().y, d2().x, d2().y, sidemul, offset); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int TranslateX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat f; | |||||
s >> m >> f; | |||||
m->m_instance.TranslateX(f); | |||||
return 0; | |||||
} | |||||
static int TranslateY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat f; | |||||
s >> m >> f; | |||||
m->m_instance.TranslateY(f); | |||||
return 0; | |||||
} | |||||
static int TranslateZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat f; | |||||
s >> m >> f; | |||||
m->m_instance.TranslateZ(f); | |||||
return 0; | |||||
} | |||||
static int Translate(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaVec3 v; | |||||
s >> m >> v; | |||||
m->m_instance.Translate(v); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int RotateX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat a; | |||||
s >> m >> a; | |||||
m->m_instance.RotateX(a); | |||||
return 0; | |||||
} | |||||
static int RotateY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat a; | |||||
s >> m >> a; | |||||
m->m_instance.RotateY(a); | |||||
return 0; | |||||
} | |||||
static int RotateZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat a; | |||||
s >> m >> a; | |||||
m->m_instance.RotateZ(a); | |||||
return 0; | |||||
} | |||||
static int Rotate(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat a; | |||||
LuaVec3 v; | |||||
s >> m >> a >> v; | |||||
m->m_instance.Rotate(a, v); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int ScaleX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat x; | |||||
s >> m >> x; | |||||
m->m_instance.ScaleX(x); | |||||
return 0; | |||||
} | |||||
static int ScaleY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat y; | |||||
s >> m >> y; | |||||
m->m_instance.ScaleY(y); | |||||
return 0; | |||||
} | |||||
static int ScaleZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat z; | |||||
s >> m >> z; | |||||
m->m_instance.ScaleZ(z); | |||||
return 0; | |||||
} | |||||
static int Scale(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaVec3 v; | |||||
s >> m >> v; | |||||
m->m_instance.Scale(v); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int RadialJitter(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat f; | |||||
s >> m >> f; | |||||
m->m_instance.RadialJitter(f); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int TaperX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat y, z, xoff(0.f, true); | |||||
LuaBool abs(true, true); | |||||
s >> m >> y >> z >> xoff >> abs; | |||||
m->m_instance.TaperX(y, z, xoff, abs); | |||||
return 0; | |||||
} | |||||
static int TaperY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat x, z, yoff(0.f, true); | |||||
LuaBool abs(true, true); | |||||
s >> m >> x >> z >> yoff >> abs; | |||||
m->m_instance.TaperY(x, z, yoff, abs); | |||||
return 0; | |||||
} | |||||
static int TaperZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat x, y, zoff(0.f, true); | |||||
LuaBool abs(true, true); | |||||
s >> m >> x >> y >> zoff >> abs; | |||||
m->m_instance.TaperZ(x, y, zoff, abs); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int TwistX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.TwistX(t, toff); | |||||
return 0; | |||||
} | |||||
static int TwistY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.TwistY(t, toff); | |||||
return 0; | |||||
} | |||||
static int TwistZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.TwistZ(t, toff); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int ShearX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat y, z, xoff(0.f, true); | |||||
LuaBool abs(true, true); | |||||
s >> m >> y >> z >> xoff >> abs; | |||||
m->m_instance.ShearX(y, z, xoff, abs); | |||||
return 0; | |||||
} | |||||
static int ShearY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat x, z, yoff(0.f, true); | |||||
LuaBool abs(true, true); | |||||
s >> m >> x >> z >> yoff >> abs; | |||||
m->m_instance.ShearY(x, z, yoff, abs); | |||||
return 0; | |||||
} | |||||
static int ShearZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat x, y, zoff(0.f, true); | |||||
LuaBool abs(true, true); | |||||
s >> m >> x >> y >> zoff >> abs; | |||||
m->m_instance.ShearZ(x, y, zoff, abs); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int StretchX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat y, z, xoff(0.f, true); | |||||
s >> m >> y >> z >> xoff; | |||||
m->m_instance.StretchX(y, z, xoff); | |||||
return 0; | |||||
} | |||||
static int StretchY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat x, z, yoff(0.f, true); | |||||
s >> m >> x >> z >> yoff; | |||||
m->m_instance.StretchY(x, z, yoff); | |||||
return 0; | |||||
} | |||||
static int StretchZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat x, y, zoff(0.f, true); | |||||
s >> m >> x >> y >> zoff; | |||||
m->m_instance.StretchZ(x, y, zoff); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int BendXY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.BendXY(t, toff); | |||||
return 0; | |||||
} | |||||
static int BendXZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.BendXZ(t, toff); | |||||
return 0; | |||||
} | |||||
static int BendYX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.BendYX(t, toff); | |||||
return 0; | |||||
} | |||||
static int BendYZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.BendYZ(t, toff); | |||||
return 0; | |||||
} | |||||
static int BendZX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.BendZX(t, toff); | |||||
return 0; | |||||
} | |||||
static int BendZY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat t, toff(0.f, true); | |||||
s >> m >> t >> toff; | |||||
m->m_instance.BendZY(t, toff); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int MirrorX(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.MirrorX(); | |||||
return 0; | |||||
} | |||||
static int MirrorY(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.MirrorY(); | |||||
return 0; | |||||
} | |||||
static int MirrorZ(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.MirrorZ(); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int LoopStart(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 loopnb; | |||||
s >> m >> loopnb; | |||||
m->m_instance.LoopStart(loopnb); | |||||
return 0; | |||||
} | |||||
static int LoopEnd(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.LoopEnd(); | |||||
return 0; | |||||
} | |||||
static int OpenBrace(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.OpenBrace(); | |||||
return 0; | |||||
} | |||||
static int CloseBrace(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.CloseBrace(); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int ToggleScaleWinding(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.ToggleScaleWinding(); | |||||
return 0; | |||||
} | |||||
static int ToggleQuadWeighting(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.ToggleQuadWeighting(); | |||||
return 0; | |||||
} | |||||
static int TogglePostBuildNormal(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.TogglePostBuildNormal(); | |||||
return 0; | |||||
} | |||||
static int ToggleVerticeNoCleanup(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.ToggleVerticeNoCleanup(); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int VerticesMerge(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.VerticesMerge(); | |||||
return 0; | |||||
} | |||||
static int VerticesSeparate(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.VerticesSeparate(); | |||||
return 0; | |||||
} | |||||
static int VerticesCleanup(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
s >> m; | |||||
m->m_instance.VerticesCleanup(); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int Duplicate(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaVec3 ds(vec3(1.f)); | |||||
s >> m >> ds; | |||||
m->m_instance.DupAndScale(ds, true); | |||||
return 0; | |||||
} | |||||
static int Smooth(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 pass, split_per_pass, smooth_per_pass; | |||||
s >> m >> pass >> split_per_pass >> smooth_per_pass; | |||||
m->m_instance.SmoothMesh(pass, split_per_pass, smooth_per_pass); | |||||
return 0; | |||||
} | |||||
static int SplitTriangles(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaInt32 pass; | |||||
s >> m >> pass; | |||||
m->m_instance.SplitTriangles(pass); | |||||
return 0; | |||||
} | |||||
static int Chamfer(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaFloat f; | |||||
s >> m >> f; | |||||
m->m_instance.Chamfer(f); | |||||
return 0; | |||||
} | |||||
//------------------------------------------------------------------------- | |||||
static int SetCurColor(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaColor c; | |||||
s >> m >> c; | |||||
m->m_instance.SetCurColor(c); | |||||
return 0; | |||||
} | |||||
static int SetCurColorA(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaColor c; | |||||
s >> m >> c; | |||||
m->m_instance.SetCurColorA(c); | |||||
return 0; | |||||
} | |||||
static int SetCurColorB(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaColor c; | |||||
m->m_instance.SetCurColorB(c); | |||||
return 0; | |||||
} | |||||
static int SetVertColor(lua_State* l) | |||||
{ | |||||
LuaStack s(l); | |||||
EzMeshPtr m; | |||||
LuaColor c; | |||||
s >> m >> c; | |||||
m->m_instance.SetVertColor(c); | |||||
return 0; | |||||
} | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendCylinder, EMLO, m_instance.AppendCylinder, Get<int32_t>(), Get<float>(), Get<float>(), Get<float>(), Get<bool>(false), Get<bool>(false), Get<bool>(false)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendSphere, EMLO, m_instance.AppendSphere, Get<int32_t>(), Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendCapsule, EMLO, m_instance.AppendCapsule, Get<int32_t>(), Get<float>(), Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendTorus, EMLO, m_instance.AppendTorus, Get<int32_t>(), Get<float>(), Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendBox, EMLO, m_instance.AppendBox, Get<vec3>(), Get<float>(0.f), Get<bool>(false)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendStar, EMLO, m_instance.AppendStar, Get<int32_t>(), Get<float>(), Get<float>(), Get<bool>(false), Get<bool>(false)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendExpandedStar, EMLO, m_instance.AppendExpandedStar, Get<int32_t>(), Get<float>(), Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendDisc, EMLO, m_instance.AppendDisc, Get<int32_t>(), Get<float>(), Get<bool>(false)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendSimpleTriangle, EMLO, m_instance.AppendSimpleTriangle, Get<float>(), Get<bool>(false)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendSimpleQuad, EMLO, m_instance.AppendSimpleQuad, Get<float>(), Get<bool>(false)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(AppendCog, EMLO, m_instance.AppendCog, Get<int32_t>(), Get<float>(), Get<vec2>(), Get<vec2>(), Get<vec2>(), Get<float>(0.f), Get<bool>(false)); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TranslateX, EMLO, m_instance.TranslateX, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TranslateY, EMLO, m_instance.TranslateY, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TranslateZ, EMLO, m_instance.TranslateZ, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(Translate, EMLO, m_instance.Translate, Get<vec3>()); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(RotateX, EMLO, m_instance.RotateX, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(RotateY, EMLO, m_instance.RotateY, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(RotateZ, EMLO, m_instance.RotateZ, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(Rotate, EMLO, m_instance.Rotate, Get<float>(), Get<vec3>()); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(ScaleX, EMLO, m_instance.ScaleX, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(ScaleY, EMLO, m_instance.ScaleY, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(ScaleZ, EMLO, m_instance.ScaleZ, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(Scale, EMLO, m_instance.Scale, Get<vec3>()); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(RadialJitter, EMLO, m_instance.RadialJitter, Get<float>()); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TaperX, EMLO, m_instance.TaperX, Get<float>(), Get<float>(), Get<float>(0.f), Get<bool>(true)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TaperY, EMLO, m_instance.TaperY, Get<float>(), Get<float>(), Get<float>(0.f), Get<bool>(true)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TaperZ, EMLO, m_instance.TaperZ, Get<float>(), Get<float>(), Get<float>(0.f), Get<bool>(true)); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TwistX, EMLO, m_instance.TwistX, Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TwistY, EMLO, m_instance.TwistY, Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(TwistZ, EMLO, m_instance.TwistZ, Get<float>(), Get<float>(0.f)); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(ShearX, EMLO, m_instance.ShearX, Get<float>(), Get<float>(), Get<float>(0.f), Get<bool>(true)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(ShearY, EMLO, m_instance.ShearY, Get<float>(), Get<float>(), Get<float>(0.f), Get<bool>(true)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(ShearZ, EMLO, m_instance.ShearZ, Get<float>(), Get<float>(), Get<float>(0.f), Get<bool>(true)); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(StretchX, EMLO, m_instance.StretchX, Get<float>(), Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(StretchY, EMLO, m_instance.StretchY, Get<float>(), Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(StretchZ, EMLO, m_instance.StretchZ, Get<float>(), Get<float>(), Get<float>(0.f)); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(BendXY, EMLO, m_instance.BendXY, Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(BendXZ, EMLO, m_instance.BendXZ, Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(BendYX, EMLO, m_instance.BendYX, Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(BendYZ, EMLO, m_instance.BendYZ, Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(BendZX, EMLO, m_instance.BendZX, Get<float>(), Get<float>(0.f)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(BendZY, EMLO, m_instance.BendZY, Get<float>(), Get<float>(0.f)); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(MirrorX, EMLO, m_instance.MirrorX); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(MirrorY, EMLO, m_instance.MirrorY); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(MirrorZ, EMLO, m_instance.MirrorZ); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(LoopStart, EMLO, m_instance.LoopStart, Get<int32_t>()); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(LoopEnd, EMLO, m_instance.LoopEnd); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(OpenBrace, EMLO, m_instance.OpenBrace, Get<float>()); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(CloseBrace, EMLO, m_instance.CloseBrace, Get<float>()); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(ToggleScaleWinding, EMLO, m_instance.ToggleScaleWinding); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(ToggleQuadWeighting, EMLO, m_instance.ToggleQuadWeighting); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(TogglePostBuildNormal, EMLO, m_instance.TogglePostBuildNormal); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(ToggleVerticeNoCleanup, EMLO, m_instance.ToggleVerticeNoCleanup); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(VerticesMerge, EMLO, m_instance.VerticesMerge); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(VerticesSeparate, EMLO, m_instance.VerticesSeparate); | |||||
LOLUA_DECLARE_VOID_METHOD_VOID(VerticesCleanup, EMLO, m_instance.VerticesCleanup); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(Duplicate, EMLO, m_instance.DupAndScale, Get<vec3>(vec3(1.f)), Get<bool>(true)); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(Smooth, EMLO, m_instance.SmoothMesh, Get<int32_t>(), Get<int32_t>(), Get<int32_t>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(SplitTriangles, EMLO, m_instance.SplitTriangles, Get<int32_t>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(Chamfer, EMLO, m_instance.Chamfer, Get<float>()); | |||||
//------------------------------------------------------------------------- | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(SetCurColor, EMLO, m_instance.SetCurColor, Get<vec4>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(SetCurColorA, EMLO, m_instance.SetCurColorA, Get<vec4>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(SetCurColorB, EMLO, m_instance.SetCurColorB, Get<vec4>()); | |||||
LOLUA_DECLARE_VOID_METHOD_ARGS(SetVertColor, EMLO, m_instance.SetVertColor, Get<vec4>()); | |||||
/* | /* | ||||
(csgu|csgunion) { return token::T_CSGUNION; } | (csgu|csgunion) { return token::T_CSGUNION; } | ||||
(csgs|CsgSub) { return token::T_CSGSUBSTRACT; } | (csgs|CsgSub) { return token::T_CSGSUBSTRACT; } | ||||
@@ -640,6 +120,7 @@ public: | |||||
(csgx|csgxor) { return token::T_CSGXOR; } | (csgx|csgxor) { return token::T_CSGXOR; } | ||||
*/ | */ | ||||
#undef EMLO | |||||
}; | }; | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
@@ -375,7 +375,7 @@ void LolImGui::RenderDrawListsMethod(ImDrawData* draw_data) | |||||
m_vdecl->SetStream(vbo, m_attribs[0], m_attribs[1], m_attribs[2]); | m_vdecl->SetStream(vbo, m_attribs[0], m_attribs[1], m_attribs[2]); | ||||
const ImDrawIdx* idx_buffer_offset = 0; | const ImDrawIdx* idx_buffer_offset = 0; | ||||
for (size_t cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++) | |||||
for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++) | |||||
{ | { | ||||
const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[(int)cmd_i]; | const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[(int)cmd_i]; | ||||
#ifdef SHOW_IMGUI_DEBUG | #ifdef SHOW_IMGUI_DEBUG | ||||
@@ -40,8 +40,9 @@ class LuaBaseData | |||||
int status = luaL_dostring(l, s.C()); | int status = luaL_dostring(l, s.C()); | ||||
if (status == 1) | if (status == 1) | ||||
{ | { | ||||
LuaString error; error.Get(l, -1); | |||||
msg::error("Lua error %s\n", error().C()); | |||||
auto stack = LuaStack::Begin(l, -1); | |||||
auto error = stack.Get<String>(); | |||||
msg::error("Lua error %s\n", error.C()); | |||||
lua_pop(l, 1); | lua_pop(l, 1); | ||||
} | } | ||||
return status; | return status; | ||||
@@ -53,8 +54,8 @@ class LuaBaseData | |||||
if (lua_isnoneornil(l, 1)) | if (lua_isnoneornil(l, 1)) | ||||
return LUA_ERRFILE; | return LUA_ERRFILE; | ||||
LuaCharPtr var; var.Get(l, 1); | |||||
char const *filename = var;// lua_tostring(l, 1); | |||||
auto stack = LuaStack::Begin(l); | |||||
char const *filename = stack.Get<char const*>(); | |||||
int status = LUA_ERRFILE; | int status = LUA_ERRFILE; | ||||
File f; | File f; | ||||
@@ -76,8 +77,9 @@ class LuaBaseData | |||||
msg::error("could not find Lua file %s\n", filename); | msg::error("could not find Lua file %s\n", filename); | ||||
else if (status == 1) | else if (status == 1) | ||||
{ | { | ||||
LuaString error; error.Get(l, -1); | |||||
msg::error("Lua error %s\n", error().C()); | |||||
stack.SetIndex(-1); | |||||
auto error = stack.Get<String>(); | |||||
msg::error("Lua error %s\n", error.C()); | |||||
lua_pop(l, 1); | lua_pop(l, 1); | ||||
} | } | ||||
@@ -61,6 +61,12 @@ template< class T > inline int GetRandom(array<T> src) | |||||
// Gets the value for the given enum type. | // Gets the value for the given enum type. | ||||
template<class T> inline T FindValue(const char* name) | template<class T> inline T FindValue(const char* name) | ||||
{ | |||||
auto str = String(name); | |||||
return FindValue<T>(str); | |||||
} | |||||
template<class T> inline T FindValue(String const& name) | |||||
{ | { | ||||
String n = name; | String n = name; | ||||
n.to_lower(); | n.to_lower(); | ||||
@@ -72,10 +78,6 @@ template<class T> inline T FindValue(const char* name) | |||||
} | } | ||||
return T::Max; | return T::Max; | ||||
} | } | ||||
template<class T> inline T FindValue(String const& name) | |||||
{ | |||||
return FindValue<T>(name.C()); | |||||
} | |||||
} /* namespace lol */ | } /* namespace lol */ | ||||