Classes | Namespaces | Typedefs | Enumerations | Functions

kdtree.h File Reference

#include "common/common.h"
#include "geometry/geometry_3d.h"
#include "threadsafe/smart_ptr.h"
Include dependency graph for kdtree.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  kdtree::plane_t
 a kdtree plane is always axis-aligned More...
class  kdtree::Entry
 base class for kd-tree entries. Clients can inherit from this. More...
class  kdtree::Node
 root (and node!) of a kd-tree This class is expected to be used as the core object for rendering and other CPU-intensive tasks, so it therefore has no virtual methods. More...
struct  kdtree::Node::entry_rec_t
struct  kdtree::Node::dynamic_entry_t


namespace  kdtree


typedef eAction(* kdtree::iteration_callback )(void *context, Entry *entry, const rect3d_t &entry_rect)


enum  kdtree::eSort {
  kdtree::eSort_Left = 1,
  kdtree::eSort_Right = 2,
  kdtree::eSort_Straddle = 3,
  kdtree::eSort_Invalid = 0
enum  kdtree::eAxis {
  kdtree::eAxis_X = 1,
  kdtree::eAxis_Y = 2,
  kdtree::eAxis_Z = 3,
  kdtree::eAxis_Invalid = 0
enum  kdtree::eAction {
  kdtree::eAction_Continue = 0x001,
  kdtree::eAction_Halt = 0x002,
  kdtree::eAction_Remove = 0x010,
  kdtree::eAction_Invalid = 0
enum  kdtree::eStrategy {
  kdtree::eStrategy_Naive = 1,
  kdtree::eStrategy_Balance = 2,
  kdtree::eStrategy_Invalid = 0

strategies used for space partitioning



eSort kdtree::sortPoint (const plane_t &plane,const point3d_t &point) throw ()
 say which side of a given sort plane the provided test point is on
eSort kdtree::sortRect (const plane_t &plane,const rect3d_t &rect) throw ()
 say how the given rectangle sorts against the given sorting plane