Collision Struct Reference

#include <Collision.h>

Inherited by BallCollision, and BorderCollision.

Inheritance diagram for Collision:

Inheritance graph
[legend]
Collaboration diagram for Collision:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Collision (float t, Object *o1, Object *o2)
virtual ~Collision ()
virtual void collide ()=0
bool isAffected (Collision *another)
std::string dump () const

Static Public Member Functions

static bool compare (const Collision *c1, const Collision *c2)
static bool ucompare (const Collision *c1, const Collision *c2)
static bool predicate (const Collision *c1, const Collision *c2)

Public Attributes

float time
 Time when collision occurs.
Objectfirst
 First object.
Objectsecond
 Second object.

Detailed Description

Abstract collision struct to simplify sorting of collision list and provide unified collision processing

Author:
Alex Busenius

Definition at line 17 of file Collision.h.


Constructor & Destructor Documentation

Collision::Collision ( float  t,
Object o1,
Object o2 
) [inline]

Init constructor

Definition at line 32 of file Collision.h.

virtual Collision::~Collision (  )  [inline, virtual]

Destructor

Definition at line 43 of file Collision.h.


Member Function Documentation

static bool Collision::compare ( const Collision c1,
const Collision c2 
) [inline, static]

Comparision operator for sorting

Definition at line 49 of file Collision.h.

References time.

Referenced by BilliardPhysics::createCollisionList(), and BilliardPhysics::updateCollisionList().

static bool Collision::ucompare ( const Collision c1,
const Collision c2 
) [inline, static]

Comparision operator for duplicate removal

Definition at line 58 of file Collision.h.

References first, and second.

Referenced by BilliardPhysics::updateCollisionList().

static bool Collision::predicate ( const Collision c1,
const Collision c2 
) [inline, static]

Predicate for duplicate removal

Definition at line 68 of file Collision.h.

References first, and second.

Referenced by BilliardPhysics::updateCollisionList().

virtual void Collision::collide (  )  [pure virtual]

Simulate a collision and update object properties

Implemented in BallCollision, and BorderCollision.

bool Collision::isAffected ( Collision another  )  [inline]

Test if this collision is affected by another collision. A collision is affected if it happens after another collision and one of the objects is contained in the other collision too

Definition at line 81 of file Collision.h.

References first, and second.

std::string Collision::dump (  )  const

Write to stream

Definition at line 16 of file Collision.cpp.

References first, Object::name(), second, and time.

Referenced by BallCollision::BallCollision(), BorderCollision::BorderCollision(), BorderCollision::collide(), and BallCollision::collide().


Member Data Documentation

float Collision::time

Time when collision occurs.

Definition at line 21 of file Collision.h.

Referenced by BorderCollision::collide(), BallCollision::collide(), compare(), and dump().

Object* Collision::first

First object.

Definition at line 24 of file Collision.h.

Referenced by BorderCollision::collide(), BallCollision::collide(), dump(), isAffected(), predicate(), and ucompare().

Object* Collision::second

Second object.

Definition at line 27 of file Collision.h.

Referenced by BorderCollision::collide(), BallCollision::collide(), dump(), isAffected(), predicate(), and ucompare().


The documentation for this struct was generated from the following files:
Generated on Fri Feb 1 00:02:14 2008 for Grayfall by  doxygen 1.5.1