diff --git a/src/Magnum/SceneTools/Implementation/combine.h b/src/Magnum/SceneTools/Implementation/combine.h index 2d677918e..c695a0405 100644 --- a/src/Magnum/SceneTools/Implementation/combine.h +++ b/src/Magnum/SceneTools/Implementation/combine.h @@ -38,15 +38,6 @@ namespace Magnum { namespace SceneTools { namespace Implementation { -/* These two are needed because there (obviously) isn't any overload of - castInto with the same input and output type */ -template void copyOrCastInto(const Containers::StridedArrayView1D& src, const Containers::StridedArrayView1D& dst) { - Math::castInto(Containers::arrayCast<2, const T>(src), Containers::arrayCast<2, U>(dst)); -} -template void copyOrCastInto(const Containers::StridedArrayView1D& src, const Containers::StridedArrayView1D& dst) { - Utility::copy(src, dst); -} - template void combineCopyMappings(const Containers::ArrayView fields, const Containers::ArrayView> itemViews, const Containers::ArrayView> itemViewMappings) { std::size_t latestMapping = 0; for(std::size_t i = 0; i != fields.size(); ++i) { @@ -61,16 +52,19 @@ template void combineCopyMappings(const Containers::ArrayView src = fields[i].mappingData(); - const Containers::StridedArrayView1D dst = Containers::arrayCast<1, T>(itemViews[mapping]); + const Containers::StridedArrayView2D dst = Containers::arrayCast<2, T>(Containers::arrayCast<1, T>(itemViews[mapping])); if(fields[i].mappingType() == Trade::SceneMappingType::UnsignedByte) - copyOrCastInto(Containers::arrayCast(src), dst); + Math::castInto(Containers::arrayCast<2, const UnsignedByte>(Containers::arrayCast(src)), dst); else if(fields[i].mappingType() == Trade::SceneMappingType::UnsignedShort) - copyOrCastInto(Containers::arrayCast(src), dst); + Math::castInto(Containers::arrayCast<2, const UnsignedShort>(Containers::arrayCast(src)), dst); else if(fields[i].mappingType() == Trade::SceneMappingType::UnsignedInt) - copyOrCastInto(Containers::arrayCast(src), dst); + Math::castInto(Containers::arrayCast<2, const UnsignedInt>(Containers::arrayCast(src)), dst); else if(fields[i].mappingType() == Trade::SceneMappingType::UnsignedLong) - copyOrCastInto(Containers::arrayCast(src), dst); + Math::castInto(Containers::arrayCast<2, const UnsignedLong>(Containers::arrayCast(src)), dst); else CORRADE_INTERNAL_ASSERT_UNREACHABLE(); /* LCOV_EXCL_LINE */ } }