Guest User

Untitled

a guest
Nov 2nd, 2018
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.70 KB | None | 0 0
  1. sub get_collisions_for_aabb
  2. {
  3.     my ($self, $aabb) = @_;
  4.     return () if !defined $self->{root_aabb};
  5.  
  6.     $self->{root_aabb}->get_collisions_for_aabb_rec($aabb);
  7. }
  8.  
  9. # And in Game::Collisions::AABB:
  10.  
  11. sub get_collisions_for_aabb_rec
  12. {
  13.     my ($node, $target) = @_;
  14.     $node && $node != $target
  15.        && $node->[_MAX_X] >= $target->[_X] && $node->[_X] <= $target->[_MAX_X]
  16.        && $node->[_MAX_Y] >= $target->[_Y] && $node->[_Y] <= $target->[_MAX_Y]
  17.     ? ( $node->[_LEFT_NODE] || $node->[_RIGHT_NODE]
  18.         ? ( get_collisions_for_aabb_rec($node->[_LEFT_NODE], $target),
  19.             get_collisions_for_aabb_rec($node->[_RIGHT_NODE], $target) )
  20.         : [ $node, $target ]
  21.       )
  22.     : ()
  23. }
Advertisement
Add Comment
Please, Sign In to add comment