diff --git a/include/Nazara/Lua/LuaState.inl b/include/Nazara/Lua/LuaState.inl index 62669d72b..be1cf5cad 100644 --- a/include/Nazara/Lua/LuaState.inl +++ b/include/Nazara/Lua/LuaState.inl @@ -159,6 +159,36 @@ namespace Nz return LuaImplQueryArg(instance, index, arg, defValue, TypeTag()); } + template + unsigned int LuaImplQueryArg(const LuaState& instance, int index, std::vector* container, TypeTag>) + { + instance.CheckType(index, Nz::LuaType_Table); + std::size_t index = 1; + + for (;;) + { + instance.PushInteger(index++); + + if (instance.GetTable() == Nz::LuaType_Nil) + { + instance.Pop(); + break; + } + + T arg {}; + + if (LuaImplQueryArg(instance, -1, &arg, TypeTag()) != 1) + { + instance.Error("Type needs more than one place to be initialized"); + return 0; + } + + container->push_back(arg); + } + + return 1; + } + // Function returns inline int LuaImplReplyVal(const LuaState& instance, bool val, TypeTag) { diff --git a/include/Nazara/Renderer/DebugDrawer.hpp b/include/Nazara/Renderer/DebugDrawer.hpp index a001b1bab..e6667e7a9 100644 --- a/include/Nazara/Renderer/DebugDrawer.hpp +++ b/include/Nazara/Renderer/DebugDrawer.hpp @@ -36,7 +36,7 @@ namespace Nz static void DrawCone(const Vector3f& origin, const Quaternionf& rotation, float angle, float length); static void DrawLine(const Vector3f& p1, const Vector3f& p2); static void DrawPoints(const Vector3f* ptr, unsigned int pointCount); - static void DrawNormals(const StaticMesh* subMesh); + static void DrawNormals(const StaticMesh* subMesh, float normalLength = 0.01f); static void DrawTangents(const StaticMesh* subMesh); static void EnableDepthBuffer(bool depthBuffer); diff --git a/src/Nazara/Renderer/DebugDrawer.cpp b/src/Nazara/Renderer/DebugDrawer.cpp index ef6136b31..08dba0d32 100644 --- a/src/Nazara/Renderer/DebugDrawer.cpp +++ b/src/Nazara/Renderer/DebugDrawer.cpp @@ -556,7 +556,7 @@ namespace Nz } } - void DebugDrawer::DrawNormals(const StaticMesh* subMesh) + void DebugDrawer::DrawNormals(const StaticMesh* subMesh, float normalLength) { if (!s_initialized && !Initialize()) { @@ -583,7 +583,7 @@ namespace Nz outputVertex->position = inputVertex->position; outputVertex++; - outputVertex->position = inputVertex->position + inputVertex->normal*0.01f; + outputVertex->position = inputVertex->position + inputVertex->normal*normalLength; outputVertex++; inputVertex++;