Physics

Classes

  ClassDescription
Public classBasicCollisionFunctor
Derived from the CollisionFunctor class. The BasicCollisionFunctor can be passed to CollisionSystem.DetectAllCollision method and gets called for every collision found. The collisions get added to a list.
Public classBody
Basic rigid body - can be used as is, or a derived class can over-ride certain behaviours. A body can only be added to one physics system at a time!
Public classBodyRenderExtensions
Class BodyRenderExtensions
Public classCollisionIsland
Class CollisionIsland
Public classConstraint
Class Constraint
Public classConstraintMaxDistance
Constraints a point on one body to be fixed to a point on another body
Public classConstraintPoint
Constraints a point on one body to be fixed to a point on another body
Public classConstraintVelocity
Constrains a velocity to be a certain value - either in world or body (by transforming the velocity direction) coordinates
Public classConstraintWorldPoint
Constrains a point within a rigid body to remain at a fixed world point
Public classController
This can get updated at the same time as Body.AddExternalForces so that forces can be added independant of individual bodies - e.g. joints between pairs of bodies.
Public classFrozenCollisionPredicate
Derived from CollisionSkinPredicate2. A SkinPredicate2 which can be passed to CollisionSystem.DetectCollisions. Only active skin owners get considered.
Public classHingeJoint
Implements a simple hinge between two rigid bodies. The bodies should be in a suitable configuration when this joint is created.
Public classJoint
Virtual base class for all joints All joints are expected to do the following in their constructor: 1. create whatever constraints are necessary 2. register these constraints with the physics engine
Public classPhysicsSystem
Looks after (but doesn't own) a collection of bodies and runs their updates. Doesn't deal with collision detection - it will get passes a collision detector to do that. In the vast majority of cases there will be only one physics system, and it is consequently very annoying if every object has to keep track of which physics system it's associated with. Therefore, PhysicsSystem supports a "singleton" style use, but it also lets the user change the "current" physics system (bad things will happen if you set it to zero whilst there are still physical objects!). If you want more than one physics system, then in your update loop set the physics system to the first one, run physics, then set it to the second one etc. Note that the physics system constructor and destructor will set the current physics system variable, so under normal circumstances you don't need to worry about this.

Enumerations

  EnumerationDescription
Public enumerationConstraintVelocity..::..ReferenceFrame
enum ReferenceFrame
Public enumerationPhysicsSystem..::..Solver
enum Solver