update with feedback from PR

Signed-off-by: greerdv <greerdv@amazon.com>
This commit is contained in:
greerdv
2022-01-24 12:38:15 +00:00
parent 6a700e6b95
commit d412f3cc50
3 changed files with 19 additions and 18 deletions
@@ -55,7 +55,7 @@ namespace PhysX
m_colliderConfig.SetPropertyVisibility(Physics::ColliderConfiguration::Offset, false);
}
AZ::Crc32 EditorShapeColliderComponent::SubdivisionCountVisibility()
AZ::Crc32 EditorShapeColliderComponent::SubdivisionCountVisibility() const
{
if (m_shapeType == ShapeType::Cylinder)
{
@@ -65,7 +65,7 @@ namespace PhysX
return AZ::Edit::PropertyVisibility::Hide;
}
AZ::Crc32 EditorShapeColliderComponent::SingleSidedVisibility()
AZ::Crc32 EditorShapeColliderComponent::SingleSidedVisibility() const
{
if ((m_shapeType == ShapeType::QuadSingleSided || m_shapeType == ShapeType::QuadDoubleSided)
&& GetEntity()->FindComponent<EditorRigidBodyComponent>() == nullptr)
@@ -124,16 +124,16 @@ namespace PhysX
void EditorShapeColliderComponent::GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided)
{
provided.push_back(AZ_CRC("PhysicsWorldBodyService", 0x944da0cc));
provided.push_back(AZ_CRC("PhysXColliderService", 0x4ff43f7c));
provided.push_back(AZ_CRC("PhysXTriggerService", 0x3a117d7b));
provided.push_back(AZ_CRC("PhysXShapeColliderService", 0x98a7e779));
provided.push_back(AZ_CRC_CE("PhysicsWorldBodyService"));
provided.push_back(AZ_CRC_CE("PhysXColliderService"));
provided.push_back(AZ_CRC_CE("PhysXTriggerService"));
provided.push_back(AZ_CRC_CE("PhysXShapeColliderService"));
}
void EditorShapeColliderComponent::GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required)
{
required.push_back(AZ_CRC("TransformService", 0x8ee22c50));
required.push_back(AZ_CRC("ShapeService", 0xe86aa5fe));
required.push_back(AZ_CRC_CE("TransformService"));
required.push_back(AZ_CRC_CE("ShapeService"));
}
void EditorShapeColliderComponent::GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& incompatible)
@@ -422,7 +422,6 @@ namespace PhysX
SetShapeConfig(ShapeType::QuadSingleSided, shapeConfig);
}
else
{
// it's not possible to create a perfectly 2d convex in PhysX, so the best we can do is a very thin box
@@ -105,9 +105,9 @@ namespace PhysX
void RefreshUiProperties();
AZ::u32 OnSubdivisionCountChange();
AZ::Crc32 SubdivisionCountVisibility();
AZ::Crc32 SubdivisionCountVisibility() const;
void OnSingleSidedChange();
AZ::Crc32 SingleSidedVisibility();
AZ::Crc32 SingleSidedVisibility() const;
// AZ::Component
void Activate() override;
@@ -470,7 +470,7 @@ namespace PhysXEditorTests
void SetTrigger(PhysX::EditorShapeColliderComponent* editorShapeColliderComponent, bool isTrigger)
{
SetBoolValueOnComponent(editorShapeColliderComponent, AZ_CRC("Trigger", 0x1a6b0f5d), isTrigger);
SetBoolValueOnComponent(editorShapeColliderComponent, AZ_CRC_CE("Trigger"), isTrigger);
}
bool GetBoolValueFromComponent(AZ::Component* component, AZ::Crc32 name)
@@ -489,17 +489,17 @@ namespace PhysXEditorTests
bool IsTrigger(PhysX::EditorShapeColliderComponent* editorShapeColliderComponent)
{
return GetBoolValueFromComponent(editorShapeColliderComponent, AZ_CRC("Trigger"));
return GetBoolValueFromComponent(editorShapeColliderComponent, AZ_CRC_CE("Trigger"));
}
void SetSingleSided(PhysX::EditorShapeColliderComponent* editorShapeColliderComponent, bool singleSided)
{
SetBoolValueOnComponent(editorShapeColliderComponent, AZ_CRC("SingleSided"), singleSided);
SetBoolValueOnComponent(editorShapeColliderComponent, AZ_CRC_CE("SingleSided"), singleSided);
}
bool IsSingleSided(PhysX::EditorShapeColliderComponent* editorShapeColliderComponent)
{
return GetBoolValueFromComponent(editorShapeColliderComponent, AZ_CRC("SingleSided"));
return GetBoolValueFromComponent(editorShapeColliderComponent, AZ_CRC_CE("SingleSided"));
}
EntityPtr CreateRigidBox(const AZ::Vector3& boxDimensions, const AZ::Vector3& position)
@@ -636,7 +636,6 @@ namespace PhysXEditorTests
EXPECT_NEAR(aabb.GetMin().GetY(), -0.6f, 1e-3f);
EXPECT_NEAR(aabb.GetMax().GetX(), 2.7f, 1e-3f);
EXPECT_NEAR(aabb.GetMax().GetY(), 0.6f, 1e-3f);
EXPECT_TRUE(true);
}
TEST_P(PhysXEditorParamBoolFixture, EditorShapeColliderComponent_TriggerSettingIsRememberedWhenSwitchingToQuadAndBack)
@@ -731,9 +730,12 @@ namespace PhysXEditorTests
EntityPtr gameQuadEntity = CreateActiveGameEntityFromEditorEntity(editorQuadEntity.get());
EntityPtr gameBoxEntity = CreateActiveGameEntityFromEditorEntity(editorBoxEntity.get());
// give the box enough upward velocity to rise above the level of the quad and simulate
// give the box enough upward velocity to rise above the level of the quad
// simulate for enough time that the box would have reached the top of its trajectory and fallen back past the starting point if
// it hadn't collided with the top of the quad
const int numTimesteps = 100;
Physics::RigidBodyRequestBus::Event(gameBoxEntity->GetId(), &Physics::RigidBodyRequests::SetLinearVelocity, AZ::Vector3::CreateAxisZ(6.0f));
PhysX::TestUtils::UpdateScene(m_defaultScene, AzPhysics::SystemConfiguration::DefaultFixedTimestep, 200);
PhysX::TestUtils::UpdateScene(m_defaultScene, AzPhysics::SystemConfiguration::DefaultFixedTimestep, numTimesteps);
// the box should travel through the base of the quad because it has no collision from that direction
// and land on the top surface of the quad, which does have collision