Merge branch 'master' into skylion007/modernize-use-emplace
commit
2b30b7e062
|
@ -2,8 +2,7 @@
|
|||
Open Asset Import Library (assimp)
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 2006-2019, assimp team
|
||||
|
||||
Copyright (c) 2006-2022, assimp team
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
@ -262,22 +261,25 @@ void X3DImporter::readDisk2D(XmlNode &node) {
|
|||
//
|
||||
// create quad list from two point lists
|
||||
//
|
||||
if (tlist_i.size() < 2) throw DeadlyImportError("Disk2D. Not enough points for creating quad list."); // tlist_i and tlist_o has equal size.
|
||||
if (tlist_i.size() < 2) {
|
||||
// tlist_i and tlist_o has equal size.
|
||||
throw DeadlyImportError("Disk2D. Not enough points for creating quad list.");
|
||||
}
|
||||
|
||||
// add all quads except last
|
||||
for (std::list<aiVector3D>::iterator it_i = tlist_i.begin(), it_o = tlist_o.begin(); it_i != tlist_i.end();) {
|
||||
// do not forget - CCW direction
|
||||
vlist.push_back(*it_i++); // 1st point
|
||||
vlist.push_back(*it_o++); // 2nd point
|
||||
vlist.push_back(*it_o); // 3rd point
|
||||
vlist.push_back(*it_i); // 4th point
|
||||
vlist.emplace_back(*it_i++); // 1st point
|
||||
vlist.emplace_back(*it_o++); // 2nd point
|
||||
vlist.emplace_back(*it_o); // 3rd point
|
||||
vlist.emplace_back(*it_i); // 4th point
|
||||
}
|
||||
|
||||
// add last quad
|
||||
vlist.push_back(*tlist_i.end()); // 1st point
|
||||
vlist.push_back(*tlist_o.end()); // 2nd point
|
||||
vlist.push_back(*tlist_o.begin()); // 3rd point
|
||||
vlist.push_back(*tlist_o.begin()); // 4th point
|
||||
vlist.emplace_back(tlist_i.back()); // 1st point
|
||||
vlist.emplace_back(tlist_o.back()); // 2nd point
|
||||
vlist.emplace_back(tlist_o.front()); // 3rd point
|
||||
vlist.emplace_back(tlist_i.front()); // 4th point
|
||||
|
||||
((X3DNodeElementGeometry2D *)ne)->NumIndices = 4;
|
||||
}
|
||||
|
|
|
@ -903,8 +903,10 @@ struct AssetMetadata {
|
|||
void Read(Document &doc);
|
||||
|
||||
AssetMetadata() :
|
||||
premultipliedAlpha(false), version() {
|
||||
premultipliedAlpha(false) {
|
||||
}
|
||||
|
||||
operator bool() const { return version.size() && version[0] == '1'; }
|
||||
};
|
||||
|
||||
//
|
||||
|
|
|
@ -1114,10 +1114,6 @@ inline void AssetMetadata::Read(Document &doc) {
|
|||
ReadMember(*curProfile, "version", this->profile.version);
|
||||
}
|
||||
}
|
||||
|
||||
if (version.empty() || version[0] != '1') {
|
||||
throw DeadlyImportError("GLTF: Unsupported glTF version: ", version);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -1222,6 +1218,10 @@ inline void Asset::Load(const std::string &pFile, bool isBinary) {
|
|||
|
||||
// Load the metadata
|
||||
asset.Read(doc);
|
||||
if (!asset) {
|
||||
return;
|
||||
}
|
||||
|
||||
ReadExtensionsUsed(doc);
|
||||
|
||||
// Prepare the dictionaries
|
||||
|
|
|
@ -96,8 +96,7 @@ bool glTFImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool
|
|||
glTF::Asset asset(pIOHandler);
|
||||
try {
|
||||
asset.Load(pFile, GetExtension(pFile) == "glb");
|
||||
std::string version = asset.asset.version;
|
||||
return !version.empty() && version[0] == '1';
|
||||
return asset.asset;
|
||||
} catch (...) {
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue