#pragma once #include "Psc_Cpp_Core/system/export.h" #include "Psc_Cpp_Core/Base/global_include.h" #include "Psc_Cpp_Core/Base/JSON.h" #include #if defined(_WIN32) # if defined(WIDGET_BUILD_SHARED) # define WIDGET_API __declspec(dllexport) # elif defined(WIDGET_USE_SHARED) # define WIDGET_API __declspec(dllimport) # else # define WIDGET_API # endif #else # define WIDGET_API __attribute__((visibility("default"))) #endif namespace Flex_Qt { struct Range { double origin; double target; [[nodiscard]] double size() const { return target > origin ? target - origin : origin - target; } [[nodiscard]] double length() const { return target - origin; } [[nodiscard]] double middle() const { return origin + (target - origin) / 2.0; } bool operator==(const Range& other) const { return origin == other.origin && target == other.target; } bool operator!=(const Range& other) const { return !(*this == other); } [[nodiscard]] bool contain(double value) const { if (origin < target) return value > origin - 0.0001 && value < target + 0.0001; return value > target - 0.0001 && value < origin + 0.0001; } }; }