Files
funnygame/public/mesh.h
2025-07-14 14:59:41 +03:00

40 lines
912 B
C++

#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 );
};