org.ode4j.ode
Interface DSpace

All Superinterfaces:
DGeom
All Known Subinterfaces:
DHashSpace, DQuadTreeSpace, DSapSpace, DSimpleSpace

public interface DSpace
extends DGeom

collision space.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.ode4j.ode.DGeom
DGeom.COLLIDER_MERGE_CONTACTS_VALUE, DGeom.CONTROL_CLASS, DGeom.CONTROL_CODE, DGeom.DataValue, DGeom.DNearCallback
 
Field Summary
 
Fields inherited from interface org.ode4j.ode.DGeom
dBoxClass, dCapsuleClass, dConvexClass, dCylinderClass, dFirstSpaceClass, dFirstUserClass, dGeomNumClasses, dGeomTransformClass, dHashSpaceClass, dHeightfieldClass, dLastSpaceClass, dLastUserClass, dMaxUserClasses, dPlaneClass, dQuadTreeSpaceClass, dRayClass, dSimpleSpaceClass, dSphereClass, dSweepAndPruneSpaceClass, dTriMeshClass
 
Method Summary
 void add(DGeom x)
           
 void cleanGeoms()
          Turn all dirty geoms into clean geoms by computing their AABBs and any other space data structures that are required.
 void collide(java.lang.Object data, DGeom.DNearCallback callback)
          This is equivalent to OdeHelper.spaceCollide(...)
 boolean getCleanup()
           
 DGeom getGeom(int i)
           
 int getManualCleanup()
          Get manual cleanup flag of a space.
 int getNumGeoms()
           
 int getSublevel()
          Gets sublevel value of a space.
 boolean query(DGeom x)
           
 void remove(DGeom x)
           
 void setCleanup(boolean mode)
           
 void setManualCleanup(int mode)
          Sets manual cleanup flag for a space.
 void setSublevel(int sublevel)
          Sets sublevel value for a space.
 
Methods inherited from interface org.ode4j.ode.DGeom
clearOffset, collide2, copyOffsetPosition, copyOffsetRotation, copyPosition, copyRotation, destroy, DESTRUCTOR, disable, enable, getAABB, getBody, getCategoryBits, getClassID, getCollideBits, getData, getOffsetPosition, getOffsetQuaternion, getOffsetRotation, getPosition, getPosRelPoint, getQuaternion, getRelPointPos, getRotation, getSpace, isEnabled, isOffset, lowLevelControl, setBody, setCategoryBits, setCollideBits, setData, setOffsetPosition, setOffsetQuaternion, setOffsetRotation, setOffsetWorldPosition, setOffsetWorldQuaternion, setOffsetWorldRotation, setPosition, setPosition, setQuaternion, setRotation, vectorFromWorld, vectorToWorld
 

Method Detail

setCleanup

void setCleanup(boolean mode)

getCleanup

boolean getCleanup()

cleanGeoms

void cleanGeoms()
Turn all dirty geoms into clean geoms by computing their AABBs and any other space data structures that are required. this should clear the GEOM_DIRTY and GEOM_AABB_BAD flags of all geoms.


add

void add(DGeom x)

remove

void remove(DGeom x)

query

boolean query(DGeom x)

getNumGeoms

int getNumGeoms()

getGeom

DGeom getGeom(int i)

collide

void collide(java.lang.Object data,
             DGeom.DNearCallback callback)
This is equivalent to OdeHelper.spaceCollide(...)


setManualCleanup

void setManualCleanup(int mode)
Sets manual cleanup flag for a space.

Manual cleanup flag marks a space as eligible for manual thread data cleanup. This function should be called for every space object right after creation in case if ODE has been initialized with dInitFlagManualThreadCleanup flag.

Failure to set manual cleanup flag for a space may lead to some resources remaining leaked until the program exit.

Parameters:
mode - 1 for manual cleanup mode and 0 for default cleanup mode
See Also:
setManualCleanup(int), OdeHelper.initODE2(int)

getManualCleanup

int getManualCleanup()
Get manual cleanup flag of a space.

Manual cleanup flag marks a space space as eligible for manual thread data cleanup. See setManualCleanup for more details.

Returns:
1 for manual cleanup mode and 0 for default cleanup mode of the space
See Also:
setManualCleanup(int), OdeHelper.initODE2(int)

setSublevel

void setSublevel(int sublevel)
Sets sublevel value for a space.

Sublevel affects how the space is handled in spaceCollide2 when it is collided with another space. If sublevels of both spaces match, the function iterates geometries of both spaces and collides them with each other. If sublevel of one space is greater than the sublevel of another one, only the geometries of the space with greater sublevel are iterated, another space is passed into collision callback as a geometry itself. By default all the spaces are assigned zero sublevel.

Parameters:
sublevel - the sublevel value to be assigned
See Also:
getSublevel(), OdeHelper.spaceCollide2(DGeom, DGeom, Object, org.ode4j.ode.DGeom.DNearCallback)
Note:
The space sublevel IS NOT automatically updated when one space is inserted into another or removed from one. It is a client's responsibility to update sublevel value if necessary.

getSublevel

int getSublevel()
Gets sublevel value of a space.

Sublevel affects how the space is handled in spaceCollide2 when it is collided with another space. See setSublevel for more details.

Returns:
the sublevel value of the space
See Also:
setSublevel(int), OdeHelper.spaceCollide2(DGeom, DGeom, Object, org.ode4j.ode.DGeom.DNearCallback)