mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -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
|
// Function : output
|
||||||
// Access : Public
|
// Access : Public
|
||||||
|
@ -76,6 +76,7 @@ PUBLISHED:
|
|||||||
void remove_linear_force(LinearForce *f);
|
void remove_linear_force(LinearForce *f);
|
||||||
void remove_angular_force(AngularForce *f);
|
void remove_angular_force(AngularForce *f);
|
||||||
void do_physics(float dt);
|
void do_physics(float dt);
|
||||||
|
void do_physics(float dt, Physical *p);
|
||||||
void init_random_seed();
|
void init_random_seed();
|
||||||
|
|
||||||
virtual void output(ostream &out) const;
|
virtual void output(ostream &out) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user