MorphoGraphX  2.0-1-227
Types.hpp
Go to the documentation of this file.
1 #ifndef TYPES_HPP
2 #define TYPES_HPP
3 
8 #include <Config.hpp>
9 
10 #include <map>
11 #include <set>
12 #include <vector>
13 
14 #include <QString>
15 
16 #include <cuda/CudaExport.hpp>
17 #include <Geometry.hpp>
18 #include <UnorderedMap.hpp>
19 #include <UnorderedSet.hpp>
20 #include <SetVector.hpp>
21 
22 #include <VertexData.hpp>
23 #include <EdgeData.hpp>
24 #include <VVGraph.hpp>
25 #include <CellData.hpp>
26 #include <WallData.hpp>
27 
28 namespace mgx
29 {
33  typedef unsigned short ushort;
34  typedef unsigned int uint;
35  typedef unsigned long ulong;
36 
38 
40  typedef std::unordered_map<int, float> IntFloatMap;
42  typedef std::pair<int, float> IntFloatPair;
43 
45  typedef std::unordered_map<int, Point3f> IntPoint3fMap;
47  typedef std::pair<int, Point3f> IntPoint3fPair;
48 
50  typedef std::map<Point3d, int> Point3dIntMap;
52  typedef std::pair<Point3d, int> Point3dIntPair;
53 
55  typedef std::unordered_map<int, double> IntDoubleMap;
57  typedef std::pair<int, double> IntDoublePair;
59  typedef std::unordered_map<int, Point3d> IntPoint3dMap;
61  typedef std::pair<int, Point3d> IntPoint3dPair;
62 
64  typedef std::unordered_map<int, int> IntIntMap;
66  typedef std::pair<int, int> IntIntPair;
68  typedef std::unordered_map<int, HVec3U> IntHVec3uMap;
70  typedef std::pair<int, HVec3U> IntHVec3uPair;
72  typedef std::set<intptr_t> VIdSet;
74  typedef std::map<int, VIdSet> IntVIdSetMap;
76  typedef std::pair<int, VIdSet> IntVIdSetPair;
78  typedef std::set<int> IntSet;
80  typedef std::vector<int> IntVec;
82  typedef std::vector<float> FloatVec;
84  typedef std::vector<Point2f> Point2fVec;
86  typedef std::pair<int, IntSet> IntIntSetPair;
88  typedef std::map<int, IntSet> IntIntSetMap;
90  typedef std::pair<IntIntPair, VIdSet> IntIntVIdSetPair;
92  typedef std::pair<IntIntPair, float> IntIntFloatPair;
94  //typedef std::map<IntIntPair, float> IntIntFloatMap;
95  typedef std::unordered_map<IntIntPair, float> IntIntFloatMap;
97  typedef std::map<IntIntPair, VIdSet> IntIntVIdSetMap;
99  //typedef std::map<int, Matrix3f> IntMatrix3x3fMap;
100  typedef std::unordered_map<int, Matrix3f> IntMatrix3fMap;
102  typedef std::pair<int, Matrix3f> IntMatrix3fPair;
104  typedef std::unordered_map<int, SymmetricTensor> IntSymTensorMap;
106  typedef std::pair<int, SymmetricTensor> IntSymTensorPair;
107 
115  typedef vvGraph::vertex_t vertex;
117  typedef vvGraph::edge_t edge;
118 
126  typedef std::unordered_set<cell> CellSet;
128  typedef std::vector<cell> CellVec;
129 
131  typedef std::set<vertex> VtxSet;
133  typedef std::set<uint> UIntSet;
135  typedef std::vector<vertex> VtxVec;
137  typedef std::vector<vvGraph> VVGraphVec;
139  typedef std::pair<int, vvGraph> IntVVGraphPair;
141  typedef std::vector<vvGraph *> vvGraphVec;
142 
144  typedef std::unordered_map<int, vvGraph> IntVVGraphMap;
146  typedef std::unordered_map<int, vertex> IntVtxMap;
147  typedef std::pair<int, vertex> IntVtxPair;
149  typedef std::unordered_map<vertex, vertex> VtxVtxMap;
150  typedef std::pair<vertex, vertex> VtxVtxPair;
152  typedef std::unordered_map<vertex, cell> VtxCellMap;
154  typedef std::unordered_map<vertex, int> VtxIntMap;
156  typedef std::unordered_map<vertex, bool> VtxBoolMap;
158  typedef std::unordered_map<vertex, float> VtxFloatMap;
160  typedef std::unordered_map<vertex, Point2f> VtxPoint2fMap;
162  typedef std::unordered_map<vertex, Point2d> VtxPoint2dMap;
164  typedef std::unordered_map<vertex, Point3f> VtxPoint3fMap;
166  typedef std::unordered_map<vertex, Point3d> VtxPoint3dMap;
168  typedef std::unordered_map<vertex, Matrix3f> VtxMatrix3fMap;
169 
171  typedef std::unordered_map<int, cellGraph> IntCellGraphMap;
173  typedef std::unordered_map<cell, cell> CellCellMap;
174  typedef std::pair<cell, cell> CellCellPair;
176  typedef std::unordered_map<int, cell> IntCellMap;
178  typedef std::unordered_map<cell, int> CellIntMap;
180  typedef std::unordered_map<cell, bool> CellBoolMap;
182  typedef std::unordered_map<cell, float> CellFloatMap;
184  typedef std::unordered_map<cell, Point2f> CellPoint2fMap;
186  typedef std::unordered_map<cell, Point3f> CellPoint3fMap;
188  typedef std::unordered_map<cell, Matrix3f> CellMatrix3fMap;
189 }
190 #endif
mgx::IntPoint3dPair
std::pair< int, Point3d > IntPoint3dPair
Element in IntPoint3dMap.
Definition: Types.hpp:61
EdgeData.hpp
mgx::uint
unsigned int uint
Definition: Geometry.hpp:41
mgx::vertex
vvGraph::vertex_t vertex
Type of a vertex.
Definition: Misc.hpp:50
mgx::VtxVtxMap
std::unordered_map< vertex, vertex > VtxVtxMap
Map of vertex to vertex.
Definition: Types.hpp:149
mgx::VtxVec
std::vector< vertex > VtxVec
Vector of vertices.
Definition: Types.hpp:135
mgx::CellMatrix3fMap
std::unordered_map< cell, Matrix3f > CellMatrix3fMap
Map of cell to Matrix3f.
Definition: Types.hpp:188
mgx::IntIntSetMap
std::map< int, IntSet > IntIntSetMap
Map of an integer to a set of integers.
Definition: Types.hpp:88
mgx::Edge
Definition: Edge.hpp:42
mgx::IntVVGraphMap
std::unordered_map< int, vvGraph > IntVVGraphMap
Map of an integer to a vvGraph.
Definition: Types.hpp:144
mgx::IntDoubleMap
std::unordered_map< int, double > IntDoubleMap
Map of an integer to a double.
Definition: Types.hpp:55
WallData.hpp
VertexData.hpp
mgx::IntPoint3dMap
std::unordered_map< int, Point3d > IntPoint3dMap
Map of an integer to a double 3D point.
Definition: Types.hpp:59
mgx::CellPoint2fMap
std::unordered_map< cell, Point2f > CellPoint2fMap
Map of cell to Point2f.
Definition: Types.hpp:184
VVGraph.hpp
mgx::IntVtxPair
std::pair< int, vertex > IntVtxPair
Definition: Types.hpp:147
mgx::ushort
unsigned short ushort
Simpler names for the various containers and iterators.
Definition: Geometry.hpp:42
mgx::IntVtxMap
std::unordered_map< int, vertex > IntVtxMap
Int to vertex map.
Definition: Types.hpp:146
mgx::VtxVtxPair
std::pair< vertex, vertex > VtxVtxPair
Definition: Types.hpp:150
CellData.hpp
Geometry.hpp
mgx::VtxPoint2dMap
std::unordered_map< vertex, Point2d > VtxPoint2dMap
Map of vertex to Point2d.
Definition: Types.hpp:162
mgx::VIdSet
std::set< intptr_t > VIdSet
Set of vertex ids.
Definition: Types.hpp:72
mgx
Distributed matrix library.
Definition: Assert.hpp:26
mgx::CellCellPair
std::pair< cell, cell > CellCellPair
Definition: Types.hpp:174
mgx::IntIntPair
std::pair< int, int > IntIntPair
Element in IntIntMap.
Definition: Types.hpp:66
mgx::IntPoint3fMap
std::unordered_map< int, Point3f > IntPoint3fMap
Map of an integer to a 3D point.
Definition: Types.hpp:45
mgx::IntVec
std::vector< int > IntVec
Vector of integers.
Definition: Types.hpp:80
mgx::VtxMatrix3fMap
std::unordered_map< vertex, Matrix3f > VtxMatrix3fMap
Map of vertex to Matrix3f.
Definition: Types.hpp:168
mgx::IntHVec3uMap
std::unordered_map< int, HVec3U > IntHVec3uMap
Map of an integer to a host vector of 3 unsigned integers.
Definition: Mesh.hpp:38
mgx::vvGraph
VVGraph< VertexData, EdgeData > vvGraph
Simpler names for the various containers and iterators related to vertices and VV.
Definition: Misc.hpp:47
mgx::VtxPoint2fMap
std::unordered_map< vertex, Point2f > VtxPoint2fMap
Map of vertex to Point2f.
Definition: Types.hpp:160
mgx::FloatVec
std::vector< float > FloatVec
Vector of floats.
Definition: Types.hpp:82
mgx::Point3b
Vector< 3, bool > Point3b
Definition: Types.hpp:37
mgx::IntHVec3uPair
std::pair< int, HVec3U > IntHVec3uPair
Element in IntHVec3uMap.
Definition: Mesh.hpp:40
mgx::wall
cellGraph::edge_t wall
Type of an edge.
Definition: Types.hpp:124
mgx::IntMatrix3fMap
std::unordered_map< int, Matrix3f > IntMatrix3fMap
Map of an integer to a 3x3 matrix.
Definition: Types.hpp:100
mgx::IntSet
std::set< int > IntSet
Set of integers.
Definition: Types.hpp:78
mgx::CellIntMap
std::unordered_map< cell, int > CellIntMap
Map of cell to int.
Definition: Types.hpp:178
mgx::IntIntVIdSetPair
std::pair< IntIntPair, VIdSet > IntIntVIdSetPair
Element in IntIntVIdSetMap.
Definition: Types.hpp:90
CudaExport.hpp
mgx::IntIntFloatPair
std::pair< IntIntPair, float > IntIntFloatPair
Element in IntIntFloatMap.
Definition: Types.hpp:92
mgx::IntVIdSetMap
std::map< int, VIdSet > IntVIdSetMap
Map of an integer to a set of vertex ids.
Definition: Types.hpp:74
mgx::CellCellMap
std::unordered_map< cell, cell > CellCellMap
Map of cell to cell.
Definition: Types.hpp:173
mgx::VtxCellMap
std::unordered_map< vertex, cell > VtxCellMap
Map of vertex to cell.
Definition: Types.hpp:152
mgx::cell
cellGraph::vertex_t cell
Type of a vertex.
Definition: Types.hpp:122
mgx::IntVIdSetPair
std::pair< int, VIdSet > IntVIdSetPair
Element in IntVIdSetMap.
Definition: Types.hpp:76
mgx::VtxPoint3dMap
std::unordered_map< vertex, Point3d > VtxPoint3dMap
Map of vertex to Point3d.
Definition: Types.hpp:166
mgx::CellSet
std::unordered_set< cell > CellSet
Set of cells.
Definition: Types.hpp:126
mgx::vvGraphVec
std::vector< vvGraph * > vvGraphVec
Vector of vvGraphs.
Definition: Types.hpp:141
SetVector.hpp
mgx::CellBoolMap
std::unordered_map< cell, bool > CellBoolMap
Map of cell to bool.
Definition: Types.hpp:180
mgx::CellVec
std::vector< cell > CellVec
Vector of cells.
Definition: Types.hpp:128
mgx::IntDoublePair
std::pair< int, double > IntDoublePair
Element in IntDoubleMap.
Definition: Types.hpp:57
mgx::Vector
Namespace containing all the utility classes.
Definition: Vector.hpp:48
mgx::IntIntFloatMap
std::unordered_map< IntIntPair, float > IntIntFloatMap
Map of a pair of integers to a float.
Definition: Types.hpp:95
UnorderedSet.hpp
mgx::cellGraph
VVGraph< mgx::CellData, mgx::WallData > cellGraph
Type of the cell graph.
Definition: Types.hpp:120
mgx::IntVVGraphPair
std::pair< int, vvGraph > IntVVGraphPair
Integer, VVGraph pair.
Definition: Types.hpp:139
mgx::IntCellMap
std::unordered_map< int, cell > IntCellMap
Int to cell map.
Definition: Types.hpp:176
mgx::VtxPoint3fMap
std::unordered_map< vertex, Point3f > VtxPoint3fMap
Map of vertex to Point3f.
Definition: Types.hpp:164
mgx::VtxIntMap
std::unordered_map< vertex, int > VtxIntMap
Map of vertex to int.
Definition: Types.hpp:154
mgx::Point3dIntPair
std::pair< Point3d, int > Point3dIntPair
Element in Point3dIntMap.
Definition: Types.hpp:52
mgx::edge
vvGraph::edge_t edge
Type of an edge.
Definition: Misc.hpp:53
mgx::IntPoint3fPair
std::pair< int, Point3f > IntPoint3fPair
Element in IntPoint3fMap.
Definition: Types.hpp:47
mgx::IntFloatMap
std::unordered_map< int, float > IntFloatMap
Map of an integer to a float.
Definition: Types.hpp:40
mgx::IntSymTensorMap
std::unordered_map< int, SymmetricTensor > IntSymTensorMap
Map an integer to a symmetric tensor.
Definition: Types.hpp:104
mgx::VtxSet
std::set< vertex > VtxSet
Set of vertices.
Definition: Types.hpp:131
mgx::UIntSet
std::set< uint > UIntSet
Used with vertex ids.
Definition: Types.hpp:133
mgx::VVGraph< mgx::VertexData, mgx::EdgeData >
mgx::IntIntVIdSetMap
std::map< IntIntPair, VIdSet > IntIntVIdSetMap
Map of a pair of integers to a set of vertex ids.
Definition: Types.hpp:97
mgx::Point2fVec
std::vector< Point2f > Point2fVec
Vector of Point2f.
Definition: Types.hpp:84
mgx::VtxFloatMap
std::unordered_map< vertex, float > VtxFloatMap
Map of vertex to float.
Definition: Types.hpp:158
mgx::IntIntSetPair
std::pair< int, IntSet > IntIntSetPair
Element in IntIntSetMap.
Definition: Types.hpp:86
mgx::CellPoint3fMap
std::unordered_map< cell, Point3f > CellPoint3fMap
Map of cell to Point3f.
Definition: Types.hpp:186
mgx::ulong
unsigned long ulong
Definition: Geometry.hpp:43
mgx::VVGraphVec
std::vector< vvGraph > VVGraphVec
Vector of vvGraphs.
Definition: Types.hpp:137
mgx::Point3dIntMap
std::map< Point3d, int > Point3dIntMap
Map of Point3d to int.
Definition: Types.hpp:50
mgx::CellFloatMap
std::unordered_map< cell, float > CellFloatMap
Map of cell to float.
Definition: Types.hpp:182
mgx::IntCellGraphMap
std::unordered_map< int, cellGraph > IntCellGraphMap
Map of an integer to a cellGraph.
Definition: Types.hpp:171
mgx::IntMatrix3fPair
std::pair< int, Matrix3f > IntMatrix3fPair
Element in IntMatrix3x3fMap.
Definition: Types.hpp:102
mgx::IntIntMap
std::unordered_map< int, int > IntIntMap
Map of an integer to another one.
Definition: Types.hpp:64
mgx::VtxBoolMap
std::unordered_map< vertex, bool > VtxBoolMap
Map of vertex to bool.
Definition: Types.hpp:156
mgx::IntSymTensorPair
std::pair< int, SymmetricTensor > IntSymTensorPair
Element in IntSymTensorMap.
Definition: Types.hpp:106
mgx::Vertex
Definition: Vertex.hpp:58
mgx::IntFloatPair
std::pair< int, float > IntFloatPair
Element in IntFloatMap.
Definition: Types.hpp:42
UnorderedMap.hpp