
///////////////////////////////////////////////////////////////////////////////
//
// File   : Asura_Chunk_FacialAnimation.h
// Author : Andy Tate
// Date   : 29-Aug-2008
//
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
	#pragma once
#endif   // ifdef ASURA_USE_PRAGMA_ONCE

#ifndef __ASURA_CHUNK_FACIALANIMATION_H__
#define __ASURA_CHUNK_FACIALANIMATION_H__

#if defined(ASURA_USE_FACIAL_ANIMATION_SYSTEM)

////////////////////////////////////////////////////////////////////////////////
// Include files...
////////////////////////////////////////////////////////////////////////////////

#include "ChunkSystem/Asura_Chunk_Loaders.h"


////////////////////////////////////////////////////////////////////////////////
// Forward class declarations...
////////////////////////////////////////////////////////////////////////////////

class Asura_FacialAnimation_Face;
class Asura_FacialAnimation_FaceAnimation;


////////////////////////////////////////////////////////////////////////////////
// Class declaration...
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Class        : Asura_Chunk_FacialAnimation_Face
// Author       : Andy Tate
// Date         : 29-Aug-2008
//
// Description  : Class used to handle chunking for face used by the
//				  facial-animation system.
////////////////////////////////////////////////////////////////////////////////

class Asura_Chunk_FacialAnimation_Face : public Asura_Chunk_Header
{
public:
	// Public functions...
	bool		Process(const Asura_Handle iFileHandle);
	static void	Create(const Asura_Hash_ID uHash, const Asura_FacialAnimation_Face& xFace, Asura_Chunk_Stream& xStream);


protected:
	// Protected variables...

	// Protected functions...


private:
	// Private typedefs...
	typedef Asura_Chunk_Header PARENT;

	// Private variables...
	static const u_int	s_uChunkVersion;

	// Private functions...
	Asura_Chunk_FacialAnimation_Face(void);
	Asura_Chunk_FacialAnimation_Face(const Asura_Chunk_FacialAnimation_Face& xOther);
	~Asura_Chunk_FacialAnimation_Face();

	Asura_Chunk_FacialAnimation_Face&	operator=(const Asura_Chunk_FacialAnimation_Face& xOther);

};   // End of class 'Asura_Chunk_FacialAnimation_Face'.



////////////////////////////////////////////////////////////////////////////////
// Class        : Asura_Chunk_FacialAnimation_FaceAnimation
// Author       : Andy Tate
// Date         : 29-Aug-2008
//
// Description  : Class used to handle chunking for face-animations used by
//				  the facial-animation system.
////////////////////////////////////////////////////////////////////////////////

class Asura_Chunk_FacialAnimation_FaceAnimation : public Asura_Chunk_Header
{
public:
	// Public functions...
	bool		Process(const Asura_Handle iFileHandle);
	static void	Create(const Asura_Hash_ID uHash, const Asura_FacialAnimation_FaceAnimation& xFaceAnimation, Asura_Chunk_Stream& xStream);


protected:
	// Protected variables...

	// Protected functions...


private:
	// Private typedefs...
	typedef Asura_Chunk_Header PARENT;

	// Private variables...
	static const u_int	s_uChunkVersion;

	// Private functions...
	Asura_Chunk_FacialAnimation_FaceAnimation(void);
	Asura_Chunk_FacialAnimation_FaceAnimation(const Asura_Chunk_FacialAnimation_FaceAnimation& xOther);
	~Asura_Chunk_FacialAnimation_FaceAnimation();

	Asura_Chunk_FacialAnimation_FaceAnimation&	operator=(const Asura_Chunk_FacialAnimation_FaceAnimation& xOther);

};   // End of class 'Asura_Chunk_FacialAnimation_FaceAnimation'.

#endif	//defined(ASURA_USE_FACIAL_ANIMATION_SYSTEM)

#endif   // ifndef __ASURA_CHUNK_FACIALANIMATION_H__


/// End of file. ///
