Commit Graph

86 Commits

Author SHA1 Message Date
Léo Lam 0e717ed15d ksys/phys: Finish EntityContactListener 2022-03-10 12:58:34 +01:00
Léo Lam 9b1d08ca99 ksys/phys: Deduplicate hkpEntity -> RigidBody getters 2022-03-08 20:33:19 +01:00
Léo Lam a9ee6f839e ksys/phys: Start adding EntityContactListener 2022-03-08 20:30:12 +01:00
Léo Lam c11a33c5ab ksys/phys: Implement ContactMgr::registerContactPoint for queries 2022-03-08 12:59:44 +01:00
Léo Lam 6830bcbb64 ksys/phys: Add SphereBasedClosestPointQuery 2022-03-08 00:11:52 +01:00
Léo Lam 62959cc554 ksys/phys: Start adding ClosestPointQuery and iterator stuff 2022-03-07 12:44:38 +01:00
Léo Lam 6229e5d41a ksys/phys: Move Constraint stuff to a separate folder 2022-03-06 22:38:43 +01:00
Léo Lam a1f9eea300 ksys/phys: Add QueryContactPointInfo 2022-03-06 21:35:36 +01:00
Léo Lam 8a6b47d132 ksys/phys: Add more ContactMgr functions 2022-03-06 16:10:13 +01:00
Léo Lam 683108b75c ksys/phys: Add CollisionInfoBase::enableLayer/disableLayer
The pattern seems to show up very often in CollisionInfoBase users
2022-03-06 12:41:41 +01:00
Léo Lam 5dde8ced89 ksys/phys: Add ContactPointInfo iterator
It's mostly the same thing as LayerContactPointInfo::Iterator.
With some functions inexplicably marked as virtual.
2022-03-06 01:37:57 +01:00
Léo Lam 631a0ab388 ksys/phys: Finish LayerContactPointInfo
Clean up the iterator stuff and fix some inaccuracies.
2022-03-06 00:30:05 +01:00
Léo Lam ba2d81b7b8 ksys/phys: Implement ContactMgr functions used by ContactListener 2022-03-05 19:34:01 +01:00
Léo Lam d839816081 ksys/phys: Finish ContactListener 2022-03-05 17:16:32 +01:00
Léo Lam a222e40180 ksys/phys: Add more ContactListener functions and Havok prereqs 2022-03-03 12:29:28 +01:00
Léo Lam b2a66ca858 ksys/phys: ContactPointInfoEx -> ContactLayerContactPointInfo
Turns out it's the equivalent to ContactLayerCollisionInfo.
2022-03-02 01:25:11 +01:00
Léo Lam 220cb53468 ksys/phys: Add ContactLayerCollisionInfo 2022-03-01 20:10:56 +01:00
Léo Lam 35cc8dd9ee ksys/phys: Add RigidBody::setCollisionInfo 2022-03-01 19:50:47 +01:00
Léo Lam 6077a63ea6 ksys/phys: Unify ContactPointInfo/CollisionInfo with InstanceSet 2022-03-01 19:31:44 +01:00
Léo Lam 11dafc6ac3 ksys/phys: Add CollisionInfo 2022-03-01 19:28:11 +01:00
Léo Lam 1ee012858c ksys: Rename RigidContactPoints to match param files 2022-03-01 19:12:29 +01:00
Léo Lam 18d0c53293 ksys/phys: Add some ContactListener prerequisites 2022-03-01 19:11:54 +01:00
Léo Lam 7f52270cdd ksys/phys: SensorCollisionMask layer2 -> ignored_layer 2022-03-01 13:24:18 +01:00
Léo Lam f852073fd4 ksys/phys: Finish SensorGroupFilter 2022-03-01 13:15:51 +01:00
Léo Lam 7fab958e72 ksys/phys: Rename collision filter info structs for more clarity
And consistency.
2022-02-28 22:09:53 +01:00
Léo Lam e219eccf0d ksys/phys: Start implementing SensorGroupFilter 2022-02-28 20:58:04 +01:00
Léo Lam c32557b793 ksys/phys: Add more EntityGroupFilter functions 2022-02-28 17:29:49 +01:00
Léo Lam a6268d3815 ksys/phys: Add CharacterControllerParam shape creation 2022-02-13 19:43:56 +01:00
Léo Lam dfcfbbe4a4 ksys/phys: Move common headers (Defines, MaterialMask) out of System/ 2022-02-13 19:08:08 +01:00
Léo Lam db72086c68 ksys/phys: Finish RigidBodyFromShape (add factory functions) 2022-02-13 18:44:48 +01:00
Léo Lam fc8d4b5c68 Fix matching issue in ksys::phys::motionTypeFromText 2022-02-13 01:16:52 +01:00
Léo Lam 6519cce927 ksys/phys: Start merging physShapeParam with RigidBody/Shape
Turns out we already have a bunch of ShapeParam classes in
physShapeParam and parts of RigidBody/Shape are just
duplicates -- whoops.

