|
@@ -58,6 +58,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
#include <algorithm>
|
|
|
#include <list>
|
|
|
#include <map>
|
|
|
+#include <set>
|
|
|
#include <stdexcept>
|
|
|
#include <string>
|
|
|
#include <vector>
|
|
@@ -81,14 +82,18 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
#define ASSIMP_GLTF_USE_UNORDERED_MULTIMAP
|
|
|
#else
|
|
|
#define gltf_unordered_map map
|
|
|
+#define gltf_unordered_set set
|
|
|
#endif
|
|
|
|
|
|
#ifdef ASSIMP_GLTF_USE_UNORDERED_MULTIMAP
|
|
|
#include <unordered_map>
|
|
|
+#include <unordered_set>
|
|
|
#if _MSC_VER > 1600
|
|
|
#define gltf_unordered_map unordered_map
|
|
|
+#define gltf_unordered_set unordered_set
|
|
|
#else
|
|
|
#define gltf_unordered_map tr1::unordered_map
|
|
|
+#define gltf_unordered_set tr1::unordered_set
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
@@ -874,6 +879,8 @@ class LazyDict : public LazyDictBase {
|
|
|
Value *mDict; //! JSON dictionary object
|
|
|
Asset &mAsset; //! The asset instance
|
|
|
|
|
|
+ std::gltf_unordered_set<unsigned int> mRecursiveReferenceCheck; //! Used by Retrieve to prevent recursive lookups
|
|
|
+
|
|
|
void AttachToDocument(Document &doc);
|
|
|
void DetachFromDocument();
|
|
|
|