IMP  2.3.0
The Integrative Modeling Platform
GeometricPrimitiveD.h
Go to the documentation of this file.
1 /**
2  * \file IMP/algebra/GeometricPrimitiveD.h \brief Basic types used by IMP.
3  *
4  * Copyright 2007-2014 IMP Inventors. All rights reserved.
5  *
6  */
7 
8 #ifndef IMPALGEBRA_GEOMETRIC_PRIMITIVE_D_H
9 #define IMPALGEBRA_GEOMETRIC_PRIMITIVE_D_H
10 
11 #include <IMP/algebra/algebra_config.h>
12 #include <IMP/base/Vector.h>
14 
15 IMPALGEBRA_BEGIN_NAMESPACE
16 
17 //! Base class for geometric types.
18 /** Geometric primitives in \imp behave a bit differently than most values.
19 
20  Most classes in \imp are initialized to a defined state (sometimes a null
21  state) by their default constructor. For efficiency reasons, certain ones,
22  mostly low-level geometric types, are not. They act like built in types
23  in C++ in that they only have a defined state if set (or initialized).
24 
25  In addition, they are not comparable, or hashable.
26 
27  See the \ref geometricprimitives entry for more information.
28 */
29 template <int D>
31  protected:
33 };
34 
35 #ifndef IMP_DOXYGEN
36 typedef GeometricPrimitiveD<1> GeometricPrimitive1D;
37 typedef GeometricPrimitiveD<2> GeometricPrimitive2D;
38 typedef GeometricPrimitiveD<3> GeometricPrimitive3D;
39 typedef GeometricPrimitiveD<4> GeometricPrimitive4D;
40 typedef GeometricPrimitiveD<5> GeometricPrimitive5D;
41 typedef GeometricPrimitiveD<6> GeometricPrimitive6D;
42 typedef GeometricPrimitiveD<-1> GeometricPrimitiveKD;
43 #endif
44 
45 IMPALGEBRA_END_NAMESPACE
46 
47 #endif /* IMPALGEBRA_GEOMETRIC_PRIMITIVE_D_H */
Base class for geometric types.
Various general useful macros for IMP.
A class for storing lists of IMP items.