void CCharacterController::triggerOnColliderHit(const ControllerColliderCollision& value) { // Const-cast and modify is okay because we're the only object receiving this event ControllerColliderCollision& hit = const_cast<ControllerColliderCollision&>(value); hit.collider = mThisHandle; onColliderHit(hit); }
void PhysXCharacterController::onShapeHit(const PxControllerShapeHit& hit) { if (onColliderHit.empty()) return; ControllerColliderCollision collision; collision.position = fromPxExtVector(hit.worldPos); collision.normal = fromPxVector(hit.worldNormal); collision.motionDir = fromPxVector(hit.dir); collision.motionAmount = hit.length; collision.triangleIndex = hit.triangleIndex; collision.colliderRaw = (Collider*)hit.shape->userData; onColliderHit(collision); }