From 9c52cd53067d859ca93839b7d9d3326d0da3bff9 Mon Sep 17 00:00:00 2001 From: Bartok9 Date: Mon, 27 Jul 2026 05:21:39 -0400 Subject: [PATCH] fix(airlib): protect Utils clip/limitAbsValue from Windows min/max macros Use (std::max)/(std::min) so NOMINMAX-less MSVC/UE includes still compile. --- AirLib/include/common/common_utils/Utils.hpp | 1510 +++++++++--------- 1 file changed, 755 insertions(+), 755 deletions(-) diff --git a/AirLib/include/common/common_utils/Utils.hpp b/AirLib/include/common/common_utils/Utils.hpp index b43780354c..866f22c3b2 100644 --- a/AirLib/include/common/common_utils/Utils.hpp +++ b/AirLib/include/common/common_utils/Utils.hpp @@ -1,755 +1,755 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -#ifndef common_utils_Utils_hpp -#define common_utils_Utils_hpp - -#include "StrictMode.hpp" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "type_utils.hpp" - -#ifndef _WIN32 -#include // needed for CHAR_BIT used below -#endif - -#ifndef _USE_MATH_DEFINES -#define _USE_MATH_DEFINES -#endif -#include -//#include - -#ifndef M_PIf -#define M_PIf static_cast(3.1415926535897932384626433832795028841972) -#endif - -#ifndef M_PI -#define M_PI static_cast(3.1415926535897932384626433832795028841972) -#endif - -#ifndef M_PIl -#define M_PIl static_cast(3.1415926535897932384626433832795028841972) -#endif - -#define EARTH_RADIUS (6378137.0f) - -/* - This file is collection of routines that can be included in ANY project just - by dropping in common_utils.hpp. Therefore there should not be any dependency - in the code below other than STL. The code should be able to compilable on - all major platforms. -*/ - -#ifndef _MSC_VER -__attribute__((__format__(__printf__, 1, 0))) static int _vscprintf(const char* format, va_list pargs) -{ - int retval; - va_list argcopy; - va_copy(argcopy, pargs); - IGNORE_FORMAT_STRING_ON - retval = vsnprintf(NULL, 0, format, argcopy); - IGNORE_FORMAT_STRING_OFF - va_end(argcopy); - return retval; -} -#endif - -// Call this on a function parameter to suppress the unused paramter warning -template -inline void unused(T const& result) -{ - static_cast(result); -} - -namespace common_utils -{ - -class Utils -{ -private: - typedef std::chrono::system_clock system_clock; - typedef std::chrono::steady_clock steady_clock; - typedef std::string string; - typedef std::stringstream stringstream; - //this is not required for most compilers - typedef unsigned int uint; - template - using time_point = std::chrono::time_point; - -public: - class Logger - { - public: - virtual void log(int level, const std::string& message) - { - if (level >= 0) - std::cout << message << std::endl; - else - std::cerr << message << std::endl; - } - - virtual ~Logger() = default; - }; - - static void enableImmediateConsoleFlush() - { - //disable buffering - setbuf(stdout, NULL); - } - - template - static T getRandomFromGaussian(T stddev = 1, T mean = 0) - { - static std::default_random_engine random_gen; - static std::normal_distribution gaussian_dist(0.0f, 1.0f); - - return gaussian_dist(random_gen) * stddev + mean; - } - - static constexpr double degreesToRadians(double degrees) - { - return static_cast(M_PIl * degrees / 180.0); - } - static constexpr float degreesToRadians(float degrees) - { - return static_cast(M_PI * degrees / 180.0f); - } - static constexpr double radiansToDegrees(double radians) - { - return static_cast(radians * 180.0 / M_PIl); - } - static constexpr float radiansToDegrees(float radians) - { - return static_cast(radians * 180.0f / M_PI); - } - - static bool startsWith(const string& s, const string& prefix) - { - return s.size() >= prefix.size() && s.compare(0, prefix.size(), prefix) == 0; - } - - template