| 403 | } |
| 404 | |
| 405 | void Collider::OnTransformChanged() |
| 406 | { |
| 407 | // Base |
| 408 | PhysicsColliderActor::OnTransformChanged(); |
| 409 | |
| 410 | if (_staticActor) |
| 411 | { |
| 412 | PhysicsBackend::SetRigidActorPose(_staticActor, _transform.Translation, _transform.Orientation); |
| 413 | } |
| 414 | else if (const RigidBody* rigidBody = GetAttachedRigidBody()) |
| 415 | { |
| 416 | const Vector3 localPosePos = (_localTransform.Translation + _localTransform.Orientation * _center) * rigidBody->GetScale(); |
| 417 | if (_cachedLocalPosePos != localPosePos || _cachedLocalPoseRot != _localTransform.Orientation) |
| 418 | { |
| 419 | _cachedLocalPosePos = localPosePos; |
| 420 | _cachedLocalPoseRot = _localTransform.Orientation; |
| 421 | PhysicsBackend::SetShapeLocalPose(_shape, localPosePos, _cachedLocalPoseRot); |
| 422 | } |
| 423 | } |
| 424 | |
| 425 | const float scale = GetScale().GetAbsolute().MaxValue(); |
| 426 | if (_cachedScale != scale) |
| 427 | UpdateGeometry(); |
| 428 | UpdateBounds(); |
| 429 | } |
| 430 | |
| 431 | void Collider::OnLayerChanged() |
| 432 | { |
nothing calls this directly
no test coverage detected