//*******************************************************************
//
// File: Asura_PS2_Carpet_Mesh_Store.h
//
// Created: 06 March 2006 by Jake Turner
//
// Description: 
// PS2 specific capret mesh storage class
// Manager class for PS2 carpet mesh data
//
//*******************************************************************

#ifdef ASURA_USE_CARPET

#ifndef __ASURA_PS2_CARPET_MESH_STORE_H__
#define __ASURA_PS2_CARPET_MESH_STORE_H__

class Asura_Vector_3;
struct Asura_PS2_Carpet_Style_DMA_Data;

class Asura_PS2_Carpet_Mesh_Store
{

public:

	static void Initialize( void );
	static void Shutdown( void );
	static void Reset( void ); 		
	static void Render( const float fGlobalFade );

	static bool Load( Asura_Handle xFile );

private:

	static void Begin( void );
	static void End( void );

	static void SendPendingData( const bool bWillMSCNTForNextStrip );
	static void SetCamFlags( const u_int uVisFlags, const u_int uClipFlags );
	static void SetStyle( const Asura_PS2_Carpet_Style_DMA_Data* pxStyle );
    static void SetModulePosAndSeed( const Asura_Vector_3& xPos, u_int uSeed );

};

#endif // #ifndef __ASURA_PS2_CARPET_MESH_STORE_H__

#endif // #ifdef ASURA_USE_CARPET