IMP logo
IMP Reference Guide  develop.27926d84dc,2024/04/18
The Integrative Modeling Platform
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>
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 {
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
39  Particle *py, Particle *pz);
40 
41  virtual void apply_index(IMP::Model *m,
42  IMP::ParticleIndex p) const override;
44  IMP::Model *m, const IMP::ParticleIndexes &pis) const override;
46  IMP::Model *m, const IMP::ParticleIndexes &pis) const override;
47 
49 
52 };
53 
54 IMPSPB_END_NAMESPACE
55 
56 #endif /* IMPSPB_TRANSFORMATION_SYMMETRY_H */
A base class for modifiers of ParticlesTemp.
A Modifier on ParticlesTemp.
Simple 3D transformation class.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Macros for various classes.
#define IMP_SHOWABLE(Name)
virtual ModelObjectsTemp do_get_outputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the outputs.
A more IMP-like version of the std::vector.
Definition: Vector.h:50
Simple XYZ decorator.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
Set the coordinates of a particle to be a transformed version of a reference.
#define IMP_SINGLETON_MODIFIER_METHODS(Name)
functionality for defining rigid bodies
A smart pointer to a ref-counted Object that is a class member.
Definition: Pointer.h:143
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
Simple 3D transformation class.
virtual void apply_index(Model *m, ParticleIndex v) const =0
VectorD< 3 > Vector3D
Definition: VectorD.h:408
Class to handle individual particles of a Model object.
Definition: Particle.h:43
Reflect about a plane in 3D.