From f92d319697c1f33d126d50be790640b9a6eb74bd Mon Sep 17 00:00:00 2001 From: Niklaus Johner <nij2003@med.cornell.edu> Date: Wed, 26 Oct 2011 18:26:54 -0400 Subject: [PATCH] Added a first and last argument in the CoordGroup::Filter function --- modules/mol/base/pymod/export_coord_group.cc | 2 +- modules/mol/base/src/coord_group.cc | 7 ++++--- modules/mol/base/src/coord_group.hh | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/mol/base/pymod/export_coord_group.cc b/modules/mol/base/pymod/export_coord_group.cc index 794db5363..c6f30e8f5 100644 --- a/modules/mol/base/pymod/export_coord_group.cc +++ b/modules/mol/base/pymod/export_coord_group.cc @@ -61,7 +61,7 @@ void export_CoordGroup() .def("GetAtomList",&CoordGroupHandle::GetAtomList) .def("__getitem__",cg_getitem) .def("__setitem__",cg_setitem) - .def("Filter", &CoordGroupHandle::Filter) + .def("Filter", &CoordGroupHandle::Filter, (arg("selected"),arg("first")=0,arg("last")=-1)) ; def("CreateCoordGroup",CreateCoordGroup); diff --git a/modules/mol/base/src/coord_group.cc b/modules/mol/base/src/coord_group.cc index f92c58e22..47622e901 100644 --- a/modules/mol/base/src/coord_group.cc +++ b/modules/mol/base/src/coord_group.cc @@ -171,7 +171,7 @@ void CoordGroupHandle::Capture(uint frame) } } -CoordGroupHandle CoordGroupHandle::Filter(const EntityView& selected) const +CoordGroupHandle CoordGroupHandle::Filter(const EntityView& selected, int first, int last) const { this->CheckValidity(); std::vector<unsigned long> indices; @@ -194,8 +194,9 @@ CoordGroupHandle CoordGroupHandle::Filter(const EntityView& selected) const CoordGroupHandle filtered_cg=CreateCoordGroup(new_ent.GetAtomList()); std::vector<geom::Vec3> vecs(indices.size()); - for (size_t i=0; i<this->GetFrameCount(); ++i) { - LOG_INFO("Filtering frame " << i << "/" << this->GetFrameCount()); + if (last==-1) last=this->GetFrameCount(); + for (int i=first; i<last; ++i) { + LOG_INFO("Filtering frame " << i << "/" << last); CoordFramePtr frame=this->GetFrame(i); for (std::vector<unsigned long>::const_iterator j=indices.begin(), e2=indices.end(); j!=e2; ++j) { diff --git a/modules/mol/base/src/coord_group.hh b/modules/mol/base/src/coord_group.hh index 2b6d6fe7f..57701931b 100644 --- a/modules/mol/base/src/coord_group.hh +++ b/modules/mol/base/src/coord_group.hh @@ -85,7 +85,7 @@ public: /// \brief return a filtered coord group, containing only the atoms in the /// view - CoordGroupHandle Filter(const EntityView& selected) const; + CoordGroupHandle Filter(const EntityView& selected,int first=0,int last=-1) const; CoordGroupHandle(CoordSourcePtr source); -- GitLab