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.
50 lines
1.4 KiB
50 lines
1.4 KiB
5 years ago
|
//========= 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
|