8 #ifndef IMPATOM_SELECTION_H
9 #define IMPATOM_SELECTION_H
11 #include <IMP/atom/atom_config.h>
12 #include <IMP/algebra/algebra_config.h>
21 IMPATOM_BEGIN_NAMESPACE
46 enum Terminus {
NONE, C,N};
51 Ints residue_indices_;
71 Hierarchies hierarchies=[],
73 Ints residue_indexes=[],
78 double target_radius=0,
79 std::string molecule=None,
80 int residue_index=None,
84 HierarchyType hierarchy_type=None,
85 Terminus terminus=None,
86 std::string domain=None,
102 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
108 Hierarchies get_hierarchies()
const ;
112 std::sort(molecules_.begin(), molecules_.end());
126 std::sort(chains_.begin(), chains_.end());
130 residue_indices_= indexes;
131 std::sort(residue_indices_.begin(), residue_indices_.end());
136 std::sort(atom_types_.begin(), atom_types_.end());
141 residue_types_= types;
142 std::sort(residue_types_.begin(), residue_types_.end());
147 std::sort(domains_.begin(), domains_.end());
155 chains_= std::string(1,c);
159 residue_indices_=
Ints(1,i);
175 copies_=
Ints(1, copy);
180 std::sort(copies_.begin(), copies_.end());
189 std::sort(types_.begin(), types_.end());
198 ParticlesTemp get_selected_particles()
const;
217 std::string name=
"Distance%1%");
228 std::string name=
"Connectivity%1%");
239 std::string name=
"Connectivity%1%");
251 std::string name=
"Connectivity%1%");
264 std::string name=
"Connectivity%1%");
283 std::string name=std::string());
292 #ifdef IMP_ALGEBRA_USE_IMP_CGAL
328 std::string name=
"Selection"):
336 IMPATOM_END_NAMESPACE