added support for char, short, long, unsigned int, and double types
This commit is contained in:
parent
4d1c310489
commit
ee1bf11bfd
@ -22,6 +22,41 @@ template <> std::istream& Property<bool>::loadBinary(std::istream& is) { return
|
|||||||
template <> std::istream& Property<bool>::loadAscii(std::istream& is) { return is >> value; }
|
template <> std::istream& Property<bool>::loadAscii(std::istream& is) { return is >> value; }
|
||||||
template <> AbstractProperty::PropertyType Property<bool>::getStaticPropertyType() { return AbstractProperty::BOOLEAN; }
|
template <> AbstractProperty::PropertyType Property<bool>::getStaticPropertyType() { return AbstractProperty::BOOLEAN; }
|
||||||
|
|
||||||
|
// UNSIGNED INTEGER PROPERTY
|
||||||
|
template <> std::ostream& Property<unsigned int>::saveBinary(std::ostream& os) { return os.write((char*)&value, sizeof(unsigned int)); }
|
||||||
|
template <> std::ostream& Property<unsigned int>::saveAscii(std::ostream& os) { return os << value; }
|
||||||
|
template <> std::istream& Property<unsigned int>::loadBinary(std::istream& is) { return is.read((char*)&value, sizeof(unsigned int)); }
|
||||||
|
template <> std::istream& Property<unsigned int>::loadAscii(std::istream& is) { return is >> value; }
|
||||||
|
template <> AbstractProperty::PropertyType Property<unsigned int>::getStaticPropertyType() { return AbstractProperty::UNSIGNED_INTEGER; }
|
||||||
|
|
||||||
|
// BYTE PROPERTY
|
||||||
|
template <> std::ostream& Property<char>::saveBinary(std::ostream& os) { return os.write((char*)&value, sizeof(char)); }
|
||||||
|
template <> std::ostream& Property<char>::saveAscii(std::ostream& os) { return os << value; }
|
||||||
|
template <> std::istream& Property<char>::loadBinary(std::istream& is) { return is.read((char*)&value, sizeof(char)); }
|
||||||
|
template <> std::istream& Property<char>::loadAscii(std::istream& is) { return is >> value; }
|
||||||
|
template <> AbstractProperty::PropertyType Property<char>::getStaticPropertyType() { return AbstractProperty::BYTE; }
|
||||||
|
|
||||||
|
// SHORT PROPERTY
|
||||||
|
template <> std::ostream& Property<short>::saveBinary(std::ostream& os) { return os.write((char*)&value, sizeof(short)); }
|
||||||
|
template <> std::ostream& Property<short>::saveAscii(std::ostream& os) { return os << value; }
|
||||||
|
template <> std::istream& Property<short>::loadBinary(std::istream& is) { return is.read((char*)&value, sizeof(short)); }
|
||||||
|
template <> std::istream& Property<short>::loadAscii(std::istream& is) { return is >> value; }
|
||||||
|
template <> AbstractProperty::PropertyType Property<short>::getStaticPropertyType() { return AbstractProperty::SHORT; }
|
||||||
|
|
||||||
|
// LONG PROPERTY
|
||||||
|
template <> std::ostream& Property<long>::saveBinary(std::ostream& os) { return os.write((char*)&value, sizeof(long)); }
|
||||||
|
template <> std::ostream& Property<long>::saveAscii(std::ostream& os) { return os << value; }
|
||||||
|
template <> std::istream& Property<long>::loadBinary(std::istream& is) { return is.read((char*)&value, sizeof(long)); }
|
||||||
|
template <> std::istream& Property<long>::loadAscii(std::istream& is) { return is >> value; }
|
||||||
|
template <> AbstractProperty::PropertyType Property<long>::getStaticPropertyType() { return AbstractProperty::LONG; }
|
||||||
|
|
||||||
|
// DOUBLE PROPERTY
|
||||||
|
template <> std::ostream& Property<double>::saveBinary(std::ostream& os) { return os.write((char*)&value, sizeof(double)); }
|
||||||
|
template <> std::ostream& Property<double>::saveAscii(std::ostream& os) { return os << value; }
|
||||||
|
template <> std::istream& Property<double>::loadBinary(std::istream& is) { return is.read((char*)&value, sizeof(double)); }
|
||||||
|
template <> std::istream& Property<double>::loadAscii(std::istream& is) { return is >> value; }
|
||||||
|
template <> AbstractProperty::PropertyType Property<double>::getStaticPropertyType() { return AbstractProperty::DOUBLE; }
|
||||||
|
|
||||||
// VEC2 PROPERTY
|
// VEC2 PROPERTY
|
||||||
template <> std::ostream& Property<glm::vec2>::saveBinary(std::ostream& os) { return os.write((char*)glm::value_ptr(value), sizeof(float)*value.length()); }
|
template <> std::ostream& Property<glm::vec2>::saveBinary(std::ostream& os) { return os.write((char*)glm::value_ptr(value), sizeof(float)*value.length()); }
|
||||||
template <> std::ostream& Property<glm::vec2>::saveAscii(std::ostream& os) { os << "["; for(int i=0; i<value.length(); ++i) os << (glm::value_ptr(value)[i]) << (i == value.length()-1 ? "]" : ", "); return os; }
|
template <> std::ostream& Property<glm::vec2>::saveAscii(std::ostream& os) { os << "["; for(int i=0; i<value.length(); ++i) os << (glm::value_ptr(value)[i]) << (i == value.length()-1 ? "]" : ", "); return os; }
|
||||||
|
@ -12,6 +12,11 @@
|
|||||||
type &var = var##Property.getValueRef();\
|
type &var = var##Property.getValueRef();\
|
||||||
|
|
||||||
#define INT(var) PROPERTY(int, var)
|
#define INT(var) PROPERTY(int, var)
|
||||||
|
#define UINT(var) PROPERTY(unsigned int, var)
|
||||||
|
#define LONG(var) PROPERTY(long, var)
|
||||||
|
#define SHORT(var) PROPERTY(short, var)
|
||||||
|
#define BYTE(var) PROPERTY(char, var)
|
||||||
|
#define DOUBLE(var) PROPERTY(double, var)
|
||||||
#define FLOAT(var) PROPERTY(float, var)
|
#define FLOAT(var) PROPERTY(float, var)
|
||||||
#define BOOL(var) PROPERTY(bool, var)
|
#define BOOL(var) PROPERTY(bool, var)
|
||||||
#define VEC2(var) PROPERTY(glm::vec2, var)
|
#define VEC2(var) PROPERTY(glm::vec2, var)
|
||||||
@ -30,8 +35,13 @@
|
|||||||
|
|
||||||
|
|
||||||
#define VECTOR_INT(var) VECTOR_PROPERTY(int, var)
|
#define VECTOR_INT(var) VECTOR_PROPERTY(int, var)
|
||||||
|
#define VECTOR_UINT(var) VECTOR_PROPERTY(unsigned int, var)
|
||||||
#define VECTOR_FLOAT(var) VECTOR_PROPERTY(float, var)
|
#define VECTOR_FLOAT(var) VECTOR_PROPERTY(float, var)
|
||||||
#define VECTOR_BOOL(var) VECTOR_PROPERTY(bool, var)
|
#define VECTOR_BOOL(var) VECTOR_PROPERTY(bool, var)
|
||||||
|
#define VECTOR_SHORT(var) VECTOR_PROPERTY(short, var)
|
||||||
|
#define VECTOR_BYTE(var) VECTOR_PROPERTY(char, var)
|
||||||
|
#define VECTOR_LONG(var) VECTOR_PROPERTY(long, var)
|
||||||
|
#define VECTOR_DOUBLE(var) VECTOR_PROPERTY(double, var)
|
||||||
#define VECTOR_VEC2(var) VECTOR_PROPERTY(glm::vec2, var)
|
#define VECTOR_VEC2(var) VECTOR_PROPERTY(glm::vec2, var)
|
||||||
#define VECTOR_VEC3(var) VECTOR_PROPERTY(glm::vec3, var)
|
#define VECTOR_VEC3(var) VECTOR_PROPERTY(glm::vec3, var)
|
||||||
#define VECTOR_MAT4(var) VECTOR_PROPERTY(glm::mat4, var)
|
#define VECTOR_MAT4(var) VECTOR_PROPERTY(glm::mat4, var)
|
||||||
@ -57,7 +67,12 @@ public:
|
|||||||
UNDEFINED,
|
UNDEFINED,
|
||||||
|
|
||||||
INTEGER,
|
INTEGER,
|
||||||
|
SHORT,
|
||||||
|
LONG,
|
||||||
|
BYTE,
|
||||||
|
UNSIGNED_INTEGER,
|
||||||
FLOAT,
|
FLOAT,
|
||||||
|
DOUBLE,
|
||||||
BOOLEAN,
|
BOOLEAN,
|
||||||
VEC2,
|
VEC2,
|
||||||
VEC3,
|
VEC3,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user