Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

sheep::SWIFTCollisionDetector Class Reference

#include <swiftcollisiondetector.h>

Inheritance diagram for sheep::SWIFTCollisionDetector:

sheep::ICollisionDetector List of all members.

Public Member Functions

 SWIFTCollisionDetector ()
virtual ~SWIFTCollisionDetector ()
virtual void Insert (RigidObject *object)
virtual void Remove (RigidObject *object)
virtual void RefreshTransformations ()
virtual bool AreObjectsDisjoint () const
virtual bool AreObjectHullsDisjoint () const
virtual void FindContacts (ContactList *contacts)

Private Types

typedef std::map< int, RigidObject * > id_to_object_map
typedef std::map< RigidObject *,
int > 
object_to_id_map
typedef std::map< RigidModel *,
int > 
model_to_id_map

Private Attributes

SWIFT_Scene * m_scene
id_to_object_map m_id_to_object
object_to_id_map m_object_to_id
model_to_id_map m_model_to_id
bool m_are_disjoint
 Are objects disjoints?

int m_num_pairs
int * m_oids
 Colliding pairs.

int * m_pids
int * m_feature_types
int * m_feature_ids
SWIFT_Real * m_distances

Member Typedef Documentation

typedef std::map<int, RigidObject *> sheep::SWIFTCollisionDetector::id_to_object_map [private]
 

Todo:
Consider using a hash_map container for faster lookup.

Definition at line 60 of file swiftcollisiondetector.h.

typedef std::map<RigidModel *, int> sheep::SWIFTCollisionDetector::model_to_id_map [private]
 

Definition at line 62 of file swiftcollisiondetector.h.

typedef std::map<RigidObject *, int> sheep::SWIFTCollisionDetector::object_to_id_map [private]
 

Definition at line 61 of file swiftcollisiondetector.h.


Constructor & Destructor Documentation

SWIFTCollisionDetector::SWIFTCollisionDetector  )  [inline]
 

Definition at line 100 of file swiftcollisiondetector.h.

SWIFTCollisionDetector::~SWIFTCollisionDetector  )  [inline, virtual]
 

Definition at line 105 of file swiftcollisiondetector.h.


Member Function Documentation

bool SWIFTCollisionDetector::AreObjectHullsDisjoint  )  const [inline, virtual]
 

Implements sheep::ICollisionDetector.

Definition at line 116 of file swiftcollisiondetector.h.

Referenced by sheep::Subspace::compute_step_end().

bool SWIFTCollisionDetector::AreObjectsDisjoint  )  const [inline, virtual]
 

Implements sheep::ICollisionDetector.

Definition at line 111 of file swiftcollisiondetector.h.

Referenced by sheep::Subspace::compute_step_end().

void SWIFTCollisionDetector::FindContacts ContactList contacts  )  [virtual]
 

Implements sheep::ICollisionDetector.

Definition at line 152 of file swiftcollisiondetector.cpp.

References sheep::ContactList, sheep::Contact::m_a, sheep::Contact::m_b, m_distances, sheep::Contact::m_fa, sheep::Contact::m_fb, m_feature_ids, m_feature_types, sheep::Feature::m_id0, sheep::Feature::m_id1, m_id_to_object, m_num_pairs, m_oids, and sheep::Feature::m_type.

Referenced by sheep::Subspace::find_contacts().

void SWIFTCollisionDetector::Insert RigidObject object  )  [virtual]
 

Implements sheep::ICollisionDetector.

Definition at line 36 of file swiftcollisiondetector.cpp.

References sheep::RigidObject::GetModel(), HULL_THICKNESS, sheep::RigidModel::m_faces, m_id_to_object, m_model_to_id, m_object_to_id, sheep::RigidModel::Face::m_v0, sheep::RigidModel::Face::m_v1, sheep::RigidModel::Face::m_v2, sheep::RigidModel::m_vertices, sheep::Vector3::m_x, sheep::Vector3::m_y, and sheep::Vector3::m_z.

void SWIFTCollisionDetector::RefreshTransformations  )  [virtual]
 

This method must be called (before proceeding to any query) every time bodies transformation have changed or every time bodies have been inserted to or removed from the system.

Todo:
Remove (this is no more necessary).

Implements sheep::ICollisionDetector.

Definition at line 113 of file swiftcollisiondetector.cpp.

References sheep::RigidBody::GetOrientation(), sheep::RigidBody::GetPosition(), HULL_THICKNESS, m_are_disjoint, m_distances, m_feature_ids, m_feature_types, m_num_pairs, m_object_to_id, m_oids, m_pids, sheep::Vector3::m_x, sheep::Vector3::m_y, and sheep::Vector3::m_z.

Referenced by sheep::Subspace::restore_state(), sheep::Subspace::Step(), and sheep::Subspace::step_bodies().

void SWIFTCollisionDetector::Remove RigidObject object  )  [virtual]
 

Implements sheep::ICollisionDetector.

Definition at line 99 of file swiftcollisiondetector.cpp.

References m_id_to_object, and m_object_to_id.


Member Data Documentation

bool sheep::SWIFTCollisionDetector::m_are_disjoint [private]
 

Are objects disjoints?

Definition at line 68 of file swiftcollisiondetector.h.

Referenced by RefreshTransformations().

SWIFT_Real* sheep::SWIFTCollisionDetector::m_distances [private]
 

Definition at line 74 of file swiftcollisiondetector.h.

Referenced by FindContacts(), and RefreshTransformations().

int* sheep::SWIFTCollisionDetector::m_feature_ids [private]
 

Definition at line 73 of file swiftcollisiondetector.h.

Referenced by FindContacts(), and RefreshTransformations().

int* sheep::SWIFTCollisionDetector::m_feature_types [private]
 

Definition at line 72 of file swiftcollisiondetector.h.

Referenced by FindContacts(), and RefreshTransformations().

id_to_object_map sheep::SWIFTCollisionDetector::m_id_to_object [private]
 

Definition at line 64 of file swiftcollisiondetector.h.

Referenced by FindContacts(), Insert(), and Remove().

model_to_id_map sheep::SWIFTCollisionDetector::m_model_to_id [private]
 

Definition at line 66 of file swiftcollisiondetector.h.

Referenced by Insert().

int sheep::SWIFTCollisionDetector::m_num_pairs [private]
 

Definition at line 69 of file swiftcollisiondetector.h.

Referenced by FindContacts(), and RefreshTransformations().

object_to_id_map sheep::SWIFTCollisionDetector::m_object_to_id [private]
 

Definition at line 65 of file swiftcollisiondetector.h.

Referenced by Insert(), RefreshTransformations(), and Remove().

int* sheep::SWIFTCollisionDetector::m_oids [private]
 

Colliding pairs.

Definition at line 70 of file swiftcollisiondetector.h.

Referenced by FindContacts(), and RefreshTransformations().

int* sheep::SWIFTCollisionDetector::m_pids [private]
 

Definition at line 71 of file swiftcollisiondetector.h.

Referenced by RefreshTransformations().

SWIFT_Scene* sheep::SWIFTCollisionDetector::m_scene [private]
 

Definition at line 57 of file swiftcollisiondetector.h.


The documentation for this class was generated from the following files:
Generated on Tue May 11 01:31:56 2004 for toxic by doxygen 1.3.6