RMF
types.h
Go to the documentation of this file.
1 /**
2  * \file RMF/types.h
3  * \brief Default implementation for types.h
4 
5  * Use RMF_TYPES_HEADER to replace it with another header.
6  *
7  * Copyright 2007-2022 IMP Inventors. All rights reserved.
8  *
9  */
10 
11 #ifndef RMF_TYPES_H
12 #define RMF_TYPES_H
13 
14 #include "RMF/config.h"
15 #include "Vector.h"
16 
17 namespace RMF {
18 
19 //! Work around clang issue
20 typedef unsigned int VectorDimension;
21 
22 //! For classes that are templated on the dimension
23 #define RMF_VECTOR RMF::Vector
24 
25 //! For template classes that want to deal with lists of values
26 #define RMF_TYPES std::vector
27 
28 /** The type used to store integral values.*/
29 typedef int Int;
30 /** The type used to store lists of integral values.*/
31 typedef RMF_TYPES<Int> Ints;
32 /** The type used to store lists of floating point values.*/
33 typedef float Float;
34 /** The type used to store lists of floating point values.*/
35 typedef RMF_TYPES<Float> Floats;
36 /** The type used to store lists of floating point values.*/
37 typedef RMF_TYPES<Floats> FloatsList;
38 /** The type used to store lists of string values.*/
39 typedef std::string String;
40 /** The type used to store lists of string values.*/
41 typedef RMF_TYPES<String> Strings;
42 /** The type used to store lists of strings values.*/
43 typedef RMF_TYPES<Strings> StringsList;
44 /** The type used to store lists of lists of integers values.*/
45 typedef RMF_TYPES<Ints> IntsList;
46 
47 /** A Vector3 */
49 /** A Vector3 */
51 /** Many Vector3s */
52 typedef RMF_TYPES<Vector3> Vector3s;
53 /** Many Vector4s */
54 typedef RMF_TYPES<Vector4> Vector4s;
55 
56 typedef std::array<int, 2> IntRange;
57 
58 } /* namespace RMF */
59 
60 #endif /* RMF_TYPES_H */
unsigned int VectorDimension
Work around clang issue.
Definition: types.h:20
float Float
Definition: types.h:33
std::vector< Vector3 > Vector3s
Definition: types.h:52
std::vector< Strings > StringsList
Definition: types.h:43
std::vector< Vector4 > Vector4s
Definition: types.h:54
std::vector< Floats > FloatsList
Definition: types.h:37
Vector< 4U > Vector4
Definition: types.h:50
std::vector< String > Strings
Definition: types.h:41
std::vector< Int > Ints
Definition: types.h:31
std::vector< Ints > IntsList
Definition: types.h:45
Represent coordinates.
std::string String
Definition: types.h:39
std::vector< Float > Floats
Definition: types.h:35
int Int
Definition: types.h:29
Vector< 3U > Vector3
Definition: types.h:48