Files
dl/document/html/dl__align_8h_source.html
T
2026-09-16 14:07:40 +08:00

543 lines
110 KiB
HTML
Vendored
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: D:/dl/dl/math/dl_align.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_d483d22d183a78db490f3ff6a4a958eb.html">math</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_align.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__align_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;array&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;string_view&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="dl__concept_8h.html">base/dl_concept.h</a>&quot;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="dl__log_8h.html">io/dl_log.h</a>&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="dl__string_8h.html">base/dl_string.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span></div>
<div class="foldopen" id="foldopen00022" data-start="{" data-end="}">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html"> 22</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl_1_1_align.html">dl::Align</a></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
<div class="foldopen" id="foldopen00024" data-start="{" data-end="};">
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129"> 24</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129">Direction</a> : <span class="keywordtype">int</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>{</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0"> 26</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">BACK</a> = -1,</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c"> 27</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">ZERO</a> = 0,</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee"> 28</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">FRONT</a> = 1,</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129ae6887a217aac2e6a015efe499d1c0f81"> 29</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129ae6887a217aac2e6a015efe499d1c0f81">FARTHEST</a> = std::numeric_limits&lt;int&gt;::lowest()</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>};</div>
</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5"> 32</a></span><span class="keyword">using </span><a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> = <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;Direction, 2&gt;</a>;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ad84b240b963cebbd1b30aa69916dee5b"> 34</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#ad84b240b963cebbd1b30aa69916dee5b">LT</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">Direction::BACK</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">Direction::BACK</a> };</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#af1e5f722e9c33dc1909dd059929db7c9"> 35</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#af1e5f722e9c33dc1909dd059929db7c9">LC</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">Direction::BACK</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">Direction::ZERO</a> };</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a3753f75e15f331c3f99065d512a195c0"> 36</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#a3753f75e15f331c3f99065d512a195c0">LB</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">Direction::BACK</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">Direction::FRONT</a> };</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a908a97eff5085ef24d7a7f38071b7ec5"> 38</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#a908a97eff5085ef24d7a7f38071b7ec5">CT</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">Direction::ZERO</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">Direction::BACK</a> };</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ac209a03bf892bbcc2b5d1f0227126ffe"> 39</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#ac209a03bf892bbcc2b5d1f0227126ffe">CC</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">Direction::ZERO</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">Direction::ZERO</a> };</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a55deda4e85c43f11caf78360cd0655e8"> 40</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#a55deda4e85c43f11caf78360cd0655e8">CB</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">Direction::ZERO</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">Direction::FRONT</a> };</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#aa12b82d91d5bf75ecf092f3b3dafdbbd"> 42</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#aa12b82d91d5bf75ecf092f3b3dafdbbd">RT</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">Direction::FRONT</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">Direction::BACK</a> };</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a693337a9158a3e3a5e59c468f664a275"> 43</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#a693337a9158a3e3a5e59c468f664a275">RC</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">Direction::FRONT</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">Direction::ZERO</a> };</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#add8862386c1ad39f756e12912764a584"> 44</a></span><span class="keyword">constexpr</span> <a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_variable" href="namespacedl_1_1_align.html#add8862386c1ad39f756e12912764a584">RB</a> = { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">Direction::FRONT</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">Direction::FRONT</a> };</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="foldopen" id="foldopen00046" data-start="{" data-end="};">
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81"> 46</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81">Dir4</a></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>{</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403"> 48</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403">RIGHT</a> = 0,</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b"> 49</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b">BOTTOM</a>,</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758"> 50</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758">LEFT</a>,</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63"> 51</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63">TOP</a></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="foldopen" id="foldopen00054" data-start="{" data-end="};">
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86"> 54</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86">Dir8</a></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span>{</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a21507b40c80068eda19865706fdc2403"> 56</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403">RIGHT</a> = 0,</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac8ee22e1fc2165dfd3d2b04aef93b2f2"> 57</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#add8862386c1ad39f756e12912764a584">RB</a>,</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a1fabf63de5c96c78e2a40805bcdeb73b"> 58</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b">BOTTOM</a>,</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac951270e425b15fc20c64da4341c1d89"> 59</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#a3753f75e15f331c3f99065d512a195c0">LB</a>,</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a684d325a7303f52e64011467ff5c5758"> 60</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758">LEFT</a>,</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac562607189d77eb9dfb707464c1e7b0b"> 61</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#ad84b240b963cebbd1b30aa69916dee5b">LT</a>,</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a6705777b712ee811e76fb07162081d63"> 62</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63">TOP</a>,</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a705610ed3e5ec724f5cb0d76a5fd3aa1"> 63</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#aa12b82d91d5bf75ecf092f3b3dafdbbd">RT</a>,</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ab50339a10e1de285ac99d4c3990b8693"> 64</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ab50339a10e1de285ac99d4c3990b8693">NONE</a></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>};</div>
</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span></div>
<div class="foldopen" id="foldopen00070" data-start="{" data-end="}">
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5371d8f109bc49105b803b381008bf07"> 70</a></span><span class="keyword">constexpr</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86">Dir8</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a5371d8f109bc49105b803b381008bf07">GetDir8</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#a6347394cca146fd6b8fedf1d3545de59">PointU</a>&amp; p0, <span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#a6347394cca146fd6b8fedf1d3545de59">PointU</a>&amp; p1)</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>{</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// 用“绝对距离 + 符号”判断,而不是 p0.x + 1 == p1.x</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="comment">// PointU 是无符号,加法在哨兵坐标 (unsigned)-1 上会回绕,</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// 把相距极远的两个点误判成相邻。</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> dx_abs = (p1.x &gt; p0.x) ? (p1.x - p0.x) : (p0.x - p1.x);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> dy_abs = (p1.y &gt; p0.y) ? (p1.y - p0.y) : (p0.y - p1.y);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">if</span> (dx_abs &gt; 1 || dy_abs &gt; 1)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ab50339a10e1de285ac99d4c3990b8693">Dir8::NONE</a>; <span class="comment">// 同一格或不相邻</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">const</span> <span class="keywordtype">int</span> dx = (p1.x &gt; p0.x) ? 1 : ((p1.x &lt; p0.x) ? -1 : 0);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">const</span> <span class="keywordtype">int</span> dy = (p1.y &gt; p0.y) ? 1 : ((p1.y &lt; p0.y) ? -1 : 0);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// 查表:行 = dy+1(上/中/下),列 = dx+1(左/中/右)</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">constexpr</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86">Dir8</a> DIR8_XY[3][3] = {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac562607189d77eb9dfb707464c1e7b0b">Dir8::LT</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a6705777b712ee811e76fb07162081d63">Dir8::TOP</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a705610ed3e5ec724f5cb0d76a5fd3aa1">Dir8::RT</a> },</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a684d325a7303f52e64011467ff5c5758">Dir8::LEFT</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ab50339a10e1de285ac99d4c3990b8693">Dir8::NONE</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a21507b40c80068eda19865706fdc2403">Dir8::RIGHT</a> },</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> { <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac951270e425b15fc20c64da4341c1d89">Dir8::LB</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a1fabf63de5c96c78e2a40805bcdeb73b">Dir8::BOTTOM</a>, <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac8ee22e1fc2165dfd3d2b04aef93b2f2">Dir8::RB</a> },</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> };</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> DIR8_XY[dy + 1][dx + 1];</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>}</div>
</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span></div>
<div class="foldopen" id="foldopen00093" data-start="{" data-end="}">
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a12ce7f2b903017ba79df1c04af28ffe2"> 93</a></span><span class="keyword">constexpr</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86">Dir8</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a12ce7f2b903017ba79df1c04af28ffe2">GetDir8R</a>(<a class="code hl_enumeration" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86">Dir8</a> dir)</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>{</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">switch</span> (dir)</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a21507b40c80068eda19865706fdc2403">Dir8::RIGHT</a>:</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a684d325a7303f52e64011467ff5c5758">Dir8::LEFT</a>;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac8ee22e1fc2165dfd3d2b04aef93b2f2">Dir8::RB</a>:</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac562607189d77eb9dfb707464c1e7b0b">Dir8::LT</a>;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a1fabf63de5c96c78e2a40805bcdeb73b">Dir8::BOTTOM</a>:</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a6705777b712ee811e76fb07162081d63">Dir8::TOP</a>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac951270e425b15fc20c64da4341c1d89">Dir8::LB</a>:</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a705610ed3e5ec724f5cb0d76a5fd3aa1">Dir8::RT</a>;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a684d325a7303f52e64011467ff5c5758">Dir8::LEFT</a>:</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a21507b40c80068eda19865706fdc2403">Dir8::RIGHT</a>;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac562607189d77eb9dfb707464c1e7b0b">Dir8::LT</a>:</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac8ee22e1fc2165dfd3d2b04aef93b2f2">Dir8::RB</a>;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a6705777b712ee811e76fb07162081d63">Dir8::TOP</a>:</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a1fabf63de5c96c78e2a40805bcdeb73b">Dir8::BOTTOM</a>;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a705610ed3e5ec724f5cb0d76a5fd3aa1">Dir8::RT</a>:</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac951270e425b15fc20c64da4341c1d89">Dir8::LB</a>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ab50339a10e1de285ac99d4c3990b8693">Dir8::NONE</a>;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>}</div>
</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="foldopen" id="foldopen00119" data-start="{" data-end="}">
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ac1dc4a33033f2c915be4bf51abd7acd3"> 119</a></span><span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_function" href="namespacedl_1_1_align.html#ac1dc4a33033f2c915be4bf51abd7acd3">Dir8ToMir2</a>(<a class="code hl_enumeration" href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86">Dir8</a> dir)</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>{</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">return</span> ((<span class="keywordtype">int</span>)dir + 2) % 8;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span>}</div>
</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span></div>
<div class="foldopen" id="foldopen00124" data-start="{" data-end="};">
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00"> 124</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00">LTRB</a></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span>{</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a684d325a7303f52e64011467ff5c5758"> 126</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758">LEFT</a> = 0,</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a6705777b712ee811e76fb07162081d63"> 127</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63">TOP</a> = 1,</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a21507b40c80068eda19865706fdc2403"> 128</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403">RIGHT</a> = 2,</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a1fabf63de5c96c78e2a40805bcdeb73b"> 129</a></span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b">BOTTOM</a> = 3</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span>};</div>
</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span></div>
<div class="foldopen" id="foldopen00132" data-start="{" data-end="};">
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ae1eaa667a7b7247b7950dd50568dc550"> 132</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="namespacedl_1_1_align.html#ae1eaa667a7b7247b7950dd50568dc550">Corner</a></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>{</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ae1eaa667a7b7247b7950dd50568dc550ac562607189d77eb9dfb707464c1e7b0b"> 134</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#ad84b240b963cebbd1b30aa69916dee5b">LT</a> = 0,</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ae1eaa667a7b7247b7950dd50568dc550a705610ed3e5ec724f5cb0d76a5fd3aa1"> 135</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#aa12b82d91d5bf75ecf092f3b3dafdbbd">RT</a> = 1,</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ae1eaa667a7b7247b7950dd50568dc550ac8ee22e1fc2165dfd3d2b04aef93b2f2"> 136</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#add8862386c1ad39f756e12912764a584">RB</a> = 2,</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ae1eaa667a7b7247b7950dd50568dc550ac951270e425b15fc20c64da4341c1d89"> 137</a></span> <a class="code hl_variable" href="namespacedl_1_1_align.html#a3753f75e15f331c3f99065d512a195c0">LB</a> = 3,</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>};</div>
</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc"> 141</a></span><span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> = 1;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69"> 142</a></span><span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a> = 2;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98"> 143</a></span><span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a> = 4;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645"> 144</a></span><span class="keyword">constexpr</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a> = 8;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> F&gt;</div>
<div class="foldopen" id="foldopen00147" data-start="{" data-end="}">
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a1789a208149b8d39397532b4c50b99f8"> 147</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="namespacedl_1_1_align.html#a1789a208149b8d39397532b4c50b99f8">GetMask</a>(<span class="keyword">const</span> std::array&lt;T, 4&gt;&amp; arr, <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132a800618943025315f869e4e1f09471012">F</a> func)</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>{</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordtype">int</span> ret = 0;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">if</span> (func(arr[0]))</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> ret |= <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a>;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">if</span> (func(arr[1]))</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> ret |= <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">if</span> (func(arr[2]))</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> ret |= <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a>;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (func(arr[3]))</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> ret |= <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span>}</div>
</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="foldopen" id="foldopen00161" data-start="{" data-end="}">
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#acbbfe7747d3c469a72dc31c0436d197e"> 161</a></span><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="namespacedl_1_1_align.html#acbbfe7747d3c469a72dc31c0436d197e">Mask2Index</a>(<span class="keywordtype">int</span> mask)</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span>{</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">switch</span> (mask)</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> {</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">case</span> 0:</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">return</span> 6;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a>:</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">return</span> 3;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a>:</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> 4;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a>:</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">return</span> 11;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a>:</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">return</span> 8;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a>:</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> 7;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a>:</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">return</span> 14;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a>:</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">return</span> 12;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">return</span> 9;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">return</span> 13;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">return</span> 5;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">return</span> 10;</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> 1;</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="keywordflow">return</span> 2;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">case</span> <a class="code hl_variable" href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">MASK_J</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">MASK_L</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">MASK_7</a> | <a class="code hl_variable" href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">MASK_Γ</a>:</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">return</span> 15;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> }</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>}</div>
</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="keyword">template</span>&lt;IsSigned T, std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="foldopen" id="foldopen00208" data-start="{" data-end="}">
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ad714df65beaef3ed8c4a3c51747b142f"> 208</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#ad714df65beaef3ed8c4a3c51747b142f">Size2Anchor</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a>&amp; size, <span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;Direction, N&gt;</a>&amp; dir)</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span>{</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a> ret;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132a8d9c307cb7f3c4a32822a51922d1ceaa">N</a>; ++i)</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> {</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> ret[i] = (size[i] / <span class="keyword">static_cast&lt;</span><a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a><span class="keyword">&gt;</span>(2)) * ((<span class="keywordtype">int</span>)dir[i] + 1);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> }</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span>}</div>
</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="keyword">template</span>&lt;IsSigned T, std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="foldopen" id="foldopen00223" data-start="{" data-end="}">
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a770916af1526e09b23aba60dd337d777"> 223</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#ad714df65beaef3ed8c4a3c51747b142f">Size2Anchor</a>(</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a>&amp; size,</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a>&amp; size_self,</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;Direction, N&gt;</a>&amp; dir)</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span>{</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a> ret;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">for</span> (std::size_t i = 0; i &lt; <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132a8d9c307cb7f3c4a32822a51922d1ceaa">N</a>; ++i)</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> ret[i] = ((size[i] - size_self[i]) / <span class="keyword">static_cast&lt;</span><a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a><span class="keyword">&gt;</span>(2)) * ((<span class="keywordtype">int</span>)dir[i] + 1);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> }</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span>}</div>
</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="keyword">template</span>&lt;IsSigned T, std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="foldopen" id="foldopen00239" data-start="{" data-end="}">
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a9ec918cd3de84e87af4bbaff81226233"> 239</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a9ec918cd3de84e87af4bbaff81226233">Dir2Offset</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, N&gt;</a>&amp; size, <a class="code hl_enumeration" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81">Dir4</a> dir)</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span>{</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">switch</span> (dir)</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> {</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403">dl::Align::Dir4::RIGHT</a>:</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">return</span> {};</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b">dl::Align::Dir4::BOTTOM</a>:</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">return</span> {size.h, 0};</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758">dl::Align::Dir4::LEFT</a>:</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> { -size.w, -size.h };</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63">dl::Align::Dir4::TOP</a>:</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keywordflow">return</span> { size.h, 0 };</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">return</span> {};</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span>}</div>
</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span></div>
<div class="foldopen" id="foldopen00258" data-start="{" data-end="}">
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#ad6c8364747933c9b1466b121b532fe9f"> 258</a></span><span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code hl_function" href="namespacedl_1_1_align.html#ad6c8364747933c9b1466b121b532fe9f">Dir2Rotate</a>(<a class="code hl_enumeration" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81">Dir4</a> dir)</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span>{</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">switch</span> (dir)</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> {</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403">Dir4::RIGHT</a>: <span class="keywordflow">return</span> 0.0f;</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b">Dir4::BOTTOM</a>: <span class="keywordflow">return</span> <a class="code hl_function" href="namespacedl_1_1_math.html#a1274044c749de5cfee397f1faf1b0910">Math::PIF</a>(1, 2);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758">Dir4::LEFT</a>: <span class="keywordflow">return</span> <a class="code hl_function" href="namespacedl_1_1_math.html#a1274044c749de5cfee397f1faf1b0910">Math::PIF</a>(2, 2);</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63">Dir4::TOP</a>: <span class="keywordflow">return</span> <a class="code hl_function" href="namespacedl_1_1_math.html#a1274044c749de5cfee397f1faf1b0910">Math::PIF</a>(3, 2);</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> }</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">return</span> 0.0f;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span>}</div>
</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> </div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a79009de32340c0a32fd5f4f4f65756cd"> 276</a></span><a class="code hl_typedef" href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">Direction2</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a79009de32340c0a32fd5f4f4f65756cd">Anchor2Direction</a>(std::string_view anchor);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a124e957ef2aa87de0f09352e5219409d"> 284</a></span><a class="code hl_typedef" href="namespacedl.html#af6ec361004784c4eabc4ee2b9e85d603">Point</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a124e957ef2aa87de0f09352e5219409d">Anchor2Point</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#af4b025efbd5dae0045cce4cbc9546416">Size</a>&amp; size, std::string_view anchor);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a146b85edb873f3951c061924b878e428"> 285</a></span><a class="code hl_typedef" href="namespacedl.html#a04611b2d3b24b5b4ad6569cdea6f62d4">Position</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a146b85edb873f3951c061924b878e428">Anchor2Position</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespacedl.html#a04611b2d3b24b5b4ad6569cdea6f62d4">Position</a>&amp; size, std::string_view anchor);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> </div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="comment">//-----------------------获取Rect斜角方位-----------------------------</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00289" data-start="{" data-end="}">
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a8f4b0ab21ff681dac0c359f391974eeb"> 289</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 2&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a8f4b0ab21ff681dac0c359f391974eeb">GetLT</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span>{</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> { rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a684d325a7303f52e64011467ff5c5758">LTRB::LEFT</a>], rect[(<span class="keywordtype">size_t</span>)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a6705777b712ee811e76fb07162081d63">LTRB::TOP</a>] };</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span>}</div>
</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00294" data-start="{" data-end="}">
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a4c4da16bc42afb0ae0913797b9a6f0e3"> 294</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 2&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a4c4da16bc42afb0ae0913797b9a6f0e3">GetRT</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span>{</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">return</span> { rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a21507b40c80068eda19865706fdc2403">LTRB::RIGHT</a>], rect[(<span class="keywordtype">size_t</span>)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a6705777b712ee811e76fb07162081d63">LTRB::TOP</a>] };</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span>}</div>
</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00299" data-start="{" data-end="}">
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a525217696d6e6a57c6b5221b5d3f3471"> 299</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 2&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a525217696d6e6a57c6b5221b5d3f3471">GetRB</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span>{</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">return</span> { rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a21507b40c80068eda19865706fdc2403">LTRB::RIGHT</a>], rect[(<span class="keywordtype">size_t</span>)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a1fabf63de5c96c78e2a40805bcdeb73b">LTRB::BOTTOM</a>] };</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span>}</div>
</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00304" data-start="{" data-end="}">
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5d50dc8d55bdebb9971a5e03da79ea05"> 304</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 2&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a5d50dc8d55bdebb9971a5e03da79ea05">GetLB</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span>{</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keywordflow">return</span> { rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a684d325a7303f52e64011467ff5c5758">LTRB::LEFT</a>], rect[(<span class="keywordtype">size_t</span>)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a1fabf63de5c96c78e2a40805bcdeb73b">LTRB::BOTTOM</a>] };</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span>}</div>
</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="comment">//-----------------------获取Rect水平垂直方位-----------------------------</span></div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00310" data-start="{" data-end="}">
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a5397d776ab4fb21c41d7107d25af7448"> 310</a></span><span class="keyword">constexpr</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; <a class="code hl_function" href="namespacedl_1_1_align.html#a5397d776ab4fb21c41d7107d25af7448">GetLeft</a>(<a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span>{</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">return</span> rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a684d325a7303f52e64011467ff5c5758">LTRB::LEFT</a>];</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span>}</div>
</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00315" data-start="{" data-end="}">
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a336bac34d798792d7c0463504e6e05f6"> 315</a></span><span class="keyword">constexpr</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; <a class="code hl_function" href="namespacedl_1_1_align.html#a336bac34d798792d7c0463504e6e05f6">GetTop</a>(<a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span>{</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">return</span> rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a6705777b712ee811e76fb07162081d63">LTRB::TOP</a>];</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span>}</div>
</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00320" data-start="{" data-end="}">
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a68bb59094a272311df75fdf0854993e1"> 320</a></span><span class="keyword">constexpr</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; <a class="code hl_function" href="namespacedl_1_1_align.html#a68bb59094a272311df75fdf0854993e1">GetRight</a>(<a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span>{</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keywordflow">return</span> rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a21507b40c80068eda19865706fdc2403">LTRB::RIGHT</a>];</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span>}</div>
</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00325" data-start="{" data-end="}">
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a08f5b7acc5e9e2d5d726dbd5009c7454"> 325</a></span><span class="keyword">constexpr</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; <a class="code hl_function" href="namespacedl_1_1_align.html#a08f5b7acc5e9e2d5d726dbd5009c7454">GetBottom</a>(<a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span>{</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">return</span> rect[(size_t)<a class="code hl_enumvalue" href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a1fabf63de5c96c78e2a40805bcdeb73b">LTRB::BOTTOM</a>];</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span>}</div>
</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> </div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="comment">//-------------------------------隐藏含义获取--------------------------------</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00336" data-start="{" data-end="}">
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#af452e76f6b63b9a02ca6a13d025e9fbd"> 336</a></span><span class="keyword">constexpr</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> <a class="code hl_function" href="namespacedl_1_1_align.html#af452e76f6b63b9a02ca6a13d025e9fbd">GetHeight</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span>{</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="keywordflow">return</span> rect[3] - rect[1];</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span>}</div>
</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00346" data-start="{" data-end="}">
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#aa578b926f9679b46ad30bff43f10f612"> 346</a></span><span class="keyword">constexpr</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> <a class="code hl_function" href="namespacedl_1_1_align.html#aa578b926f9679b46ad30bff43f10f612">GetWidth</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span>{</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keywordflow">return</span> rect[2] - rect[0];</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span>}</div>
</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span></div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00356" data-start="{" data-end="}">
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a61835f381b8a591ef72cf67d60645d4b"> 356</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 2&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#a61835f381b8a591ef72cf67d60645d4b">GetSize</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect)</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span>{</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keywordflow">return</span> { <a class="code hl_function" href="namespacedl_1_1_align.html#aa578b926f9679b46ad30bff43f10f612">GetWidth</a>(rect), <a class="code hl_function" href="namespacedl_1_1_align.html#af452e76f6b63b9a02ca6a13d025e9fbd">GetHeight</a>(rect) };</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span>}</div>
</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span></div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00365" data-start="{" data-end="}">
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#aa060d1ce553a0fe8f3ad5a048afc2029"> 365</a></span><span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_align.html#aa060d1ce553a0fe8f3ad5a048afc2029">Shrink</a>(<a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect, <span class="keyword">const</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; v)</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span>{</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> rect[0] += v;</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> rect[1] += v;</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> rect[2] -= v;</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> rect[3] -= v;</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span>}</div>
</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00373" data-start="{" data-end="}">
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a1be1edd972cee4992edacd178eb221d7"> 373</a></span><span class="keyword">constexpr</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a> <a class="code hl_function" href="namespacedl_1_1_align.html#aa060d1ce553a0fe8f3ad5a048afc2029">Shrink</a>(<span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect, <span class="keyword">const</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; v)</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span>{</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a> ret = rect;</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <a class="code hl_function" href="namespacedl_1_1_align.html#aa060d1ce553a0fe8f3ad5a048afc2029">Shrink</a>(ret, v);</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span>}</div>
</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span></div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00386" data-start="{" data-end="}">
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"><a class="line" href="namespacedl_1_1_align.html#a056a50ddadf644ec40ce325a8c239647"> 386</a></span><span class="keyword">constexpr</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespacedl_1_1_align.html#a056a50ddadf644ec40ce325a8c239647">OffsetRect</a>(<a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 4&gt;</a>&amp; rect, <span class="keyword">const</span> <a class="code hl_class" href="classdl_1_1_array.html">Array&lt;T, 2&gt;</a>&amp; offset)</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span>{</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> rect.left += offset.x;</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> rect.right += offset.x;</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> rect.top += offset.y;</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> rect.bottom += offset.y;</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span>}</div>
</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> </div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span>}</div>
</div>
<div class="ttc" id="aclassdl_1_1_array_html"><div class="ttname"><a href="classdl_1_1_array.html">dl::Array</a></div><div class="ttdoc">Array</div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00028">dl_array.h:29</a></div></div>
<div class="ttc" id="adl__concept_8h_html"><div class="ttname"><a href="dl__concept_8h.html">dl_concept.h</a></div><div class="ttdoc">用于模板限定,更好的报错信息</div></div>
<div class="ttc" id="adl__log_8h_html"><div class="ttname"><a href="dl__log_8h.html">dl_log.h</a></div><div class="ttdoc">日志系统</div></div>
<div class="ttc" id="adl__string_8h_html"><div class="ttname"><a href="dl__string_8h.html">dl_string.h</a></div><div class="ttdoc">字符串相关</div></div>
<div class="ttc" id="anamespacedl_1_1_align_html"><div class="ttname"><a href="namespacedl_1_1_align.html">dl::Align</a></div><div class="ttdoc">方向、对齐定义</div><div class="ttdef"><b>定义</b> <a href="#l00022">dl_align.h:23</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a056a50ddadf644ec40ce325a8c239647"><div class="ttname"><a href="namespacedl_1_1_align.html#a056a50ddadf644ec40ce325a8c239647">dl::Align::OffsetRect</a></div><div class="ttdeci">constexpr void OffsetRect(Array&lt; T, 4 &gt; &amp;rect, const Array&lt; T, 2 &gt; &amp;offset)</div><div class="ttdoc">偏移矩形</div><div class="ttdef"><b>定义</b> <a href="#l00386">dl_align.h:386</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a08f5b7acc5e9e2d5d726dbd5009c7454"><div class="ttname"><a href="namespacedl_1_1_align.html#a08f5b7acc5e9e2d5d726dbd5009c7454">dl::Align::GetBottom</a></div><div class="ttdeci">constexpr T &amp; GetBottom(Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00325">dl_align.h:325</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a124e957ef2aa87de0f09352e5219409d"><div class="ttname"><a href="namespacedl_1_1_align.html#a124e957ef2aa87de0f09352e5219409d">dl::Align::Anchor2Point</a></div><div class="ttdeci">Point Anchor2Point(const Size &amp;size, std::string_view anchor)</div><div class="ttdoc">锚点(字符串)返回 偏移</div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a12ce7f2b903017ba79df1c04af28ffe2"><div class="ttname"><a href="namespacedl_1_1_align.html#a12ce7f2b903017ba79df1c04af28ffe2">dl::Align::GetDir8R</a></div><div class="ttdeci">constexpr Dir8 GetDir8R(Dir8 dir)</div><div class="ttdoc">获取相反方向</div><div class="ttdef"><b>定义</b> <a href="#l00093">dl_align.h:93</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a146b85edb873f3951c061924b878e428"><div class="ttname"><a href="namespacedl_1_1_align.html#a146b85edb873f3951c061924b878e428">dl::Align::Anchor2Position</a></div><div class="ttdeci">Position Anchor2Position(const Position &amp;size, std::string_view anchor)</div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a1789a208149b8d39397532b4c50b99f8"><div class="ttname"><a href="namespacedl_1_1_align.html#a1789a208149b8d39397532b4c50b99f8">dl::Align::GetMask</a></div><div class="ttdeci">int GetMask(const std::array&lt; T, 4 &gt; &amp;arr, F func)</div><div class="ttdef"><b>定义</b> <a href="#l00147">dl_align.h:147</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a2a32f7b0906c35f1afb7d5496cbdaf00"><div class="ttname"><a href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00">dl::Align::LTRB</a></div><div class="ttdeci">LTRB</div><div class="ttdoc">左上右下(2个点,rect用)</div><div class="ttdef"><b>定义</b> <a href="#l00124">dl_align.h:125</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a2a32f7b0906c35f1afb7d5496cbdaf00a1fabf63de5c96c78e2a40805bcdeb73b"><div class="ttname"><a href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a1fabf63de5c96c78e2a40805bcdeb73b">dl::Align::LTRB::BOTTOM</a></div><div class="ttdeci">@ BOTTOM</div><div class="ttdef"><b>定义</b> <a href="#l00129">dl_align.h:129</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a2a32f7b0906c35f1afb7d5496cbdaf00a21507b40c80068eda19865706fdc2403"><div class="ttname"><a href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a21507b40c80068eda19865706fdc2403">dl::Align::LTRB::RIGHT</a></div><div class="ttdeci">@ RIGHT</div><div class="ttdef"><b>定义</b> <a href="#l00128">dl_align.h:128</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a2a32f7b0906c35f1afb7d5496cbdaf00a6705777b712ee811e76fb07162081d63"><div class="ttname"><a href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a6705777b712ee811e76fb07162081d63">dl::Align::LTRB::TOP</a></div><div class="ttdeci">@ TOP</div><div class="ttdef"><b>定义</b> <a href="#l00127">dl_align.h:127</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a2a32f7b0906c35f1afb7d5496cbdaf00a684d325a7303f52e64011467ff5c5758"><div class="ttname"><a href="namespacedl_1_1_align.html#a2a32f7b0906c35f1afb7d5496cbdaf00a684d325a7303f52e64011467ff5c5758">dl::Align::LTRB::LEFT</a></div><div class="ttdeci">@ LEFT</div><div class="ttdef"><b>定义</b> <a href="#l00126">dl_align.h:126</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a336bac34d798792d7c0463504e6e05f6"><div class="ttname"><a href="namespacedl_1_1_align.html#a336bac34d798792d7c0463504e6e05f6">dl::Align::GetTop</a></div><div class="ttdeci">constexpr T &amp; GetTop(Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00315">dl_align.h:315</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a3753f75e15f331c3f99065d512a195c0"><div class="ttname"><a href="namespacedl_1_1_align.html#a3753f75e15f331c3f99065d512a195c0">dl::Align::LB</a></div><div class="ttdeci">constexpr Direction2 LB</div><div class="ttdef"><b>定义</b> <a href="#l00036">dl_align.h:36</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a48cd0eba7de9d3427adf72f9d9bf50f5"><div class="ttname"><a href="namespacedl_1_1_align.html#a48cd0eba7de9d3427adf72f9d9bf50f5">dl::Align::Direction2</a></div><div class="ttdeci">Array&lt; Direction, 2 &gt; Direction2</div><div class="ttdef"><b>定义</b> <a href="#l00032">dl_align.h:32</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86">dl::Align::Dir8</a></div><div class="ttdeci">Dir8</div><div class="ttdef"><b>定义</b> <a href="#l00054">dl_align.h:55</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86a1fabf63de5c96c78e2a40805bcdeb73b"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a1fabf63de5c96c78e2a40805bcdeb73b">dl::Align::Dir8::BOTTOM</a></div><div class="ttdeci">@ BOTTOM</div><div class="ttdef"><b>定义</b> <a href="#l00058">dl_align.h:58</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86a21507b40c80068eda19865706fdc2403"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a21507b40c80068eda19865706fdc2403">dl::Align::Dir8::RIGHT</a></div><div class="ttdeci">@ RIGHT</div><div class="ttdef"><b>定义</b> <a href="#l00056">dl_align.h:56</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86a6705777b712ee811e76fb07162081d63"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a6705777b712ee811e76fb07162081d63">dl::Align::Dir8::TOP</a></div><div class="ttdeci">@ TOP</div><div class="ttdef"><b>定义</b> <a href="#l00062">dl_align.h:62</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86a684d325a7303f52e64011467ff5c5758"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a684d325a7303f52e64011467ff5c5758">dl::Align::Dir8::LEFT</a></div><div class="ttdeci">@ LEFT</div><div class="ttdef"><b>定义</b> <a href="#l00060">dl_align.h:60</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86a705610ed3e5ec724f5cb0d76a5fd3aa1"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86a705610ed3e5ec724f5cb0d76a5fd3aa1">dl::Align::Dir8::RT</a></div><div class="ttdeci">@ RT</div><div class="ttdef"><b>定义</b> <a href="#l00063">dl_align.h:63</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86ab50339a10e1de285ac99d4c3990b8693"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ab50339a10e1de285ac99d4c3990b8693">dl::Align::Dir8::NONE</a></div><div class="ttdeci">@ NONE</div><div class="ttdef"><b>定义</b> <a href="#l00064">dl_align.h:64</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86ac562607189d77eb9dfb707464c1e7b0b"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac562607189d77eb9dfb707464c1e7b0b">dl::Align::Dir8::LT</a></div><div class="ttdeci">@ LT</div><div class="ttdef"><b>定义</b> <a href="#l00061">dl_align.h:61</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86ac8ee22e1fc2165dfd3d2b04aef93b2f2"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac8ee22e1fc2165dfd3d2b04aef93b2f2">dl::Align::Dir8::RB</a></div><div class="ttdeci">@ RB</div><div class="ttdef"><b>定义</b> <a href="#l00057">dl_align.h:57</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4a2717e37f7f86f1ebba6f7518652f86ac951270e425b15fc20c64da4341c1d89"><div class="ttname"><a href="namespacedl_1_1_align.html#a4a2717e37f7f86f1ebba6f7518652f86ac951270e425b15fc20c64da4341c1d89">dl::Align::Dir8::LB</a></div><div class="ttdeci">@ LB</div><div class="ttdef"><b>定义</b> <a href="#l00059">dl_align.h:59</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a4c4da16bc42afb0ae0913797b9a6f0e3"><div class="ttname"><a href="namespacedl_1_1_align.html#a4c4da16bc42afb0ae0913797b9a6f0e3">dl::Align::GetRT</a></div><div class="ttdeci">constexpr Array&lt; T, 2 &gt; GetRT(const Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00294">dl_align.h:294</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5151d3d49e4c178180183ec07e428129"><div class="ttname"><a href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129">dl::Align::Direction</a></div><div class="ttdeci">Direction</div><div class="ttdef"><b>定义</b> <a href="#l00024">dl_align.h:25</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0"><div class="ttname"><a href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a1dd26f1f1790f0b56d5752fb0fbecef0">dl::Align::Direction::BACK</a></div><div class="ttdeci">@ BACK</div><div class="ttdef"><b>定义</b> <a href="#l00026">dl_align.h:26</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c"><div class="ttname"><a href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129a529e9e0beb5f85d1f132917c1a09860c">dl::Align::Direction::ZERO</a></div><div class="ttdeci">@ ZERO</div><div class="ttdef"><b>定义</b> <a href="#l00027">dl_align.h:27</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee"><div class="ttname"><a href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129abb2fe5c916efb43aab8cbb68f997d2ee">dl::Align::Direction::FRONT</a></div><div class="ttdeci">@ FRONT</div><div class="ttdef"><b>定义</b> <a href="#l00028">dl_align.h:28</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5151d3d49e4c178180183ec07e428129ae6887a217aac2e6a015efe499d1c0f81"><div class="ttname"><a href="namespacedl_1_1_align.html#a5151d3d49e4c178180183ec07e428129ae6887a217aac2e6a015efe499d1c0f81">dl::Align::Direction::FARTHEST</a></div><div class="ttdeci">@ FARTHEST</div><div class="ttdef"><b>定义</b> <a href="#l00029">dl_align.h:29</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a525217696d6e6a57c6b5221b5d3f3471"><div class="ttname"><a href="namespacedl_1_1_align.html#a525217696d6e6a57c6b5221b5d3f3471">dl::Align::GetRB</a></div><div class="ttdeci">constexpr Array&lt; T, 2 &gt; GetRB(const Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00299">dl_align.h:299</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5371d8f109bc49105b803b381008bf07"><div class="ttname"><a href="namespacedl_1_1_align.html#a5371d8f109bc49105b803b381008bf07">dl::Align::GetDir8</a></div><div class="ttdeci">constexpr Dir8 GetDir8(const PointU &amp;p0, const PointU &amp;p1)</div><div class="ttdef"><b>定义</b> <a href="#l00070">dl_align.h:70</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5397d776ab4fb21c41d7107d25af7448"><div class="ttname"><a href="namespacedl_1_1_align.html#a5397d776ab4fb21c41d7107d25af7448">dl::Align::GetLeft</a></div><div class="ttdeci">constexpr T &amp; GetLeft(Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00310">dl_align.h:310</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a55deda4e85c43f11caf78360cd0655e8"><div class="ttname"><a href="namespacedl_1_1_align.html#a55deda4e85c43f11caf78360cd0655e8">dl::Align::CB</a></div><div class="ttdeci">constexpr Direction2 CB</div><div class="ttdef"><b>定义</b> <a href="#l00040">dl_align.h:40</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5d50dc8d55bdebb9971a5e03da79ea05"><div class="ttname"><a href="namespacedl_1_1_align.html#a5d50dc8d55bdebb9971a5e03da79ea05">dl::Align::GetLB</a></div><div class="ttdeci">constexpr Array&lt; T, 2 &gt; GetLB(const Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00304">dl_align.h:304</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5ed4eb33e8047a6cc2a21ab8c035ca81"><div class="ttname"><a href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81">dl::Align::Dir4</a></div><div class="ttdeci">Dir4</div><div class="ttdef"><b>定义</b> <a href="#l00046">dl_align.h:47</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b"><div class="ttname"><a href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a1fabf63de5c96c78e2a40805bcdeb73b">dl::Align::Dir4::BOTTOM</a></div><div class="ttdeci">@ BOTTOM</div><div class="ttdef"><b>定义</b> <a href="#l00049">dl_align.h:49</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403"><div class="ttname"><a href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a21507b40c80068eda19865706fdc2403">dl::Align::Dir4::RIGHT</a></div><div class="ttdeci">@ RIGHT</div><div class="ttdef"><b>定义</b> <a href="#l00048">dl_align.h:48</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63"><div class="ttname"><a href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a6705777b712ee811e76fb07162081d63">dl::Align::Dir4::TOP</a></div><div class="ttdeci">@ TOP</div><div class="ttdef"><b>定义</b> <a href="#l00051">dl_align.h:51</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758"><div class="ttname"><a href="namespacedl_1_1_align.html#a5ed4eb33e8047a6cc2a21ab8c035ca81a684d325a7303f52e64011467ff5c5758">dl::Align::Dir4::LEFT</a></div><div class="ttdeci">@ LEFT</div><div class="ttdef"><b>定义</b> <a href="#l00050">dl_align.h:50</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a61835f381b8a591ef72cf67d60645d4b"><div class="ttname"><a href="namespacedl_1_1_align.html#a61835f381b8a591ef72cf67d60645d4b">dl::Align::GetSize</a></div><div class="ttdeci">constexpr Array&lt; T, 2 &gt; GetSize(const Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdoc">计算返回 矩形 宽和高</div><div class="ttdef"><b>定义</b> <a href="#l00356">dl_align.h:356</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a68bb59094a272311df75fdf0854993e1"><div class="ttname"><a href="namespacedl_1_1_align.html#a68bb59094a272311df75fdf0854993e1">dl::Align::GetRight</a></div><div class="ttdeci">constexpr T &amp; GetRight(Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00320">dl_align.h:320</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a693337a9158a3e3a5e59c468f664a275"><div class="ttname"><a href="namespacedl_1_1_align.html#a693337a9158a3e3a5e59c468f664a275">dl::Align::RC</a></div><div class="ttdeci">constexpr Direction2 RC</div><div class="ttdef"><b>定义</b> <a href="#l00043">dl_align.h:43</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a79009de32340c0a32fd5f4f4f65756cd"><div class="ttname"><a href="namespacedl_1_1_align.html#a79009de32340c0a32fd5f4f4f65756cd">dl::Align::Anchor2Direction</a></div><div class="ttdeci">Direction2 Anchor2Direction(std::string_view anchor)</div><div class="ttdoc">锚点(字符串)返回 对齐</div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a895bb673c7a98f4b12b7626926e9da69"><div class="ttname"><a href="namespacedl_1_1_align.html#a895bb673c7a98f4b12b7626926e9da69">dl::Align::MASK_L</a></div><div class="ttdeci">constexpr int MASK_L</div><div class="ttdef"><b>定义</b> <a href="#l00142">dl_align.h:142</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a8f4b0ab21ff681dac0c359f391974eeb"><div class="ttname"><a href="namespacedl_1_1_align.html#a8f4b0ab21ff681dac0c359f391974eeb">dl::Align::GetLT</a></div><div class="ttdeci">constexpr Array&lt; T, 2 &gt; GetLT(const Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdef"><b>定义</b> <a href="#l00289">dl_align.h:289</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a908a97eff5085ef24d7a7f38071b7ec5"><div class="ttname"><a href="namespacedl_1_1_align.html#a908a97eff5085ef24d7a7f38071b7ec5">dl::Align::CT</a></div><div class="ttdeci">constexpr Direction2 CT</div><div class="ttdef"><b>定义</b> <a href="#l00038">dl_align.h:38</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_a9ec918cd3de84e87af4bbaff81226233"><div class="ttname"><a href="namespacedl_1_1_align.html#a9ec918cd3de84e87af4bbaff81226233">dl::Align::Dir2Offset</a></div><div class="ttdeci">constexpr Array&lt; T, N &gt; Dir2Offset(const Array&lt; T, N &gt; &amp;size, Dir4 dir)</div><div class="ttdoc">根据大小和朝向,计算偏移</div><div class="ttdef"><b>定义</b> <a href="#l00239">dl_align.h:239</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_aa060d1ce553a0fe8f3ad5a048afc2029"><div class="ttname"><a href="namespacedl_1_1_align.html#aa060d1ce553a0fe8f3ad5a048afc2029">dl::Align::Shrink</a></div><div class="ttdeci">constexpr void Shrink(Array&lt; T, 4 &gt; &amp;rect, const T &amp;v)</div><div class="ttdoc">拓展矩形</div><div class="ttdef"><b>定义</b> <a href="#l00365">dl_align.h:365</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_aa12b82d91d5bf75ecf092f3b3dafdbbd"><div class="ttname"><a href="namespacedl_1_1_align.html#aa12b82d91d5bf75ecf092f3b3dafdbbd">dl::Align::RT</a></div><div class="ttdeci">constexpr Direction2 RT</div><div class="ttdef"><b>定义</b> <a href="#l00042">dl_align.h:42</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_aa578b926f9679b46ad30bff43f10f612"><div class="ttname"><a href="namespacedl_1_1_align.html#aa578b926f9679b46ad30bff43f10f612">dl::Align::GetWidth</a></div><div class="ttdeci">constexpr T GetWidth(const Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdoc">计算返回 矩形 右下角坐标x 减去 左上角坐标x</div><div class="ttdef"><b>定义</b> <a href="#l00346">dl_align.h:346</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_ac1dc4a33033f2c915be4bf51abd7acd3"><div class="ttname"><a href="namespacedl_1_1_align.html#ac1dc4a33033f2c915be4bf51abd7acd3">dl::Align::Dir8ToMir2</a></div><div class="ttdeci">constexpr int Dir8ToMir2(Dir8 dir)</div><div class="ttdef"><b>定义</b> <a href="#l00119">dl_align.h:119</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_ac209a03bf892bbcc2b5d1f0227126ffe"><div class="ttname"><a href="namespacedl_1_1_align.html#ac209a03bf892bbcc2b5d1f0227126ffe">dl::Align::CC</a></div><div class="ttdeci">constexpr Direction2 CC</div><div class="ttdef"><b>定义</b> <a href="#l00039">dl_align.h:39</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_acbbfe7747d3c469a72dc31c0436d197e"><div class="ttname"><a href="namespacedl_1_1_align.html#acbbfe7747d3c469a72dc31c0436d197e">dl::Align::Mask2Index</a></div><div class="ttdeci">constexpr size_t Mask2Index(int mask)</div><div class="ttdef"><b>定义</b> <a href="#l00161">dl_align.h:161</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_ad6c8364747933c9b1466b121b532fe9f"><div class="ttname"><a href="namespacedl_1_1_align.html#ad6c8364747933c9b1466b121b532fe9f">dl::Align::Dir2Rotate</a></div><div class="ttdeci">float Dir2Rotate(Dir4 dir)</div><div class="ttdoc">方向对应的旋转角度(弧度)</div><div class="ttdef"><b>定义</b> <a href="#l00258">dl_align.h:258</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_ad714df65beaef3ed8c4a3c51747b142f"><div class="ttname"><a href="namespacedl_1_1_align.html#ad714df65beaef3ed8c4a3c51747b142f">dl::Align::Size2Anchor</a></div><div class="ttdeci">constexpr Array&lt; T, N &gt; Size2Anchor(const Array&lt; T, N &gt; &amp;size, const Array&lt; Direction, N &gt; &amp;dir)</div><div class="ttdoc">根据大小和对齐,计算锚点</div><div class="ttdef"><b>定义</b> <a href="#l00208">dl_align.h:208</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_ad84b240b963cebbd1b30aa69916dee5b"><div class="ttname"><a href="namespacedl_1_1_align.html#ad84b240b963cebbd1b30aa69916dee5b">dl::Align::LT</a></div><div class="ttdeci">constexpr Direction2 LT</div><div class="ttdef"><b>定义</b> <a href="#l00034">dl_align.h:34</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_add8862386c1ad39f756e12912764a584"><div class="ttname"><a href="namespacedl_1_1_align.html#add8862386c1ad39f756e12912764a584">dl::Align::RB</a></div><div class="ttdeci">constexpr Direction2 RB</div><div class="ttdef"><b>定义</b> <a href="#l00044">dl_align.h:44</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_ae1eaa667a7b7247b7950dd50568dc550"><div class="ttname"><a href="namespacedl_1_1_align.html#ae1eaa667a7b7247b7950dd50568dc550">dl::Align::Corner</a></div><div class="ttdeci">Corner</div><div class="ttdoc">斜角位置(4个点,quad用)</div><div class="ttdef"><b>定义</b> <a href="#l00132">dl_align.h:133</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_af0432b5677167032d88f47bd6c95a645"><div class="ttname"><a href="namespacedl_1_1_align.html#af0432b5677167032d88f47bd6c95a645">dl::Align::MASK_Γ</a></div><div class="ttdeci">constexpr int MASK_Γ</div><div class="ttdef"><b>定义</b> <a href="#l00144">dl_align.h:144</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_af1e5f722e9c33dc1909dd059929db7c9"><div class="ttname"><a href="namespacedl_1_1_align.html#af1e5f722e9c33dc1909dd059929db7c9">dl::Align::LC</a></div><div class="ttdeci">constexpr Direction2 LC</div><div class="ttdef"><b>定义</b> <a href="#l00035">dl_align.h:35</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_af452e76f6b63b9a02ca6a13d025e9fbd"><div class="ttname"><a href="namespacedl_1_1_align.html#af452e76f6b63b9a02ca6a13d025e9fbd">dl::Align::GetHeight</a></div><div class="ttdeci">constexpr T GetHeight(const Array&lt; T, 4 &gt; &amp;rect)</div><div class="ttdoc">计算返回 矩形 右下角坐标y 减去 左上角坐标y</div><div class="ttdef"><b>定义</b> <a href="#l00336">dl_align.h:336</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_af588659f22a3d7db21de7b018f6f8f98"><div class="ttname"><a href="namespacedl_1_1_align.html#af588659f22a3d7db21de7b018f6f8f98">dl::Align::MASK_7</a></div><div class="ttdeci">constexpr int MASK_7</div><div class="ttdef"><b>定义</b> <a href="#l00143">dl_align.h:143</a></div></div>
<div class="ttc" id="anamespacedl_1_1_align_html_af95bf29b8a87fe331c60cc976ecc1dbc"><div class="ttname"><a href="namespacedl_1_1_align.html#af95bf29b8a87fe331c60cc976ecc1dbc">dl::Align::MASK_J</a></div><div class="ttdeci">constexpr int MASK_J</div><div class="ttdoc">平滑地图 四方向掩码</div><div class="ttdef"><b>定义</b> <a href="#l00141">dl_align.h:141</a></div></div>
<div class="ttc" id="anamespacedl_1_1_math_html_a1274044c749de5cfee397f1faf1b0910"><div class="ttname"><a href="namespacedl_1_1_math.html#a1274044c749de5cfee397f1faf1b0910">dl::Math::PIF</a></div><div class="ttdeci">constexpr float PIF(unsigned n=1, unsigned d=1)</div><div class="ttdef"><b>定义</b> <a href="dl__math_8h_source.html#l00497">dl_math.h:497</a></div></div>
<div class="ttc" id="anamespacedl_html_a04611b2d3b24b5b4ad6569cdea6f62d4"><div class="ttname"><a href="namespacedl.html#a04611b2d3b24b5b4ad6569cdea6f62d4">dl::Position</a></div><div class="ttdeci">Position2 Position</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00044">dl_type_def.h:44</a></div></div>
<div class="ttc" id="anamespacedl_html_a38a0162879cdbfbbe99ba16e7a170132a800618943025315f869e4e1f09471012"><div class="ttname"><a href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132a800618943025315f869e4e1f09471012">dl::KeyCode::F</a></div><div class="ttdeci">@ F</div><div class="ttdef"><b>定义</b> <a href="dl__input_8h_source.html#l00107">dl_input.h:107</a></div></div>
<div class="ttc" id="anamespacedl_html_a38a0162879cdbfbbe99ba16e7a170132a8d9c307cb7f3c4a32822a51922d1ceaa"><div class="ttname"><a href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132a8d9c307cb7f3c4a32822a51922d1ceaa">dl::KeyCode::N</a></div><div class="ttdeci">@ N</div><div class="ttdef"><b>定义</b> <a href="dl__input_8h_source.html#l00115">dl_input.h:115</a></div></div>
<div class="ttc" id="anamespacedl_html_a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3"><div class="ttname"><a href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">dl::KeyCode::T</a></div><div class="ttdeci">@ T</div><div class="ttdef"><b>定义</b> <a href="dl__input_8h_source.html#l00121">dl_input.h:121</a></div></div>
<div class="ttc" id="anamespacedl_html_a6347394cca146fd6b8fedf1d3545de59"><div class="ttname"><a href="namespacedl.html#a6347394cca146fd6b8fedf1d3545de59">dl::PointU</a></div><div class="ttdeci">Point2U PointU</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00034">dl_type_def.h:34</a></div></div>
<div class="ttc" id="anamespacedl_html_af4b025efbd5dae0045cce4cbc9546416"><div class="ttname"><a href="namespacedl.html#af4b025efbd5dae0045cce4cbc9546416">dl::Size</a></div><div class="ttdeci">PointU Size</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00035">dl_type_def.h:35</a></div></div>
<div class="ttc" id="anamespacedl_html_af6ec361004784c4eabc4ee2b9e85d603"><div class="ttname"><a href="namespacedl.html#af6ec361004784c4eabc4ee2b9e85d603">dl::Point</a></div><div class="ttdeci">Point2 Point</div><div class="ttdef"><b>定义</b> <a href="dl__type__def_8h_source.html#l00026">dl_type_def.h:26</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>