Program Listing for File DataStruct.hpp
↰ Return to documentation for file (include/lvr2/io/DataStruct.hpp)
#pragma once
#include <boost/shared_array.hpp>
#include "lvr2/display/GlTexture.hpp"
#include <map>
#include <vector>
namespace lvr2
{
template<typename CoordT>
struct coord
{
CoordT x;
CoordT y;
CoordT z;
CoordT& operator[]( const size_t i )
{
switch ( i )
{
case 0:
return x;
break;
case 1:
return y;
break;
case 2:
return z;
break;
default:
return z;
}
}
};
template<typename ColorT>
struct color
{
ColorT r;
ColorT g;
ColorT b;
ColorT& operator[] ( const size_t i )
{
switch ( i )
{
case 0:
return r;
break;
case 1:
return g;
break;
case 2:
return b;
break;
default:
return b;
}
}
};
template<typename T>
struct idxVal
{
T value;
T& operator[] ( const size_t i )
{
return value;
}
};
struct RGBMaterial
{
unsigned char r;
unsigned char g;
unsigned char b;
int texture_index;
};
// fundamental types
typedef boost::shared_array<char> charArr;
typedef boost::shared_array<unsigned char> ucharArr;
typedef boost::shared_array<short> shortArr;
typedef boost::shared_array<unsigned short> ushortArr;
typedef boost::shared_array<int> intArr;
typedef boost::shared_array<unsigned int> uintArr;
typedef boost::shared_array<long int> lintArr;
typedef boost::shared_array<unsigned long int> ulintArr;
typedef boost::shared_array<float> floatArr;
typedef boost::shared_array<double> doubleArr;
typedef boost::shared_array<bool> boolArr;
typedef boost::shared_array<unsigned int> indexArray;
typedef boost::shared_array<uint16_t> uint16Arr;
typedef boost::shared_array< color<unsigned char> > color3bArr;
typedef boost::shared_array< coord<float> > coord3fArr;
typedef boost::shared_array< idxVal<float> > idx1fArr;
typedef boost::shared_array< coord<unsigned int> > idx3uArr;
typedef boost::shared_array< idxVal<unsigned int> > idx1uArr;
typedef boost::shared_array< RGBMaterial* > materialArr;
typedef boost::shared_array< GlTexture* > textureArr;
typedef std::pair<size_t, size_t> indexPair;
typedef std::map<std::string, std::vector<unsigned int> > labeledFacesMap;
}