home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.5.0
The Integrative Modeling Platform
IMP Manual
Reference Guide
Modules
Classes
Examples
include
IMP
atom
State.h
Go to the documentation of this file.
1
/**
2
* \file IMP/atom/State.h \brief A decorator for States.
3
*
4
* Copyright 2007-2015 IMP Inventors. All rights reserved.
5
*
6
*/
7
8
#ifndef IMPATOM_STATE_H
9
#define IMPATOM_STATE_H
10
11
#include <IMP/atom/atom_config.h>
12
#include "
atom_macros.h
"
13
#include "
Hierarchy.h
"
14
15
#include <
IMP/base_types.h
>
16
#include <
IMP/Particle.h
>
17
#include <
IMP/Model.h
>
18
#include <
IMP/Decorator.h
>
19
20
IMPATOM_BEGIN_NAMESPACE
21
22
//! Associate an integer "state" index with a hierarchy node.
23
/**
24
* \note Only one State node is allowed in any path up the tree as nesting
25
* them does not have a clear meaning.
26
*/
27
class
IMPATOMEXPORT
State
:
public
Hierarchy
{
28
static
IntKey
get_index_key();
29
30
static
void
do_setup_particle(
Model
*m,
ParticleIndex
pi,
31
unsigned
int
state);
32
33
void
validate();
34
35
public
:
36
IMP_DECORATOR_SETUP_1
(
State
,
unsigned
int
, index);
37
IMP_DECORATOR_METHODS
(
State
,
Hierarchy
);
38
39
static
bool
get_is_setup
(
Model
*m,
ParticleIndex
pi) {
40
return
m->get_has_attribute(get_index_key(), pi);
41
}
42
43
unsigned
int
get_state_index
()
const
{
44
return
get_model
()->
get_attribute
(get_index_key(),
get_particle_index
());
45
}
46
};
47
48
IMP_DECORATORS
(State, States, Hierarchies);
49
50
//! Walk up the hierarchy to find the current state.
51
/** \return the state index, or -1 if there is none. */
52
IMPATOMEXPORT
int
get_state_index
(Hierarchy h);
53
54
IMPATOM_END_NAMESPACE
55
56
#endif
/* IMPATOM_STATE_H */
Decorator.h
The base class for decorators.
IMP::Decorator::get_particle_index
ParticleIndex get_particle_index() const
Returns the particle index decorated by this decorator.
Definition:
Decorator.h:186
base_types.h
Basic types used by IMP.
IMP_DECORATOR_SETUP_1
#define IMP_DECORATOR_SETUP_1(Name, FirstArgumentType, first_argument_name)
Definition:
decorator_macros.h:125
IMP::Decorator::get_model
Model * get_model() const
Returns the Model containing the particle.
Definition:
Decorator.h:189
Model.h
Storage of a model, its restraints, constraints and particles.
IMP::Index< ParticleIndexTag >
IMP::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
Model.h:72
Hierarchy.h
Decorator for helping deal with a hierarchy of molecules.
IMP::atom::Hierarchy
The standard decorator for manipulating molecular structures.
Definition:
atom/Hierarchy.h:203
IMP::Key< 1, true >
IMP::atom::get_state_index
int get_state_index(Hierarchy h)
Walk up the hierarchy to find the current state.
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
atom_macros.h
Various important macros for implementing decorators.
IMP::atom::Hierarchy::get_is_setup
static bool get_is_setup(Model *m, ParticleIndex p)
Check if the particle has the needed attributes for a cast to succeed.
Definition:
atom/Hierarchy.h:276
IMP::atom::State
Associate an integer "state" index with a hierarchy node.
Definition:
State.h:27
IMP_DECORATOR_METHODS
#define IMP_DECORATOR_METHODS(Name, Parent)
Definition:
decorator_macros.h:27
IMP_DECORATORS
#define IMP_DECORATORS(Name, PluralName, Parent)
Define the types for storing sets of decorators.
Definition:
decorator_macros.h:377
IMP::Model::get_attribute
Type get_attribute(TypeKey attribute_key, ParticleIndex particle)