///////////////////////////////////////////////////////////////////////////////
//
// File: AVP_ServerEntity_CameraVolume.h
//
// Created by Martin G.Harris (6/9/2006)
// 
// Copyright (C) 2006 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __AVP_SERVER_ENTITY_CAMERA_VOLUME_H__
#define __AVP_SERVER_ENTITY_CAMERA_VOLUME_H__

#ifdef ASURA_USE_CAMERA_VOLUME

// Includes
#include "Entity/Triggers/Asura_ServerEntity_CameraVolume.h"

///////////////////////////////////////
// AVP_ServerEntity_CameraVolume //
///////////////////////////////////////

class AVP_ServerEntity_CameraVolume : public Asura_ServerEntity_CameraVolume
{
	typedef Asura_ServerEntity_CameraVolume PARENT;

public:
	AVP_ServerEntity_CameraVolume(bool bActive = true);
	AVP_ServerEntity_CameraVolume(Asura_Guid uGuid);

	virtual ~AVP_ServerEntity_CameraVolume();

	// Chunk buffer functions
	virtual	int  GetChunkBufferSize();
	virtual	void FillInChunkBuffer(char*& pcChunkBuffer);
	virtual	void InitialiseFromChunkBuffer(const char*& pcChunkBuffer);

public:
	// Static members
	static void CreateFromChunkBuffer( Asura_Guid uGuid, const char*& pcChunkBfr )
	{
		AVP_ServerEntity_CameraVolume* pxNew = new AVP_ServerEntity_CameraVolume(uGuid);
		if (pxNew)
		{
			pxNew->InitialiseFromChunkBuffer(pcChunkBfr);
		}
	}
};
#endif //ASURA_USE_CAMERA_VOLUME

#endif //__AVP_SERVER_ENTITY_CAMERA_VOLUME_H__

