IMP  2.0.0
The Integrative Modeling Platform
kernel/base_types.h
Go to the documentation of this file.
1 /**
2  * \file IMP/kernel/base_types.h \brief Basic types used by IMP.
3  *
4  * Copyright 2007-2013 IMP Inventors. All rights reserved.
5  *
6  */
7 
8 #ifndef IMPKERNEL_BASE_TYPES_H
9 #define IMPKERNEL_BASE_TYPES_H
10 
11 #include <IMP/kernel/kernel_config.h>
12 #include "Key.h"
13 #include "key_macros.h"
14 #include <IMP/base/object_macros.h>
15 #include <IMP/base/Vector.h>
16 #include <IMP/base/Pointer.h>
17 #include <IMP/base/WeakPointer.h>
18 #include <IMP/base/types.h>
19 #include <IMP/base/Array.h>
20 #include <IMP/base/Index.h>
21 
22 IMPKERNEL_BEGIN_NAMESPACE
23 
24 /** @name Attribute Keys
25  Each type of attribute has an associated type of key. The keys can
26  be constructed from a string. Such construction can be expensive
27  and so the resulting keys should be cached.
28  @{
29  */
30 
31 //! The type used to identify float attributes in the Particles
33 //! The type used to identify int attributes in the Particles
35 //! The type used to identify string attributes in the Particles
37 //! The type used to identify a particle attribute in the Particles
39 //! The type used to identify an Object attribute
41 //! The type used to identify a non-ref counted Object attribute
43 //! The type used to identify int attributes in the Particles
45 //! The type used to identify a particle attribute in the Particles
47 
48 #ifndef IMP_DOXYGEN
49 // for backwards compat, no way to provide a warning on this
50 typedef ParticleIndexesKey ParticlesKey;
51 typedef ParticleIndexKey ParticleKey;
52 #endif
53 
54 //! The type used to identify a particle attribute in the Particles
56 
57 //! The type used to identify data stored directly in the model.
59 
60 /** @} */
61 
62 
63 class Restraint;
68 
69 class Model;
73 class ScoreState;
77 class Container;
79 class Particle;
93 
96 class PairScore;
100 class QuadScore;
102 
111 
120 
121 
122 
123 /** An ordered pair of particles.*/
127 /** An ordered triplet of particles.*/
131 /** An ordered quad of particles.*/
135 
136 
137 class ParticleIndexTag{};
138 /** A unique identifier for a particle within a Model. Use it to get
139  attributes and do other operations.*/
142 
146 
150 
151 IMPKERNEL_END_NAMESPACE
152 
153 #endif /* IMPKERNEL_BASE_TYPES_H */