com.bulletphysics.collision.broadphase
Class AxisSweep3Internal

java.lang.Object
  extended by com.bulletphysics.collision.broadphase.AxisSweep3Internal
All Implemented Interfaces:
BroadphaseInterface
Direct Known Subclasses:
AxisSweep3, AxisSweep3_32

public abstract class AxisSweep3Internal
extends java.lang.Object
implements BroadphaseInterface

AxisSweep3Internal is an internal template class that implements sweep and prune. Dont use this class directly, use AxisSweep3 or AxisSweep3_32 instead.


Nested Class Summary
protected static class AxisSweep3Internal.EdgeArray
           
protected static class AxisSweep3Internal.Handle
           
 
Field Summary
protected  int bpHandleMask
           
protected  int firstFreeHandle
           
protected  int handleSentinel
           
protected  int invalidPair
           
protected  int mask
           
protected  int maxHandles
           
protected  int numHandles
           
protected  boolean ownsPairCache
           
protected  OverlappingPairCache pairCache
           
protected  AxisSweep3Internal.EdgeArray[] pEdges
           
protected  AxisSweep3Internal.Handle[] pHandles
           
protected  javax.vecmath.Vector3f quantize
           
protected  OverlappingPairCallback userPairCallback
           
protected  javax.vecmath.Vector3f worldAabbMax
           
protected  javax.vecmath.Vector3f worldAabbMin
           
 
Method Summary
 int addHandle(javax.vecmath.Vector3f aabbMin, javax.vecmath.Vector3f aabbMax, java.lang.Object pOwner, short collisionFilterGroup, short collisionFilterMask, Dispatcher dispatcher, java.lang.Object multiSapProxy)
           
protected  int allocHandle()
           
 void calculateOverlappingPairs(Dispatcher dispatcher)
           
protected abstract  AxisSweep3Internal.EdgeArray createEdgeArray(int size)
           
protected abstract  AxisSweep3Internal.Handle createHandle()
           
 BroadphaseProxy createProxy(javax.vecmath.Vector3f aabbMin, javax.vecmath.Vector3f aabbMax, BroadphaseNativeType shapeType, java.lang.Object userPtr, short collisionFilterGroup, short collisionFilterMask, Dispatcher dispatcher, java.lang.Object multiSapProxy)
           
 void destroyProxy(BroadphaseProxy proxy, Dispatcher dispatcher)
           
protected  void freeHandle(int handle)
           
 void getBroadphaseAabb(javax.vecmath.Vector3f aabbMin, javax.vecmath.Vector3f aabbMax)
           
 AxisSweep3Internal.Handle getHandle(int index)
           
protected abstract  int getMask()
           
 int getNumHandles()
           
 OverlappingPairCache getOverlappingPairCache()
           
 OverlappingPairCallback getOverlappingPairUserCallback()
           
 void printStats()
           
protected  void quantize(int[] out, javax.vecmath.Vector3f point, int isMax)
           
 void removeHandle(int handle, Dispatcher dispatcher)
           
 void setAabb(BroadphaseProxy proxy, javax.vecmath.Vector3f aabbMin, javax.vecmath.Vector3f aabbMax, Dispatcher dispatcher)
           
 void setOverlappingPairUserCallback(OverlappingPairCallback pairCallback)
           
protected  void sortMaxDown(int axis, int edge, Dispatcher dispatcher, boolean updateOverlaps)
           
protected  void sortMaxUp(int axis, int edge, Dispatcher dispatcher, boolean updateOverlaps)
           
protected  void sortMinDown(int axis, int edge, Dispatcher dispatcher, boolean updateOverlaps)
           
