Panda3D
|
A CollisionHandlerPusher that makes use of timing and spatial information from fluid collisions to improve collision response. More...
#include "collisionHandlerFluidPusher.h"
Public Member Functions | |
virtual void | add_entry (CollisionEntry *entry) |
Called between a begin_group() . | |
virtual TypeHandle | force_init_type () |
virtual TypeHandle | get_type () const |
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 bool | handle_entries () |
Calculates a reasonable final position for a collider given a set of collidees. |
A CollisionHandlerPusher that makes use of timing and spatial information from fluid collisions to improve collision response.
Definition at line 29 of file collisionHandlerFluidPusher.h.
void CollisionHandlerFluidPusher::add_entry | ( | CollisionEntry * | entry | ) | [virtual] |
Called between a begin_group() .
. end_group() sequence for each collision that is detected.
Reimplemented from CollisionHandlerPhysical.
Definition at line 41 of file collisionHandlerFluidPusher.cxx.
References CollisionEntry::collided(), CollisionEntry::get_from(), CollisionEntry::get_from_node_path(), CollisionEntry::get_into(), CollisionEntry::has_into(), and CollisionSolid::is_tangible().
bool CollisionHandlerFluidPusher::handle_entries | ( | ) | [protected, virtual] |
Calculates a reasonable final position for a collider given a set of collidees.
Reimplemented from CollisionHandlerPusher.
Definition at line 67 of file collisionHandlerFluidPusher.cxx.
References CollisionHandlerPusher::apply_linear_force(), CollisionHandlerPusher::apply_net_shove(), CollisionEntry::collided(), CollisionEntry::get_all_contact_info(), CollisionEntry::get_from(), CollisionEntry::get_from_node_path(), CollisionEntry::get_into_node_path(), TransformState::get_mat(), NodePath::get_pos(), NodePath::get_pos_delta(), NodePath::get_prev_transform(), CollisionEntry::get_t(), NodePath::get_transform(), LVecBase3f::normalize(), CollisionEntry::reset_collided(), NodePath::set_pos(), NodePath::set_prev_transform(), and LVector3f::up().
static void CollisionHandlerFluidPusher::init_type | ( | ) | [inline, static] |
This function is declared non-inline to work around a compiler bug in g++ 2.96.
Making it inline seems to cause problems in the optimizer.
Reimplemented from CollisionHandlerPusher.
Definition at line 43 of file collisionHandlerFluidPusher.h.
References CollisionHandlerPusher::init_type().