This is a brief documentation of the moving cycle interpolator. This interpolator is a part of the implementation of the algorithms described in the article "Creating Representations for Continuously Moving Regions from Observations" by Erlend Tøssebro and Ralf Hartmut Güting. The program can interpolate a single cycle between two snapshots.
This program takes as input two cycles and produces a graph representation of the moving cycle. The cycles are stored as lists of points. Two neighbouring points in such a list constitute a line. Because some of the algorithms used require an angle to be stored for each line, the moving points are stored in LineWA objects instead of regular point objects.
The graph representation is stored as a list of points with neighbour lists. Each such point has stored a position in space and time. From this structure, the application version of the program may create a VRML representation of the moving cycle.
The convex hull tree which is used by the interpolation algorithm is stored as a tree built up of ConvexHullTreeNode objects. This class represents the datatype chtnodewo from the article.
The overlap graph edges themselves are stored in OverlapGraphEdge objects. They correspond to the overlapedge type from the article.
The rotating_plane algorithm is implemented by the createConvexTriangleRep function in the TriangleRep class.
The build_convex_hull_tree algorithm is implemented by the constructor of the convexHullTreeNode class. One only needs to create the root of the convex hull tree explicitly, all the other modes are automatically created when the root is created.
The compute_overlap_graph algorithm is implemented by the computeOverlapGraph function in the TriRepUtil class. This function uses the computeOverlapGraphIter function to do the actual computations.
The join_concavities algorithm is implemented by the joinChildren function in the ConvexHullTreeNode class. Because this function is called in the parent class, only the list of children needs to be passed as a parameter to the function.
The create_moving_cycle algorithm is implemented by the constructor of the the TriangleRep class.
The trapezium_rep_builder algorithm is implemented by the private function createGeneralTriangleRep in the TriangleRep class.
A documentation of the classes generated by javaDoc can be found here.