support selecting material in json by name with ?

This commit is contained in:
SamGondelman 2019-04-02 14:13:00 -07:00
parent 75a246b82d
commit 7b0854c121

View file

@ -1555,7 +1555,23 @@ void Model::applyMaterialMapping() {
return;
}
render::Transaction transaction;
auto networkMaterial = networkMaterialResource->parsedMaterials.networkMaterials[networkMaterialResource->parsedMaterials.names[0]];
std::shared_ptr<NetworkMaterial> networkMaterial;
{
QString url = networkMaterialResource->getURL().toString();
bool foundMaterialName = false;
if (url.contains("?")) {
auto split = url.split("?");
std::string materialName = split.last().toStdString();
auto networkMaterialIter = networkMaterialResource->parsedMaterials.networkMaterials.find(materialName);
if (networkMaterialIter != networkMaterialResource->parsedMaterials.networkMaterials.end()) {
networkMaterial = networkMaterialIter->second;
foundMaterialName = true;
}
}
if (!foundMaterialName) {
networkMaterial = networkMaterialResource->parsedMaterials.networkMaterials[networkMaterialResource->parsedMaterials.names[0]];
}
}
for (auto shapeID : shapeIDs) {
if (shapeID < _modelMeshRenderItemIDs.size()) {
auto itemID = _modelMeshRenderItemIDs[shapeID];