dl
dl::Align 命名空间参考

方向、对齐定义 更多...

类型定义

using Direction2 = Array<Direction, 2>
 

枚举

enum class  Direction : int { BACK = -1 , ZERO = 0 , FRONT = 1 , FARTHEST = std::numeric_limits<int>::lowest() }
 
enum class  Dir4 { RIGHT = 0 , BOTTOM , LEFT , TOP }
 
enum class  Dir8 {
  RIGHT = 0 , RB , BOTTOM , LB ,
  LEFT , LT , TOP , RT ,
  NONE
}
 
enum class  LTRB { LEFT = 0 , TOP = 1 , RIGHT = 2 , BOTTOM = 3 }
 左上右下(2个点,rect用) 更多...
 
enum class  Corner { LT = 0 , RT = 1 , RB = 2 , LB = 3 }
 斜角位置(4个点,quad用) 更多...
 

函数

constexpr Dir8 GetDir8 (const PointU &p0, const PointU &p1)
 
constexpr Dir8 GetDir8R (Dir8 dir)
 获取相反方向
 
constexpr int Dir8ToMir2 (Dir8 dir)
 
template<typename T, typename F>
int GetMask (const std::array< T, 4 > &arr, F func)
 
constexpr size_t Mask2Index (int mask)
 
template<IsSigned T, std::size_t N>
constexpr Array< T, NSize2Anchor (const Array< T, N > &size, const Array< Direction, N > &dir)
 根据大小和对齐,计算锚点
 
template<IsSigned T, std::size_t N>
constexpr Array< T, NSize2Anchor (const Array< T, N > &size, const Array< T, N > &size_self, const Array< Direction, N > &dir)
 根据大小和对齐,计算锚点
 
template<IsSigned T, std::size_t N>
constexpr Array< T, NDir2Offset (const Array< T, N > &size, Dir4 dir)
 根据大小和朝向,计算偏移
 
float Dir2Rotate (Dir4 dir)
 方向对应的旋转角度(弧度)
 
Direction2 Anchor2Direction (std::string_view anchor)
 锚点(字符串)返回 对齐
 
Point Anchor2Point (const Size &size, std::string_view anchor)
 锚点(字符串)返回 偏移
 
Position Anchor2Position (const Position &size, std::string_view anchor)
 
template<typename T>
constexpr Array< T, 2 > GetLT (const Array< T, 4 > &rect)
 
template<typename T>
constexpr Array< T, 2 > GetRT (const Array< T, 4 > &rect)
 
template<typename T>
constexpr Array< T, 2 > GetRB (const Array< T, 4 > &rect)
 
template<typename T>
constexpr Array< T, 2 > GetLB (const Array< T, 4 > &rect)
 
template<typename T>
constexpr TGetLeft (Array< T, 4 > &rect)
 
template<typename T>
constexpr TGetTop (Array< T, 4 > &rect)
 
template<typename T>
constexpr TGetRight (Array< T, 4 > &rect)
 
template<typename T>
constexpr TGetBottom (Array< T, 4 > &rect)
 
template<typename T>
constexpr T GetHeight (const Array< T, 4 > &rect)
 计算返回 矩形 右下角坐标y 减去 左上角坐标y
 
template<typename T>
constexpr T GetWidth (const Array< T, 4 > &rect)
 计算返回 矩形 右下角坐标x 减去 左上角坐标x
 
template<typename T>
constexpr Array< T, 2 > GetSize (const Array< T, 4 > &rect)
 计算返回 矩形 宽和高
 
template<typename T>
constexpr void Shrink (Array< T, 4 > &rect, const T &v)
 拓展矩形
 
template<typename T>
constexpr Array< T, 4 > Shrink (const Array< T, 4 > &rect, const T &v)
 
template<typename T>
constexpr void OffsetRect (Array< T, 4 > &rect, const Array< T, 2 > &offset)
 偏移矩形
 

变量

constexpr Direction2 LT = { Direction::BACK, Direction::BACK }
 
constexpr Direction2 LC = { Direction::BACK, Direction::ZERO }
 
constexpr Direction2 LB = { Direction::BACK, Direction::FRONT }
 
constexpr Direction2 CT = { Direction::ZERO, Direction::BACK }
 
constexpr Direction2 CC = { Direction::ZERO, Direction::ZERO }
 
constexpr Direction2 CB = { Direction::ZERO, Direction::FRONT }
 
constexpr Direction2 RT = { Direction::FRONT, Direction::BACK }
 
constexpr Direction2 RC = { Direction::FRONT, Direction::ZERO }
 
constexpr Direction2 RB = { Direction::FRONT, Direction::FRONT }
 
