diff --git a/modules/mol/base/src/impl/entity_impl.cc b/modules/mol/base/src/impl/entity_impl.cc index eb85cef7925ccc283ba17aee993bb2bdd0ecb496..4e311ddc0ad5b0bc01d165d6778865f27dcf09cf 100644 --- a/modules/mol/base/src/impl/entity_impl.cc +++ b/modules/mol/base/src/impl/entity_impl.cc @@ -770,7 +770,7 @@ void EntityImpl::SetTransform(const geom::Mat4 transfmat) identity_transf_ = false; } this->UpdateTransformedPos(); - this->MarkXCSDirty(); + this->MarkOrganizerDirty(); } void EntityImpl::AttachObserver(const EntityObserverPtr& o) @@ -1049,6 +1049,7 @@ void EntityImpl::UpdateOrganizer() e=atom_map_.end(); i!=e; ++i) { atom_organizer_.Add(i->second, i->second->GetPos()); } + dirty_flags_&=~DirtyOrganizer; } void EntityImpl::IncXCSEditorCount() diff --git a/modules/mol/base/tests/test_entity.cc b/modules/mol/base/tests/test_entity.cc index d30d6d183fa41959ae596f8752a5686952846985..1113e23f121d52740aa4450ddea2971acac696d2 100644 --- a/modules/mol/base/tests/test_entity.cc +++ b/modules/mol/base/tests/test_entity.cc @@ -92,6 +92,16 @@ BOOST_AUTO_TEST_CASE(throw_invalid_ent_view) BOOST_CHECK_NO_THROW(CheckHandleValidity(ent.CreateEmptyView())); } +BOOST_AUTO_TEST_CASE(bzdng250) +{ + EntityHandle eh=make_test_entity(); + eh.EditXCS().ApplyTransform(geom::Mat4(-1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0,-1, 0, + 0, 0, 0, 1)); + BOOST_CHECK_NO_THROW(eh.FindResidue("A", 1).FindTorsion("PHI").GetAngle()); +} + BOOST_AUTO_TEST_CASE(entity_creator) { EntityHandle eh = CreateEntity();