← Back to file list Raw

src/CDrawableModel.cpp

#include "CDrawableModel.h"
#include "CRendererBase.h"
void CDrawableModel::SetModel(std::shared_ptr<CResource> model)
{
if(!model) { return; } //nullptr
auto mdl = std::dynamic_pointer_cast<CModelBase>(model);
if(!mdl) { return; } //not a model!
Model = mdl;
OnSetModel(this, mdl.get());
}
std::shared_ptr<CModelBase> CDrawableModel::GetModel()
{
return Model;
}
void CDrawableModel::Draw(CRendererBase* renderer)
{
if(!Model || !Model->IsReady())
{
return; //not ready!
}
OnPreDraw(this, Model.get());
renderer->DrawModel(Model, this->Transform);
OnPostDraw(this, Model.get());
}