IMP
2.0.1
The Integrative Modeling Platform
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
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-2013 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
public
:
28
Undecorator
(
Model
*m, std::string name);
29
virtual
void
teardown(
ParticleIndex
pi)
const
= 0;
30
};
31
32
IMP_OBJECTS
(
Undecorator
,
Undecorators
);
33
34
35
IMPKERNEL_END_NAMESPACE
36
37
#endif
/* IMPKERNEL_UNDECORATOR_H */