43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
#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 <QPainter>
|
|
#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;
|
|
}
|
|
};
|
|
}
|