ShapeParam is renamed to ShapeParamObj to avoid any confusion
with the (.*)ShapeParam classes.
2022-01-30 17:07:34 +01:00
Léo Lam a1a283acf7 ksys/phys: Add more InstanceSet members 2022-01-30 00:55:12 +01:00
Léo Lam d9eeeb6ecc ksys/phys: Add RigidBodySet 2022-01-30 00:17:02 +01:00
Léo Lam 61201ca54b ksys/phys: Rename RigidBody/UserTag broadphase border callbacks 2022-01-29 12:48:38 +01:00
Léo Lam e1f3e551cb ksys/phys: Add more RigidBody functions 2022-01-27 01:54:56 +01:00
Léo Lam b728917ef4 ksys/phys: Add RigidBody collision filter info functions
Including a bunch of BitFields additions so we can get the desired
codegen without sacrificing readability or flexibility.
(The alternative would be building masks and masking manually.)

getCollisionFilterInfo was changed to return a u32 instead of
EntityCollisionFilterInfo because a collision filter info mask
can be either an EntityCollisionFilterInfo or a ReceiverMask.

(Also at some point we'll probably want to rename
EntityCollisionFilterInfo because that is also used for sensor
rigid bodies and not just for entities.)
2022-01-25 00:15:29 +01:00
Léo Lam 4531c033a3 ksys/phys: Rename SystemGroupHandler mFilterIndex -> mLayerType
It is actually a ContactLayerType -- there's a comparison against
the contact layer type in RigidBody.
2022-01-24 12:38:05 +01:00
Léo Lam a33ebd2130 ksys/phys: Introduce {First,Last}{Entity,Sensor} constants to improve clarity 2022-01-23 17:00:44 +01:00
Léo Lam 719c5f02a7 ksys/phys: Add more RigidBody functions (motion, collision mask) 2022-01-22 20:09:57 +01:00
Léo Lam c36c03c6fb ksys/phys: Start adding ContactListener 2022-01-21 15:27:55 +01:00
Léo Lam c292675646 ksys/phys: Rename MemSystem to System
It was called MemSystem in the IDB because of a string in
ksys::InitializeApp that referred to MemSystem initialisation as
"Physics Memory System"; however that string actually referred to an
initialisation step for the physics system, not to the name of the
subsystem itself.
2022-01-21 12:43:24 +01:00
Léo Lam 98c69ebaef ksys/phys: Add one more RigidBody function 2022-01-21 12:20:05 +01:00
Léo Lam 52e2111ff3 ksys/phys: Add even more RigidBody functions 2022-01-19 00:33:49 +01:00
Léo Lam 8dd5608b79 ksys/phys: Rename RigidBody "isMassScaling" mode to "isSensor"
That also explains the comparison against 1 (ContactLayerType::Sensor)
in the constructor.
2022-01-17 17:02:11 +01:00
Léo Lam 392c0973c7 ksys/phys: Add a bunch of easy RigidBody functions 2022-01-17 16:58:22 +01:00
Léo Lam 4eb07ca88c ksys/phys: Start adding RigidBodyRequestMgr 2022-01-16 23:29:48 +01:00
Léo Lam 99b913f86d ksys/phys: Move RigidBodyRequestMgr to its own header 2022-01-16 15:55:42 +01:00
Léo Lam 2ed36c7dc0 ksys/phys: Add prerequisites for RigidBody (RigidBodyParam fixes)
Seems to have fixed _ZN4ksys4phys11InstanceSet14sub_7100FBB00CEPNS0_9RigidBodyEPNS0_14RigidBodyParamE
2022-01-16 13:00:35 +01:00
Léo Lam 278b088bd1 ksys/phys: Rename RigidBodyParamView to RigidBodyInstanceParam for clarity 2022-01-13 12:14:05 +01:00