blob: 6aa475fbdf8b6b32f885717be6ab3d2cdeba4188 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
//========= 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
|