Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

CollisionTraverser Class Reference

#include <collisionTraverser.h>

List of all members.

Private Types

typedef pmap< PT(CollisionNode),
PT(CollisionHandler
Colliders )
typedef pvector< CollisionNode * > OrderedColliders
typedef pmap< PT(CollisionHandler),
int 
Handlers )

Private Member Functions

 ~CollisionTraverser ()
void add_collider (CollisionNode *node, CollisionHandler *handler)
bool remove_collider (CollisionNode *node)
bool has_collider (CollisionNode *node) const
int get_num_colliders () const
CollisionNodeget_collider (int n) const
CollisionHandlerget_handler (CollisionNode *node) const
void clear_colliders ()
void traverse (const NodePath &root)
void output (ostream &out) const
void write (ostream &out, int indent_level) const
void prepare_colliders (CollisionLevelState &state)
void r_traverse (CollisionLevelState &level_state)
void compare_collider_to_node (CollisionEntry &entry, const GeometricBoundingVolume *from_parent_gbv, const GeometricBoundingVolume *from_node_gbv, const GeometricBoundingVolume *into_node_gbv)
void compare_collider_to_geom_node (CollisionEntry &entry, const GeometricBoundingVolume *from_parent_gbv, const GeometricBoundingVolume *from_node_gbv, const GeometricBoundingVolume *into_node_gbv)
void compare_collider_to_solid (CollisionEntry &entry, const GeometricBoundingVolume *from_node_gbv, const GeometricBoundingVolume *solid_gbv)
void compare_collider_to_geom (CollisionEntry &entry, Geom *geom, const GeometricBoundingVolume *from_node_gbv, const GeometricBoundingVolume *solid_gbv)
 PT (CollisionHandler) _default_handler

Private Attributes

PUBLISHED __pad0__: CollisionTraverser()
TypeHandle _graph_type
Colliders _colliders
OrderedColliders _ordered_colliders
Handlers _handlers

Static Private Attributes

PStatCollector _collisions_pcollector


Member Typedef Documentation

typedef pmap<PT(CollisionNode), PT(CollisionHandler) CollisionTraverser::Colliders) [private]
 

Definition at line 100 of file collisionTraverser.h.

typedef pmap<PT(CollisionHandler), int CollisionTraverser::Handlers) [private]
 

Definition at line 105 of file collisionTraverser.h.

typedef pvector<CollisionNode *> CollisionTraverser::OrderedColliders [private]
 

Definition at line 102 of file collisionTraverser.h.


Constructor & Destructor Documentation

CollisionTraverser::~CollisionTraverser  )  [private]
 

Definition at line 55 of file collisionTraverser.cxx.


Member Function Documentation

void CollisionTraverser::add_collider CollisionNode node,
CollisionHandler handler
[private]
 

Definition at line 76 of file collisionTraverser.cxx.

References _colliders, _handlers, _ordered_colliders, NULL, and PT().

Referenced by main().

void CollisionTraverser::clear_colliders  )  [private]
 

Definition at line 224 of file collisionTraverser.cxx.

References _colliders, and _ordered_colliders.

void CollisionTraverser::compare_collider_to_geom CollisionEntry entry,
Geom geom,
const GeometricBoundingVolume from_node_gbv,
const GeometricBoundingVolume solid_gbv
[private]
 

Definition at line 646 of file collisionTraverser.cxx.

References _colliders, GeometricBoundingVolume::contains(), Geom::get_coords(), CollisionEntry::get_from_node(), Geom::get_tris(), NULL, CollisionEntry::test_intersection(), and CollisionPolygon::verify_points().

Referenced by compare_collider_to_geom_node().

void CollisionTraverser::compare_collider_to_geom_node CollisionEntry entry,
const GeometricBoundingVolume from_parent_gbv,
const GeometricBoundingVolume from_node_gbv,
const GeometricBoundingVolume into_node_gbv
[private]
 

Definition at line 582 of file collisionTraverser.cxx.

References compare_collider_to_geom(), GeometricBoundingVolume::contains(), DCAST, DCAST_INTO_V, BoundedObject::get_bound(), GeometricBoundingVolume::get_class_type(), GeomNode::get_geom(), TypedObject::is_of_type(), NULL, and s.

Referenced by r_traverse().

void CollisionTraverser::compare_collider_to_node CollisionEntry entry,
const GeometricBoundingVolume from_parent_gbv,
const GeometricBoundingVolume from_node_gbv,
const GeometricBoundingVolume into_node_gbv
[private]
 

Definition at line 541 of file collisionTraverser.cxx.

References compare_collider_to_solid(), GeometricBoundingVolume::contains(), DCAST_INTO_V, GeometricBoundingVolume::get_class_type(), CollisionNode::get_num_solids(), CollisionNode::get_solid(), TypedObject::is_of_type(), NULL, and s.

Referenced by r_traverse().

void CollisionTraverser::compare_collider_to_solid CollisionEntry entry,
const GeometricBoundingVolume from_node_gbv,
const GeometricBoundingVolume solid_gbv
[private]
 

Definition at line 624 of file collisionTraverser.cxx.

References _colliders, GeometricBoundingVolume::contains(), CollisionEntry::get_from_node(), NULL, and CollisionEntry::test_intersection().

Referenced by compare_collider_to_node().

