Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
OctNode< NodeData, Real > Class Template Reference

Classes

class  AdjacencyCountFunction
 
class  ConstNeighborKey3
 
class  ConstNeighborKey5
 
class  ConstNeighbors3
 
class  ConstNeighbors5
 
class  NeighborKey3
 
class  NeighborKey5
 
class  Neighbors3
 
class  Neighbors5
 

Public Member Functions

int initChildren (void)
 
void depthAndOffset (int &depth, int offset[DIMENSION]) const
 
int depth (void) const
 
void centerAndWidth (Point3D< Real > &center, Real &width) const
 
bool isInside (Point3D< Real > p) const
 
int leaves (void) const
 
int maxDepthLeaves (int maxDepth) const
 
int nodes (void) const
 
int maxDepth (void) const
 
const OctNoderoot (void) const
 
const OctNodenextLeaf (const OctNode *currentLeaf=NULL) const
 
OctNodenextLeaf (OctNode *currentLeaf=NULL)
 
const OctNodenextNode (const OctNode *currentNode=NULL) const
 
OctNodenextNode (OctNode *currentNode=NULL)
 
const OctNodenextBranch (const OctNode *current) const
 
OctNodenextBranch (OctNode *current)
 
const OctNodeprevBranch (const OctNode *current) const
 
OctNodeprevBranch (OctNode *current)
 
void setFullDepth (int maxDepth)
 
void printLeaves (void) const
 
void printRange (void) const
 
