Using Emscripten, we wrote a C++ pathfinding algorithm using Dijkstra's that runs much more efficiently than the existing recursive algorithm.
For our new algorithm, we use a different datastore object which we have outlined the JSdocs documentation.
We've included a new option for the wayfinding plugin so users can stick with the current backend or use the new emscripten backend. The option is emscriptenBackend and is a boolean that is defaulted to true.
emscripten.pathfinding.js & priority-queue.min.js are ignored by the linter as they are minified files.
priority-queue.min.js was not written by us and is from another repo. The new datastore generation code uses it to find connections.
Gruntfile.js has been updated to include new tasks for the Emscripten compilation and for packaging.
A Makefile has been included for the Emscripten C++ to JS compilation.
We updated the README.md with the steps we took to get everything installed and working. We encountered some issues with installing Node modules that we have made note of in the README along with the solutions we found (if any).
emscriptenBackend
and is aboolean
that is defaulted totrue
.