Public Member Functions |
|
virtual TypeHandle | force_init_type () |
|
bool | get_horizontal () const |
|
virtual TypeHandle | get_type () const |
|
void | set_horizontal (bool flag) |
Static Public Member Functions |
|
static TypeHandle | get_class_type () |
| static void | init_type () |
| | This function is declared non-inline to work around a compiler bug in g++ 2.96.
|
Protected Member Functions |
| virtual void | apply_linear_force (ColliderDef &def, const LVector3f &force) |
| | This is an optional hook for derived classes to do some work with the ColliderDef and the force vector.
|
| virtual void | apply_net_shove (ColliderDef &def, const LVector3f &net_shove, const LVector3f &force_normal) |
| | This is an optional hook for derived classes to do some work with the ColliderDef and the force vector.
|
| virtual bool | handle_entries () |
| | Called by the parent class after all collisions have been detected, this manages the various collisions and moves around the nodes as necessary.
|
Protected Attributes |
|
bool | _horizontal |
A specialized kind of CollisionHandler that simply pushes back on things that attempt to move into solid walls.
This is the simplest kind of "real-world" collisions you can have.
Definition at line 29 of file collisionHandlerPusher.h.
| bool CollisionHandlerPusher::handle_entries |
( |
| ) |
[protected, virtual] |
Called by the parent class after all collisions have been detected, this manages the various collisions and moves around the nodes as necessary.
The return value is normally true, but it may be false to indicate the CollisionTraverser should disable this handler from being called in the future.
Implements CollisionHandlerPhysical.
Reimplemented in CollisionHandlerFluidPusher.
Definition at line 70 of file collisionHandlerPusher.cxx.
References apply_linear_force(), apply_net_shove(), CollisionEntry::get_all(), CollisionPolygon::get_collision_origin(), CollisionEntry::get_from_node_path(), CollisionEntry::get_into(), CollisionEntry::get_into_node_path(), NodePath::get_transform(), TypedObject::is_exact_type(), LVecBase3f::normalize(), NodePath::set_transform(), and CollisionHandlerPhysical::ColliderDef::updated_transform().