This is the my solution code for the Route Planning project (originally forked from udacity starter code, see above).
- This uses a modified version of the FindNeighbors Method, the original version as suggested/accepted by udacity fails to generate correct/optimal routes in many cases. Thanks to @dbecad for pointing out the flaw.
- The program will use up 100% of one CPU-core while the display window is opened. This is due to a bug/design problem in the underlying cpp-io2d library.
Instructions for each exercise can be found in the instructions
directory, and unit tests for some exercises in the test
directory.
When cloning this project, be sure to use the --recurse-submodules
flag. If you want to use my version, change the url accordingly. Using HTTPS:
git clone https://github.com/udacity/CppND-Route-Planning-Project.git --recurse-submodules
or with SSH:
git clone [email protected]:udacity/CppND-Route-Planning-Project.git --recurse-submodules
To compile the project, first, create a build
directory and change to that directory:
mkdir build && cd build
From within the build
directory, then run cmake
and make
as follows:
cmake ..
make
The executables will be placed in the bin
directory. From within build
, you can run the project as follows:
../bin/<name-of-parent-directory> -f ../map.osm
For exercises that have unit tests, the project must be built with the approprate test cpp file. This can be done by passing a string with the -DTESTING
flag in cmake
. For example, from the build directory:
cmake -DTESTING="RouteModel" ..
make
Those commands will build the code with the tests for the "Fill Out Route Model" exercise. The tests can then be run from the build
directory as follows:
../bin/test
Exercises with tests will specify which string to pass with -DTESTING
, but a table is given below with the complete list for reference:
Exercise Name | -DTESTING String Value |
---|---|
Fill Out Route Model | "RouteModel" |
Fill Out Node Class | "RMNodeClass" |
Create RouteModel Nodes | "RMSNodes" |
Write the Distance Function | "NodeDist" |
Create Road to Node Hashmap | "NodeToRoad" |
Write FindNeighbors | "FindNeighbors" |
Find the Closest Node | "FindClosest" |
Write the A* Search Stub | "AStarStub" |
Finish A* Search | "AStarSearch" |