IMP
2.4.0
The Integrative Modeling Platform
IMP Mainpage
Modules
Classes
Examples
include
IMP
kernel
kernel/Undecorator.h
Go to the documentation of this file.
1
/**
2
* \file IMP/kernel/Undecorator.h \brief The base class for decorators.
3
*
4
* Copyright 2007-2015 IMP Inventors. All rights reserved.
5
*
6
*/
7
8
#ifndef IMPKERNEL_UNDECORATOR_H
9
#define IMPKERNEL_UNDECORATOR_H
10
11
#include <IMP/kernel/kernel_config.h>
12
#include "
base_types.h
"
13
#include <
IMP/base/Object.h
>
14
#include "
particle_index.h
"
15
16
IMPKERNEL_BEGIN_NAMESPACE
17
18
class
Model
;
19
20
/** Undecorators can be registered with the model to tear down multi-particle
21
invariants when a particle is removed from the model. Decorators that
22
have such an invariant (eg an IMP::core::RigidBody) should register
23
an Undecorator when setup_particle is called.
24
*/
25
class
IMPKERNELEXPORT
Undecorator
:
public
base::Object
{
26
Model
*m_;
27
28
public
:
29
Undecorator
(
kernel::Model
*m, std::string name);
30
virtual
void
teardown(
ParticleIndex
pi)
const
= 0;
31
};
32
33
IMP_OBJECTS
(
Undecorator
,
Undecorators
);
34
35
IMPKERNEL_END_NAMESPACE
36
37
#endif
/* IMPKERNEL_UNDECORATOR_H */
particle_index.h
Various general useful functions for IMP.
IMP::kernel::Undecorator
Definition:
kernel/Undecorator.h:25
base_types.h
Basic types used by IMP.
IMP::base::Vector
Definition:
Vector.h:37
IMP::Model
IMP::kernel::Model Model
Definition:
kernel/doxygen.h:67
IMP::base::Index< ParticleIndexTag >
IMP::base::Object
Common base class for heavy weight IMP objects.
Definition:
Object.h:106
IMP_OBJECTS
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
Definition:
object_macros.h:52
Object.h
A shared base class to help in debugging and things.
IMP::kernel::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
kernel/Model.h:73