in reply to Re^3: octtree using hashes
in thread octtree using hashes
Indeed, I needed the push operator to push a world object onto the key $level of the hash of levels.
My system is not a general octtree but using octants which have world objects contained on their crossings.
My level 0 in the hash of $self->{rootnodes} is the topmost octant. if there are any world objects in it such as a non-player character it has to switch octants for which walking around just diminishes the $self->{rootnodes}{$level} then should put it in a larger octant and so on.
Now when you are walking around a low level (so bigger octants) you can turn off collision detection by measuring the corners contained in the rootnodes hash.
This calculation can be done in a thread e.g. on a sorted list of world objects walking around in octants.
The fact is if you are on a level within the rootnodes hash it might be that there are no objects within that octant as the values array of the $level key is empty, and so the thread can work further on.
My octant subdivisor now goes to pixel level, it stops at e.g. $middlex <= 1, you can also stop at the intersection multiplicity where you cross a world object contained in 9 upper level cubes.