different stuff in physics

This commit is contained in:
2026-03-18 18:41:28 +02:00
parent b56d85f95d
commit 79ceac1005
8 changed files with 223 additions and 18 deletions

View File

@@ -4,6 +4,10 @@
#include "tier0/platform.h"
#include "trig.h"
typedef void *HShape;
typedef void *HCollider;
#ifndef PHYSICS_OBJECT_DEFINED
struct BallShape_t
{
@@ -25,6 +29,19 @@ struct TriangleMeshShape_t
uint32_t m_nIndiciesCount;
};
struct CastResult_t
{
bool m_bIsHit;
HCollider m_hCollider;
Vector m_vCollisionPoint;
// 0 to 1
float m_fTime;
// 0 to lenght
float m_fDistance;
};
enum EPhysicsBodyType
{
k_EPhysics_Static,
@@ -34,17 +51,16 @@ enum EPhysicsBodyType
};
#endif
typedef void *HShape;
typedef void *HCollider;
abstract_class IPhysicsBody
{
public:
virtual void SetPosition( Vector vPosition ) = 0;
virtual void SetRotation( Quat vRotation ) = 0;
virtual Vector GetPosition() = 0;
virtual Quat GetRotation() = 0;
virtual void SetType( EPhysicsBodyType eType ) = 0;
virtual void SetGravityScale( float fScale ) = 0;
};
@@ -58,6 +74,9 @@ public:
virtual void DestroyPhysicsBody( IPhysicsBody *pBody ) = 0;
virtual void SetGravity( float fGravity ) = 0;
virtual CastResult_t RayCast( Vector vBegin, Vector vEnd ) = 0;
virtual CastResult_t ShapeCast( HShape hShape, Quat vOrientation, Vector vBegin, Vector vEnd ) = 0;
};