From f446f25ceee5a723eddb9f73a6c7438be441fdb8 Mon Sep 17 00:00:00 2001 From: Tristan Zimpfer Date: Wed, 12 Apr 2017 17:28:29 +0200 Subject: [PATCH] Sort DeferredObject. --- src/ifcconvert/ColladaSerializer.cpp | 1 + src/ifcconvert/ColladaSerializer.h | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/ifcconvert/ColladaSerializer.cpp b/src/ifcconvert/ColladaSerializer.cpp index c47c48eea7..d67bc04044 100644 --- a/src/ifcconvert/ColladaSerializer.cpp +++ b/src/ifcconvert/ColladaSerializer.cpp @@ -352,6 +352,7 @@ void ColladaSerializer::ColladaExporter::endDocument() { // only at this point all objects are written to the stream. materials.write(); std::set geometries_written; + std::sort(deferreds.begin(), deferreds.end()); for (std::vector::const_iterator it = deferreds.begin(); it != deferreds.end(); ++it) { if (geometries_written.find(it->representation_id) != geometries_written.end()) { continue; diff --git a/src/ifcconvert/ColladaSerializer.h b/src/ifcconvert/ColladaSerializer.h index 86142a4722..9ef049ed79 100644 --- a/src/ifcconvert/ColladaSerializer.h +++ b/src/ifcconvert/ColladaSerializer.h @@ -121,6 +121,10 @@ private: ColladaEffects effects; }; class DeferredObject { + friend bool operator < (const DeferredObject & def_obj1, const DeferredObject & def_obj2) + { + return (def_obj1.parent < def_obj2.parent ? true : false); + } public: std::string unique_id, representation_id, type; std::vector matrix;