| 47 | // returns node and rectangle which a given point falls into |
| 48 | template <typename TNode> |
| 49 | size_t queryNode(const TNode *nodes, Vector2 point, Rect<float> &rect) |
| 50 | { |
| 51 | rect = {{0, 0}, {1, 1}}; |
| 52 | size_t nodeIdx = 0; |
| 53 | const TNode *node = &nodes[nodeIdx]; |
| 54 | while (node->offsetChildren > 0) |
| 55 | { |
| 56 | uint32_t c = rescaleChild(point); |
| 57 | rect = rect.child(c); |
| 58 | nodeIdx = node->offsetChildren + c; |
| 59 | node = &nodes[nodeIdx]; |
| 60 | } |
| 61 | return nodeIdx; |
| 62 | } |
| 63 | |
| 64 | // Generic traversal routine for quadtrees |
| 65 | template <typename TNode, typename F1, typename F2> |
no test coverage detected