All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Typedefs | Enumerations | Functions
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"
Include dependency graph for OctreeNode.h:
This graph shows which files directly or indirectly include this file:

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::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...
 
std::shared_ptr< OctreeNode
< EmptyData > > 
SurgSim::DataStructures::loadOctree (const std::string &fileName)
 A free function to load an octree from file. More...