Saphyre2 API consists of a several entities that can be used by the applications to initialize, run and, query and modify the animation/simulation.
The API is designed with certain objectives, in approximately decreasing priority order:
The creation/destruction/modification of entities must take into account all the possible consequences in Saphyre2 Core and prevent illegal actions.
- Robustness: The API should NOT allow the user to blow up Saphyre2. This privilege is only granted to the Core :)
- Intuitivity: Entities/Concepts manipulated by the App should be clear and their use in the App should follow a clear and consistent paradigm.
- Integrability: The App architecture shouldn't be overconstrained by the use of Saphyre2.
- Animated object creation/destruction must take into account the higher level structures in which they live (Universe).
I've decided to provide an Object Oriented API. This is mainly an aesthetic decision, so feel free to disagree and complain :)
- Methods for changing the configuration of animated objects from the App will need to be bullet-proof (mainly to avoid unstable constraint violations).
Entities have member methods to perform all the operations that are intuitively local to them, even though internally other entities may need to be notified/used for some of these operations.
The API Entities available to the applications are:
- Typical Mechanical Joints
- HingeJointAPI (Rigid-Rigid/Axis)
- BallJointAPI (Rigid-Rigid?)
- Generic Constraints
- PointToPointAPI (Generic points on any Object)
Generated on Tue Aug 10 15:58:31 2004 for Saphyre2 by