constexpr int MASK_J = 1
 平滑地图 四方向掩码
 
constexpr int MASK_L = 2
 
constexpr int MASK_7 = 4
 
constexpr int MASK_Γ = 8
 

详细描述

方向、对齐定义

类型定义说明

◆ Direction2

在文件 dl_align.h32 行定义.

枚举类型说明

◆ Corner

enum class dl::Align::Corner
strong

斜角位置(4个点,quad用)

枚举值
LT 
RT 
RB 
LB 

在文件 dl_align.h132 行定义.

◆ Dir4

enum class dl::Align::Dir4
strong
枚举值
RIGHT 
BOTTOM 
LEFT 
TOP 

在文件 dl_align.h46 行定义.

◆ Dir8

enum class dl::Align::Dir8
strong
枚举值
RIGHT 
RB 
BOTTOM 
LB 
LEFT 
LT 
TOP 
RT 
NONE 

在文件 dl_align.h54 行定义.

◆ Direction

enum class dl::Align::Direction : int
strong
枚举值
BACK 
ZERO 
FRONT 
FARTHEST 

在文件 dl_align.h24 行定义.

◆ LTRB

enum class dl::Align::LTRB
strong

左上右下(2个点,rect用)

枚举值
LEFT 
TOP 
RIGHT 
BOTTOM 

在文件 dl_align.h124 行定义.

函数说明

◆ Anchor2Direction()

Direction2 dl::Align::Anchor2Direction ( std::string_view anchor)

锚点(字符串)返回 对齐

参数
[in]anchor九个方位center、lt、rt、rb、lb、left、right、top、buttom
注解
为空时返回左上角

◆ Anchor2Point()

Point dl::Align::Anchor2Point ( const Size & size,
std::string_view anchor )

锚点(字符串)返回 偏移

参数
[in]anchor九个方位center、lt、rt、rb、lb、left、right、top、buttom @ 也可以是 "12, 45",注意逗号后有个空格,不过也可以没有空格
注解
例如{32, 24}居中对齐返回的是{16, 12}

◆ Anchor2Position()

Position dl::Align::Anchor2Position ( const Position & size,
std::string_view anchor )

◆ Dir2Offset()

template<IsSigned T, std::size_t N>
Array< T, N > dl::Align::Dir2Offset ( const Array< T, N > & size,
Dir4 dir )
constexpr

根据大小和朝向,计算偏移

在文件 dl_align.h239 行定义.

◆ Dir2Rotate()

float dl::Align::Dir2Rotate ( Dir4 dir)
inline

方向对应的旋转角度(弧度)

在文件 dl_align.h258 行定义.

◆ Dir8ToMir2()

int dl::Align::Dir8ToMir2 ( Dir8 dir)
constexpr

在文件 dl_align.h119 行定义.

◆ GetBottom()

template<typename T>
T & dl::Align::GetBottom ( Array< T, 4 > & rect)
constexpr

在文件 dl_align.h325 行定义.

◆ GetDir8()

Dir8 dl::Align::GetDir8 ( const PointU & p0,
const PointU & p1 )
constexpr

获取方向

注解
仅相邻格有效(dx、dy ∈ {-1,0,1} 且不同时为 0); 同一格或不相邻一律返回 Dir8::NONE。 Dir8 自 RIGHT=0 起顺时针编号;地图坐标 x 向东、y 向南。

在文件 dl_align.h70 行定义.

◆ GetDir8R()

Dir8 dl::Align::GetDir8R ( Dir8 dir)
constexpr

获取相反方向

在文件 dl_align.h93 行定义.

◆ GetHeight()

template<typename T>
T dl::Align::GetHeight ( const Array< T, 4 > & rect)
constexpr

计算返回 矩形 右下角坐标y 减去 左上角坐标y

参数
[in]rect矩形

在文件 dl_align.h336 行定义.

◆ GetLB()

template<typename T>
Array< T, 2 > dl::Align::GetLB ( const Array< T, 4 > & rect)
constexpr

在文件 dl_align.h304 行定义.

◆ GetLeft()

template<typename T>
T & dl::Align::GetLeft ( Array< T, 4 > & rect)
constexpr

在文件 dl_align.h310 行定义.

◆ GetLT()

template<typename T>
Array< T, 2 > dl::Align::GetLT ( const Array< T, 4 > & rect)
constexpr

在文件 dl_align.h289 行定义.

◆ GetMask()

template<typename T, typename F>
int dl::Align::GetMask ( const std::array< T, 4 > & arr,
F func )

在文件 dl_align.h147 行定义.

◆ GetRB()

template<typename T>
Array< T, 2 > dl::Align::GetRB ( const Array< T, 4 > & rect)
constexpr

