OctreeNode.h File Reference
`#include <array>`
`#include <memory>`
`#include <functional>`
`#include "SurgSim/DataStructures/EmptyData.h"`
`#include "SurgSim/Framework/Asset.h"`
`#include "SurgSim/Math/Vector.h"`
`#include "SurgSim/Math/Aabb.h"`
`#include "SurgSim/DataStructures/OctreeNode-inl.h"`

Go to the source code of this file.

## Classes

class | SurgSim::DataStructures::OctreePathHash
| Enable the OctreePath to be used as a key in an unordered map, if the int range is exceeded this will just push the least significant numbers (root addresses) out of scope, it loses a little bit of address space as octree ids only go from 0-7. More...
class | SurgSim::DataStructures::OctreeNodePlyReaderDelegate< Data >
| Subclass the OctreeNodePLyReaderDelegateBase class to enable processing of the templated data, this should be specialized to enable specific processing of various extended node types. More...
class | SurgSim::DataStructures::OctreeNode< Data >
| Octree data structure. More...

## Namespaces

| SurgSim
| SurgSim::Math
| SurgSim::DataStructures

## Typedefs

typedef std::vector< size_t > | SurgSim::DataStructures::OctreePath
| Typedef of octree path The path is a vector of children indexes (each within 0 to 7) that lead to the specific node the front of the vector holds the index of the root's children. More...

## Enumerations

enum | SurgSim::DataStructures::Neighborhood { SurgSim::DataStructures::NEIGHBORHOOD_NONE = 0x0, SurgSim::DataStructures::NEIGHBORHOOD_FACE = 0x1, SurgSim::DataStructures::NEIGHBORHOOD_EDGE = 0x2, SurgSim::DataStructures::NEIGHBORHOOD_VERTEX = 0x4, SurgSim::DataStructures::NEIGHBORHOOD_ALL = 0x1 | 0x2 | 0x4 }
| Indicates what neighbors to grab. More...
enum | SurgSim::DataStructures::Symbol { SurgSim::DataStructures::SYMBOL_HALT = -1, SurgSim::DataStructures::SYMBOL_DOWN = 0, SurgSim::DataStructures::SYMBOL_UP = 1, SurgSim::DataStructures::SYMBOL_RIGHT = 2, SurgSim::DataStructures::SYMBOL_LEFT = 3, SurgSim::DataStructures::SYMBOL_BACK = 4, SurgSim::DataStructures::SYMBOL_FRONT = 5 }
| Direction code for the neighborhood search. More...

## Functions

SurgSim::DataStructures::OctreePath | SurgSim::DataStructures::getNeighbor (const OctreePath &origin, const std::array< Symbol, 3 > &direction)
| Calculate the neighbor of an node in the octree by traversing a state machine, see http://ww1.ucmss.com/books/LFS/CSREA2006/MSV4517.pdf for detailed description. More...
std::vector< OctreePath > | SurgSim::DataStructures::getNeighbors (const OctreePath &origin, int type)
| Fetch a list of neighbors, indicated by the type, Face, Edge and Vertex are possible types and can be combined via OR. More...