mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
we can now choose a particular Physical upon which to run physics processing instead of having to run through the entire scene
This commit is contained in:
parent
f195f3635d
commit
77b18a7c73
@ -171,6 +171,36 @@ do_physics(float dt) {
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function : DoPhysics
|
||||
// Access : Public
|
||||
// Description : This is the main high-level API call. Performs
|
||||
// integration on every attached Physical.
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void PhysicsManager::
|
||||
do_physics(float dt, Physical *physical) {
|
||||
nassertv(physical);
|
||||
|
||||
// do linear
|
||||
//if (_linear_integrator.is_null() == false) {
|
||||
if (_linear_integrator) {
|
||||
_linear_integrator->integrate(physical, _linear_forces, dt);
|
||||
}
|
||||
|
||||
// do angular
|
||||
//if (_angular_integrator.is_null() == false) {
|
||||
if (_angular_integrator) {
|
||||
_angular_integrator->integrate(physical, _angular_forces, dt);
|
||||
}
|
||||
|
||||
// if it's an actor node, tell it to update itself.
|
||||
PhysicalNode *pn = physical->get_physical_node();
|
||||
if (pn && pn->is_of_type(ActorNode::get_class_type())) {
|
||||
ActorNode *an = (ActorNode *) pn;
|
||||
an->update_transform();
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Function : output
|
||||
// Access : Public
|
||||
|
@ -76,6 +76,7 @@ PUBLISHED:
|
||||
void remove_linear_force(LinearForce *f);
|
||||
void remove_angular_force(AngularForce *f);
|
||||
void do_physics(float dt);
|
||||
void do_physics(float dt, Physical *p);
|
||||
void init_random_seed();
|
||||
|
||||
virtual void output(ostream &out) const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user