espresso3d.engine.collision
Class E3DCollisionHandler

java.lang.Object
  extended byespresso3d.engine.base.E3DEngineItem
      extended byespresso3d.engine.collision.E3DCollisionHandler

public class E3DCollisionHandler
extends E3DEngineItem

Author:
espresso3d This contains collision detection helpers and the main collision detection routine for checking collisions in the world.

Field Summary
static int COLLISIONTYPE_COLLIDEE_BOUNDINGOBJECT_IFAVAIL
           
static int COLLISIONTYPE_COLLIDEE_TRIANGLE
           
static int COLLISIONTYPE_SOURCE_BOUNDINGOBJECT
           
static int COLLISIONTYPE_SOURCE_SEGMENT
           
static int COLLISIONTYPE_SOURCE_TRIANGLE
           
 
Constructor Summary
E3DCollisionHandler(E3DEngine engine)
           
 
Method Summary
 E3DCollision checkCollision(int collisionTypeSource, int collisionTypeDest, boolean notifyAllObjectsCollided, E3DCollisionDetectableObject sourceObject, E3DVector3F sourceStartPos, E3DVector3F sourceEndPos)
           
 E3DSector checkForPortalCollisionsAndGetSectorChange(E3DVector3F startPos, E3DVector3F endPos, E3DSector sector)
          This method is used mainly by the engine to see when it translates objects, if they collide with a portal.
static E3DCollision getClosestCollisionToPoint(E3DVector3F point, java.util.ArrayList collisions)
          Takes a list of E3DCollision object's and returns which collision was closest to the point
static E3DCollision getFurthestCollisionFromPoint(E3DVector3F point, java.util.ArrayList collisions)
           
 
Methods inherited from class espresso3d.engine.base.E3DEngineItem
getEngine, setEngine
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COLLISIONTYPE_SOURCE_SEGMENT

public static final int COLLISIONTYPE_SOURCE_SEGMENT
See Also:
Constant Field Values

COLLISIONTYPE_SOURCE_TRIANGLE

public static final int COLLISIONTYPE_SOURCE_TRIANGLE
See Also:
Constant Field Values

COLLISIONTYPE_SOURCE_BOUNDINGOBJECT

public static final int COLLISIONTYPE_SOURCE_BOUNDINGOBJECT
See Also:
Constant Field Values

COLLISIONTYPE_COLLIDEE_TRIANGLE

public static final int COLLISIONTYPE_COLLIDEE_TRIANGLE
See Also:
Constant Field Values

COLLISIONTYPE_COLLIDEE_BOUNDINGOBJECT_IFAVAIL

public static final int COLLISIONTYPE_COLLIDEE_BOUNDINGOBJECT_IFAVAIL
See Also:
Constant Field Values
Constructor Detail

E3DCollisionHandler

public E3DCollisionHandler(E3DEngine engine)
Method Detail

checkCollision

public E3DCollision checkCollision(int collisionTypeSource,
                                   int collisionTypeDest,
                                   boolean notifyAllObjectsCollided,
                                   E3DCollisionDetectableObject sourceObject,
                                   E3DVector3F sourceStartPos,
                                   E3DVector3F sourceEndPos)

checkForPortalCollisionsAndGetSectorChange

public E3DSector checkForPortalCollisionsAndGetSectorChange(E3DVector3F startPos,
                                                            E3DVector3F endPos,
                                                            E3DSector sector)
This method is used mainly by the engine to see when it translates objects, if they collide with a portal. This is necessary for the engine to keep track of the sector objects are in. This always uses a line segment (vs triangle) collision detector.

Parameters:
startPos - The starting position of the object we are checking against portals
endPos - The ending position of the object we are checking against portals
sector - The sector the object is currently in
Returns:
Returns the sector the object should be placed in or null if there is no portal collision

getClosestCollisionToPoint

public static E3DCollision getClosestCollisionToPoint(E3DVector3F point,
                                                      java.util.ArrayList collisions)
Takes a list of E3DCollision object's and returns which collision was closest to the point


getFurthestCollisionFromPoint

public static E3DCollision getFurthestCollisionFromPoint(E3DVector3F point,
                                                         java.util.ArrayList collisions)