diff --git a/src/Base/MatrixPy.xml b/src/Base/MatrixPy.xml index 6b231f913e..e377301628 100644 --- a/src/Base/MatrixPy.xml +++ b/src/Base/MatrixPy.xml @@ -67,6 +67,14 @@ Multiply a matrix or vector with this matrix + + + +multVec(Vector) -> Vector +Compute the transformed vector using the matrix + + + @@ -242,4 +250,4 @@ Analyzes the type of transformation. { return *(getMatrixPtr()); } - \ No newline at end of file + diff --git a/src/Base/MatrixPyImp.cpp b/src/Base/MatrixPyImp.cpp index 32c0b6540e..5e617019d1 100644 --- a/src/Base/MatrixPyImp.cpp +++ b/src/Base/MatrixPyImp.cpp @@ -387,6 +387,16 @@ PyObject* MatrixPy::multiply(PyObject * args) return 0; } +PyObject* MatrixPy::multVec(PyObject * args) +{ + PyObject *obj; + if (!PyArg_ParseTuple(args, "O!", &(VectorPy::Type), &obj)) + return NULL; + Base::Vector3d vec(static_cast(obj)->value()); + getMatrixPtr()->multVec(vec, vec); + return new VectorPy(new Vector3d(vec)); +} + PyObject* MatrixPy::invert(PyObject * args) { if (!PyArg_ParseTuple(args, ""))