ProtoTank/Engine/World/WorldObject.hpp
2024-10-05 19:15:04 +02:00

38 lines
647 B
C++

#pragma once
#include "../Utils/MeshHelper.hpp"
class WorldObject {
public:
virtual const Mesh& GetObjectMesh() const = 0;
protected:
WorldObject() = default;
};
template<class D>
class WorldObjectAbstract : virtual public WorldObject {
public:
virtual ~WorldObjectAbstract() = 0;
const Mesh& GetObjectMesh() const noexcept override { return mMesh; }
protected:
inline static Mesh mMesh;
};
template<class D>
inline WorldObjectAbstract<D>::~WorldObjectAbstract() {}
/*
class WorldObject {
public:
virtual ~WorldObjectAbstract() = 0;
virtual std::vector<MeshVertex>& GetObjectMesh() const = 0;
};
*/