From e0d040a73be6cd60b04f1e2140a9352c2e4035e8 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Mon, 6 May 2013 11:02:28 -0700 Subject: [PATCH] added removeChildAtIndex() which removes a node, but doesn't delete it --- libraries/voxels/src/VoxelNode.cpp | 9 +++++++++ libraries/voxels/src/VoxelNode.h | 1 + 2 files changed, 10 insertions(+) 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);