Grid Road
With this tool, user is able to use mouse to draw roads and construct waypoints, which are the nodes at the start, end, turn, and intersection with another road. Road graphs are established accordingly since waypoint knows its neighbor waypoints. Disjoint-set data structure is also implemented to detect whether two waypoints are connected or not.