From 79938b119fa8303b26505fc4672a02ca5225851e Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 5 Sep 2018 21:19:16 +0200 Subject: [PATCH] add method Placement::isIdentity --- src/Base/Placement.cpp | 7 +++++++ src/Base/Placement.h | 1 + src/Base/PlacementPyImp.cpp | 7 ++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Base/Placement.cpp b/src/Base/Placement.cpp index 35256d49e1..361367171a 100644 --- a/src/Base/Placement.cpp +++ b/src/Base/Placement.cpp @@ -79,6 +79,13 @@ void Placement::fromMatrix(const Base::Matrix4D& matrix) this->_pos.z = matrix[2][3]; } +bool Placement::isIdentity() const +{ + Base::Vector3d nullvec(0,0,0); + bool none = (this->_pos == nullvec) && (this->_rot.isIdentity()); + return none; +} + void Placement::invert() { this->_rot = this->_rot.inverse(); diff --git a/src/Base/Placement.h b/src/Base/Placement.h index 9463fbac8d..207e38aceb 100644 --- a/src/Base/Placement.h +++ b/src/Base/Placement.h @@ -55,6 +55,7 @@ public: void setPosition(const Vector3d& Pos){_pos=Pos;} void setRotation(const Rotation& Rot) {_rot = Rot;} + bool isIdentity() const; void invert(); Placement inverse() const; void move(const Vector3d& MovVec); diff --git a/src/Base/PlacementPyImp.cpp b/src/Base/PlacementPyImp.cpp index 8607364822..cdef3e57e7 100644 --- a/src/Base/PlacementPyImp.cpp +++ b/src/Base/PlacementPyImp.cpp @@ -204,11 +204,8 @@ PyObject* PlacementPy::isIdentity(PyObject *args) { if (!PyArg_ParseTuple(args, "")) return NULL; - Base::Vector3d nullvec(0,0,0); - Base::Vector3d pos = getPlacementPtr()->getPosition(); - Base::Rotation rot = getPlacementPtr()->getRotation(); - bool null = (pos == nullvec) && (rot.isIdentity()); - return Py_BuildValue("O", (null ? Py_True : Py_False)); + bool none = getPlacementPtr()->isIdentity(); + return Py_BuildValue("O", (none ? Py_True : Py_False)); } Py::Object PlacementPy::getBase(void) const