lib3mf 2.5 :

- aggiornamento versione
- utilizzate le nostre librerie esterne libzip e zlib e non quelle incluse in lib3mf.
This commit is contained in:
SaraP
2026-08-25 12:44:11 +02:00
parent ea6efc1e36
commit 513f08e691
544 changed files with 52634 additions and 30760 deletions
@@ -36,6 +36,7 @@ Stream.
#include "Model/Reader/v100/NMR_ModelReaderNode100_Mesh.h"
#include "Model/Reader/v100/NMR_ModelReaderNode100_MetaDataGroup.h"
#include "Model/Reader/v100/NMR_ModelReaderNode100_Components.h"
#include "Model/Reader/Volumetric2201/NMR_ModelReaderNode_LevelSet.h"
#include "Model/Classes/NMR_ModelConstants.h"
#include "Model/Classes/NMR_ModelMeshObject.h"
@@ -122,7 +123,7 @@ namespace NMR {
if (pXMLReader->NamespaceRegistered(XML_3MF_NAMESPACE_PRODUCTIONSPEC)) {
m_pWarnings->addException(CNMRException(NMR_ERROR_MISSINGUUID), mrwMissingMandatoryValue);
}
// m_UUID = std::make_shared<CUUID>();
m_UUID = std::make_shared<CUUID>();
}
m_pObject->setUUID(m_UUID);
}
@@ -236,7 +237,8 @@ namespace NMR {
// Create Empty Mesh
PMesh pMesh = std::make_shared<CMesh>();
// Create Mesh Object
m_pObject = std::make_shared<CModelMeshObject>(m_nID, m_pModel, pMesh);
PModelMeshObject meshObject = std::make_shared<CModelMeshObject>(m_nID, m_pModel, pMesh);
m_pObject = meshObject;
// Set Object Type (might fail, if string is invalid)
if (m_bHasType) {
if (!m_pObject->setObjectTypeString(m_sType, false))
@@ -244,10 +246,15 @@ namespace NMR {
}
// Read Mesh
PModelReaderNode100_Mesh pXMLNode = std::make_shared<CModelReaderNode100_Mesh>(m_pModel, pMesh.get(),
PModelReaderNode100_Mesh pXMLNode = std::make_shared<CModelReaderNode100_Mesh>(m_pModel, meshObject,
m_pWarnings, m_pProgressMonitor, m_pObjectLevelPropertyID, m_nObjectLevelPropertyIndex);
pXMLNode->parseXML(pXMLReader);
// store triangle sets in memory model
auto triangleSets = pXMLNode->getTriangleSets();
for (auto triangleSet : triangleSets)
meshObject->addTriangleSet(triangleSet);
// Add Object to Parent
m_pModel->addResource(m_pObject);
@@ -316,7 +323,28 @@ namespace NMR {
}
}
if(strcmp(pNameSpace, XML_3MF_NAMESPACE_VOLUMETRICSPEC) == 0) //Seems really wiered that object types defined by extensions have to be handled here
{
if(strcmp(pChildName, XML_3MF_ELEMENT_BOUNDARY_SHAPE) == 0)
{
auto levelSet = std::make_shared<CModelLevelSetObject>(m_nID, m_pModel);
PModelReaderNode pXMLNode =
std::make_shared<CModelReaderNode_LevelSet>(
m_pModel, levelSet, m_pWarnings, m_pProgressMonitor);
pXMLNode->parseXML(pXMLReader);
m_pObject = levelSet;
m_pModel->addResource(m_pObject);
}
else
{
m_pWarnings->addException(
CNMRException(NMR_ERROR_NAMESPACE_INVALID_ELEMENT),
mrwInvalidOptionalValue);
}
}
}
// Create the object-level property from m_nObjectLevelPropertyID, if defined
void CModelReaderNode100_Object::createDefaultProperties()
@@ -422,5 +450,4 @@ namespace NMR {
}
}
}
}