43 lines
1.8 KiB
Plaintext
43 lines
1.8 KiB
Plaintext
// Panda Physics Documentation
|
|
// Charles Nicholson, Intern-at-large. 7/17/00
|
|
|
|
How to make physics go:
|
|
-----------------------
|
|
|
|
Physics lives mainly in the scene graph. To put a physical object
|
|
into the scene graph, use either an ActorNode or a PhysicalNode.
|
|
If you want this node to react to outside input (i.e. Jesse banging
|
|
on the arc above it), use an ActorNode. ActorNodes will also update
|
|
their own arcs according to their internal physics information.
|
|
PhysicalNodes are pretty much the same, but they don't have the automatic
|
|
graph response/update routines built-in, so for most cases, you'll probably
|
|
want to use an ActorNode.
|
|
|
|
Forces (gravity, noise, jitter, friction) can act on these objects, and they
|
|
live in the graph as well. Forces come in two flavors: linear and angular,
|
|
and ForceNodes can hold both. When a force acts upon an object, the relative
|
|
matrix between the ForceNode and the ActorNode is calculated and applied to the
|
|
force vectors, which in turn get applied to the objects via integration.
|
|
|
|
Integration occurs in the PhysicsManager, which has references to all of the
|
|
forces and objects to be acted on. Like forces, there are two types of integration:
|
|
linear and angular. Respective integrators must be plugged in to each for anything
|
|
to happen.
|
|
|
|
What to do if nothing's moving/happening:
|
|
-----------------------------------------
|
|
|
|
1. Make sure you have a PhysicsManager.
|
|
Make sure that an integrator (LinearEulerIntegrator and/or AngularEulerIntegrator)
|
|
is plugged in to the manager.
|
|
|
|
2. Make sure you have your Physicals (live inside the Actor/Physical Nodes) attached
|
|
to the manager.
|
|
|
|
3. Make sure that your forces live in ForceNodes and are attached to either the
|
|
physical or the manager.
|
|
|
|
4. Make sure you're calling PhysicsManager::do_physics() once per frame.
|
|
|
|
If none of these work, try slapping yourself.
|