SpecBase: Flatten loop within flattenDependenciesBlend()

We can use insert() with make_move_iterator() to perform the same
behavior, minus unnecessary copies.

While we're at it, we can collapse the code within the Area case, since
it's the exact same as the Mesh code.
This commit is contained in:
Lioncash 2020-02-26 14:52:17 -05:00
parent 08604d770a
commit fc3ef2fddd
1 changed files with 3 additions and 10 deletions

View File

@ -283,11 +283,11 @@ void SpecBase::flattenDependenciesBlend(const hecl::ProjectPath& in, std::vector
if (!conn.openBlend(in))
return;
switch (conn.getBlendType()) {
case hecl::blender::BlendType::Mesh: {
case hecl::blender::BlendType::Mesh:
case hecl::blender::BlendType::Area: {
hecl::blender::DataStream ds = conn.beginData();
std::vector<hecl::ProjectPath> texs = ds.getTextures();
for (const hecl::ProjectPath& tex : texs)
pathsOut.push_back(tex);
pathsOut.insert(pathsOut.end(), std::make_move_iterator(texs.begin()), std::make_move_iterator(texs.end()));
break;
}
case hecl::blender::BlendType::Actor: {
@ -379,13 +379,6 @@ void SpecBase::flattenDependenciesBlend(const hecl::ProjectPath& in, std::vector
pathsOut.push_back(asGlob);
return;
}
case hecl::blender::BlendType::Area: {
hecl::blender::DataStream ds = conn.beginData();
std::vector<hecl::ProjectPath> texs = ds.getTextures();
for (const hecl::ProjectPath& tex : texs)
pathsOut.push_back(tex);
break;
}
default:
break;
}