working physics

This commit is contained in:
2026-03-04 00:18:56 +02:00
parent 02898d62c0
commit 9884006888
12 changed files with 462 additions and 53 deletions

View File

@@ -4,6 +4,7 @@
#include "tier0/platform.h"
#include "trig.h"
#ifndef PHYSICS_OBJECT_DEFINED
struct BallShape_t
{
float m_fRadius;
@@ -16,16 +17,18 @@ struct CuboidShape_t
float m_fExtentZ;
};
typedef void *HShape;
typedef void *HCollider;
enum EPhysicsBodyType
{
k_EPhysics_Static,
k_EPhysics_Dynamic,
k_EPhysics_KinematicPositionBased,
k_EPhysics_KinematicRotationBased,
k_EPhysics_KinematicVelocityBased,
};
#endif
typedef void *HShape;
typedef void *HCollider;
abstract_class IPhysicsBody
{
@@ -38,6 +41,11 @@ public:
abstract_class IPhysicsWorld
{
public:
virtual void Frame( float fDelta ) = 0;
virtual IPhysicsBody *CreateRigidBody( HCollider hCollider, EPhysicsBodyType eType) = 0;
virtual void DestroyPhysicsBody( IPhysicsBody *pBody ) = 0;
virtual void SetGravity( float fGravity ) = 0;
};
@@ -54,9 +62,8 @@ public:
virtual IPhysicsWorld *CreateWorld() = 0;
virtual void DestroyWorld( IPhysicsWorld *pWorld ) = 0;
virtual IPhysicsBody *CreateRigidBody( HCollider hCollider, EPhysicsBodyType eType) = 0;
virtual void DestroyPhysicsBody( IPhysicsBody *pBody ) = 0;
};
#define PHYSICS_INTERFACE_VERSION "Physics001"
#endif