update assimp to 6.0.5

This commit is contained in:
AzaezelX 2026-06-09 12:46:56 -05:00
parent 2d2eb57e2e
commit f5cf21cfeb
941 changed files with 22718 additions and 12240 deletions

View file

@ -3,7 +3,7 @@
Open Asset Import Library (assimp)
---------------------------------------------------------------------------
Copyright (c) 2006-2024, assimp team
Copyright (c) 2006-2026, assimp team
All rights reserved.
@ -91,6 +91,36 @@ void NDOImporter::SetupProperties(const Importer* /*pImp*/)
// nothing to be done for the moment
}
// ------------------------------------------------------------------------------------------------
// Helper function to process edges and vertices for a face
void ProcessFaceEdgesAndVertices(const NDOImporter::Object& obj,
unsigned int start_edge, unsigned int key,
std::vector<aiVector3D>& vertices, std::vector<unsigned int>& indices)
{
unsigned int cur_edge = start_edge;
do {
unsigned int next_edge, next_vert;
if (key == obj.edges[cur_edge].edge[3]) {
next_edge = obj.edges[cur_edge].edge[5];
next_vert = obj.edges[cur_edge].edge[1];
}
else {
next_edge = obj.edges[cur_edge].edge[4];
next_vert = obj.edges[cur_edge].edge[0];
}
indices.push_back( static_cast<unsigned int>(vertices.size()) );
if (next_vert < obj.vertices.size()) {
vertices.push_back(obj.vertices[ next_vert ].val);
}
else {
ASSIMP_LOG_WARN("NDOImporter: next_vert is out of bounds, skipping invalid access.");
break;
}
cur_edge = next_edge;
} while (cur_edge != start_edge);
}
// ------------------------------------------------------------------------------------------------
// Imports the given file into the given scene structure.
void NDOImporter::InternReadFile( const std::string& pFile,
@ -262,26 +292,7 @@ void NDOImporter::InternReadFile( const std::string& pFile,
aiFace& f = *faces++;
const unsigned int key = v.first;
unsigned int cur_edge = v.second;
while (true) {
unsigned int next_edge, next_vert;
if (key == obj.edges[cur_edge].edge[3]) {
next_edge = obj.edges[cur_edge].edge[5];
next_vert = obj.edges[cur_edge].edge[1];
}
else {
next_edge = obj.edges[cur_edge].edge[4];
next_vert = obj.edges[cur_edge].edge[0];
}
indices.push_back( static_cast<unsigned int>(vertices.size()) );
vertices.push_back(obj.vertices[ next_vert ].val);
cur_edge = next_edge;
if (cur_edge == v.second) {
break;
}
}
ProcessFaceEdgesAndVertices(obj, v.second, v.first, vertices, indices);
f.mIndices = new unsigned int[f.mNumIndices = static_cast<unsigned int>(indices.size())];
std::copy(indices.begin(),indices.end(),f.mIndices);