void CModel::mergeTextureStreams(_In_ CModel * pSourceModel) { if (pSourceModel == nullptr) throw CNMRException(NMR_ERROR_INVALIDPARAM); nfUint32 nCount = pSourceModel->getTextureStreamCount(); nfUint32 nIndex; for (nIndex = 0; nIndex < nCount; nIndex++) { std::wstring sPath = pSourceModel->getTextureStreamPath(nIndex); PImportStream pTextureStream = pSourceModel->getTextureStream(nIndex); PImportStream pCopiedStream = pTextureStream->copyToMemory(); addTextureStream(sPath, pCopiedStream); } }
void CModelReader_3MF_Native::extractTexturesFromRelationships(_In_ COpcPackagePart * pModelPart) { if (pModelPart == nullptr) throw CNMRException(NMR_ERROR_INVALIDPARAM); std::list<POpcPackageRelationship> RelationShips = pModelPart->getRelationShips(); std::list<POpcPackageRelationship>::iterator iIterator; for (iIterator = RelationShips.begin(); iIterator != RelationShips.end(); iIterator++) { std::wstring sType = (*iIterator)->getType(); if (wcscmp(sType.c_str(), PACKAGE_TEXTURE_RELATIONSHIP_TYPE) == 0) { std::wstring sURI = (*iIterator)->getTargetPartURI(); POpcPackagePart pTexturePart = m_pPackageReader->createPart(sURI); PImportStream pTextureStream = pTexturePart->getImportStream(); PImportStream pMemoryStream = pTextureStream->copyToMemory(); addTextureStream(sURI, pMemoryStream); } } }