Okay, I did have it afterall :p
So dSetInternalSpaceCollideMode() enables/disables all collisions for objects inside that space? And spaces are hierarchical?
So I could create WorldSpace, PropSpace(worldspace) and ActorsSpace(worldspace). PropSpace and ActorsSpace would be subspaces of WorldSpace. Everything in worldspace, including everything in PropSpace and ActorsSpace, can collide. Let's say I create a dozen boxes in PropSpace and a dozen spheres in ActorsSpace, these could all bash into each other.
Now to disable the boxes from colliding with each other, but still collide with spheres and allow spheres to collide with spheres, I can use dSetInternalSpaceCollideMode(). But how do I specify which spaces this should apply to? Or does it apply to ALL subspaces of the top-level space, so it would disable all cube<>cube and sphere<>sphere collisions?
While we're at it, looking for clues in the .decls file, what do...
dSetInternalContactSurfaceMode(mode):"odeSetInternalContactSurfaceMode@4" and
dGetInternalContactSurfaceMode%():"odeGetInternalContactSurfaceMode@0"
do? Also, does dSpaceAdd(space,geom) duplicate a geom's data into space, or just include in that space along with the geom's creation space, like box=dCreateBox(Space) creates the box geom in Space, would dSpaceAdd(PropSpace,box) just add collision calculations inside PropSpace? Or does that move box into PropSpace so it's collisions internal to PropSpace can be disabled?
ODE Spaces - the final frontier :D
So dSetInternalSpaceCollideMode() enables/disables all collisions for objects inside that space? And spaces are hierarchical?
So I could create WorldSpace, PropSpace(worldspace) and ActorsSpace(worldspace). PropSpace and ActorsSpace would be subspaces of WorldSpace. Everything in worldspace, including everything in PropSpace and ActorsSpace, can collide. Let's say I create a dozen boxes in PropSpace and a dozen spheres in ActorsSpace, these could all bash into each other.
Now to disable the boxes from colliding with each other, but still collide with spheres and allow spheres to collide with spheres, I can use dSetInternalSpaceCollideMode(). But how do I specify which spaces this should apply to? Or does it apply to ALL subspaces of the top-level space, so it would disable all cube<>cube and sphere<>sphere collisions?
While we're at it, looking for clues in the .decls file, what do...
dSetInternalContactSurfaceMode(mode):"odeSetInternalContactSurfaceMode@4" and
dGetInternalContactSurfaceMode%():"odeGetInternalContactSurfaceMode@0"
do? Also, does dSpaceAdd(space,geom) duplicate a geom's data into space, or just include in that space along with the geom's creation space, like box=dCreateBox(Space) creates the box geom in Space, would dSpaceAdd(PropSpace,box) just add collision calculations inside PropSpace? Or does that move box into PropSpace so it's collisions internal to PropSpace can be disabled?
ODE Spaces - the final frontier :D