diff --git a/libraries/octree/src/Octree.cpp b/libraries/octree/src/Octree.cpp index 83b84b3c50..4bd37d873a 100644 --- a/libraries/octree/src/Octree.cpp +++ b/libraries/octree/src/Octree.cpp @@ -707,7 +707,7 @@ bool findCapsulePenetrationOp(OctreeElement* node, void* extraData) { } bool findShapeCollisionsOp(OctreeElement* node, void* extraData) { - const ShapeArgs* args = static_cast(extraData); + ShapeArgs* args = static_cast(extraData); // coarse check against bounds AABox cube = node->getAABox(); @@ -719,7 +719,10 @@ bool findShapeCollisionsOp(OctreeElement* node, void* extraData) { return true; // recurse on children } if (node->hasContent()) { - return ShapeCollider::collideShapeWithAACube(args->shape, cube.calcCenter(), cube.getScale(), args->collisions); + if (ShapeCollider::collideShapeWithAACube(args->shape, cube.calcCenter(), cube.getScale(), args->collisions)) { + args->found = true; + return true; + } } return false; } diff --git a/libraries/shared/src/CollisionInfo.cpp b/libraries/shared/src/CollisionInfo.cpp index 6b2f48f4d0..5d97842530 100644 --- a/libraries/shared/src/CollisionInfo.cpp +++ b/libraries/shared/src/CollisionInfo.cpp @@ -48,6 +48,6 @@ void CollisionList::clear() { _size = 0; } -const CollisionInfo* CollisionList::operator[](int index) const { +CollisionInfo* CollisionList::operator[](int index) { return (index > -1 && index < _size) ? &(_collisions[index]) : NULL; } diff --git a/libraries/shared/src/CollisionInfo.h b/libraries/shared/src/CollisionInfo.h index 209a7e6127..7db965fe64 100644 --- a/libraries/shared/src/CollisionInfo.h +++ b/libraries/shared/src/CollisionInfo.h @@ -95,7 +95,7 @@ public: /// Clear valid collisions. void clear(); - const CollisionInfo* operator[](int index) const; + CollisionInfo* operator[](int index); private: int _maxSize; // the container cannot get larger than this