MovePath
MovePath tracks movement as a series of line segments in three dimensions. It creates and edits the path, and will give the location and facing of an object traveling the path at any requested time. It is intended for serious multi-threaded use, allowing parallel updates and queries with a minimum of blocking. Editing functions include the current time as a parameter to prevent path changes from affecting movement already made. Determining locations with MovePath rather than periodically updating a fixed location provides smoother moves along with less frequent location updates. MovePath is thread-safe and fully Javadoc'ed. The source code includes a simple example for specifying a path and a second that also demonstrates stopping, removing path segments, and jogging around obstacles.