45b2336dce
* 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>
96 lines
2.5 KiB
C++
96 lines
2.5 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
|
|
*
|
|
*/
|
|
|
|
|
|
#include "StringHelpers.h"
|
|
#include "Util.h"
|
|
#include <cwctype>
|
|
|
|
int StringHelpers::CompareIgnoreCase(const AZStd::string& str0, const AZStd::string& str1)
|
|
{
|
|
const size_t minLength = Util::getMin(str0.length(), str1.length());
|
|
const int result = azstrnicmp(str0.c_str(), str1.c_str(), minLength);
|
|
if (result)
|
|
{
|
|
return result;
|
|
}
|
|
else
|
|
{
|
|
return (str0.length() == str1.length())
|
|
? 0
|
|
: ((str0.length() < str1.length()) ? -1 : +1);
|
|
}
|
|
}
|
|
|
|
int StringHelpers::CompareIgnoreCase(const AZStd::wstring& str0, const AZStd::wstring& str1)
|
|
{
|
|
const size_t minLength = Util::getMin(str0.length(), str1.length());
|
|
for (size_t i = 0; i < minLength; ++i)
|
|
{
|
|
const wchar_t c0 = towlower(str0[i]);
|
|
const wchar_t c1 = towlower(str1[i]);
|
|
if (c0 != c1)
|
|
{
|
|
return (c0 < c1) ? -1 : 1;
|
|
}
|
|
}
|
|
|
|
return (str0.length() == str1.length())
|
|
? 0
|
|
: ((str0.length() < str1.length()) ? -1 : +1);
|
|
}
|
|
|
|
template <class TS>
|
|
static inline void Split_Tpl(const TS& str, const TS& separator, bool bReturnEmptyPartsToo, std::vector<TS>& outParts)
|
|
{
|
|
if (str.empty())
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (separator.empty())
|
|
{
|
|
for (size_t i = 0; i < str.length(); ++i)
|
|
{
|
|
outParts.push_back(str.substr(i, 1));
|
|
}
|
|
return;
|
|
}
|
|
|
|
size_t partStart = 0;
|
|
|
|
for (;; )
|
|
{
|
|
const size_t pos = str.find(separator, partStart);
|
|
if (pos == TS::npos)
|
|
{
|
|
break;
|
|
}
|
|
if (bReturnEmptyPartsToo || (pos > partStart))
|
|
{
|
|
outParts.push_back(str.substr(partStart, pos - partStart));
|
|
}
|
|
partStart = pos + separator.length();
|
|
}
|
|
|
|
if (bReturnEmptyPartsToo || (partStart < str.length()))
|
|
{
|
|
outParts.push_back(str.substr(partStart, str.length() - partStart));
|
|
}
|
|
}
|
|
|
|
void StringHelpers::Split(const AZStd::string& str, const AZStd::string& separator, bool bReturnEmptyPartsToo, std::vector<AZStd::string>& outParts)
|
|
{
|
|
Split_Tpl(str, separator, bReturnEmptyPartsToo, outParts);
|
|
}
|
|
|
|
void StringHelpers::Split(const AZStd::wstring& str, const AZStd::wstring& separator, bool bReturnEmptyPartsToo, std::vector<AZStd::wstring>& outParts)
|
|
{
|
|
Split_Tpl(str, separator, bReturnEmptyPartsToo, outParts);
|
|
}
|