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:
- 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.
The creation/destruction/modification of entities must take into account all the possible consequences in Saphyre2 Core and prevent illegal actions.
Several examples:
- Animated object creation/destruction must take into account the higher level structures in which they live (Universe).
- Methods for changing the configuration of animated objects from the App will need to be bullet-proof (mainly to avoid unstable constraint violations).
I've decided to provide an Object Oriented API. This is mainly an aesthetic decision, so feel free to disagree and complain :)
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:
- UniverseAPI
- ParticleAPI
- RigidAPI
- 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
1.3.5