//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef ICLIENTENTITY_H #define ICLIENTENTITY_H #ifdef _WIN32 #pragma once #endif #include "iclientnetworkable.h" #include "iclientrenderable.h" #include "iclientthinkable.h" struct Ray_t; class CGameTrace; typedef CGameTrace trace_t; class CMouthInfo; class IClientEntityInternal; struct SpatializationInfo_t; //----------------------------------------------------------------------------- // Purpose: All client entities must implement this interface. //----------------------------------------------------------------------------- abstract_class IClientEntity : public IClientUnknown, public IClientRenderable, public IClientNetworkable, public IClientThinkable { public: // Delete yourself. virtual void Release(void) = 0; // Network origin + angles virtual const Vector& GetAbsOrigin(void) const = 0; virtual const QAngle& GetAbsAngles(void) const = 0; virtual CMouthInfo* GetMouth(void) = 0; // Retrieve sound spatialization info for the specified sound on this entity // Return false to indicate sound is not audible virtual bool GetSoundSpatialization(SpatializationInfo_t & info) = 0; }; #endif // ICLIENTENTITY_H