IMP  2.1.0
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/base/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 {
34 
35  public:
37  const algebra::Transformation3D &transformation);
38 
39  /** Set the transformation object.*/
40  void set_transformation(const algebra::Transformation3D &rot);
41  virtual double evaluate_index(kernel::Model *m,
43  DerivativeAccumulator *da) const IMP_OVERRIDE;
45  kernel::Model *m, const kernel::ParticleIndexes &pis) const IMP_OVERRIDE;
48  ;
49 };
50 
51 IMPCORE_END_NAMESPACE
52 
53 #endif /* IMPCORE_TRANSFORMED_DISTANCE_PAIR_SCORE_H */
Simple 3D transformation class.
Class for adding derivatives from restraints to the model.
Import IMP/kernel/pair_macros.h in the namespace.
A nullptr-initialized pointer to an IMP Object.
virtual double evaluate_index(kernel::Model *m, const ParticleIndexPair &vt, DerivativeAccumulator *da) const
Compute the score and the derivative if needed.
A smart pointer to a ref-counted Object that is a class memeber.
Definition: base/Pointer.h:146
Import IMP/kernel/UnaryFunction.h in the namespace.
Apply a function to the distance between two particles after transforming the first.
#define IMP_PAIR_SCORE_METHODS(Name)
Abstract single variable functor class for score functions.
A class to store an fixed array of same-typed values.
Definition: base/Array.h:33
Abstract score function.
virtual ModelObjectsTemp do_get_inputs(kernel::Model *m, const ParticleIndexes &pis) const
Import IMP/kernel/PairScore.h in the namespace.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Simple 3D transformation class.
3D rotation class.
Definition: Rotation3D.h:45
Class for storing model, its restraints, constraints, and particles.
Import IMP/kernel/generic.h in the namespace.