Afgesplitst vanuit De Devschuur Coffee Corner - Iteratie 4
Leuke puzzels, die datastructuren.
Ik heb een octree implementatie. Lekker simpel, node klasse, vectortje van items, 8 pointers naar de volgende node.
C++11 FTW.
Maar het verhaal is niet zo efficiënt. Worst-case duurt het traversen van de tree voor frustum culling 3ms. Dus ik maak er een platte array van in plaats van pointers en optimalisatie X en Y. Maar nu is de interface van mijn tree totaal aan gort. Hoe traverse ik een boomstructuur als ik de gebruiker geen kennis wil geven van de structuur zelf? Een simpel for ( Node* child : node->children ) is er niet meer bij...
Leuke puzzels, die datastructuren.
Ik heb een octree implementatie. Lekker simpel, node klasse, vectortje van items, 8 pointers naar de volgende node.
C++:
1
2
3
4
5
| class Node { AABB bounding; std::vector< Item* > items; std::array< std::unique_ptr< Node >, 8 > children; } |
C++11 FTW.
Maar het verhaal is niet zo efficiënt. Worst-case duurt het traversen van de tree voor frustum culling 3ms. Dus ik maak er een platte array van in plaats van pointers en optimalisatie X en Y. Maar nu is de interface van mijn tree totaal aan gort. Hoe traverse ik een boomstructuur als ik de gebruiker geen kennis wil geven van de structuur zelf? Een simpel for ( Node* child : node->children ) is er niet meer bij...
[ Voor 6% gewijzigd door Creepy op 01-10-2013 10:26 ]