The source code of the Type II Reflexxes Motion Library is structured in a simple and clear three-layered way:
Illustration of the three source code layers of the Reflexxes Motion Libraries.
The interface layer is based on the class ReflexxesAPI and constitutes the user API of the Reflexxes Motion Libraries. It wraps around the algorithmic classes TypeIIRMLPosition and TypeIIRMLPosition (cf. The Algorithm Layer) and hides all functionalities that are not required by the user application in order to obtain a clean and minimal interface for all applications. For a description of input and output values, please refer to the Description of Input Values and the Description of Output Values.
The algorithm layer contains the actual Type II On-Line Trajectory Generation (OTG) algorithm. The position-based algorithm is realized by the class TypeIIRMLPosition, and the velocity-based algorithm is realized by the class TypeIIRMLVelocity. Both classes make use of the namespace TypeIIRMLMath, which provides all mathematical foundation for the algorithms (cf. The Math Layer). The methods to call the actual algorithms are TypeIIRMLPosition::GetNextStateOfMotion() and TypeIIRMLPosition::GetNextStateOfMotion(), both of which are used by the API class ReflexxesAPI (cf. The Interface Layer).
File List for the Position-based Algorithm
File List for the Velocity-based Algorithm
The math layer is the most fundamental layer. It provides a collection of mathematical functions that required by the classes TypeIIRMLPosition and TypeIIRMLVelocity. All these functions are contained in the namespace TypeIIRMLMath.