ndtree
nd-octree data-structure and algorithms
neighbor.hpp File Reference

Neighbor relationships. More...

Classes

struct  ndtree::v1::neighbor_children_sharing_face_< 1, 0 >
 One dimensional stencil across faces. More...
 
struct  ndtree::v1::neighbor_lookup_table_< 1, 0 >
 1D: across faces More...
 
struct  ndtree::v1::neighbor_lookup_table_< 2, 1 >
 2D: across faces More...
 
struct  ndtree::v1::neighbor_lookup_table_< 2, 0 >
 2D: across edges More...
 
struct  ndtree::v1::neighbor_lookup_table_< 3, 2 >
 3D: across faces More...
 
struct  ndtree::v1::neighbor_lookup_table_< 3, 1 >
 3D: across edges More...
 
struct  ndtree::v1::neighbor_lookup_table_< 3, 0 >
 3D: across corners More...
 
struct  ndtree::v1::manifold_neighbors< nd, m >
 Neighbor of an nd-dimensional node across a (nd - m)-dimensional face. More...
 
struct  ndtree::v1::manifold_neighbors< nd, m >
 Neighbor of an nd-dimensional node across a (nd - m)-dimensional face. More...
 

Namespaces

 ndtree
 nd-octree
 

Macros

#define NDTREE_USE_NEIGHBOR_LOOKUP_TABLE
 Use look-up table for the same level neighbors instead of arithmetic operations.
 

Typedefs

template<int nd>
using ndtree::v1::neighbor_offset = std::array< int_t, nd >
 Normalized displacement from node center to node neighbor. The unit length is the length of the node.
 
template<int nd, int m>
using ndtree::v1::surface_neighbors = meta::if_c< m==1, meta::if_c< nd==1, face_neighbors< 1 >, meta::if_c< nd==2, edge_neighbors< 2 >, meta::if_c< nd==3, corner_neighbors< 3 >, meta::nil_ >>>, meta::if_c< m==2, meta::if_c< nd==2, face_neighbors< 2 >, meta::if_c< nd==3, edge_neighbors< 3 >, meta::nil_ >>, meta::if_c< m==3 and nd==3, face_neighbors< 3 >, meta::nil_ >>>
 neighbor of a nd-dimensional node across an m dimensional surface
 

Functions

template<typename NeighborIdx >
constexpr auto ndtree::v1::opposite (NeighborIdx p) -> NeighborIdx
 Opposite neighbor position. More...
 

Detailed Description

Neighbor relationships.