Files
o3de/Code/Editor/Controls/WndGridHelper.h
T
Artur K 45b2336dce Legacy cleanup (#3383)
* WIP - small legacy cleanup

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* More cleanups + build fixes

Use AZstd instead of std types in a few places.
Remove m_nameTable.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Legacy code cleanups

Remove unused methods using legacy functionality

* EditorViewportWidget::AdjustObjectPosition
* DisplayContext - remove `renderer` pointer
* DisplayContext - log errors when functions using `renderer` are called
* CTrackGizmo::DrawAxis - log errors when function uses `renderer`.
* Legacy CCamera - remove Project, Unproject and CalcScreenBounds
* Remove all unused methods from Cry_GeoDistance.h/Cry_GeoIntersect.h
* Remove Lineseg_Triangle from Cry_GeoOverlap.h
* IEntityRenderState.h - remove unused types
* SMeshColor remove Lerp method and associated constructor.
* IMaterial.h - remove unused types and a few methods
* IRenderMesh.h - remove a few unused methods and use int8 instead of
byte
* IRender.h - remove almost all of the contents
* IShader.h - remove unused types and a few methods
* IStatObj.h - remove unused types and a few methods
* SSystemGlobalEnvironment - remove `renderer` pointer
* IRenderGraph - remove 2 unused methods
* physinterface.h - remove almost all of the contents
* CXmlUtils no longer inherits ISystemEventListener
* CXmlNode no longer has custom new/delete
* Remove IRenderer from some test mocks.

Removed files:
* CryName.h
* Cry_MatrixDiag.h
* Cry_XOptimise.h
* HeapAllocator.h
* IRendererMock.h
* PoolAllocator.h

Things to consider:
* Remove GetMemoryUsage & friends.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Apply review suggestions

IMovieSystem.h - remove unused includes.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Move unreachable code to `#if 0` block

This is hopefully temporary measure until the original functionality is
re-implemented

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Fix bad merge I messed up.

Fix bad merge I messed up, by re-removing FrameProfiler.h from crycommon_files.cmake (this was removed in an earlier commit this morning: https://github.com/o3de/o3de/pull/3394).

Signed-off-by: bosnichd <bosnichd@amazon.com>

* Update Code/Framework/AzCore/AzCore/std/string/string_view.h

Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* implement review suggestion

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* following review, using LYSHINE_ATOM_TODO to guard

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Remove commented out include

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* EditorViewportWidget.cpp: Convert commented out code to  guarded one

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

Co-authored-by: bosnichd <bosnichd@amazon.com>
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-08-25 15:04:38 -06:00

176 lines
5.0 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#ifndef CRYINCLUDE_EDITOR_CONTROLS_WNDGRIDHELPER_H
#define CRYINCLUDE_EDITOR_CONTROLS_WNDGRIDHELPER_H
#pragma once
#include <QPoint>
#include <QRect>
#include "Cry_Vector2.h"
#include <AzCore/Casting/numeric_cast.h>
//////////////////////////////////////////////////////////////////////////
class CWndGridHelper
{
public:
Vec2 zoom;
Vec2 origin;
Vec2 step;
Vec2 pixelsPerGrid;
int nMajorLines;
QRect rect;
QPoint nMinPixelsPerGrid;
QPoint nMaxPixelsPerGrid;
//////////////////////////////////////////////////////////////////////////
QPoint firstGridLine;
QPoint numGridLines;
//////////////////////////////////////////////////////////////////////////
CWndGridHelper()
{
zoom = Vec2(1, 1);
step = Vec2(10, 10);
pixelsPerGrid = Vec2(10, 10);
origin = Vec2(0, 0);
nMajorLines = 10;
nMinPixelsPerGrid = QPoint(50, 10);
nMaxPixelsPerGrid = QPoint(100, 20);
firstGridLine = QPoint(0, 0);
numGridLines = QPoint(0, 0);
}
//////////////////////////////////////////////////////////////////////////
Vec2 ClientToWorld(const QPoint& point)
{
Vec2 v;
v.x = (point.x() - rect.left()) / zoom.x + origin.x;
v.y = (point.y() - rect.top()) / zoom.y + origin.y;
return v;
}
//////////////////////////////////////////////////////////////////////////
QPoint WorldToClient(Vec2 v)
{
QPoint p(aznumeric_cast<int>(floor((v.x - origin.x) * zoom.x + 0.5f) + rect.left()),
aznumeric_cast<int>(floor((v.y - origin.y) * zoom.y + 0.5f) + rect.top()));
return p;
}
void SetOrigin(Vec2 neworigin)
{
origin = neworigin;
}
void SetZoom(Vec2 newzoom)
{
zoom = newzoom;
}
//////////////////////////////////////////////////////////////////////////
void SetZoom(Vec2 newzoom, const QPoint& center)
{
if (newzoom.x < 0.01f)
{
newzoom.x = 0.01f;
}
if (newzoom.y < 0.01f)
{
newzoom.y = 0.01f;
}
Vec2 prevz = zoom;
// Zoom to mouse position.
float ofsx = origin.x;
float ofsy = origin.y;
Vec2 z1 = zoom;
Vec2 z2 = newzoom;
zoom = newzoom;
// Calculate new offset to center zoom on mouse.
float x2 = aznumeric_cast<float>(center.x() - rect.left());
float y2 = aznumeric_cast<float>(center.y() - rect.top());
ofsx = -(x2 / z2.x - x2 / z1.x - ofsx);
ofsy = -(y2 / z2.y - y2 / z1.y - ofsy);
origin.x = ofsx;
origin.y = ofsy;
}
void CalculateGridLines()
{
pixelsPerGrid.x = zoom.x;
pixelsPerGrid.y = zoom.y;
step = Vec2(1.00f, 1.00f);
nMajorLines = 2;
int griditers;
if (pixelsPerGrid.x <= nMinPixelsPerGrid.x())
{
griditers = 0;
while (pixelsPerGrid.x <= nMinPixelsPerGrid.x() && griditers++ < 1000)
{
step.x = step.x * nMajorLines;
pixelsPerGrid.x = step.x * zoom.x;
}
}
else
{
griditers = 0;
while (pixelsPerGrid.x >= nMaxPixelsPerGrid.x() && griditers++ < 1000)
{
step.x = step.x / nMajorLines;
pixelsPerGrid.x = step.x * zoom.x;
}
}
if (pixelsPerGrid.y <= nMinPixelsPerGrid.y())
{
griditers = 0;
while (pixelsPerGrid.y <= nMinPixelsPerGrid.y() && griditers++ < 1000)
{
step.y = step.y * nMajorLines;
pixelsPerGrid.y = step.y * zoom.y;
}
}
else
{
griditers = 0;
while (pixelsPerGrid.y >= nMaxPixelsPerGrid.y() && griditers++ < 1000)
{
step.y = step.y / nMajorLines;
pixelsPerGrid.y = step.y * zoom.y;
}
}
firstGridLine.rx() = aznumeric_cast<int>(origin.x / step.x);
firstGridLine.ry() = aznumeric_cast<int>(origin.y / step.y);
numGridLines.rx() = aznumeric_cast<int>((rect.width() / zoom.x) / step.x + 1);
numGridLines.ry() = aznumeric_cast<int>((rect.height() / zoom.y) / step.y + 1);
}
int GetGridLineX(int nGridLineX) const
{
return aznumeric_cast<int>(floor((nGridLineX * step.x - origin.x) * zoom.x + 0.5f));
}
int GetGridLineY(int nGridLineY) const
{
return aznumeric_cast<int>(floor((nGridLineY * step.y - origin.y) * zoom.y + 0.5f));
}
float GetGridLineXValue(int nGridLineX) const
{
return (nGridLineX * step.x);
}
float GetGridLineYValue(int nGridLineY) const
{
return (nGridLineY * step.y);
}
};
#endif // CRYINCLUDE_EDITOR_CONTROLS_WNDGRIDHELPER_H