计算业务空间邻接关系 # 函数依赖于 sp2fl # 业务空间轮廓结构 ``` [ [ [ {点坐标}, {点坐标}... ], // 子轮廓的外轮廓 [ {点坐标}, {点坐标}... ], // 子轮廓的排除轮廓n ], // 子轮廓 [ [ {点坐标}, {点坐标}... ] ], ] ``` # 计算细节 ## 参与计算的业务空间 1. 找到项目下所有的楼层 2. 按照楼层, 分别找出每个楼层下的业务空间, 将一个楼层下的业务空间分组, 在一个组内计算业务空间的相邻关系 ## 在每个子轮廓的外轮廓的相邻两个顶点的线段上做"开门"操作 1. 在线段长度大于等于一个门宽度的时候, 虚拟的在这个线段的两端分别各安装一扇门, 在门打开的过程中(两边都能打开), 扫过的面积如果跟其他空间(比如空间A)的面积有重叠时, 则认为这个空间与空间A相邻, 依次找出所有与该空间相邻的空间. 2. 在线段长度不超过一个门的宽度时, 将继续寻找下一个点, 直到长度大于等于一个门的宽度时, 执行1 将此过程应用到所有空间上, 找出所有业务空间的相邻关系