#include "rendering.h" //---------------------------------------------------------------------------- // Mesh instance used in rendering. //---------------------------------------------------------------------------- abstract_class IMeshInstance { public: 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; }; abstract_class IMesh { public: virtual void SetVertexBuffer( IVertexBuffer *pBuffer ) = 0; virtual void SetIndexBuffer( IIndexBuffer *pBuffer ) = 0; virtual IMeshInstance *CreateInstance() = 0; }; interface IMeshRendering: public IRenderingPipelineStep { public: static IMesh *CreateMesh(); }; interface IModelManager { public: virtual void LoadModel( const char *szPath ); };