Construct an object that takes as input the two original paths for a
pair of participants and generates adjusted paths for the two
participants that have been adjusted, if necessary, so that the two
participants do not collide.
Thrown if a participant makes a move that takes the partipant to a position that is approximately behind him/her
and facing in approximately the same direction as the original direction faced by the participant.
This class implements a movement where the participant takes the track of a given underlying
movement but the speed at which the participant moves along the track in adjusted.
Given an angle, in radians, that specifies an angle through which a dancer must turn, this method
returns a turn angle that gets the dancer to face the same direction but by minimizing the
amount of turning.
This class takes as input a series of positions to which a participant
must move and outputs a PersonMovement object that makes a track going
through each position in turn.
Thrown when a method is called on a TransitionGenerator object
that requires all prior transitions to have fully completed but there
is a transition that has not yet completed.
Thrown when a transition point is passed to the transition generator
but the transition starts before the list of movements over which we
are processing transitions.