different stuff in physics
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user