IMP
2.0.0
The Integrative Modeling Platform
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
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
19
#include <
IMP/algebra/Transformation3D.h
>
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_;
33
algebra::Transformation3D
t_;
34
algebra::Rotation3D
ri_;
35
public
:
36
TransformedDistancePairScore
(
UnaryFunction
*f,
37
const
algebra::Transformation3D
&transformation);
38
39
/** Set the transformation object.*/
40
void
set_transformation(
const
algebra::Transformation3D
&rot);
41
IMP_SIMPLE_PAIR_SCORE
(
TransformedDistancePairScore
);
42
};
43
44
IMPCORE_END_NAMESPACE
45
46
#endif
/* IMPCORE_TRANSFORMED_DISTANCE_PAIR_SCORE_H */