#ifndef DIJKSTRAMAPPER_H #define DIJKSTRAMAPPER_H #include "MyGridNode.h" /** * allows dijkstra calculation on top of our data-structure */ class DijkstraMapper { Grid& grid; public: DijkstraMapper(Grid& grid) : grid(grid) {;} int getNumNeighbors(const MyGridNode& node) const {return node.getNumNeighbors();} const MyGridNode* getNeighbor(const MyGridNode& node, const int idx) const {return &grid.getNeighbor(node, idx);} float getWeightBetween(const MyGridNode& n1, const MyGridNode& n2) const { float d = ((Point3)n1 - (Point3)n2).length(2.0); //if (d > 20) {d*= 1.30;} return d / std::pow(n2.imp, 3); } }; #endif // DIJKSTRAMAPPER_H