IMP  2.0.1
The Integrative Modeling Platform
TransformedDistancePairScore.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/TransformedDistancePairScore.h
3  * \brief A score on the distance between a pair of particles
4  * after transforming one.
5  *
6  * Copyright 2007-2013 IMP Inventors. All rights reserved.
7  */
8 
9 #ifndef IMPCORE_TRANSFORMED_DISTANCE_PAIR_SCORE_H
10 #define IMPCORE_TRANSFORMED_DISTANCE_PAIR_SCORE_H
11 
12 #include <IMP/core/core_config.h>
13 #include <IMP/generic.h>
14 #include <IMP/PairScore.h>
15 #include <IMP/UnaryFunction.h>
16 #include <IMP/Pointer.h>
17 #include <IMP/pair_macros.h>
18 
20 
21 IMPCORE_BEGIN_NAMESPACE
22 
23 /** \brief Apply a function to the distance between two particles
24  after transforming the first
25 
26  Apply a transform to the second particle and then apply the unary
27  function to the distance between the transformed particle and the
28  second. This can be used to implement symmetry restraints.
29  */
30 class IMPCOREEXPORT TransformedDistancePairScore : public PairScore
31 {
32  IMP::OwnerPointer<UnaryFunction> f_;
35  public:
37  const algebra::Transformation3D &transformation);
38 
39  /** Set the transformation object.*/
40  void set_transformation(const algebra::Transformation3D &rot);
42 };
43 
44 IMPCORE_END_NAMESPACE
45 
46 #endif /* IMPCORE_TRANSFORMED_DISTANCE_PAIR_SCORE_H */