#include <kdtree.h>
Public Member Functions | |
KdTree (const vector< NodeData > &data) | |
~KdTree () | |
void | recursiveBuild (u_int nodeNum, int start, int end, vector< const NodeData * > &buildNodes) |
void | Lookup (const Point &p, const LookupProc &process, float &maxDistSquared) const |
Private Member Functions | |
void | privateLookup (u_int nodeNum, const Point &p, const LookupProc &process, float &maxDistSquared) const |
Private Attributes | |
KdNode * | nodes |
NodeData * | nodeData |
u_int | nNodes |
u_int | nextFreeNode |
Definition at line 52 of file kdtree.h.
lux::KdTree< NodeData, LookupProc >::KdTree | ( | const vector< NodeData > & | data | ) | [inline] |
lux::KdTree< NodeData, LookupProc >::~KdTree | ( | ) | [inline] |
void lux::KdTree< NodeData, LookupProc >::Lookup | ( | const Point & | p, | |
const LookupProc & | process, | |||
float & | maxDistSquared | |||
) | const [inline] |
Definition at line 132 of file kdtree.h.
References lux::KdTree< NodeData, LookupProc >::privateLookup().
Referenced by lux::ExPhotonIntegrator::estimateE(), lux::ExPhotonIntegrator::LiInternal(), lux::PhotonIntegrator::LPhoton(), and lux::ExPhotonIntegrator::LPhoton().
void lux::KdTree< NodeData, LookupProc >::privateLookup | ( | u_int | nodeNum, | |
const Point & | p, | |||
const LookupProc & | process, | |||
float & | maxDistSquared | |||
) | const [inline, private] |
Definition at line 138 of file kdtree.h.
References lux::DistanceSquared(), lux::KdNode::hasLeftChild, lux::KdTree< NodeData, LookupProc >::nNodes, lux::KdTree< NodeData, LookupProc >::nodeData, lux::KdTree< NodeData, LookupProc >::nodes, lux::KdNode::rightChild, lux::KdNode::splitAxis, and lux::KdNode::splitPos.
Referenced by lux::KdTree< NodeData, LookupProc >::Lookup().
void lux::KdTree< NodeData, LookupProc >::recursiveBuild | ( | u_int | nodeNum, | |
int | start, | |||
int | end, | |||
vector< const NodeData * > & | buildNodes | |||
) | [inline] |
Definition at line 97 of file kdtree.h.
References lux::KdNode::hasLeftChild, lux::KdNode::init(), lux::KdNode::initLeaf(), lux::BBox::MaximumExtent(), lux::KdTree< NodeData, LookupProc >::nextFreeNode, lux::KdTree< NodeData, LookupProc >::nodeData, lux::KdTree< NodeData, LookupProc >::nodes, blender::p, lux::KdNode::rightChild, and lux::Union().
u_int lux::KdTree< NodeData, LookupProc >::nextFreeNode [private] |
Definition at line 71 of file kdtree.h.
Referenced by lux::KdTree< NodeData, LookupProc >::recursiveBuild().
u_int lux::KdTree< NodeData, LookupProc >::nNodes [private] |
Definition at line 71 of file kdtree.h.
Referenced by lux::KdTree< NodeData, LookupProc >::privateLookup().
NodeData* lux::KdTree< NodeData, LookupProc >::nodeData [private] |
Definition at line 70 of file kdtree.h.
Referenced by lux::KdTree< NodeData, LookupProc >::privateLookup(), lux::KdTree< NodeData, LookupProc >::recursiveBuild(), and lux::KdTree< ERadiancePhoton, ERadiancePhotonProcess >::~KdTree().
KdNode* lux::KdTree< NodeData, LookupProc >::nodes [private] |
Definition at line 69 of file kdtree.h.
Referenced by lux::KdTree< NodeData, LookupProc >::privateLookup(), lux::KdTree< NodeData, LookupProc >::recursiveBuild(), and lux::KdTree< ERadiancePhoton, ERadiancePhotonProcess >::~KdTree().