Skip to content

Commit

Permalink
Added physics null implementations for new Box2D implemenation (#8782)
Browse files Browse the repository at this point in the history
  • Loading branch information
JCash committed Apr 11, 2024
1 parent 3b77500 commit 3964ada
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 0 deletions.
11 changes: 11 additions & 0 deletions engine/physics/src/physics/physics_2d_null.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -348,4 +348,15 @@ namespace dmPhysics
void SynchronizeObject2D(HWorld2D world, HCollisionObject2D collision_object)
{
}

void* GetWorldContext2D(HWorld2D world)
{
return 0;
}

void* GetCollisionObjectContext2D(HCollisionObject2D collision_object)
{
return 0;
}

}
4 changes: 4 additions & 0 deletions engine/physics/src/physics/test/test_physics.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ struct Funcs
typedef void (*SetGravityFunc)(typename T::WorldType world, const dmVMath::Vector3& gravity);
typedef bool (*IsBulletFunc)(typename T::CollisionObjectType collision_object);
typedef void (*SetBulletFunc)(typename T::CollisionObjectType collision_object, bool value);
typedef void* (*GetWorldContextFunc)(typename T::WorldType world);
typedef void* (*GetCollisionObjectContextFunc)(typename T::CollisionObjectType collision_object);
typedef dmVMath::Vector3 (*GetGravityFunc)(typename T::WorldType world);
};

Expand Down Expand Up @@ -246,6 +248,8 @@ struct Test2D
Funcs<Test2D>::GetGravityFunc m_GetGravityFunc;
Funcs<Test2D>::IsBulletFunc m_IsBulletFunc;
Funcs<Test2D>::SetBulletFunc m_SetBulletFunc;
Funcs<Test2D>::GetWorldContextFunc m_GetWorldContextFunc;
Funcs<Test2D>::GetCollisionObjectContextFunc m_GetCollisionObjectContextFunc;

float* m_Vertices;
uint32_t m_VertexCount;
Expand Down
23 changes: 23 additions & 0 deletions engine/physics/src/physics/test/test_physics_2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ Test2D::Test2D()
, m_ReplaceShapeFunc(dmPhysics::ReplaceShape2D)
, m_IsBulletFunc(dmPhysics::IsBullet2D)
, m_SetBulletFunc(dmPhysics::SetBullet2D)
, m_GetWorldContextFunc(dmPhysics::GetWorldContext2D)
, m_GetCollisionObjectContextFunc(dmPhysics::GetCollisionObjectContext2D)
, m_Vertices(new float[3*2])
, m_VertexCount(3)
, m_PolygonRadius(b2_polygonRadius)
Expand Down Expand Up @@ -1819,6 +1821,27 @@ TYPED_TEST(PhysicsTest, SetGridShapeEnable)
dmPhysics::DeleteHullSet2D(hull_set);
}

TYPED_TEST(PhysicsTest, ScriptApiBox2D)
{
ASSERT_NE((void*)0, (*TestFixture::m_Test.m_GetWorldContextFunc)(TestFixture::m_World));

dmPhysics::CollisionObjectData data;
VisualObject vo_b;
// the sphere is in the upper right quadrant
vo_b.m_Position = dmVMath::Point3(9.0f, 9.0f, 0.0f);
data.m_Type = dmPhysics::COLLISION_OBJECT_TYPE_KINEMATIC;
data.m_Mass = 0.0f;
data.m_UserData = &vo_b;
data.m_Group = 0xffff;
data.m_Mask = 0xffff;
typename TypeParam::CollisionShapeType shape = (*TestFixture::m_Test.m_NewSphereShapeFunc)(TestFixture::m_Context, 8.0f);
typename TypeParam::CollisionObjectType dynamic_co = (*TestFixture::m_Test.m_NewCollisionObjectFunc)(TestFixture::m_World, data, &shape, 1u);

ASSERT_NE((void*)0, (*TestFixture::m_Test.m_GetCollisionObjectContextFunc)(dynamic_co));

(*TestFixture::m_Test.m_DeleteCollisionObjectFunc)(TestFixture::m_World, dynamic_co);
}

int main(int argc, char **argv)
{
jc_test_init(&argc, argv);
Expand Down

0 comments on commit 3964ada

Please sign in to comment.