What do you think about this blueprint? Just for colors, not blocks yet.
## Node struct (private)
fields:
* color
* children[8]
methods:
* get_child that takes a number between 0 and 7 and returns the corresponding child
node from children[] if it exists, or children[0] if there is only one child node,
or an error if there are no children in the list.
* set_child which takes a Node and a number between 0 and 7. If there is a correspo-
-nding child node in children[] then compare it with the new node and replace it
if there is a difference.
* set_color which sets the color field but fails if there are children
* update_color which calculates a new average color from the child nodes and compar
-es it to the existing color, if different then set the color field and return
true, otherwise return false
## Octree struct
fields:
* something that will allocate nodes on the heap
methods:
* pub new takes depth and fill color as input and outputs a new Octree
* pub set_color that takes x y z coordinates, sets the node at those coords, and
calls update_color on parent nodes going up the tree until it returns false
* pub get_color that takes x y z coordinates and returns a color