History

cleanup and expose mapped materials to getScriptableModel

SamGondelman committed 7 years ago

Commit fdbcf4b1 parent f75a3e15 files · +15 −8Browse files

Showing the changes to libraries/render-utils/src/Model.cpp (1 of 5 files). Show all

Unified · Split

libraries/render-utils/src/Model.cpp+11−1
@@ -756,7 +756,16 @@ scriptable::ScriptableModelBase Model::getScriptableModel() { · 755 unmodified lines
756756
757757 int numParts = (int)mesh->getNumParts();
758758 for (int partIndex = 0; partIndex < numParts; partIndex++) {
759− result.appendMaterial(graphics::MaterialLayer(getGeometry()->getShapeMaterial(shapeID), 0), shapeID, _modelMeshMaterialNames[shapeID]);
759+ auto& materialName = _modelMeshMaterialNames[shapeID];
760+ result.appendMaterial(graphics::MaterialLayer(getGeometry()->getShapeMaterial(shapeID), 0), shapeID, materialName);
761+
762+ auto mappedMaterialIter = _materialMapping.find(shapeID);
763+ if (mappedMaterialIter != _materialMapping.end()) {
764+ auto mappedMaterials = mappedMaterialIter->second;
765+ for (auto& mappedMaterial : mappedMaterials) {
766+ result.appendMaterial(mappedMaterial, shapeID, materialName);
767+ }
768+ }
760769 shapeID++;
761770 }
762771 }
@@ -1546,6 +1555,7 @@ void Model::applyMaterialMapping() { · 783 unmodified lines
15461555 auto meshIndex = _modelMeshRenderItemShapes[shapeID].meshIndex;
15471556 bool invalidatePayloadShapeKey = shouldInvalidatePayloadShapeKey(meshIndex);
15481557 graphics::MaterialLayer material = graphics::MaterialLayer(networkMaterial, ++_priorityMap[shapeID]);
1558+ _materialMapping[shapeID].push_back(material);
15491559 transaction.updateItem<ModelMeshPartPayload>(itemID, [material, renderItemsKey,
15501560 invalidatePayloadShapeKey, primitiveMode, useDualQuaternionSkinning](ModelMeshPartPayload& data) {
15511561 data.addMaterial(material);