IMP logo
IMP Reference Guide  2.7.0
The Integrative Modeling Platform
RemoveTranslationOptimizerState.h
Go to the documentation of this file.
1 /**
2  * \file IMP/atom/RemoveTranslationOptimizerState.h
3  * \brief Remove rigid translation during optimization.
4  *
5  * Copyright 2007-2017 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPATOM_REMOVE_TRANSLATION_OPTIMIZER_STATE_H
10 #define IMPATOM_REMOVE_TRANSLATION_OPTIMIZER_STATE_H
11 
12 #include <IMP/atom/atom_config.h>
13 #include <IMP/Particle.h>
14 #include <IMP/base_types.h>
15 #include <IMP/OptimizerState.h>
16 
17 IMPATOM_BEGIN_NAMESPACE
18 
19 //! Removes rigid translation from the particles.
20 /** Recenters the bunch of particles by putting the very first particle
21  at the origin and rigidly translating all the others.
22  */
23 class IMPATOMEXPORT RemoveTranslationOptimizerState : public OptimizerState {
24  public:
27 
28  //! Set the particles to use.
29  void set_particles(const Particles &pis) { pis_ = pis; }
30 
31  //! Remove translation now
32  void remove_translation() const;
33 
35 
36  protected:
37  virtual void do_update(unsigned int call) IMP_OVERRIDE;
38 
39  private:
40  Particles pis_;
41 };
42 
44 
45 IMPATOM_END_NAMESPACE
46 
47 #endif /* IMPATOM_REMOVE_TRANSLATION_OPTIMIZER_STATE_H */
Basic types used by IMP.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
virtual void do_update(unsigned int)
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
void set_particles(const Particles &pis)
Set the particles to use.
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Definition: object_macros.h:44
Removes rigid translation from the particles.
Shared optimizer state that is invoked upon commitment of new coordinates.
Shared optimizer state.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.