📄 matrix4.cpp
字号:
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "OgrePythonLink.h"
using namespace boost::python;
using namespace Ogre;
tuple Matrix4_getitem(Matrix4& self, int index)
{
if (index >= 4)
{
PyErr_SetString(PyExc_IndexError, "Index too large");
throw_error_already_set();
}
const Real* row = self[index];
return make_tuple(row[0], row[1], row[2], row[3]);
}
void exportMatrix4()
{
object mat_class = class_<Matrix4>("Matrix4",
"A 4x4 matrix which can represent rotations around axes.")
.def("__getitem__", &Matrix4_getitem)
.def(self * other<Vector3>())
.def(self + self)
.def(self == self)
.def("concatenate", &Matrix4::concatenate)
.def("transpose", &Matrix4::transpose)
.def("setTrans", &Matrix4::setTrans)
.def("makeTrans",
(void (Matrix4::*)(const Vector3&)) &Matrix4::makeTrans)
.def("makeTrans",
(void (Matrix4::*)(Real, Real, Real)) &Matrix4::makeTrans)
.def("setScale", &Matrix4::setScale)
.def("extract3x3Matrix", &Matrix4::extract3x3Matrix)
;
mat_class.attr("ZERO") = Matrix4::ZERO;
mat_class.attr("IDENTITY") = Matrix4::IDENTITY;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -