159 Commits over 30 Days - 0.22cph!
Remove shape from body and remove body from world checks if it owns them first
World query (cos mixed shadows uses it)
Disable shadows on debug rendering
Get cast result surface properties from hit shape material
Shape GetInertiaProperties (overkill? Only CModelPreviewPhysicsShape uses it)
Adding/removing tags on shapes collision attributes until we know how this fits into the filtering system
Aggregate SetCollisionAttributesFromResource and SetTotalMass
Setup the callbacks for contact modify and end
Prismatic joint from desc
Spring joint from desc
Port spring joint from rubikon https://files.facepunch.com/layla/1b0611b1/sbox_0041.mp4
Remove World StepCollision and GetSimulationTimeElapsed, doubt these are needed anymore
Body and Shape SetMaterialIndex
World GetBody by index
Remove legacy objectparams_t stuff
Calculate collision impact forces to give the same results we currently get
Another big interface cleanup
Disable rendering of debug scene objects when debug rendering is disabled
Shape set material (density, friction, restitution)
Aggregate set surface properties
Set shape material when building aggregate
Collision events with bullshit impact strength until this can be calculated properly
Don't enable joint collision by default
Fix mesh shape debug drawing https://files.facepunch.com/layla/1b0411b1/sbox-dev_Iu61effQRf.png
Create debug scene objects for edges
Delete debug sceneobjects when we're done with them
GetLocalInertiaOrientation, GetLocalInertiaVector
Another big interface cleanup
FindClosestPointOnConvexShapes using gjk
Aggregate GetBbox and GetBboxFromProxies
Hook up some debug drawing https://files.facepunch.com/layla/1b0311b1/sbox_0018.mp4
Add revolute joint from desc
Spherical and conical from desc (both the same for now because the only difference should be limits)
Use aligned alloc in dynamic tree, fixes crash in vLoad3A
Add pre and post solve callbacks
ApplyLinearImpulseAtWorldSpace, GetMassCenter
Remove static and active aggregates when destroying aggregate
Get active body list for active aggregates
Don't wake up statics, otherwise do a forced wakeup (bug in library where a body can be awake but not in the active list?)
Don't create hull for CastBoxSingle, it only needs to know the 8 corner verts
CastRaySingle, CastSphereSingle
Add weld joint from desc
CastBoxSingle
Clamp sphere and capsule radius to linear slop
Set UNITS_PER_METER to 40
Build bodies and shapes for aggregate
SetAggregateInstance and SetGameSceneNodeHandle
Gather active aggregates to build the awake step results
When building aggregate bodies, add body, set motion type THEN set transform, otherwise it gets stuck in a weird deactivated state
Remove more shit from physicslib
Move the remaining shit from public/rubikon to public/physicslib
Some interface cleanup
Delete rubikon so it stops showing up in searches
Remove loads of shit from public/rubikon
Hook up auto sleeping
Move physics resource loading to its own file
Step the world
Hook up velocity and position iterations
Remove active body stuff, unused
Fix all compile errors, assert out all unimplemented functions
Start on physics joint
Remove physicsdebugdraw
Forces and torques
Transformations
AddSphereShape, AddCapsuleShape
Linear/angular velocity and impulse
Impl the easy body functions
Body debug name
Transform to matrix3x4_t cast
Body get and set transform
Get rid of intersectioncontroller
Put debug name on physics shape, internal shape doesn't have this anymore
Assert out all shape functions that are tricky/unknown
Remove GJKProxy, GJKProxyRadius and GetSupport, surely these shouldn't be needed on an interface
Impl shape CastRay and CastSphere, get rid of CastBox, probably not used
Impl shape GetType
Impl shape GetType
Bounds and transform casts
Impl shape BuildBounds