From 12d30e9d62d0ba2d260bb0ade7f108d722a1a77b Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 11 Jun 2014 13:25:16 -0700 Subject: [PATCH] handle some models don't fit better --- libraries/models/src/ModelTreeElement.cpp | 9 +++++++-- libraries/octree/src/Octree.cpp | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libraries/models/src/ModelTreeElement.cpp b/libraries/models/src/ModelTreeElement.cpp index eac174e3b4..bcfd101dd1 100644 --- a/libraries/models/src/ModelTreeElement.cpp +++ b/libraries/models/src/ModelTreeElement.cpp @@ -148,15 +148,20 @@ OctreeElement::AppendState ModelTreeElement::appendElementData(OctreePacketData* delete elementExtraEncodeData; } } + + // Determine if no models at all were able to fit + bool noModelsFit = (numberOfModels > 0 && actualNumberOfModels == 0); // If we wrote fewer models than we expected, update the number of models in our packet bool successUpdateModelCount = true; - if (numberOfModels != actualNumberOfModels) { + if (!noModelsFit && numberOfModels != actualNumberOfModels) { successUpdateModelCount = packetData->updatePriorBytes(numberOfModelsOffset, (const unsigned char*)&actualNumberOfModels, sizeof(actualNumberOfModels)); } - if (!successUpdateModelCount) { + // If we weren't able to update our model count, or we couldn't fit any models, then + // we should discard our element and return a result of NONE + if (!successUpdateModelCount || noModelsFit) { packetData->discardLevel(elementLevel); appendElementState = OctreeElement::NONE; } else { diff --git a/libraries/octree/src/Octree.cpp b/libraries/octree/src/Octree.cpp index a066447073..d1524ca1ec 100644 --- a/libraries/octree/src/Octree.cpp +++ b/libraries/octree/src/Octree.cpp @@ -1598,7 +1598,6 @@ int Octree::encodeTreeBitstreamRecursion(OctreeElement* element, // and assume that the appendElementData() has stored any required state data // in the params extraEncodeData if (elementAppendState == OctreeElement::PARTIAL) { - qDebug() << "elementAppendState == OctreeElement::PARTIAL... bag.insert(element)....."; bag.insert(element); } }