dl
dl::Math::RingX 命名空间参考

class  MapLimit
 地图限制器(x轴为环状) 更多...
 

类型定义

using FnDiffusionCheck = std::function<bool(const PointU& xy)>
 
using FnDiffusionCb = std::function<void(unsigned, const std::list<PointU>& xy)>
 

函数

void Clamp (const Size &size, PointU &xy)
 限制到大小内
 
bool Clamp (const Size &size, Point xy, PointU &out_xy)
 限制到大小内
 
unsigned DistancePow2NoCheck (const Size &size, const PointU &a, const PointU &b)
 返回 距离,x轴为环形
 
unsigned Distance (const Size &size, const PointU &a, const PointU &b)
 返回 距离,x轴为环形
 
std::vector< PointUGetCircle (const Size &size, const PointU &xy, unsigned rad)
 返回圆形范围的节点,x轴为环形
 
std::vector< PointUDiffusion (const Size &size, const PointU &xy, unsigned count, FnDiffusionCheck func_valid, FnDiffusionCb func_cb)
 扩散遍历
 

类型定义说明

◆ FnDiffusionCb

using dl::Math::RingX::FnDiffusionCb = std::function<void(unsigned, const std::list<PointU>& xy)>

在文件 dl_math.h1283 行定义.

◆ FnDiffusionCheck

using dl::Math::RingX::FnDiffusionCheck = std::function<bool(const PointU& xy)>

在文件 dl_math.h1282 行定义.

函数说明

◆ Clamp() [1/2]

bool dl::Math::RingX::Clamp ( const Size & size,
Point xy,
PointU & out_xy )
inline

限制到大小内

在文件 dl_math.h1131 行定义.

◆ Clamp() [2/2]

void dl::Math::RingX::Clamp ( const Size & size,
PointU & xy )
inline

限制到大小内

在文件 dl_math.h1123 行定义.

◆ Diffusion()

std::vector< PointU > dl::Math::RingX::Diffusion ( const Size & size,
const PointU & xy,
unsigned count,
FnDiffusionCheck func_valid,
FnDiffusionCb func_cb )

扩散遍历

参数
[in]size地图大小(暂不能超过65535)
[in]xy中心点
[in]count扩展次数
[in]func_valid返回false表示此节点不扩散
[in]func_cb每轮扩散后执行的回调
返回值
返回遍历到的格子,按顺序(xy无效返回0)

◆ Distance()

unsigned dl::Math::RingX::Distance ( const Size & size,
const PointU & a,
const PointU & b )
inline

返回 距离,x轴为环形

注解
无符号版本

在文件 dl_math.h1159 行定义.

◆ DistancePow2NoCheck()

unsigned dl::Math::RingX::DistancePow2NoCheck ( const Size & size,
const PointU & a,
const PointU & b )
inline

返回 距离,x轴为环形

注解
无符号版本(不检查参数)

在文件 dl_math.h1146 行定义.

◆ GetCircle()

std::vector< PointU > dl::Math::RingX::GetCircle ( const Size & size,
const PointU & xy,
unsigned rad )

返回圆形范围的节点,x轴为环形

参数
[in]size地图大小
[in]xy中心点
[in]rad传入0返回1个节点、传入1返回4个节点、传入2返回13个节点,依次类推
注解
rad过大可能返回重叠区域