For at gøre det hurtigere, når det skal beregnes hvilke faces, der berøres af en collision, har vi valgt at bruge quadnodes datastrukturen, således at vi kun behøver at traversere en del af alle facenes for at finde frem til dem der påvirkes.
Det gøres ved at checke boundingboxen omkring nodesne, og kun vælge dem som påvirkes.
Det første problem var at få facesettet ud fra en quadnode, således at de kunne tilgåes senere. Det tog noget tid, indtil jeg fandt ud af at det var fordi at faces blev slettet efter at de var blevet givet med som parameter i QuadTreeBuilderen.
Så prøvede jeg at give quadnoden med som argument til boxen, men pga. cyclic references, gav det igen problemer. Så der blev taget en beslutning og quadnoden gives nu med rigidbox som argument i en overloadet constructor. Og der er lavet en accessormethode således at man kan trække quadnoden ud igen.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment