#include "rendering.h"

//----------------------------------------------------------------------------
// Mesh handler for the rendering
//----------------------------------------------------------------------------
abstract_class IMesh
{
public:
	virtual void SetVertexBuffer( IVertexBuffer *pBuffer ) = 0;
	virtual void SetIndexBuffer( IIndexBuffer *pBuffer ) = 0;
	
	virtual void SetPosition( vec3 position ) = 0;
	virtual void SetRotationEuler( vec3 angle ) = 0;
	virtual void SetRotationQuat( vec4 quaternion) = 0;
	virtual void SetMatrix( mat4 matrix ) = 0;
	virtual void SetScale( vec3 scale ) = 0;

	virtual void Draw() = 0;
};

interface IMeshRendering: public IRenderingPipelineStep
{
public:
	virtual IMesh *CreateMesh();
};

interface IModelManager
{
public:
	virtual void LoadModel( const char *szPath );
};
