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>
|
#include <Core/Render/CDrawUtil.h>
|
||||||
|
|
||||||
CModelEditorViewport::CModelEditorViewport(QWidget *pParent)
|
CModelEditorViewport::CModelEditorViewport(QWidget *pParent)
|
||||||
: CBasicViewport(pParent)
|
: CBasicViewport(pParent), mpRenderer{std::make_unique<CRenderer>()}
|
||||||
, mMode(EDrawMode::DrawMesh)
|
|
||||||
, mpActiveMaterial(nullptr)
|
|
||||||
, mpModelNode(nullptr)
|
|
||||||
, mGridEnabled(true)
|
|
||||||
{
|
{
|
||||||
mpRenderer = new CRenderer();
|
const qreal pixelRatio = devicePixelRatioF();
|
||||||
qreal pixelRatio = devicePixelRatioF();
|
|
||||||
mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio);
|
mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio);
|
||||||
mpRenderer->SetClearColor(CColor::Black());
|
mpRenderer->SetClearColor(CColor::Black());
|
||||||
mpRenderer->ToggleGrid(true);
|
mpRenderer->ToggleGrid(true);
|
||||||
|
|
||||||
mViewInfo.pRenderer = mpRenderer;
|
mViewInfo.pRenderer = mpRenderer.get();
|
||||||
mViewInfo.pScene = nullptr;
|
mViewInfo.pScene = nullptr;
|
||||||
mViewInfo.GameMode = false;
|
mViewInfo.GameMode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
CModelEditorViewport::~CModelEditorViewport()
|
CModelEditorViewport::~CModelEditorViewport() = default;
|
||||||
{
|
|
||||||
delete mpRenderer;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CModelEditorViewport::SetNode(CModelNode *pNode)
|
void CModelEditorViewport::SetNode(CModelNode *pNode)
|
||||||
{
|
{
|
||||||
@ -57,20 +49,18 @@ void CModelEditorViewport::Paint()
|
|||||||
if (!mpModelNode->Model())
|
if (!mpModelNode->Model())
|
||||||
{
|
{
|
||||||
if (mGridEnabled)
|
if (mGridEnabled)
|
||||||
mGrid.AddToRenderer(mpRenderer, mViewInfo);
|
mGrid.AddToRenderer(mpRenderer.get(), mViewInfo);
|
||||||
|
|
||||||
mpRenderer->RenderBuckets(mViewInfo);
|
mpRenderer->RenderBuckets(mViewInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (mMode == EDrawMode::DrawMesh)
|
else if (mMode == EDrawMode::DrawMesh)
|
||||||
{
|
{
|
||||||
if (mGridEnabled)
|
if (mGridEnabled)
|
||||||
mGrid.AddToRenderer(mpRenderer, mViewInfo);
|
mGrid.AddToRenderer(mpRenderer.get(), mViewInfo);
|
||||||
|
|
||||||
mpModelNode->AddToRenderer(mpRenderer, mViewInfo);
|
mpModelNode->AddToRenderer(mpRenderer.get(), mViewInfo);
|
||||||
mpRenderer->RenderBuckets(mViewInfo);
|
mpRenderer->RenderBuckets(mViewInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (mMode == EDrawMode::DrawSphere)
|
else if (mMode == EDrawMode::DrawSphere)
|
||||||
{
|
{
|
||||||
if (!mpActiveMaterial) return;
|
if (!mpActiveMaterial) return;
|
||||||
@ -88,7 +78,6 @@ void CModelEditorViewport::Paint()
|
|||||||
CDrawUtil::DrawSphere(true);
|
CDrawUtil::DrawSphere(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (mMode == EDrawMode::DrawSquare)
|
else if (mMode == EDrawMode::DrawSquare)
|
||||||
{
|
{
|
||||||
if (!mpActiveMaterial) return;
|
if (!mpActiveMaterial) return;
|
||||||
|
@ -4,32 +4,34 @@
|
|||||||
#include "Editor/CBasicViewport.h"
|
#include "Editor/CBasicViewport.h"
|
||||||
#include "Editor/CGridRenderable.h"
|
#include "Editor/CGridRenderable.h"
|
||||||
#include <Core/Scene/CModelNode.h>
|
#include <Core/Scene/CModelNode.h>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
class CModelEditorViewport : public CBasicViewport
|
class CModelEditorViewport : public CBasicViewport
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum class EDrawMode {
|
enum class EDrawMode {
|
||||||
DrawMesh, DrawSphere, DrawSquare
|
DrawMesh, DrawSphere, DrawSquare,
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
EDrawMode mMode;
|
EDrawMode mMode{EDrawMode::DrawMesh};
|
||||||
CGridRenderable mGrid;
|
CGridRenderable mGrid;
|
||||||
CModelNode *mpModelNode;
|
CModelNode *mpModelNode = nullptr;
|
||||||
CMaterial *mpActiveMaterial;
|
CMaterial *mpActiveMaterial = nullptr;
|
||||||
CRenderer *mpRenderer;
|
std::unique_ptr<CRenderer> mpRenderer;
|
||||||
bool mGridEnabled;
|
bool mGridEnabled = true;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CModelEditorViewport(QWidget *pParent = 0);
|
explicit CModelEditorViewport(QWidget *pParent = nullptr);
|
||||||
~CModelEditorViewport();
|
~CModelEditorViewport() override;
|
||||||
|
|
||||||
void SetNode(CModelNode *pNode);
|
void SetNode(CModelNode *pNode);
|
||||||
void SetActiveMaterial(CMaterial *pMat);
|
void SetActiveMaterial(CMaterial *pMat);
|
||||||
void SetDrawMode(EDrawMode Mode);
|
void SetDrawMode(EDrawMode Mode);
|
||||||
void SetClearColor(CColor Color);
|
void SetClearColor(CColor Color);
|
||||||
void SetGridEnabled(bool Enable);
|
void SetGridEnabled(bool Enable);
|
||||||
void Paint();
|
void Paint() override;
|
||||||
void OnResize();
|
void OnResize() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CMODELEDITORVIEWPORT_H
|
#endif // CMODELEDITORVIEWPORT_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user