SimpleKDTree Class Reference

#include <SimpleKDTree.h>

Inherits KDTree.

Inheritance diagram for SimpleKDTree:

Inheritance graph
[legend]
Collaboration diagram for SimpleKDTree:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleKDTree (unsigned int min_primitives=4, unsigned int max_depth=12)
virtual ~SimpleKDTree ()
virtual void buildTree (const PrimitiveList &list, const Box &bbox)

Private Member Functions

virtual void setBestSplit (Node *node) const
void buildTree (Node *node, unsigned int depth) const

Detailed Description

Simple KD-Tree acceleration structure. Uses spatial median as splitting plane without any heuristics

Author:
Alex Busenius

Definition at line 15 of file SimpleKDTree.h.


Constructor & Destructor Documentation

SimpleKDTree::SimpleKDTree ( unsigned int  min_primitives = 4,
unsigned int  max_depth = 12 
) [inline]

Constructor

Parameters:
min_primitives Minimal number of primitives in one node
max_depth Maximal tree depth

Definition at line 23 of file SimpleKDTree.h.

SimpleKDTree::~SimpleKDTree (  )  [virtual]

Destructor

Definition at line 9 of file SimpleKDTree.cpp.


Member Function Documentation

void SimpleKDTree::buildTree ( const PrimitiveList list,
const Box bbox 
) [virtual]

Build the kd-tree from the given primitive list.

Parameters:
list List of all primitives
bbox Overall bounding box

Definition at line 19 of file SimpleKDTree.cpp.

References KDTree::buildTree(), LOG, and KDTree::mRootNode.

Referenced by buildTree().

void SimpleKDTree::setBestSplit ( Node node  )  const [private, virtual]

Find and assign optimal split location and direction for given node. This implementation simply returns spatial median

Parameters:
node Current node

Definition at line 36 of file SimpleKDTree.cpp.

References Primitive::bounds(), Box::maxVertex(), Box::minVertex(), NO_AXIS, Node::primitive(), Node::primitives_count(), Node::setSplitAxis(), Node::setSplitPlane(), Node::splitAxis(), X_AXIS, Y_AXIS, and Z_AXIS.

Referenced by buildTree().

void SimpleKDTree::buildTree ( Node node,
unsigned int  depth 
) const [private]

Recursive tree building method

Parameters:
node Current parent node
depth Current node depth

Definition at line 72 of file SimpleKDTree.cpp.

References Node::add(), Primitive::bounds(), buildTree(), Node::clear_primitives(), Node::left(), NO_AXIS, Node::primitive(), Node::primitives_count(), Node::right(), setBestSplit(), Node::setLeftRight(), Node::setSplitAxis(), Node::splitAxis(), Node::splitPlane(), and KDTree::terminate().


The documentation for this class was generated from the following files:
Generated on Fri Feb 1 00:02:30 2008 for Grayfall by  doxygen 1.5.1