在文件 dl_align.h299 行定义.

◆ GetRight()

template<typename T>
T & dl::Align::GetRight ( Array< T, 4 > & rect)
constexpr

在文件 dl_align.h320 行定义.

◆ GetRT()

template<typename T>
Array< T, 2 > dl::Align::GetRT ( const Array< T, 4 > & rect)
constexpr

在文件 dl_align.h294 行定义.

◆ GetSize()

template<typename T>
Array< T, 2 > dl::Align::GetSize ( const Array< T, 4 > & rect)
constexpr

计算返回 矩形 宽和高

参数
[in]rect矩形

在文件 dl_align.h356 行定义.

◆ GetTop()

template<typename T>
T & dl::Align::GetTop ( Array< T, 4 > & rect)
constexpr

在文件 dl_align.h315 行定义.

◆ GetWidth()

template<typename T>
T dl::Align::GetWidth ( const Array< T, 4 > & rect)
constexpr

计算返回 矩形 右下角坐标x 减去 左上角坐标x

参数
[in]rect矩形

在文件 dl_align.h346 行定义.

◆ Mask2Index()

size_t dl::Align::Mask2Index ( int mask)
constexpr

在文件 dl_align.h161 行定义.

◆ OffsetRect()

template<typename T>
void dl::Align::OffsetRect ( Array< T, 4 > & rect,
const Array< T, 2 > & offset )
constexpr

偏移矩形

参数
[in]rect矩形

在文件 dl_align.h386 行定义.

◆ Shrink() [1/2]

template<typename T>
void dl::Align::Shrink ( Array< T, 4 > & rect,
const T & v )
constexpr

拓展矩形

参数
[in]rect矩形

在文件 dl_align.h365 行定义.

◆ Shrink() [2/2]

template<typename T>
Array< T, 4 > dl::Align::Shrink ( const Array< T, 4 > & rect,
const T & v )
constexpr

在文件 dl_align.h373 行定义.

◆ Size2Anchor() [1/2]

template<IsSigned T, std::size_t N>
Array< T, N > dl::Align::Size2Anchor ( const Array< T, N > & size,
const Array< Direction, N > & dir )
constexpr

根据大小和对齐,计算锚点

注解
例如{32, 24}居中对齐返回的是{16, 12}

在文件 dl_align.h208 行定义.

◆ Size2Anchor() [2/2]

template<IsSigned T, std::size_t N>
Array< T, N > dl::Align::Size2Anchor ( const Array< T, N > & size,
const Array< T, N > & size_self,
const Array< Direction, N > & dir )
constexpr

根据大小和对齐,计算锚点

注解
例如{32, 24}居中对齐返回的是{16, 12}

在文件 dl_align.h223 行定义.

变量说明

◆ CB

Direction2 dl::Align::CB = { Direction::ZERO, Direction::FRONT }
constexpr

在文件 dl_align.h40 行定义.

◆ CC

Direction2 dl::Align::CC = { Direction::ZERO, Direction::ZERO }
constexpr

在文件 dl_align.h39 行定义.

◆ CT

Direction2 dl::Align::CT = { Direction::ZERO, Direction::BACK }
constexpr

在文件 dl_align.h38 行定义.

◆ LB

Direction2 dl::Align::LB = { Direction::BACK, Direction::FRONT }
constexpr

在文件 dl_align.h36 行定义.

◆ LC

Direction2 dl::Align::LC = { Direction::BACK, Direction::ZERO }
constexpr

在文件 dl_align.h35 行定义.

◆ LT

Direction2 dl::Align::LT = { Direction::BACK, Direction::BACK }
constexpr

在文件 dl_align.h34 行定义.

◆ MASK_Γ

int dl::Align::MASK_Γ = 8
constexpr

在文件 dl_align.h144 行定义.

◆ MASK_7

int dl::Align::MASK_7 = 4
constexpr

在文件 dl_align.h143 行定义.

◆ MASK_J

int dl::Align::MASK_J = 1
constexpr

平滑地图 四方向掩码

在文件 dl_align.h141 行定义.

◆ MASK_L

int dl::Align::MASK_L = 2
constexpr

在文件 dl_align.h142 行定义.

◆ RB

Direction2 dl::Align::RB = { Direction::FRONT, Direction::FRONT }
constexpr

在文件 dl_align.h44 行定义.

◆ RC

Direction2 dl::Align::RC = { Direction::FRONT, Direction::ZERO }
constexpr

在文件 dl_align.h43 行定义.

◆ RT

Direction2 dl::Align::RT = { Direction::FRONT, Direction::BACK }
constexpr

在文件 dl_align.h42 行定义.