diff --git a/src/MeshTools/Interleave.h b/src/MeshTools/Interleave.h index 4f7a2f124..12b9ea897 100644 --- a/src/MeshTools/Interleave.h +++ b/src/MeshTools/Interleave.h @@ -95,29 +95,29 @@ class Interleave { delete[] result.data; } - /** @brief Minimal count of passed attributes */ - template inline static size_t attributeCount(const std::vector& attribute, const std::vector&... attributes) { - size_t count = attributeCount(attributes...); - if(sizeof...(attributes) != 0 && count != attribute.size()) { + /** @brief Count of passed attributes */ + template inline static size_t attributeCount(const std::vector& first, const std::vector&... next) { + size_t count = attributeCount(next...); + if(sizeof...(next) != 0 && count != first.size()) { Corrade::Utility::Error() << "MeshTools::Interleave: attribute arrays don't have the same length, nothing done."; assert(0); return 0; } - return attribute.size(); + return first.size(); } /** @brief Distance between two attributes in resulting array */ - template inline static size_t stride(const std::vector& attribute, const std::vector&... attributes) { - return sizeof(T) + stride(attributes...); + template inline static size_t stride(const std::vector& first, const std::vector&... next) { + return sizeof(T) + stride(next...); } private: - template void write(char* startingOffset, const std::vector& attribute, const std::vector&... attributes) const { + template void write(char* startingOffset, const std::vector& first, const std::vector&... next) const { /* Copy the data to the buffer */ for(size_t i = 0; i != result.attributeCount; ++i) - memcpy(startingOffset+i*result.stride, reinterpret_cast(&attribute[i]), sizeof(T)); + memcpy(startingOffset+i*result.stride, reinterpret_cast(&first[i]), sizeof(T)); - write(startingOffset+sizeof(T), attributes...); + write(startingOffset+sizeof(T), next...); } /* Terminator functions for recursive calls */