104 lines
2.0 KiB
C++
104 lines
2.0 KiB
C++
#ifndef PHYSICS_H
|
|
#define PHYSICS_H
|
|
|
|
#include "tier0/lib.h"
|
|
#include "stdint.h"
|
|
#include "tier1/utlvector.h"
|
|
|
|
|
|
typedef void Collider;
|
|
typedef void RigidBodyHandle;
|
|
|
|
template <typename T>
|
|
struct Point {
|
|
T x, y, z;
|
|
};
|
|
|
|
typedef struct u128 {
|
|
uint64_t a;
|
|
uint64_t b;
|
|
} u128;
|
|
|
|
#include "physics_gen.h"
|
|
|
|
extern funnyphysics *px;
|
|
|
|
class CPxCollider
|
|
{
|
|
public:
|
|
virtual void Spawn( float fFriction = 0.5 ) = 0;
|
|
virtual void Destroy( void );
|
|
Collider *m_pCollider;
|
|
};
|
|
|
|
class CPxBallMesh: public CPxCollider
|
|
{
|
|
public:
|
|
virtual void Spawn( float fFriction = 0.5 ) override;
|
|
virtual void Destroy( void ) override;
|
|
float m_fRadius;
|
|
};
|
|
|
|
class CPxBoxMesh: public CPxCollider
|
|
{
|
|
public:
|
|
virtual void Spawn( float fFriction = 0.5 ) override;
|
|
virtual void Destroy( void ) override;
|
|
float m_fRadius[3];
|
|
};
|
|
|
|
class CPxTriangleMesh: public CPxCollider
|
|
{
|
|
public:
|
|
virtual void Spawn( float fFriction = 0.5 ) override;
|
|
virtual void Destroy( void ) override;
|
|
};
|
|
|
|
class CPxRigidKinematicPosition
|
|
{
|
|
public:
|
|
void Spawn( CPxCollider *pCollider, px_matrix matrix, px_rigidbody_params params );
|
|
px_vec3 GetPosition( void );
|
|
px_matrix GetMatrix ( void );
|
|
void Destroy( void );
|
|
CPxCollider *m_pCollider;
|
|
RigidBodyHandle *m_pRigidBody;
|
|
};
|
|
|
|
class CPxRigidBody
|
|
{
|
|
public:
|
|
void Spawn( CPxCollider *pCollider, px_matrix matrix, px_rigidbody_params params );
|
|
px_vec3 GetPosition( void );
|
|
px_vec3 GetVelocity( void );
|
|
void SetPosition( px_vec3 position );
|
|
void SetVelocity( px_vec3 velocity );
|
|
px_matrix GetMatrix ( void );
|
|
void Destroy( void );
|
|
CPxCollider *m_pCollider;
|
|
RigidBodyHandle *m_pRigidBody;
|
|
};
|
|
|
|
class CPxStaticBody
|
|
{
|
|
public:
|
|
void Spawn( CPxCollider *pCollider, px_matrix matrix, px_rigidbody_params params );
|
|
px_vec3 GetPosition( void );
|
|
px_matrix GetMatrix ( void );
|
|
void Destroy( void );
|
|
CPxCollider *m_pCollider;
|
|
};
|
|
|
|
class CPxFixedBody
|
|
{
|
|
public:
|
|
void Spawn( CPxCollider *pCollider, px_matrix matrix, px_rigidbody_params params );
|
|
px_vec3 GetPosition( void );
|
|
px_matrix GetMatrix ( void );
|
|
void Destroy( void );
|
|
CPxCollider *m_pCollider;
|
|
};
|
|
|
|
|
|
#endif
|