IMP  2.0.0
The Integrative Modeling Platform
domino_filters.h
Go to the documentation of this file.
1 /**
2  * \file domino_filters.h
3  * \brief SubsetFilter for checking overlap between projections and images
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPEM2D_DOMINO_FILTERS_H
10 #define IMPEM2D_DOMINO_FILTERS_H
11 
14 #include "IMP/algebra/Vector3D.h"
16 #include "IMP/domino/Assignment.h"
17 #include "IMP/Pointer.h"
18 #include "IMP/base_types.h"
19 #include "IMP/log.h"
20 #include <iostream>
21 
22 IMPEM2D_BEGIN_NAMESPACE
23 
24 class IMPEM2DEXPORT DistanceFilter: public domino::SubsetFilter {
25 
26 protected:
27  domino::Subset subset_acting_on_;
28  domino::Subset subset_restrained_;
29  Pointer<domino::ParticleStatesTable> ps_table_;
30  double max_distance_;
31 
32 public:
33 
34  /*! Filter action on the distance between two particles. To be used with
35  DOMINO
36  \param[in] subset_to_act_on A subset that is going to be filtered.
37  \param[in] subset_to_restrain A subset of 2 particles that need to be
38  within a given distance
39  \param[in] ps_table table containing the states for subset_to_act_on and
40  subset_to_restraint
41  \param[in] max_distance The maximum distance between the particles in
42  subset_to_restrain
43  */
44  DistanceFilter(const domino::Subset &subset_to_act_on,
45  const domino::Subset &subset_to_restrain,
46  domino::ParticleStatesTable *ps_table,
47  double max_distance) : subset_acting_on_(subset_to_act_on),
48  subset_restrained_(subset_to_restrain),
49  ps_table_(ps_table),
50  max_distance_(max_distance) {
51  IMP_LOG_TERSE( "DistanceFilter created" << std::endl);
52  }
53  void show(std::ostream &out = std::cout) const {
54  out << "DistanceFilter" << std::endl;
55  }
56  IMP_SUBSET_FILTER(DistanceFilter);
57 };
58 
59 IMP_OBJECTS(DistanceFilter,DistanceFilters);
60 
61 IMPEM2D_END_NAMESPACE
62 
63 
64 #endif /* IMPEM2D_DOMINO_FILTERS_H */