2019-02-12 01:50:07 -08:00
|
|
|
#include "CCollisionEditorViewport.h"
|
|
|
|
|
|
|
|
/** Constructor */
|
|
|
|
CCollisionEditorViewport::CCollisionEditorViewport(QWidget* pParent /*= 0*/)
|
|
|
|
: CBasicViewport(pParent)
|
2019-02-18 02:59:19 -08:00
|
|
|
, mGridEnabled(true)
|
2019-02-12 01:50:07 -08:00
|
|
|
{
|
|
|
|
mpRenderer = std::make_unique<CRenderer>();
|
2019-11-06 18:52:45 -08:00
|
|
|
qreal pixelRatio = devicePixelRatioF();
|
|
|
|
mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio);
|
2019-02-12 01:50:07 -08:00
|
|
|
mpRenderer->SetClearColor(CColor(0.3f, 0.3f, 0.3f));
|
|
|
|
mpRenderer->ToggleGrid(true);
|
|
|
|
|
|
|
|
mViewInfo.ShowFlags = EShowFlag::WorldCollision | EShowFlag::ObjectCollision;
|
|
|
|
mViewInfo.pRenderer = mpRenderer.get();
|
|
|
|
mViewInfo.pScene = nullptr;
|
|
|
|
mViewInfo.GameMode = false;
|
2019-02-18 02:59:19 -08:00
|
|
|
mViewInfo.CollisionSettings.DrawBoundingHierarchy = false;
|
|
|
|
mViewInfo.CollisionSettings.BoundingHierarchyRenderDepth = 0;
|
2019-02-12 01:50:07 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
/** CBasicViewport interface */
|
|
|
|
void CCollisionEditorViewport::Paint()
|
|
|
|
{
|
|
|
|
mpRenderer->BeginFrame();
|
|
|
|
mCamera.LoadMatrices();
|
2019-02-18 02:59:19 -08:00
|
|
|
if (mGridEnabled) mGrid.AddToRenderer(mpRenderer.get(), mViewInfo);
|
2019-02-12 01:50:07 -08:00
|
|
|
|
|
|
|
if (mpCollisionNode)
|
|
|
|
{
|
|
|
|
mpCollisionNode->AddToRenderer(mpRenderer.get(), mViewInfo);
|
|
|
|
}
|
|
|
|
|
|
|
|
mpRenderer->RenderBuckets(mViewInfo);
|
|
|
|
mpRenderer->EndFrame();
|
|
|
|
}
|
|
|
|
|
|
|
|
void CCollisionEditorViewport::OnResize()
|
|
|
|
{
|
2019-11-24 18:46:57 -08:00
|
|
|
qreal pixelRatio = devicePixelRatioF();
|
|
|
|
mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio);
|
2019-02-12 01:50:07 -08:00
|
|
|
}
|