CollisionNode * CollisionTraverser::get_collider int  n  )  const [private]
 

Definition at line 195 of file collisionTraverser.cxx.

References _colliders, _ordered_colliders, n, and NULL.

CollisionHandler * CollisionTraverser::get_handler CollisionNode node  )  const [private]
 

Definition at line 209 of file collisionTraverser.cxx.

References _colliders, and NULL.

int CollisionTraverser::get_num_colliders  )  const [private]
 

Definition at line 183 of file collisionTraverser.cxx.

References _colliders, and _ordered_colliders.

bool CollisionTraverser::has_collider CollisionNode node  )  const [private]
 

Definition at line 171 of file collisionTraverser.cxx.

References _colliders.

void CollisionTraverser::output ostream &  out  )  const [private]
 

Definition at line 339 of file collisionTraverser.cxx.

References _colliders, and _handlers.

Referenced by operator<<().

void CollisionTraverser::prepare_colliders CollisionLevelState state  )  [private]
 

Definition at line 377 of file collisionTraverser.cxx.

References CollisionLevelState::ColliderDef::_collider, _colliders, CollisionLevelState::ColliderDef::_inv_space, CollisionLevelState::ColliderDef::_node, _ordered_colliders, CollisionLevelState::ColliderDef::_space, CollisionLevelState::clear(), NodePath::get_mat(), CollisionNode::get_num_solids(), CollisionNode::get_solid(), CollisionLevelState::prepare_collider(), remove_collider(), CollisionLevelState::reserve(), root, and s.

Referenced by traverse().

CollisionTraverser::PT CollisionHandler   )  [private]
 

Referenced by add_collider().

void CollisionTraverser::r_traverse CollisionLevelState level_state  )  [private]
 

Definition at line 420 of file collisionTraverser.cxx.

References CollisionEntry::_from_space, CollisionEntry::_into_node_path, CollisionEntry::_into_space, CollisionEntry::_inv_wrt_space, CollisionEntry::_wrt_space, CollisionLevelState::any_in_bounds(), CollisionLevelState::apply_transform(), c, compare_collider_to_geom_node(), compare_collider_to_node(), DCAST_INTO_V, PandaNode::get_bound(), PandaNode::get_child(), GeometricBoundingVolume::get_class_type(), CollisionNode::get_class_type(), CollisionLevelState::get_collider(), CollisionNode::get_into_collide_mask(), CollisionLevelState::get_inv_space(), CollisionLevelState::get_local_bound(), NodePath::get_mat(), CollisionLevelState::get_node(), CollisionLevelState::get_node_path(), PandaNode::get_num_children(), CollisionLevelState::get_num_colliders(), CollisionLevelState::get_parent_bound(), CollisionLevelState::get_space(), PandaNode::get_visible_child(), CollisionLevelState::has_any_collide_geom(), CollisionLevelState::has_collider(), CollisionLevelState::has_collider_with_geom(), PandaNode::has_single_child_visibility(), index, TypedObject::is_exact_type(), PandaNode::is_geom_node(), TypedObject::is_of_type(), CollisionLevelState::node(), NULL, CollisionLevelState::reached_collision_node(), root, and CollisionEntry::set_from_velocity().

Referenced by traverse().

bool CollisionTraverser::remove_collider CollisionNode node  )  [private]
 

Definition at line 132 of file collisionTraverser.cxx.

References _colliders, _handlers, and _ordered_colliders.

Referenced by prepare_colliders().

void CollisionTraverser::traverse const NodePath root  )  [private]
 

Definition at line 236 of file collisionTraverser.cxx.

References _collisions_pcollector, _handlers, _ordered_colliders, CollisionNode::clear_velocity(), prepare_colliders(), r_traverse(), and root.

Referenced by main().

void CollisionTraverser::write ostream &  out,
int  indent_level
const [private]
 

Definition at line 350 of file collisionTraverser.cxx.

References _colliders, _handlers, CollisionNode::get_num_solids(), CollisionNode::get_solid(), CollisionHandler::get_type(), indent(), NULL, and CollisionSolid::write().


Member Data Documentation

PUBLISHED CollisionTraverser::__pad0__ [private]
 

Definition at line 53 of file collisionTraverser.h.

Colliders CollisionTraverser::_colliders [private]
 

Definition at line 101 of file collisionTraverser.h.

Referenced by add_collider(), clear_colliders(), compare_collider_to_geom(), compare_collider_to_solid(), get_collider(), get_handler(), get_num_colliders(), has_collider(), output(), prepare_colliders(), remove_collider(), and write().

PStatCollector CollisionTraverser::_collisions_pcollector [static, private]
 

Referenced by traverse().

TypeHandle CollisionTraverser::_graph_type [private]
 

Definition at line 98 of file collisionTraverser.h.

Handlers CollisionTraverser::_handlers [private]
 

Definition at line 106 of file collisionTraverser.h.

Referenced by add_collider(), output(), remove_collider(), traverse(), and write().

OrderedColliders CollisionTraverser::_ordered_colliders [private]
 

Definition at line 103 of file collisionTraverser.h.

Referenced by add_collider(), clear_colliders(), get_collider(), get_num_colliders(), prepare_colliders(), remove_collider(), and traverse().


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 00:11:39 2003 for Panda by doxygen1.3