rtsOctree.h 1.22 KB
#ifndef RTSOCTREE_H
#define RTSOCTREE_H

#include "rtspoint3D.h"

template <class T>
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 <class T>
octree_node::octree_node()
{
	ppp = NULL;
	ppn = NULL;
	pnp = NULL;
	pnn = NULL;
	npp = NULL;
	npn = NULL;
	nnp = NULL;
	nnn = NULL;
}


template <class T>
class rtsOctree
{
public:
	unsigned int num_leaves;
	point3D<unsigned int> 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 <class T>
rtsOctree<T>::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 <class T>
void rtsOctree<T>::Insert(unsigned int x, unsigned int y, unsigned int z, T value)
{
	point3D<unsigned int> current;
	point3D<unsigned int> destination(x, y, z);
	while(!(current == destination))
	{
		




#endif