template<class NodeAdjacencyFunction >
void processNodeFaces (OctNode *node, NodeAdjacencyFunction *F, int fIndex, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
void processNodeEdges (OctNode *node, NodeAdjacencyFunction *F, int eIndex, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
void processNodeCorners (OctNode *node, NodeAdjacencyFunction *F, int cIndex, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
void processNodeNodes (OctNode *node, NodeAdjacencyFunction *F, int processCurrent=1)
 
OctNodefaceNeighbor (int faceIndex, int forceChildren=0)
 
const OctNodefaceNeighbor (int faceIndex) const
 
OctNodeedgeNeighbor (int edgeIndex, int forceChildren=0)
 
const OctNodeedgeNeighbor (int edgeIndex) const
 
OctNodecornerNeighbor (int cornerIndex, int forceChildren=0)
 
const OctNodecornerNeighbor (int cornerIndex) const
 
OctNodegetNearestLeaf (const Point3D< Real > &p)
 
const OctNodegetNearestLeaf (const Point3D< Real > &p) const
 
template<class NodeData2 >
OctNodeoperator= (const OctNode< NodeData2, Real > &node)
 
int write (const char *fileName) const
 
int write (FILE *fp) const
 
int read (const char *fileName)
 
int read (FILE *fp)
 
void centerIndex (int maxDepth, int index[DIMENSION]) const
 
int width (int maxDepth) const
 

Static Public Member Functions

static int UseAllocator (void)
 
static void SetAllocator (int blockSize)
 
static void DepthAndOffset (const long long &index, int &depth, int offset[DIMENSION])
 
static void CenterAndWidth (const long long &index, Point3D< Real > &center, Real &width)
 
static int Depth (const long long &index)
 
static void Index (int depth, const int offset[3], short &d, short off[DIMENSION])
 
template<class NodeAdjacencyFunction >
static void ProcessNodeAdjacentNodes (int maxDepth, OctNode *node1, int width1, OctNode *node2, int width2, NodeAdjacencyFunction *F, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
static void ProcessNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int width2, NodeAdjacencyFunction *F, int processCurrent=1)
 
template<class TerminatingNodeAdjacencyFunction >
static void ProcessTerminatingNodeAdjacentNodes (int maxDepth, OctNode *node1, int width1, OctNode *node2, int width2, TerminatingNodeAdjacencyFunction *F, int processCurrent=1)
 
template<class TerminatingNodeAdjacencyFunction >
static void ProcessTerminatingNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int width2, TerminatingNodeAdjacencyFunction *F, int processCurrent=1)
 
template<class PointAdjacencyFunction >
static void ProcessPointAdjacentNodes (int maxDepth, const int center1[3], OctNode *node2, int width2, PointAdjacencyFunction *F, int processCurrent=1)
 
template<class PointAdjacencyFunction >
static void ProcessPointAdjacentNodes (int dx, int dy, int dz, OctNode *node2, int radius2, int width2, PointAdjacencyFunction *F, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
static void ProcessFixedDepthNodeAdjacentNodes (int maxDepth, OctNode *node1, int width1, OctNode *node2, int width2, int depth, NodeAdjacencyFunction *F, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
static void ProcessFixedDepthNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int width2, int depth, NodeAdjacencyFunction *F, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
static void ProcessMaxDepthNodeAdjacentNodes (int maxDepth, OctNode *node1, int width1, OctNode *node2, int width2, int depth, NodeAdjacencyFunction *F, int processCurrent=1)
 
template<class NodeAdjacencyFunction >
static void ProcessMaxDepthNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int width2, int depth, NodeAdjacencyFunction *F, int processCurrent=1)
 
static int CornerIndex (const Point3D< Real > &center, const Point3D< Real > &p)
 
static int CommonEdge (const OctNode *node1, int eIndex1, const OctNode *node2, int eIndex2)
 
static int CompareForwardDepths (const void *v1, const void *v2)
 
static int CompareByDepthAndXYZ (const void *v1, const void *v2)
 
static int CompareByDepthAndZIndex (const void *v1, const void *v2)
 
static int CompareForwardPointerDepths (const void *v1, const void *v2)
 
static int CompareBackwardDepths (const void *v1, const void *v2)
 
static int CompareBackwardPointerDepths (const void *v1, const void *v2)
 
static int Overlap2 (const int &depth1, const int offSet1[DIMENSION], const Real &multiplier1, const int &depth2, const int offSet2[DIMENSION], const Real &multiplier2)
 

Public Attributes

OctNodeparent
 
OctNodechildren
 
short d
 
short off [DIMENSION]
 
NodeData nodeData
 

Static Public Attributes

static const int DepthShift
 
static const int OffsetShift
 
static const int OffsetShift1
 
static const int OffsetShift2
 
static const int OffsetShift3
 
static const int DepthMask
 
static const int OffsetMask
 
static AllocatorT< OctNodeAllocator
 

Private Member Functions

template<class NodeAdjacencyFunction >
void __processNodeFaces (OctNode *node, NodeAdjacencyFunction *F, int cIndex1, int cIndex2, int cIndex3, int cIndex4)
 
template<class NodeAdjacencyFunction >
void __processNodeEdges (OctNode *node, NodeAdjacencyFunction *F, int cIndex1, int cIndex2)
 
template<class NodeAdjacencyFunction >
void __processNodeNodes (OctNode *node, NodeAdjacencyFunction *F)
 
const OctNode__faceNeighbor (int dir, int off) const
 
const OctNode__edgeNeighbor (int o, const int i[2], const int idx[2]) const
 
OctNode__faceNeighbor (int dir, int off, int forceChildren)
 
OctNode__edgeNeighbor (int o, const int i[2], const int idx[2], int forceChildren)
 

Static Private Member Functions

template<class NodeAdjacencyFunction >
static void __ProcessNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int cWidth2, NodeAdjacencyFunction *F)
 
template<class TerminatingNodeAdjacencyFunction >
static void __ProcessTerminatingNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int cWidth2, TerminatingNodeAdjacencyFunction *F)
 
template<class PointAdjacencyFunction >
static void __ProcessPointAdjacentNodes (int dx, int dy, int dz, OctNode *node2, int radius2, int cWidth2, PointAdjacencyFunction *F)
 
template<class NodeAdjacencyFunction >
static void __ProcessFixedDepthNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int cWidth2, int depth, NodeAdjacencyFunction *F)
 
template<class NodeAdjacencyFunction >
static void __ProcessMaxDepthNodeAdjacentNodes (int dx, int dy, int dz, OctNode *node1, int radius1, OctNode *node2, int radius2, int cWidth2, int depth, NodeAdjacencyFunction *F)
 
static int Overlap (int c1, int c2, int c3, int dWidth)
 
static int ChildOverlap (int dx, int dy, int dz, int d, int cRadius2)
 

Static Private Attributes

static int UseAlloc
 

Detailed Description

template<class NodeData, class Real = float>
class OctNode< NodeData, Real >

Definition at line 39 of file Octree.h.


The documentation for this class was generated from the following file: