diff --git a/libraries/voxels/src/VoxelNode.cpp b/libraries/voxels/src/VoxelNode.cpp index 30d8ea1f68..2556aa910a 100644 --- a/libraries/voxels/src/VoxelNode.cpp +++ b/libraries/voxels/src/VoxelNode.cpp @@ -89,6 +89,15 @@ void VoxelNode::deleteChildAtIndex(int childIndex) { } } +// does not delete the node! +VoxelNode* VoxelNode::removeChildAtIndex(int childIndex) { + VoxelNode* returnedChild = _children[childIndex]; + if (_children[childIndex]) { + _children[childIndex] = NULL; + } + return returnedChild; +} + void VoxelNode::addChildAtIndex(int childIndex) { if (!_children[childIndex]) { _children[childIndex] = new VoxelNode(childOctalCode(_octalCode, childIndex)); diff --git a/libraries/voxels/src/VoxelNode.h b/libraries/voxels/src/VoxelNode.h index 8e3fa1b4d6..386f95e634 100644 --- a/libraries/voxels/src/VoxelNode.h +++ b/libraries/voxels/src/VoxelNode.h @@ -43,6 +43,7 @@ public: unsigned char* getOctalCode() const { return _octalCode; }; VoxelNode* getChildAtIndex(int i) const { return _children[i]; }; void deleteChildAtIndex(int childIndex); + VoxelNode* removeChildAtIndex(int childIndex); void addChildAtIndex(int childIndex); void setColorFromAverageOfChildren(); void setRandomColor(int minimumBrightness);