Alles van deze module zit rechtstreeks in de namespace MHGameWork.TheWizards en bevat basic functionality. Dit zijn voorlopig nog utilities.
Dit is een static helperclass die het gebruiken van embedded assembly files makkelijker maakt. Ze bevat functies om een stream te verkrijgen van een embedded assembly file. Bovendien geeft ze de mogelijkheid om een debug file te gebruiken, door de file in kwestie in de DebugFilesDirectory te plaatsen, standaard /DebugFiles
TODO!!: Make a seriously memory optimized quadtree: Store all nodes in a long array (first node root, next 4 children, next 4 children of first child, etc). Also implement a way of not equal splitting: not all nodes have to be split to the same depth, eg: the IsLeafNode function should support this with the array structure from above. <graphviz center> digraph {
node [shape = box]; QuadTree -> "IQuadTreeNode<T>" -> "QuadTreeNodeData<T>"; QuadTreeVisualizer -> "IQuadTreeNode<T>";
} </graphviz>
Static class, containing functions that can be used to manipulate a QuadTree structure, build up from IQuadTreeNode objects.
<color red>WARNING: Since the QuadTreeNodeData is a structure, it is copied several times in code, maybe a class is faster for the QuadTreeNodeData</color>
A quadtreenode specification containing the basics for a quadtreenode. This interface can be used with the static QuadTree class. The argument T is the type implementing the IQuadTreeNode interface.
This is a structure, holding the basic data for an IQuadTreeNode. The argument T is the IQuadTreeNode implementation it holds data for. This struct currently has a BoundingBox field, but it is unsure whether this is correct. Maybe an implementation using int values is better. (eg the size: an int specifying the factor of 2 and an x and y factor, specifying the howmanyth node this is counting from the center with steps of the node’s size)
This class visualizes a quadtree. Currently this is by simply rendering some lines, but this could be extended to nice transparent box/plane rendering, or a second implementation of this class could be written.