diff --git a/modules/mol/base/pymod/wrap_mol.cc b/modules/mol/base/pymod/wrap_mol.cc index 7055b2f783b8491609294a19dca2fdf00d4e9b38..ee56770f1dfc98d5cb5e518156baa94572a80fc2 100644 --- a/modules/mol/base/pymod/wrap_mol.cc +++ b/modules/mol/base/pymod/wrap_mol.cc @@ -72,18 +72,19 @@ BOOST_PYTHON_MODULE(_mol) class_<Transform>("Transform", init<>()) .def(init<const Transform&>()) // shouldn't this be there automatically ? .def("GetMatrix",&Transform::GetMatrix) - .add_property("matrix",&Transform::GetMatrix) + .def("SetMatrix",&Transform::SetMatrix) + .add_property("matrix",&Transform::GetMatrix,&Transform::SetMatrix) .def("GetTransposedMatrix",&Transform::GetTransposedMatrix) - .add_property("tmatrix",&Transform::GetTransposedMatrix) + .add_property("tmatrix",&Transform::GetTransposedMatrix) .def("SetTrans",&Transform::SetTrans) .def("GetTrans",&Transform::GetTrans) - .add_property("trans",&Transform::GetTrans,&Transform::SetTrans) + .add_property("trans",&Transform::GetTrans,&Transform::SetTrans) .def("SetCenter",&Transform::SetCenter) .def("GetCenter",&Transform::GetCenter) - .add_property("center",&Transform::GetCenter,&Transform::SetCenter) + .add_property("center",&Transform::GetCenter,&Transform::SetCenter) .def("SetRot",&Transform::SetRot) .def("GetRot",&Transform::GetRot) - .add_property("rot",&Transform::GetRot,&Transform::SetRot) + .add_property("rot",&Transform::GetRot,&Transform::SetRot) .def("ApplyXAxisRotation",&Transform::ApplyXAxisRotation) .def("ApplyYAxisRotation",&Transform::ApplyYAxisRotation) .def("ApplyZAxisRotation",&Transform::ApplyZAxisRotation) diff --git a/modules/mol/base/src/transform.cc b/modules/mol/base/src/transform.cc index 611c9111be5a0c83c00e218ea0ad398ad339dcb3..ffee262dec1767ac26e6645ead08fb3d8bd3acf6 100644 --- a/modules/mol/base/src/transform.cc +++ b/modules/mol/base/src/transform.cc @@ -42,12 +42,17 @@ Mat4 Transform::GetMatrix() const return tm_; } +void Transform::SetMatrix(const Mat4& m) +{ + tm_=m; + ttm_ = Transpose(tm_); +} + Mat4 Transform::GetTransposedMatrix() const { return ttm_; } - void Transform::SetTrans(const Vec3& t) { trans_=t; diff --git a/modules/mol/base/src/transform.hh b/modules/mol/base/src/transform.hh index d3ce79763b3663cb0fb46518341d296c0774ea1b..5c9acd27605bbff805b40eaac297c83219cd5582 100644 --- a/modules/mol/base/src/transform.hh +++ b/modules/mol/base/src/transform.hh @@ -41,7 +41,8 @@ public: void SetCenter(const geom::Vec3& c); geom::Vec3 GetCenter() const; - + // directly set tm, messing up rot/trans/cen ! + void SetMatrix(const geom::Mat4& m); /// \name rotation //@{