From d126f5bc55b2a0f8d2b2db6a983d96956401eebe Mon Sep 17 00:00:00 2001 From: nothingTVatYT Date: Wed, 10 Jan 2024 18:36:05 +0100 Subject: [PATCH] use enum helper functions --- Source/Engine/Physics/Actors/RigidBody.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Source/Engine/Physics/Actors/RigidBody.cpp b/Source/Engine/Physics/Actors/RigidBody.cpp index 15ea95075..71151866a 100644 --- a/Source/Engine/Physics/Actors/RigidBody.cpp +++ b/Source/Engine/Physics/Actors/RigidBody.cpp @@ -304,33 +304,31 @@ void RigidBody::AddMovement(const Vector3& translation, const Quaternion& rotati { // filter rotation according to constraints Quaternion allowedRotation; - if (static_cast(GetConstraints()) & static_cast(RigidbodyConstraints::LockRotation)) + if (EnumHasAllFlags(GetConstraints(), RigidbodyConstraints::LockRotation)) allowedRotation = Quaternion::Identity; else { Float3 euler = rotation.GetEuler(); - const auto constraints = static_cast(GetConstraints()); - if (constraints & static_cast(RigidbodyConstraints::LockRotationX)) + if (EnumHasAnyFlags(GetConstraints(), RigidbodyConstraints::LockRotationX)) euler.X = 0; - if (constraints & static_cast(RigidbodyConstraints::LockRotationY)) + if (EnumHasAnyFlags(GetConstraints(), RigidbodyConstraints::LockRotationY)) euler.Y = 0; - if (constraints & static_cast(RigidbodyConstraints::LockRotationZ)) + if (EnumHasAnyFlags(GetConstraints(), RigidbodyConstraints::LockRotationZ)) euler.Z = 0; allowedRotation = Quaternion::Euler(euler); } // filter translation according to the constraints auto allowedTranslation = translation; - if (static_cast(GetConstraints()) & static_cast(RigidbodyConstraints::LockPosition)) + if (EnumHasAllFlags(GetConstraints(), RigidbodyConstraints::LockPosition)) allowedTranslation = Vector3::Zero; else { - const auto constraints = static_cast(GetConstraints()); - if (constraints & static_cast(RigidbodyConstraints::LockPositionX)) + if (EnumHasAnyFlags(GetConstraints(), RigidbodyConstraints::LockPositionX)) allowedTranslation.X = 0; - if (constraints & static_cast(RigidbodyConstraints::LockPositionY)) + if (EnumHasAnyFlags(GetConstraints(), RigidbodyConstraints::LockPositionY)) allowedTranslation.Y = 0; - if (constraints & static_cast(RigidbodyConstraints::LockPositionZ)) + if (EnumHasAnyFlags(GetConstraints(), RigidbodyConstraints::LockPositionZ)) allowedTranslation.Z = 0; } Transform t;