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