added vec4 and mat3 types

This commit is contained in:
Anselme 2017-01-22 11:18:30 +01:00
parent 37b893e3f0
commit f587759317
2 changed files with 20 additions and 0 deletions

View File

@ -71,6 +71,20 @@ template <> std::istream& Property<glm::vec3>::loadBinary(std::istream& is) { re
template <> std::istream& Property<glm::vec3>::loadAscii(std::istream& is) { is.ignore(1); for(int i=0; i<value.length(); ++i) is >> (glm::value_ptr(value)[i]), is.ignore(1); return is; } template <> std::istream& Property<glm::vec3>::loadAscii(std::istream& is) { is.ignore(1); for(int i=0; i<value.length(); ++i) is >> (glm::value_ptr(value)[i]), is.ignore(1); return is; }
template <> AbstractProperty::PropertyType Property<glm::vec3>::getStaticPropertyType() { return AbstractProperty::VEC3; } template <> AbstractProperty::PropertyType Property<glm::vec3>::getStaticPropertyType() { return AbstractProperty::VEC3; }
// VEC4 PROPERTY
template <> std::ostream& Property<glm::vec4>::saveBinary(std::ostream& os) { return os.write((char*)glm::value_ptr(value), sizeof(float)*value.length()); }
template <> std::ostream& Property<glm::vec4>::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::istream& Property<glm::vec4>::loadBinary(std::istream& is) { return is.read((char*)glm::value_ptr(value), sizeof(float)*value.length()); }
template <> std::istream& Property<glm::vec4>::loadAscii(std::istream& is) { is.ignore(1); for(int i=0; i<value.length(); ++i) is >> (glm::value_ptr(value)[i]), is.ignore(1); return is; }
template <> AbstractProperty::PropertyType Property<glm::vec4>::getStaticPropertyType() { return AbstractProperty::VEC4; }
// MAT3 PROPERTY
template <> std::ostream& Property<glm::mat3>::saveBinary(std::ostream& os) { return os.write((char*)glm::value_ptr(value), sizeof(float)*value.length()); }
template <> std::ostream& Property<glm::mat3>::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::istream& Property<glm::mat3>::loadBinary(std::istream& is) { return is.read((char*)glm::value_ptr(value), sizeof(float)*value.length()); }
template <> std::istream& Property<glm::mat3>::loadAscii(std::istream& is) { is.ignore(1); for(int i=0; i<value.length(); ++i) is >> (glm::value_ptr(value)[i]), is.ignore(1); return is; }
template <> AbstractProperty::PropertyType Property<glm::mat3>::getStaticPropertyType() { return AbstractProperty::MAT3; }
// MAT4 PROPERTY // MAT4 PROPERTY
template <> std::ostream& Property<glm::mat4>::saveBinary(std::ostream& os) { return os.write((char*)glm::value_ptr(value), sizeof(float)*value.length()); } template <> std::ostream& Property<glm::mat4>::saveBinary(std::ostream& os) { return os.write((char*)glm::value_ptr(value), sizeof(float)*value.length()); }
template <> std::ostream& Property<glm::mat4>::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::mat4>::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; }

View File

@ -21,6 +21,8 @@
#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)
#define VEC3(var) PROPERTY(glm::vec3, var) #define VEC3(var) PROPERTY(glm::vec3, var)
#define VEC4(var) PROPERTY(glm::vec4, var)
#define MAT3(var) PROPERTY(glm::mat3, var)
#define MAT4(var) PROPERTY(glm::mat4, var) #define MAT4(var) PROPERTY(glm::mat4, var)
#define STRING(var) PROPERTY(std::string, var) #define STRING(var) PROPERTY(std::string, var)
@ -44,6 +46,8 @@
#define VECTOR_DOUBLE(var) VECTOR_PROPERTY(double, 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_VEC4(var) VECTOR_PROPERTY(glm::vec4, var)
#define VECTOR_MAT3(var) VECTOR_PROPERTY(glm::mat3, var)
#define VECTOR_MAT4(var) VECTOR_PROPERTY(glm::mat4, var) #define VECTOR_MAT4(var) VECTOR_PROPERTY(glm::mat4, var)
#define VECTOR_STRING(var) VECTOR_PROPERTY(std::string, var) #define VECTOR_STRING(var) VECTOR_PROPERTY(std::string, var)
#define VECTOR_REFERENCE(type, var) VECTOR_PROPERTY(type*, var) #define VECTOR_REFERENCE(type, var) VECTOR_PROPERTY(type*, var)
@ -76,6 +80,8 @@ public:
BOOLEAN, BOOLEAN,
VEC2, VEC2,
VEC3, VEC3,
VEC4,
MAT3,
MAT4, MAT4,
STRING, STRING,
REFERENCE, REFERENCE,