protected  void sortMinUp(int axis, int edge, Dispatcher dispatcher, boolean updateOverlaps)
           
 boolean testAabbOverlap(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
           
protected  boolean testOverlap(int ignoreAxis, AxisSweep3Internal.Handle pHandleA, AxisSweep3Internal.Handle pHandleB)
           
 void updateHandle(int handle, javax.vecmath.Vector3f aabbMin, javax.vecmath.Vector3f aabbMax, Dispatcher dispatcher)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bpHandleMask

protected int bpHandleMask

handleSentinel

protected int handleSentinel

worldAabbMin

protected final javax.vecmath.Vector3f worldAabbMin

worldAabbMax

protected final javax.vecmath.Vector3f worldAabbMax

quantize

protected final javax.vecmath.Vector3f quantize

numHandles

protected int numHandles

maxHandles

protected int maxHandles

pHandles

protected AxisSweep3Internal.Handle[] pHandles

firstFreeHandle

protected int firstFreeHandle

pEdges

protected AxisSweep3Internal.EdgeArray[] pEdges

pairCache

protected OverlappingPairCache pairCache

userPairCallback

protected OverlappingPairCallback userPairCallback

ownsPairCache

protected boolean ownsPairCache

invalidPair

protected int invalidPair

mask

protected int mask
Method Detail

allocHandle

protected int allocHandle()

freeHandle

protected void freeHandle(int handle)

testOverlap

protected boolean testOverlap(int ignoreAxis,
                              AxisSweep3Internal.Handle pHandleA,
                              AxisSweep3Internal.Handle pHandleB)

quantize

protected void quantize(int[] out,
                        javax.vecmath.Vector3f point,
                        int isMax)

sortMinDown

protected void sortMinDown(int axis,
                           int edge,
                           Dispatcher dispatcher,
                           boolean updateOverlaps)

sortMinUp

protected void sortMinUp(int axis,
                         int edge,
                         Dispatcher dispatcher,
                         boolean updateOverlaps)

sortMaxDown

protected void sortMaxDown(int axis,
                           int edge,
                           Dispatcher dispatcher,
                           boolean updateOverlaps)

sortMaxUp

protected void sortMaxUp(int axis,
                         int edge,
                         Dispatcher dispatcher,
                         boolean updateOverlaps)

getNumHandles

public int getNumHandles()

calculateOverlappingPairs

public void calculateOverlappingPairs(Dispatcher dispatcher)
Specified by:
calculateOverlappingPairs in interface BroadphaseInterface

addHandle

public int addHandle(javax.vecmath.Vector3f aabbMin,
                     javax.vecmath.Vector3f aabbMax,
                     java.lang.Object pOwner,
                     short collisionFilterGroup,
                     short collisionFilterMask,
                     Dispatcher dispatcher,
                     java.lang.Object multiSapProxy)

removeHandle

public void removeHandle(int handle,
                         Dispatcher dispatcher)

updateHandle

public void updateHandle(int handle,
                         javax.vecmath.Vector3f aabbMin,
                         javax.vecmath.Vector3f aabbMax,
                         Dispatcher dispatcher)

getHandle

public AxisSweep3Internal.Handle getHandle(int index)

createProxy

public BroadphaseProxy createProxy(javax.vecmath.Vector3f aabbMin,
                                   javax.vecmath.Vector3f aabbMax,
                                   BroadphaseNativeType shapeType,
                                   java.lang.Object userPtr,
                                   short collisionFilterGroup,
                                   short collisionFilterMask,
                                   Dispatcher dispatcher,
                                   java.lang.Object multiSapProxy)
Specified by:
createProxy in interface BroadphaseInterface

destroyProxy

public void destroyProxy(BroadphaseProxy proxy,
                         Dispatcher dispatcher)
Specified by:
destroyProxy in interface BroadphaseInterface

setAabb

public void setAabb(BroadphaseProxy proxy,
                    javax.vecmath.Vector3f aabbMin,
                    javax.vecmath.Vector3f aabbMax,
                    Dispatcher dispatcher)
Specified by:
setAabb in interface BroadphaseInterface

testAabbOverlap

public boolean testAabbOverlap(BroadphaseProxy proxy0,
                               BroadphaseProxy proxy1)

getOverlappingPairCache

public OverlappingPairCache getOverlappingPairCache()
Specified by:
getOverlappingPairCache in interface BroadphaseInterface

setOverlappingPairUserCallback

public void setOverlappingPairUserCallback(OverlappingPairCallback pairCallback)

getOverlappingPairUserCallback

public OverlappingPairCallback getOverlappingPairUserCallback()

getBroadphaseAabb

public void getBroadphaseAabb(javax.vecmath.Vector3f aabbMin,
                              javax.vecmath.Vector3f aabbMax)
Specified by:
getBroadphaseAabb in interface BroadphaseInterface

printStats

public void printStats()
Specified by:
printStats in interface BroadphaseInterface

createEdgeArray

protected abstract AxisSweep3Internal.EdgeArray createEdgeArray(int size)

createHandle

protected abstract AxisSweep3Internal.Handle createHandle()

getMask

protected abstract int getMask()