- Forked from Godot Engine 4.7-dev (MIT License) - Rebranded to AeThex Engine with cyan/purple theme - Added AI-powered development assistant module - Integrated Claude API for code completion & error fixing - Custom hexagon logo and branding - Multi-platform CI/CD (Windows, Linux, macOS) - Built Linux editor binary (151MB) - Complete source code with all customizations Tech Stack: - C++ game engine core - AI Module: Claude 3.5 Sonnet integration - Build: SCons, 14K+ source files - License: MIT (Godot) + Custom (AeThex features) Ready for Windows build via GitHub Actions!
46 lines
1,020 B
C++
46 lines
1,020 B
C++
|
|
#pragma once
|
|
|
|
#include "base.h"
|
|
|
|
namespace msdfgen {
|
|
|
|
/**
|
|
* Represents the range between two real values.
|
|
* For example, the range of representable signed distances.
|
|
*/
|
|
struct Range {
|
|
|
|
double lower, upper;
|
|
|
|
inline Range(double symmetricalWidth = 0) : lower(-.5*symmetricalWidth), upper(.5*symmetricalWidth) { }
|
|
|
|
inline Range(double lowerBound, double upperBound) : lower(lowerBound), upper(upperBound) { }
|
|
|
|
inline Range &operator*=(double factor) {
|
|
lower *= factor;
|
|
upper *= factor;
|
|
return *this;
|
|
}
|
|
|
|
inline Range &operator/=(double divisor) {
|
|
lower /= divisor;
|
|
upper /= divisor;
|
|
return *this;
|
|
}
|
|
|
|
inline Range operator*(double factor) const {
|
|
return Range(lower*factor, upper*factor);
|
|
}
|
|
|
|
inline Range operator/(double divisor) const {
|
|
return Range(lower/divisor, upper/divisor);
|
|
}
|
|
|
|
};
|
|
|
|
inline Range operator*(double factor, const Range &range) {
|
|
return Range(factor*range.lower, factor*range.upper);
|
|
}
|
|
|
|
}
|