#ifndef RTSOCTREE_H #define RTSOCTREE_H #include "rtspoint3D.h" template struct octree_node { unsigned int center; T data; octree_node* ppp; octree_node* ppn; octree_node* pnp; octree_node* pnn; octree_node* npp; octree_node* npn; octree_node* nnp; octree_node* nnn; octree_node(); } template octree_node::octree_node() { ppp = NULL; ppn = NULL; pnp = NULL; pnn = NULL; npp = NULL; npn = NULL; nnp = NULL; nnn = NULL; } template class rtsOctree { public: unsigned int num_leaves; point3D center; octree_node* root; rtsOctree(unsigned int sizex, unsigned int sizey, unsigned int sizez); void Insert(unsigned int x, unsigned int y, unsigned int z, T value); }; template rtsOctree::rtsOctree(unsigned int sizex, unsigned int sizey, unsigned int sizez) { center.x = sizex/2; center.y = sizey/2; center.z = sizez/2; root = new octree_node(); num_leaves = 1; } template void rtsOctree::Insert(unsigned int x, unsigned int y, unsigned int z, T value) { point3D current; point3D destination(x, y, z); while(!(current == destination)) { #endif