home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
spb
version 20241221.develop.63b38c487d
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:50
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:408
IMP::Particle
Class to handle individual particles of a Model object.
Definition:
Particle.h:43
Reflection3D.h
Reflect about a plane in 3D.