v3.1.0 Minor Release


Summary

This release addresses various fixes and improvements that were missed in the 3.0 release. Despite introducing some breaking changes, I decided to classify this as a minor release rather than version 4.0, as all the breaking changes pertain to the same systems as the 3.0 release.

FirstContact / ContactEnded System Overhaul

Previously, the FirstContact was only reported for Colliders and not for CollisionObjects. The system has now been split into two separate systems: one for Collider pairs and one for CollisionObject pairs.

  • CollisionObjects:
    • FirstContact between two CollisionObjects is reported once any Collider of one contacts any Collider of the other CollisionObject.
    • The ContactEnded() function for the CollisionObject is called once all contacts between all of the Colliders have ended.
  • Colliders:
    • FirstContact between two Colliders is reported the first time they contact (no contact in the previous frame).
    • The ColliderContactEnded() function is called once the contact ends (contact in the previous frame but no contact in the current frame).

Other Changes:

  • Namespace Changes:
    • CollisionObject moved to the CollisionSystem namespace.
  • Class Removals:
    • ContactEndedInformation class removed.
    • Contact class removed.
  • Function Parameter Changes:
    • ContactEnded(CollisionObject other) function parameters changed.
    • ColliderContactEnded(Collider self, Collider other) function parameters changed.
  • CollisionInformation Improvements:
    • CollisionInformation now includes a FirstContact member, reported only for the two involved CollisionObjects, separate from any FirstContact reporting between Colliders.
    • General improvements and cleanup of CollisionInformation, including new functions.
    • New functions for Exists, Find, and FindAll CollisionPoints.
    • New functions for finding Closest, Furthest, and Combined CollisionPoint.
  • Collision Improvements:
    • Functions for Exists, Find, and FindAll CollisionPoints added.
  • CollisionPoints:
    • GetClosest/Furthest/FacingTowards functions now skip invalid collision points
  • Renaming:
    • GetAverageCollisionPoint() renamed to GetCombinedCollisionPoint() in multiple classes.
  • ResolveCollision Update:
    • CollisionObject.ResolveCollision() is now called for each generated CollisionInformation instead of receiving a list of CollisionInformation.

Release on GitHub.

Files

Shape Engine Examples (v3.1.0) 33 MB
3 hours ago
Shape Engine Examples (v3.1.0) 33 MB
3 hours ago

Get Shape Engine

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.