diff --git a/libraries/metavoxels/src/MetavoxelMessages.cpp b/libraries/metavoxels/src/MetavoxelMessages.cpp index 59b643a249..1f6c356a38 100644 --- a/libraries/metavoxels/src/MetavoxelMessages.cpp +++ b/libraries/metavoxels/src/MetavoxelMessages.cpp @@ -136,23 +136,14 @@ int UpdateSpannerVisitor::visit(MetavoxelInfo& info) { for (int i = 0; i < _steps && parentInfo; i++) { parentInfo = parentInfo->parentInfo; } - if (!parentInfo) { - for (int i = 0; i < _outputs.size(); i++) { - info.outputValues[i] = AttributeValue(_outputs.at(i)); - } - return (info.size > _voxelizationSize) ? DEFAULT_ORDER : STOP_RECURSION; + for (int i = 0; i < _outputs.size(); i++) { + info.outputValues[i] = AttributeValue(_outputs.at(i)); } - SharedObjectSet objects = parentInfo->inputValues.at(_outputs.size()).getInlineValue(); - if (objects.isEmpty()) { - for (int i = 0; i < _outputs.size(); i++) { - info.outputValues[i] = AttributeValue(_outputs.at(i)); + if (parentInfo) { + foreach (const SharedObjectPointer& object, + parentInfo->inputValues.at(_outputs.size()).getInlineValue()) { + static_cast(object.data())->blendAttributeValues(info, true); } - return (info.size > _voxelizationSize) ? DEFAULT_ORDER : STOP_RECURSION; - } - SharedObjectSet::const_iterator it = objects.constBegin(); - static_cast(it->data())->getAttributeValues(info, true); - for (it++; it != objects.constEnd(); it++) { - static_cast(it->data())->blendAttributeValues(info, true); } return (info.size > _voxelizationSize) ? DEFAULT_ORDER : STOP_RECURSION; } diff --git a/libraries/metavoxels/src/MetavoxelUtil.cpp b/libraries/metavoxels/src/MetavoxelUtil.cpp index 7993b3bcb6..7995809f1c 100644 --- a/libraries/metavoxels/src/MetavoxelUtil.cpp +++ b/libraries/metavoxels/src/MetavoxelUtil.cpp @@ -299,6 +299,11 @@ Box operator*(const glm::mat4& matrix, const Box& box) { return newBox; } +QDebug& operator<<(QDebug& out, const Box& box) { + return out << '(' << box.minimum.x << box.minimum.y << box.minimum.z << ") (" << + box.maximum.x << box.maximum.y << box.maximum.z << ')'; +} + QMetaObjectEditor::QMetaObjectEditor(QWidget* parent) : QWidget(parent) { QVBoxLayout* layout = new QVBoxLayout(); layout->setContentsMargins(QMargins()); diff --git a/libraries/metavoxels/src/MetavoxelUtil.h b/libraries/metavoxels/src/MetavoxelUtil.h index 3f450212b1..9972981bc7 100644 --- a/libraries/metavoxels/src/MetavoxelUtil.h +++ b/libraries/metavoxels/src/MetavoxelUtil.h @@ -60,6 +60,8 @@ DECLARE_STREAMABLE_METATYPE(Box) Box operator*(const glm::mat4& matrix, const Box& box); +QDebug& operator<<(QDebug& out, const Box& box); + /// Editor for meta-object values. class QMetaObjectEditor : public QWidget { Q_OBJECT