Update, ExtendedUpdate, RefreshContacts, StickToFloor, SetShape and WalkStairs all pass {} for Jolt's four filter arguments — 28 occurrences of default-constructed, accept-everything filters in character.cpp.
A CharacterVirtual therefore collides with every body in the system, regardless of the ObjectLayerPairFilter and ObjectVsBroadPhaseLayerFilter the caller configured. Nothing in character.h says so.
For example:
cv(c)->Update(dt, toJphVec3(gravity), {}, {}, {}, {}, *allocator->ptr);
Why this needs deciding rather than just fixing
Anything built on the current behaviour depends on layer-blind character collision. Making the filters real is the correct behaviour but it is a behaviour change, so it wants a deliberate decision rather than arriving inside a version bump.
The tests in JoltC/tests/test_character_extra.c were written to work either way, so they will not have to change.
Update,ExtendedUpdate,RefreshContacts,StickToFloor,SetShapeandWalkStairsall pass{}for Jolt's four filter arguments — 28 occurrences of default-constructed, accept-everything filters incharacter.cpp.A
CharacterVirtualtherefore collides with every body in the system, regardless of theObjectLayerPairFilterandObjectVsBroadPhaseLayerFilterthe caller configured. Nothing incharacter.hsays so.For example:
cv(c)->Update(dt, toJphVec3(gravity), {}, {}, {}, {}, *allocator->ptr);Why this needs deciding rather than just fixing
Anything built on the current behaviour depends on layer-blind character collision. Making the filters real is the correct behaviour but it is a behaviour change, so it wants a deliberate decision rather than arriving inside a version bump.
The tests in
JoltC/tests/test_character_extra.cwere written to work either way, so they will not have to change.