You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef PHYSICS_FLUID_H |
|
#define PHYSICS_FLUID_H |
|
#pragma once |
|
|
|
#include "vphysics_interface.h" |
|
|
|
class IVP_Compact_Surface; |
|
class IVP_Environment; |
|
class IVP_Listener_Phantom; |
|
class CBuoyancyAttacher; |
|
class IVP_Liquid_Surface_Descriptor; |
|
class CPhysicsObject; |
|
class CPhysicsObject; |
|
|
|
class CPhysicsFluidController : public IPhysicsFluidController |
|
{ |
|
public: |
|
CPhysicsFluidController( CBuoyancyAttacher *pBuoy, IVP_Liquid_Surface_Descriptor *pLiquid, CPhysicsObject *pObject, int nContents ); |
|
~CPhysicsFluidController( void ); |
|
|
|
virtual void SetGameData( void *pGameData ); |
|
virtual void *GetGameData( void ) const; |
|
virtual void GetSurfacePlane( Vector *pNormal, float *pDist ) const; |
|
virtual float GetDensity() const; |
|
virtual void WakeAllSleepingObjects(); |
|
virtual int GetContents() const; |
|
|
|
class IVP_Real_Object *GetIVPObject(); |
|
const class IVP_Real_Object *GetIVPObject() const; |
|
|
|
private: |
|
CBuoyancyAttacher *m_pBuoyancy; |
|
IVP_Liquid_Surface_Descriptor *m_pLiquidSurface; |
|
CPhysicsObject *m_pObject; |
|
int m_nContents; |
|
void *m_pGameData; |
|
}; |
|
|
|
extern CPhysicsFluidController *CreateFluidController( IVP_Environment *pEnvironment, CPhysicsObject *pFluidObject, fluidparams_t *pParams ); |
|
|
|
|
|
#endif // PHYSICS_FLUID_H
|
|
|