diff --git a/src/Editor/ModelEditor/CModelEditorViewport.cpp b/src/Editor/ModelEditor/CModelEditorViewport.cpp index a35aa129..268924ae 100644 --- a/src/Editor/ModelEditor/CModelEditorViewport.cpp +++ b/src/Editor/ModelEditor/CModelEditorViewport.cpp @@ -2,27 +2,19 @@ #include CModelEditorViewport::CModelEditorViewport(QWidget *pParent) - : CBasicViewport(pParent) - , mMode(EDrawMode::DrawMesh) - , mpActiveMaterial(nullptr) - , mpModelNode(nullptr) - , mGridEnabled(true) + : CBasicViewport(pParent), mpRenderer{std::make_unique()} { - mpRenderer = new CRenderer(); - qreal pixelRatio = devicePixelRatioF(); + const qreal pixelRatio = devicePixelRatioF(); mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio); mpRenderer->SetClearColor(CColor::Black()); mpRenderer->ToggleGrid(true); - mViewInfo.pRenderer = mpRenderer; + mViewInfo.pRenderer = mpRenderer.get(); mViewInfo.pScene = nullptr; mViewInfo.GameMode = false; } -CModelEditorViewport::~CModelEditorViewport() -{ - delete mpRenderer; -} +CModelEditorViewport::~CModelEditorViewport() = default; void CModelEditorViewport::SetNode(CModelNode *pNode) { @@ -57,20 +49,18 @@ void CModelEditorViewport::Paint() if (!mpModelNode->Model()) { if (mGridEnabled) - mGrid.AddToRenderer(mpRenderer, mViewInfo); + mGrid.AddToRenderer(mpRenderer.get(), mViewInfo); mpRenderer->RenderBuckets(mViewInfo); } - else if (mMode == EDrawMode::DrawMesh) { if (mGridEnabled) - mGrid.AddToRenderer(mpRenderer, mViewInfo); + mGrid.AddToRenderer(mpRenderer.get(), mViewInfo); - mpModelNode->AddToRenderer(mpRenderer, mViewInfo); + mpModelNode->AddToRenderer(mpRenderer.get(), mViewInfo); mpRenderer->RenderBuckets(mViewInfo); } - else if (mMode == EDrawMode::DrawSphere) { if (!mpActiveMaterial) return; @@ -88,7 +78,6 @@ void CModelEditorViewport::Paint() CDrawUtil::DrawSphere(true); } } - else if (mMode == EDrawMode::DrawSquare) { if (!mpActiveMaterial) return; diff --git a/src/Editor/ModelEditor/CModelEditorViewport.h b/src/Editor/ModelEditor/CModelEditorViewport.h index 013f1649..5dac6384 100644 --- a/src/Editor/ModelEditor/CModelEditorViewport.h +++ b/src/Editor/ModelEditor/CModelEditorViewport.h @@ -4,32 +4,34 @@ #include "Editor/CBasicViewport.h" #include "Editor/CGridRenderable.h" #include +#include class CModelEditorViewport : public CBasicViewport { public: enum class EDrawMode { - DrawMesh, DrawSphere, DrawSquare + DrawMesh, DrawSphere, DrawSquare, }; private: - EDrawMode mMode; + EDrawMode mMode{EDrawMode::DrawMesh}; CGridRenderable mGrid; - CModelNode *mpModelNode; - CMaterial *mpActiveMaterial; - CRenderer *mpRenderer; - bool mGridEnabled; + CModelNode *mpModelNode = nullptr; + CMaterial *mpActiveMaterial = nullptr; + std::unique_ptr mpRenderer; + bool mGridEnabled = true; public: - CModelEditorViewport(QWidget *pParent = 0); - ~CModelEditorViewport(); + explicit CModelEditorViewport(QWidget *pParent = nullptr); + ~CModelEditorViewport() override; + void SetNode(CModelNode *pNode); void SetActiveMaterial(CMaterial *pMat); void SetDrawMode(EDrawMode Mode); void SetClearColor(CColor Color); void SetGridEnabled(bool Enable); - void Paint(); - void OnResize(); + void Paint() override; + void OnResize() override; }; #endif // CMODELEDITORVIEWPORT_H