diff --git a/source/Irrlicht/CGLTFMeshFileLoader.cpp b/source/Irrlicht/CGLTFMeshFileLoader.cpp index b9a0fc84..c82e8d79 100644 --- a/source/Irrlicht/CGLTFMeshFileLoader.cpp +++ b/source/Irrlicht/CGLTFMeshFileLoader.cpp @@ -208,7 +208,7 @@ core::vector2df CGLTFMeshFileLoader::ModelParser::readVec2DF( core::vector3df CGLTFMeshFileLoader::ModelParser::readVec3DF( const BufferOffset& readFrom, - const float scale = 1.0f) + const float scale) { return core::vector3df( scale * readPrimitive(readFrom), diff --git a/source/Irrlicht/CGLTFMeshFileLoader.h b/source/Irrlicht/CGLTFMeshFileLoader.h index d4c7061a..37590734 100644 --- a/source/Irrlicht/CGLTFMeshFileLoader.h +++ b/source/Irrlicht/CGLTFMeshFileLoader.h @@ -83,9 +83,13 @@ private: static core::vector2df readVec2DF( const BufferOffset& readFrom); + /* Read a vec3df from a buffer with transformations applied. + * + * Values are returned in Irrlicht coordinates. + */ static core::vector3df readVec3DF( const BufferOffset& readFrom, - const float scale); + const float scale = 1.0f); void copyPositions(const Span vertices, const std::size_t accessorId) const; @@ -96,6 +100,10 @@ private: void copyTCoords(const Span vertices, const std::size_t accessorId) const; + /* Get the scale factor from the glTF mesh information. + * + * Returns 1.0f if no scale factor is present. + */ float getScale() const; std::size_t getElemCount(const std::size_t accessorIdx) const;