#ifndef GRIDNODE_H #define GRIDNODE_H #include "GridNodeBBox.h" #include "GridPoint.h" /** forward decl. */ template class Grid; /** * INTERNAL DATASTRUCTURE * this data-structure is internally used by the Grid * to store additional information for each node besides * the user's requested data-structure */ struct GridNode { private: /** grant full access to the grid */ template friend class Grid; /** INTERNAL: array-index */ int _idx; /** INTERNAL: number of neighbors */ int _numNeighbors; /** INTERNAL: store neighbors (via index) */ int _neighbors[10]; public: GridNode() : _idx(-1), _numNeighbors(0), _neighbors() {;} /** get the node's index within its grid */ int getIdx() const {return _idx;} /** get the number of neighbors for this node */ int getNumNeighbors() const {return _numNeighbors;} // /** get the n-th neighbor for this node */ // template inline T& getNeighbor(const int nth, const Grid& grid) const { // return grid.getNeighbor(_idx, nth); // } }; #endif // GRIDNODE_H