IMP
2.2.1
The Integrative Modeling Platform
IMP Mainpage
All IMP Modules
Related Pages
Modules
Namespaces
Classes
Files
Examples
Indexes
File List
File Members
TableRefiner.h
Go to the documentation of this file.
1
/**
2
* \file IMP/core/TableRefiner.h
3
* \brief A lookup based particle refiner
4
*
5
* Copyright 2007-2014 IMP Inventors. All rights reserved.
6
*/
7
8
#ifndef IMPCORE_TABLE_REFINER_H
9
#define IMPCORE_TABLE_REFINER_H
10
11
#include <IMP/core/core_config.h>
12
13
#include <
IMP/Refiner.h
>
14
#include <boost/unordered_map.hpp>
15
IMPCORE_BEGIN_NAMESPACE
16
17
//! A lookup based particle refiner
18
/** Each particle is refined by returning the list
19
of particles stored for it in a table.
20
*/
21
class
IMPCOREEXPORT
TableRefiner
:
public
Refiner
{
22
boost::unordered_map<kernel::Particle *, kernel::Particles> map_;
23
24
public
:
25
//! Initialize it with an empty table
26
TableRefiner
();
27
28
//! Add a mapping to the table
29
void
add_particle
(
kernel::Particle
*p,
const
kernel::ParticlesTemp
&ps);
30
31
//! Remove a mapping from the table
32
void
remove_particle(
kernel::Particle
*p);
33
34
//! Set the mapping for a particular particle
35
void
set_particle(
kernel::Particle
*p,
const
kernel::ParticlesTemp
&ps);
36
37
virtual
bool
get_can_refine
(
kernel::Particle
*)
const
IMP_OVERRIDE;
38
virtual
const
kernel::ParticlesTemp
get_refined
(
kernel::Particle
*)
const
39
IMP_OVERRIDE;
40
#ifndef SWIG
41
using
Refiner::get_refined
;
42
#endif
43
virtual
kernel::ModelObjectsTemp
do_get_inputs
(
44
kernel::Model
*m,
const
kernel::ParticleIndexes
&pis)
const
IMP_OVERRIDE;
45
IMP_OBJECT_METHODS
(
TableRefiner
);
46
};
47
48
IMPCORE_END_NAMESPACE
49
50
#endif
/* IMPCORE_TABLE_REFINER_H */
IMP::kernel::Refiner::get_refined
virtual const ParticlesTemp get_refined(Particle *a) const =0
Refine the passed particle into a set of particles.
IMP::base::Vector< base::WeakPointer< Particle > >
IMP::kernel::Refiner::get_can_refine
virtual bool get_can_refine(Particle *) const
Return true if this refiner can refine that particle.
Definition:
kernel/Refiner.h:38
Refiner.h
Import IMP/kernel/Refiner.h in the namespace.
IMP::core::TableRefiner
A lookup based particle refiner.
Definition:
TableRefiner.h:21
IMP::kernel::ParticleInputs::do_get_inputs
virtual ModelObjectsTemp do_get_inputs(kernel::Model *m, const ParticleIndexes &pis) const
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
base/object_macros.h:25
IMP::kernel::Particle
Class to handle individual model particles.
Definition:
kernel/Particle.h:34
IMP::rmf::add_particle
void add_particle(RMF::FileHandle fh, kernel::Particle *hs)
IMP::kernel::Refiner
Abstract class to implement hierarchical methods.
Definition:
kernel/Refiner.h:30
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:72