
///////////////////////////////////////////////////////////////////////////////
//
// File   : Asura_PSP_SCEUtility_Handler.h
// Author : Andy Tate
// Date   : 4-Oct-2005
//
// Copyright (C) 2005 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

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

#ifndef __ASURA_PSP_SCEUTILITY_HANDLER_H__
#define __ASURA_PSP_SCEUTILITY_HANDLER_H__

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

#include "Core/Asura_Handle.h"


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

class Asura_IntVector_2;
class Asura_Vector_2;


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

class Asura_PSP_SCEUtility_Handler
{
public:
	// Public functions...

	virtual ~Asura_PSP_SCEUtility_Handler ()	{}

	// Abstract functions...
	virtual	bool							Update					(bool& bCancelled)	= 0;
	virtual	void							Render					(void)				= 0;


protected:
	// Protected variables...


	// Protected functions...

	Asura_PSP_SCEUtility_Handler  (void)	{}

	// Position calculation function...
			float							CalculateScreenScale	(void) const;
			void							CalculateScreenPosition	(const float fScale, const Asura_IntVector_2& xPSPPosition, Asura_Vector_2& xPCPosition) const;
			void							CalculateScreenPosition	(const Asura_IntVector_2& xPSPPosition, Asura_Vector_2& xPCPosition) const;


private:
	// Private variables...


	// Private functions...

	Asura_PSP_SCEUtility_Handler  (const Asura_PSP_SCEUtility_Handler& xOther);

			Asura_PSP_SCEUtility_Handler&	operator=				(const Asura_PSP_SCEUtility_Handler& xOther);

};   // End of class 'Asura_PSP_SCEUtility_Handler'.


#endif   // ifndef __ASURA_PSP_SCEUTILITY_HANDLER_H__


/// End of file. ///
