Something went wrong. Try again.
OpenMW is an open implementation of the Morrowind engine
Something went wrong. Try again.
1.0 kB · 46 lines
C++
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#ifndef COMPONENTS_LUA_UTILPACKAGE_H#define COMPONENTS_LUA_UTILPACKAGE_H
#include <osg/Matrix>#include <osg/Quat>#include <osg/Vec2>#include <osg/Vec3>#include <osg/Vec4>
#include <sol/sol.hpp>
namespace LuaUtil{ using Vec2 = osg::Vec2f; using Vec3 = osg::Vec3f; using Vec4 = osg::Vec4f;
// For performance reasons "Transform" is implemented as 2 types with the same interface. // Transform supports only composition, inversion, and applying to a 3d vector. struct TransformM { osg::Matrixf mM; }; struct TransformQ { osg::Quat mQ; };
inline TransformM asTransform(const osg::Matrixf& m) { return { m }; } inline TransformQ asTransform(const osg::Quat& q) { return { q }; }
inline bool isTransform(const sol::object& obj) { return obj.is<TransformM>() || obj.is<TransformQ>(); }
sol::table initUtilPackage(lua_State* state);}
#endif // COMPONENTS_LUA_UTILPACKAGE_H