从 #23 拆出的后续设计讨论,源于用户提出未来支持 face(id) / faces(ids) 并保留空参数用法。当前不预定公开签名或实现方案,也不阻塞已完成的草图原型。
现有已确认语义保持:sketch.face() 要求恰好一个有效面;sketch.faces() 返回所有面组成的普通只读数组,由调用者自行 map。闭合轮廓的孔洞/岛屿规则保留;不把相交轮廓自动 union 或取消单面限制夹带到本需求中。
需要设计可由源码稳定引用的区域身份,而不是以遍历顺序或数组下标充当 ID。重点讨论边界拆分/修剪、区域合并或分裂、孔洞变化、上游派生更新后,哪些引用可以保留、哪些应明确失效;不能把旧引用静默指向另一个区域。现有点/边稳定 ID 与派生层引用是输入条件,区域层的标识和持久化方式尚未决定。
方案确定后再拆实施范围,覆盖选择 API、编辑器选择/源码生成及拓扑变化回归。设计基线见 草图方案。与 #9 的通用拓扑讨论相关,但这里专门讨论草图求面后的区域身份。
从 #23 拆出的后续设计讨论,源于用户提出未来支持
face(id)/faces(ids)并保留空参数用法。当前不预定公开签名或实现方案,也不阻塞已完成的草图原型。现有已确认语义保持:
sketch.face()要求恰好一个有效面;sketch.faces()返回所有面组成的普通只读数组,由调用者自行map。闭合轮廓的孔洞/岛屿规则保留;不把相交轮廓自动 union 或取消单面限制夹带到本需求中。需要设计可由源码稳定引用的区域身份,而不是以遍历顺序或数组下标充当 ID。重点讨论边界拆分/修剪、区域合并或分裂、孔洞变化、上游派生更新后,哪些引用可以保留、哪些应明确失效;不能把旧引用静默指向另一个区域。现有点/边稳定 ID 与派生层引用是输入条件,区域层的标识和持久化方式尚未决定。
方案确定后再拆实施范围,覆盖选择 API、编辑器选择/源码生成及拓扑变化回归。设计基线见 草图方案。与 #9 的通用拓扑讨论相关,但这里专门讨论草图求面后的区域身份。