FCDMaterialInstance* FCDGeometryInstance::AddMaterialInstance(FCDMaterial* material, const fchar* semantic) { FCDMaterialInstance* instance = AddMaterialInstance(); instance->SetMaterial(material); instance->SetSemantic(semantic); return instance; }
FCDMaterialInstance* FCDGeometryInstance::AddMaterialInstance(FCDMaterial* material, FCDGeometryPolygons* polygons) { FCDMaterialInstance* instance = AddMaterialInstance(); instance->SetMaterial(material); if (polygons != NULL) { const fstring& semantic = polygons->GetMaterialSemantic(); if (!semantic.empty()) { instance->SetSemantic(polygons->GetMaterialSemantic()); } else { // Generate a semantic. fstring semantic = TO_FSTRING(material->GetDaeId()) + TO_FSTRING(polygons->GetFaceOffset()); polygons->SetMaterialSemantic(semantic); instance->SetSemantic(semantic); } } return instance; }