#include "SceneModel.h"

#include "AbstractMesh.h"

SceneModel::SceneModel(std::unique_ptr<AbstractMesh> mesh)
    : SceneItem(),
      mMesh(std::move(mesh))
{

}

AbstractMesh* SceneModel::getMesh() const
{
    if (mMesh)
    {
        return mMesh.get();
    }
    else
    {
        return mRawMesh;
    }
}

void SceneModel::updateMesh(std::unique_ptr<AbstractMesh> mesh)
{
    mMesh = std::move(mesh);
    mMeshIsDirty = true;
}

void SceneModel::updateMesh(AbstractMesh* mesh)
{
    mRawMesh = mesh;
    mMeshIsDirty = true;
}

SceneItem::Type SceneModel::getType() const
{
    return SceneItem::Type::MODEL;
}
