00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IMPATOM_STEREOCHEMISTRY_PAIR_FILTER_H
00009 #define IMPATOM_STEREOCHEMISTRY_PAIR_FILTER_H
00010
00011 #include "atom_config.h"
00012 #include <IMP/PairFilter.h>
00013 #include <IMP/atom/internal/ExcludedPair.h>
00014
00015 IMPATOM_BEGIN_NAMESPACE
00016
00017
00018
00019
00020
00021
00022
00023
00024 class IMPATOMEXPORT StereochemistryPairFilter : public PairFilter
00025 {
00026 typedef std::map<internal::ExcludedPair, Particle *> ExcludedMap;
00027 ExcludedMap excluded_map_;
00028
00029 Particles bonds_, angles_, dihedrals_;
00030
00031 void rebuild_map();
00032
00033 public:
00034 StereochemistryPairFilter();
00035
00036 void set_bonds(const Particles &bonds) { bonds_ = bonds; rebuild_map(); }
00037 void set_angles(const Particles &angles) { angles_ = angles; rebuild_map(); }
00038 void set_dihedrals(const Particles &dihedrals) {
00039 dihedrals_ = dihedrals; rebuild_map();
00040 }
00041
00042 IMP_PAIR_FILTER(StereochemistryPairFilter);
00043 };
00044
00045
00046 IMPATOM_END_NAMESPACE
00047
00048 #endif