diff -r 000000000000 -r 3547b885df7e src/kdtree.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kdtree.cc Thu Oct 25 16:40:22 2007 +0200 @@ -0,0 +1,36 @@ +#include "kdtree.cc" + +void KdTree::KdTree(ShapeList &shapelist): +{ + root = new KdNode(); + shapes = new vector(); + ShapeList::iterator shape; + for (shape = shapelist.begin(); shape != shapes.end(); shape++) + addShape(*shape); + + rebuild(); +} + +void KdTree::Subdivide(KdNode* node, AABB& bbox, int depth, int count) +{ + + /*if (stopcriterionmet()) return + splitpos = findoptimalsplitposition() + leftnode = new Node() + rightnode = new Node() + for (all primitives in node) + { + if (node->intersectleftnode()) leftnode->addprimitive( primitive ) + if (node->intersectrightnode()) rightnode->addprimitive( primitive ) + } + buildkdtree( leftnode ) + buildkdtree( rightnode )*/ +} + +void KdTree::rebuild() +{ + int count = shapes->size(); + AABB bbox = shapes->extends(); + + Subdivide(root, bbox, 0, count); +} \ No newline at end of file