diff --git a/src/linalg.h b/src/linalg.h index 9b5a3656..806421df 100644 --- a/src/linalg.h +++ b/src/linalg.h @@ -773,6 +773,16 @@ inline PyObject* py_var(VM* vm, const PyVec4& obj){ return VAR_T(PyVec4, obj);} inline PyObject* py_var(VM* vm, const Mat3x3& obj){ return VAR_T(PyMat3x3, obj); } inline PyObject* py_var(VM* vm, const PyMat3x3& obj){ return VAR_T(PyMat3x3, obj); } +template<> inline Vec2 py_cast(VM* vm, PyObject* obj) { return CAST(PyVec2&, obj); } +template<> inline Vec3 py_cast(VM* vm, PyObject* obj) { return CAST(PyVec3&, obj); } +template<> inline Vec4 py_cast(VM* vm, PyObject* obj) { return CAST(PyVec4&, obj); } +template<> inline Mat3x3 py_cast(VM* vm, PyObject* obj) { return CAST(PyMat3x3&, obj); } + +template<> inline Vec2 _py_cast(VM* vm, PyObject* obj) { return _CAST(PyVec2&, obj); } +template<> inline Vec3 _py_cast(VM* vm, PyObject* obj) { return _CAST(PyVec3&, obj); } +template<> inline Vec4 _py_cast(VM* vm, PyObject* obj) { return _CAST(PyVec4&, obj); } +template<> inline Mat3x3 _py_cast(VM* vm, PyObject* obj) { return _CAST(PyMat3x3&, obj); } + inline void add_module_linalg(VM* vm){ PyObject* linalg = vm->new_module("linalg"); PyVec2::register_class(vm, linalg);