10 Months Ago
Refactor ray and shape cast (#78) Shape casts are more naturally expressed as an origin transform with translation. Ray casts now use this convention as well. cast (start,end) -> (origin,translation) Add support for multiple cast hits with a callback. Added test for this. Improved test bed with: - first person camera on right-click - tree view for tests - all tests in cpp files for faster iteration - tests are now categorized - save/load of settings shape cast penetration (#79) Simple penetration computation for sphere and capsule casts that initially overlap. Must be within radius. Deep overlap not supported. For sphere or capsule versus mesh, returns the deepest triangle. Added buffering and flushing for text rendering. Report penetration for all cases (#80) Report final penetration in all cases, this lets a character mover sweep and resolve. This is needed because shapes with a radius may have a small overlap at the end of the shape cast. fixes: - sleeping assert - sleeping tolerance use length units - fix shape filtering in broad-phase Cast bug fix (#81) missing case in recent refactor Fix some more cast callback conditions (#82) more testing, more bugs fixed sample IK Solver (#83) Izabu: - Initial commit of full-body IK solver and test Body Definitions (#84) overlap tests remove bvh alignment eliminate duplicate swing/twist functions eliminate redundant limit macros simplify unaligned SIMD load beginning of C API Fix Unreal build (#85) Closest point on body (#86) Also fixed sleep Re-arranged GJK proxy to remove hole in struct Tested closest point in Explosion sample Events (#87) Event arrays are available at the end of the time step instead of using callbacks. Added a faster array for simple data types. Shape definitions for more efficient shape creation. Event fixes (#88) Added hit events and a world level threshold. Captures the manifold point with the largest approach velocity. Added stack array (but not used yet). Added test for hit events. Added initial relative normal velocity the the manifold. We can use this later for speculative restitution. No longer copying manifold data to begin events. All events are configured on shapes and all are off by default. Axis lock Joint active Joint breaking Joint break callback IZ_LINEAR_SLOP ShouldCollide callback Ignore izShouldCollide(Body, Body) if one of the shapes is a sensor Sphere query broadphase Heightfield shape Mesh contact checks IzConcaveShape Dont calculate mass for heightfield