mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-07-13 16:46:06 +00:00
CModelEditorViewport: Make use of in-class initializers where applicable
This commit is contained in:
parent
ae34c2461d
commit
16225c278d
@ -2,27 +2,19 @@
|
||||
#include <Core/Render/CDrawUtil.h>
|
||||
|
||||
CModelEditorViewport::CModelEditorViewport(QWidget *pParent)
|
||||
: CBasicViewport(pParent)
|
||||
, mMode(EDrawMode::DrawMesh)
|
||||
, mpActiveMaterial(nullptr)
|
||||
, mpModelNode(nullptr)
|
||||
, mGridEnabled(true)
|
||||
: CBasicViewport(pParent), mpRenderer{std::make_unique<CRenderer>()}
|
||||
{
|
||||
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;
|
||||
|
@ -4,32 +4,34 @@
|
||||
#include "Editor/CBasicViewport.h"
|
||||
#include "Editor/CGridRenderable.h"
|
||||
#include <Core/Scene/CModelNode.h>
|
||||
#include <memory>
|
||||
|
||||
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<CRenderer> 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user