|
| template<typename T> |
| constexpr bool | IsOutRange (T x, T a, T b) |
| | 判断数值是否越界(前闭后开)
|
| |
| constexpr float | Radian2Angle (float radin) |
| | 弧度转角度
|
| |
| constexpr float | Angle2Radian (float angle) |
| | 角度转弧度
|
| |
| constexpr void | RangeRadian (std::array< float, 2 > &arr) |
| |
| uint32_t | ByteReverse (uint32_t x) |
| | 翻转字节序
|
| |
| template<typename T> |
| constexpr T | Pow (T x, T n) |
| | 返回x的n次方
|
| |
| constexpr uint64_t | Pow64 (uint64_t x, uint8_t n) |
| |
| constexpr uint32_t | Pow32 (uint32_t x, uint8_t n) |
| |
| constexpr uint64_t | CeilToPow2 (uint64_t &&x) |
| |
| constexpr uint32_t | CeilToPow2 (uint32_t &&x) |
| |
| template<typename T> |
| T | CeilToPow2 (const T &x) |
| | 向上取2的幂次
|
| |
| float | RSqrt (float x) |
| | 返回平方根的倒数
|
| |
| template<size_t N> |
| void | NormalizeFast (Array< float, N > &v) |
| | 向量单位化,精度低速度快
|
| |
| template<IsUnsigned T0, IsSigned T1> |
| T0 | AddU (T0 a, T1 b) |
| | 无符号 加 有符号,防止小于0
|
| |
| template<IsUnsigned T0, IsSigned T1, size_t N> |
| void | AddU (Array< T0, N > &a, const Array< T1, N > &b) |
| | 无符号 加 有符号,负数转为0
|
| |
| template<IsUnsigned T0, IsSigned T1, size_t N> |
| Array< T0, N > | AddU (const Array< T0, N > &a, const Array< T1, N > &b) |
| |
| template<IsUnsigned T0, IsSigned T1> |
| bool | AddUCheck (T0 a, T1 b, T0 &ret) |
| | 无符号 加 有符号,检查负数
|
| |
| template<IsUnsigned T0, IsSigned T1, size_t N> |
| bool | AddUCheck (const Array< T0, N > &a, const Array< T1, N > &b, const Array< T0, N > &ret) |
| | 无符号 加 有符号,检查负数
|
| |
| template<IsUnsigned T> |
| T | SubU (T a, T b) |
| | 无符号类型相减,负数转为0
|
| |
| template<IsUnsigned T0, IsSigned T1> |
| T0 | SubU (T0 a, T1 b) |
| | 无符号减有符号,结果负数转为0
|
| |
| template<IsUnsigned T, size_t N> |
| Array< T, N > | SubU (const Array< T, N > &a, const Array< T, N > &b) |
| | 无符号类型相减,负数转为0
|
| |
| template<IsUnsigned T0, IsSigned T1, size_t N> |
| Array< T0, N > | SubU (const Array< T0, N > &a, const Array< T1, N > &b) |
| | 无符号减有符号,负数转为0
|
| |
| template<IsUnsigned T> |
| T | DisU (T a, T b) |
| | 返回无符号类型的差值
|
| |
| template<IsUnsigned T, size_t N> |
| Array< T, N > | DisU (const Array< T, N > &a, const Array< T, N > &b) |
| | 返回无符号类型的差值
|
| |
| template<typename T> |
| T | DistancePow2 (const Array< T, 2 > &a) |
| | 返回 向量 距离的平方
|
| |
| template<typename T> |
| T | DistancePow2 (const Array< T, 3 > &a) |
| |
| template<typename T> |
| T | DistancePow2 (const Array< T, 4 > &a) |
| |
| template<typename T> |
| T | Distance (const Array< T, 2 > &a) |
| |
| template<typename T> |
| T | Distance (const Array< T, 3 > &a) |
| |
| template<typename T> |
| T | Distance (const Array< T, 4 > &a) |
| |
| template<IsSigned T> |
| T | DistancePow2 (const Array< T, 2 > &a, const Array< T, 2 > &b) |
| | 返回 距离的平方
|
| |
| template<IsUnsigned T> |
| T | DistancePow2U (const Array< T, 2 > &a, const Array< T, 2 > &b) |
| | 返回 距离的平方
|
| |
| template<IsUnsigned T> |
| T | DistanceU (const Array< T, 2 > &a, const Array< T, 2 > &b) |
| | 返回 距离
|
| |
| template<IsSigned T, size_t N> |
| void | Normalize (Array< T, N > &v) |
| | 向量单位化
|
| |
| template<IsSigned T, size_t N> |
| Array< T, N > | Normalize (const Array< T, N > &v) |
| |
| std::vector< PointU > | GetCircle (const Size &size, const PointU &xy, unsigned rad) |
| | 返回圆形范围的节点,考虑越界
|
| |
| std::vector< Point > | GetCircle (const Point &xy, unsigned rad) |
| | 返回圆形范围的节点,不考虑越界
|
| |
| constexpr double | PI (unsigned n=1, unsigned d=1) |
| | 返回PI的分数
|
| |
| constexpr float | PIF (unsigned n=1, unsigned d=1) |
| |
| template<IsReal T> |
| constexpr T | AlignF (T x, T align) |
| | RGP资源下标转方向
|
| |
| template<IsUnsigned T> |
| constexpr T | Align (T x, T align) |
| | 对齐align的倍数
|
| |
| constexpr unsigned | IsPow2 (unsigned x) |
| | 是否2的幂
|
| |
| constexpr unsigned | AlignPow2 (unsigned x, unsigned align) |
| | 对齐align的倍数
|
| |
| constexpr unsigned | div_found (unsigned n, unsigned d) |
| | 无符号除法,返回四舍五入结果
|
| |
| constexpr unsigned | div_found_fast (unsigned n, unsigned d) |
| | 无符号除法,返回四舍五入结果
|
| |
| constexpr float | OffsetOrder (float order, int u=1, int v=0, int w=0) |
| | 偏移order
|
| |
| constexpr Float | CrossProduct (const Position2 &a, const Position2 &b) |
| | 叉乘(四指指向a,弯向b,大拇指指向c)
|
| |
| constexpr Position3 | CrossProduct (const Position3 &a, const Position3 &b) |
| |
| template<typename T, size_t N> |
| constexpr T | DotProduct (const Array< T, N > &a, const Array< T, N > &b) |
| | 点乘
|
| |
| Position4 | Slerp (const Position4 &q0, const Position4 &q1, const Float &t) |
| | 球面线性插值
|
| |
| template<typename C> |
| constexpr auto | DistanceDiagonal (const C &p0, const C &p1) |
| | 纹理区域转uv
|
| |
| std::vector< Point > | DrawLineLerp (const Point &p0, const Point &p1) |
| | 线性插值 画线算法
|
| |
| std::vector< Point > | DrawLineBresenham (const Point &p0, const Point &p1) |
| | bresenham 画线算法
|
| |
| std::vector< Point > | DrawLineOrth (const Point &p0, const Point &p1) |
| | 正交 画线算法
|
| |
| std::vector< Point > | DrawLineCover (const Point &p0, const Point &p1) |
| | 覆盖 画线算法
|
| |
| void | MergePath (std::list< Point > &list_pos) |
| | 路径合并(网格路径)
|
| |
| template<typename F> |
| void | MergePathDirect (std::list< Point > &list_pos, F func_pass) |
| | 路径合并(网格路径)
|
| |
| template<typename T> |
| constexpr T | GetQuadSize (const Array< T, 4 > &quad) |
| | 返回 Quad 的大小
|
| |
| template<typename T> |
| constexpr Array< T, 3 > | GetQuadTriangle0 (const Array< T, 4 > &quad) |
| | 返回 Quad的三角形
|
| |
| template<typename T> |
| constexpr Array< T, 3 > | GetQuadTriangle1 (const Array< T, 4 > &quad) |
| |
| template<typename T> |
| constexpr bool | IsRectValid (const Array< T, 4 > &rect) |
| | 判断 矩形 是否有效
|
| |
| template<typename T> |
| constexpr bool | IsRectEmpty (const Array< T, 4 > &rect) |
| | 判断 矩形 是否空
|
| |
| template<typename T> |
| constexpr bool | IsRectInSize (const Array< T, 4 > &rect, const Size &size) |
| | 判断 矩形 在 大小 内,首先它必须是有效的矩形
|
| |
| constexpr bool | IsXyInSize (const Point &xy, const Size &size) |
| | 判断 点是否在大小内
|
| |
| constexpr bool | IsXyInRect (const Point &xy, const Rect &rect) |
| | 判断 点是否在矩形内
|
| |
| constexpr bool | IsTriangle (const Triangle &triangle) |
| | 判断是否三角形
|
| |
| constexpr bool | IsDotInTriangle (const Position &dot, const Triangle &triangle) |
| | 判断点是否在三角形内(包含边)
|
| |
| constexpr bool | IsDotInQuad (const Position &dot, const Quad &quad) |
| | 判断点是否在四边形内(包含边)
|
| |
| constexpr Position | CreatePositionByRatioGoldW (Float w) |
| | 判断点是否在凸四边形内
|
| |
| template<typename T, typename F> |
| void | GetRectTrim (F func, Array< T, 4 > &rect) |
| | 裁切图像、网格
|
| |
| template<typename T> |
| void | ExtendRectLeft (T min_left, Array< T, 4 > &rect, T extend=1) |
| | 向左拓展矩形
|
| |
| template<typename T> |
| void | ExtendRectTop (T min_top, Array< T, 4 > &rect, T extend=1) |
| | 向上拓展矩形
|
| |
| template<typename T> |
| void | ExtendRectRight (T max_right, Array< T, 4 > &rect, T extend=1) |
| | 向右拓展矩形
|
| |
| template<typename T> |
| void | ExtendRectBottom (T max_bottom, Array< T, 4 > &rect, T extend=1) |
| | 向下拓展矩形
|
| |
| template<typename T> |
| void | ExtendRect (const Array< T, 4 > &rect_big, Array< T, 4 > &rect, T extend=1) |
| | 拓展矩形
|
| |
| template<typename T> |
| void | ExtendRect (const Array< T, 2 > &size, Array< T, 4 > &rect, T extend=1) |
| | 拓展矩形
|
| |
| template<typename T> |
| void | ExtendRectRB (const Array< T, 2 > &size, Array< T, 4 > &rect, T extend=1) |
| | 向右下拓展矩形
|
| |
| unsigned | GetCircleNumMax (unsigned rad) |
| | 返回圆所占格子数(GetCircle函数使用)
|
| |
| constexpr double | DegreesToRadians (double deg) |
| | 将角度转为弧度
|
| |
| constexpr double | RadiansToDegrees (double rad) |
| | 将弧度转为角度
|
| |
| constexpr bool | IsLeapYear (int year) |
| |
| constexpr int | GetMouthDayNum (int year, int mouth) |
| |
| double | GetSolarDeclination (int day) |
| | 计算太阳赤纬(太阳直射点纬度)
|
| |
| double | GetSolarElevation (double latitude, double declination) |
| | 计算正午太阳高度角
|
| |
| int | GetSeason (int day, double latitude) |
| | 返回季节
|
| |
| double | GetBaseTemperature (double latitude, int day) |
| | 基于纬度估算海平面基准温度(℃)
|
| |