diff --git a/code/MDLLoader.cpp b/code/MDLLoader.cpp index dc7b379ce..643b3882f 100644 --- a/code/MDLLoader.cpp +++ b/code/MDLLoader.cpp @@ -415,6 +415,7 @@ void MDLImporter::InternReadFile_Quake1( ) else { // get the first frame in the group + #if 1 // FIXME: the cast is wrong and causea a warning on clang 5.0 // disable thi code for now, fix it later diff --git a/code/XGLLoader.cpp b/code/XGLLoader.cpp index 8ef91afac..809936099 100644 --- a/code/XGLLoader.cpp +++ b/code/XGLLoader.cpp @@ -904,12 +904,14 @@ aiVector2D XGLImporter::ReadVec2() } const char* s = m_reader->getNodeData(); - for(int i = 0; i < 2; ++i) { + ai_real v[2]; + for(int i = 0; i < 2; ++i) { if(!SkipSpaces(&s)) { LogError("unexpected EOL, failed to parse vec2"); return vec; } - vec[i] = fast_atof(&s); + + v[i] = fast_atof(&s); SkipSpaces(&s); if (i != 1 && *s != ',') { @@ -918,6 +920,8 @@ aiVector2D XGLImporter::ReadVec2() } ++s; } + vec.x = v[0]; + vec.y = v[1]; return vec; } diff --git a/include/assimp/vector2.h b/include/assimp/vector2.h index 3b85fc22b..73f765359 100644 --- a/include/assimp/vector2.h +++ b/include/assimp/vector2.h @@ -85,7 +85,6 @@ public: const aiVector2t& operator /= (TReal f); TReal operator[](unsigned int i) const; - TReal& operator[](unsigned int i); bool operator== (const aiVector2t& other) const; bool operator!= (const aiVector2t& other) const; diff --git a/include/assimp/vector2.inl b/include/assimp/vector2.inl index fe3059ad5..43694a8ff 100644 --- a/include/assimp/vector2.inl +++ b/include/assimp/vector2.inl @@ -60,24 +60,28 @@ aiVector2t::operator aiVector2t () const { } // ------------------------------------------------------------------------------------------------ template +inline void aiVector2t::Set( TReal pX, TReal pY) { x = pX; y = pY; } // ------------------------------------------------------------------------------------------------ template +inline TReal aiVector2t::SquareLength() const { return x*x + y*y; } // ------------------------------------------------------------------------------------------------ template +inline TReal aiVector2t::Length() const { return std::sqrt( SquareLength()); } // ------------------------------------------------------------------------------------------------ template +inline aiVector2t& aiVector2t::Normalize() { *this /= Length(); return *this; @@ -85,6 +89,7 @@ aiVector2t& aiVector2t::Normalize() { // ------------------------------------------------------------------------------------------------ template +inline const aiVector2t& aiVector2t::operator += (const aiVector2t& o) { x += o.x; y += o.y; return *this; @@ -92,6 +97,7 @@ const aiVector2t& aiVector2t::operator += (const aiVector2t& o) { // ------------------------------------------------------------------------------------------------ template +inline const aiVector2t& aiVector2t::operator -= (const aiVector2t& o) { x -= o.x; y -= o.y; return *this; @@ -99,6 +105,7 @@ const aiVector2t& aiVector2t::operator -= (const aiVector2t& o) { // ------------------------------------------------------------------------------------------------ template +inline const aiVector2t& aiVector2t::operator *= (TReal f) { x *= f; y *= f; return *this; @@ -106,6 +113,7 @@ const aiVector2t& aiVector2t::operator *= (TReal f) { // ------------------------------------------------------------------------------------------------ template +inline const aiVector2t& aiVector2t::operator /= (TReal f) { x /= f; y /= f; return *this; @@ -113,46 +121,37 @@ const aiVector2t& aiVector2t::operator /= (TReal f) { // ------------------------------------------------------------------------------------------------ template +inline TReal aiVector2t::operator[](unsigned int i) const { - switch (i) { - case 0: - return x; - case 1: - return y; - default: - break; - } - return x; -} - -// ------------------------------------------------------------------------------------------------ -template -TReal& aiVector2t::operator[](unsigned int i) { - switch (i) { - case 0: - return x; - case 1: - return y; - default: - break; + switch (i) { + case 0: + return x; + case 1: + return y; + default: + break; + } return x; } // ------------------------------------------------------------------------------------------------ template +inline bool aiVector2t::operator== (const aiVector2t& other) const { return x == other.x && y == other.y; } // ------------------------------------------------------------------------------------------------ template +inline bool aiVector2t::operator!= (const aiVector2t& other) const { return x != other.x || y != other.y; } // --------------------------------------------------------------------------- template +inline bool aiVector2t::Equal(const aiVector2t& other, TReal epsilon) const { return std::abs(x - other.x) <= epsilon && @@ -161,6 +160,7 @@ bool aiVector2t::Equal(const aiVector2t& other, TReal epsilon) const { // ------------------------------------------------------------------------------------------------ template +inline aiVector2t& aiVector2t::operator= (TReal f) { x = y = f; return *this; @@ -168,6 +168,7 @@ aiVector2t& aiVector2t::operator= (TReal f) { // ------------------------------------------------------------------------------------------------ template +inline const aiVector2t aiVector2t::SymMul(const aiVector2t& o) { return aiVector2t(x*o.x,y*o.y); } @@ -176,65 +177,64 @@ const aiVector2t aiVector2t::SymMul(const aiVector2t& o) { // ------------------------------------------------------------------------------------------------ // symmetric addition template -inline aiVector2t operator + (const aiVector2t& v1, const aiVector2t& v2) -{ +inline +aiVector2t operator + (const aiVector2t& v1, const aiVector2t& v2) { return aiVector2t( v1.x + v2.x, v1.y + v2.y); } // ------------------------------------------------------------------------------------------------ // symmetric subtraction template -inline aiVector2t operator - (const aiVector2t& v1, const aiVector2t& v2) -{ +inline +aiVector2t operator - (const aiVector2t& v1, const aiVector2t& v2) { return aiVector2t( v1.x - v2.x, v1.y - v2.y); } // ------------------------------------------------------------------------------------------------ // scalar product template -inline TReal operator * (const aiVector2t& v1, const aiVector2t& v2) -{ +inline +TReal operator * (const aiVector2t& v1, const aiVector2t& v2) { return v1.x*v2.x + v1.y*v2.y; } // ------------------------------------------------------------------------------------------------ // scalar multiplication template -inline aiVector2t operator * ( TReal f, const aiVector2t& v) -{ +inline +aiVector2t operator * ( TReal f, const aiVector2t& v) { return aiVector2t( f*v.x, f*v.y); } // ------------------------------------------------------------------------------------------------ // and the other way around template -inline aiVector2t operator * ( const aiVector2t& v, TReal f) -{ +inline +aiVector2t operator * ( const aiVector2t& v, TReal f) { return aiVector2t( f*v.x, f*v.y); } // ------------------------------------------------------------------------------------------------ // scalar division template -inline aiVector2t operator / ( const aiVector2t& v, TReal f) -{ - +inline +aiVector2t operator / ( const aiVector2t& v, TReal f) { return v * (1/f); } // ------------------------------------------------------------------------------------------------ // vector division template -inline aiVector2t operator / ( const aiVector2t& v, const aiVector2t& v2) -{ +inline +aiVector2t operator / ( const aiVector2t& v, const aiVector2t& v2) { return aiVector2t(v.x / v2.x,v.y / v2.y); } // ------------------------------------------------------------------------------------------------ // vector negation template -inline aiVector2t operator - ( const aiVector2t& v) -{ +inline +aiVector2t operator - ( const aiVector2t& v) { return aiVector2t( -v.x, -v.y); } diff --git a/include/assimp/vector3.inl b/include/assimp/vector3.inl index a074bb23a..2b132c1a5 100644 --- a/include/assimp/vector3.inl +++ b/include/assimp/vector3.inl @@ -142,7 +142,6 @@ AI_FORCE_INLINE aiVector3t& aiVector3t::operator *= (const aiMatri // ------------------------------------------------------------------------------------------------ template AI_FORCE_INLINE TReal aiVector3t::operator[](unsigned int i) const { -// return *(&x + i); switch (i) { case 0: return x;