获取查看器中给定元素旁边的元素

Get elements next to a given element in the viewer

在我们的 Forge 应用程序中,我们需要 select 所有与给定元素相邻的元素 。示例:用户 select 是一个地板元素,这会导致相邻的地基、墙壁等被 select 编辑。当我说相邻时,我指的是相交元素和表面相互接触的元素。

我们试图通过比较所有元素的边界框来实现这一点,但它只适用于简单的几何形状(立方体),其中边界框的大小几乎与元素本身的大小相同,以及元素边缘沿 (x,y,z) 方向的位置。 (不旋转)。 The attached image 说明了复杂地板的边界框(红色)如何工作不佳,因为它会导致 select 离子基础和柱子(绿色)与地板明显分开。

所以我要问的是:

此致, 托留斯

这是一个非常具体的要求,不幸的是,没有内置函数可以进行如此复杂的计算。根据您要处理的几何形状,这可能是一项非常昂贵的操作,您需要自己实施该自定义逻辑。

最终算法可能需要几个步骤,首先是您提到的快速边界框检查,然后是更精细的分析。您可以查看该文章以了解如何检索给定元素的顶点:Accessing mesh information with the Forge Viewer