home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.20.2
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
spb
version 2.20.2
TransformationSymmetry.h
Go to the documentation of this file.
1
/**
2
* \file IMP/spb/TransformationSymmetry.h
3
* \brief Implement various types of symmetry
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPSPB_TRANSFORMATION_SYMMETRY_H
10
#define IMPSPB_TRANSFORMATION_SYMMETRY_H
11
12
#include <
IMP/SingletonModifier.h
>
13
#include <
IMP/algebra/Reflection3D.h
>
14
#include <
IMP/algebra/Transformation3D.h
>
15
#include <
IMP/singleton_macros.h
>
16
#include "
IMP/core/XYZ.h
"
17
#include "
IMP/core/rigid_bodies.h
"
18
#include <IMP/spb/spb_config.h>
19
20
IMPSPB_BEGIN_NAMESPACE
21
22
//! Set the coordinates of a particle to be a transformed version of a reference
23
/** The passed particles must be Reference particles and XYZ particles and
24
can be RigidBody particles iff the reference particle is a rigid body.
25
\see TransformationAndReflectionSymmetry
26
*/
27
class
IMPSPBEXPORT
TransformationSymmetry
:
public
SingletonModifier
{
28
algebra::Transformation3D
t_;
29
IMP::PointerMember<Particle>
px_;
30
IMP::PointerMember<Particle>
py_;
31
IMP::PointerMember<Particle>
pz_;
32
33
algebra::Vector3D
get_vector(
algebra::Vector3D
center)
const
;
34
algebra::Transformation3D
get_transformation()
const
;
35
36
public
:
37
//! Create with both reflection and translation
38
TransformationSymmetry
(
algebra::Transformation3D
t,
Particle
*px,
39
Particle
*py,
Particle
*pz);
40
41
virtual
void
apply_index
(
IMP::Model
*m,
42
IMP::ParticleIndex
p)
const override
;
43
virtual
IMP::ModelObjectsTemp
do_get_inputs
(
44
IMP::Model
*m,
const
IMP::ParticleIndexes
&pis)
const override
;
45
virtual
IMP::ModelObjectsTemp
do_get_outputs
(
46
IMP::Model
*m,
const
IMP::ParticleIndexes
&pis)
const override
;
47
48
IMP_SINGLETON_MODIFIER_METHODS
(
TransformationSymmetry
);
49
50
IMP_OBJECT_METHODS
(
TransformationSymmetry
);
51
IMP_SHOWABLE
(
TransformationSymmetry
);
52
};
53
54
IMPSPB_END_NAMESPACE
55
56
#endif
/* IMPSPB_TRANSFORMATION_SYMMETRY_H */
IMP::SingletonModifier
A base class for modifiers of ParticlesTemp.
Definition:
SingletonModifier.h:32
SingletonModifier.h
A Modifier on ParticlesTemp.
IMP::algebra::Transformation3D
Simple 3D transformation class.
Definition:
Transformation3D.h:37
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
IMP::Index< ParticleIndexTag >
singleton_macros.h
Macros for various classes.
IMP_SHOWABLE
#define IMP_SHOWABLE(Name)
Definition:
showable_macros.h:41
IMP::ParticleOutputs::do_get_outputs
virtual ModelObjectsTemp do_get_outputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the outputs.
IMP::Vector
A more IMP-like version of the std::vector.
Definition:
Vector.h:42
XYZ.h
Simple XYZ decorator.
IMP::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
Model.h:86
IMP::spb::TransformationSymmetry
Set the coordinates of a particle to be a transformed version of a reference.
Definition:
TransformationSymmetry.h:27
IMP_SINGLETON_MODIFIER_METHODS
#define IMP_SINGLETON_MODIFIER_METHODS(Name)
Definition:
singleton_macros.h:124
rigid_bodies.h
functionality for defining rigid bodies
IMP::PointerMember
A smart pointer to a ref-counted Object that is a class member.
Definition:
Pointer.h:143
IMP::ParticleInputs::do_get_inputs
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
Transformation3D.h
Simple 3D transformation class.
IMP::SingletonModifier::apply_index
virtual void apply_index(Model *m, ParticleIndex v) const =0
IMP::algebra::Vector3D
VectorD< 3 > Vector3D
Definition:
VectorD.h:425
IMP::Particle
Class to handle individual particles of a Model object.
Definition:
Particle.h:43
Reflection3D.h
Reflect about a plane in 3D.