老师您好,
我在做MicroStation数据导出的插件,想实现几何数据的复用,来减小数据量,我发现有些元素会共用一个PolyfaceHeader,然后通过DTransform3d来区分元素的位置,我的问题是有什么方法来判断PolyfaceHeader是相同的吗?
我想到的一个方法是判断PolyfaceHeader指针指向的地址是否相同来区分,不过有些相同的PolyfaceHeader并不指向同一个指针地址,不知道有没有更好的实现方法,谢谢。
派 山 said:发现有些元素会共用一个PolyfaceHeader
您这里是怎么判断有些元素是公用一个PolyfaceHeader的?
一个是指针地址相同,一个是几何的所有Point的值相同,基于以上两点我觉得是共用的,如果我的判断是错误的,那是否只能通过遍历判断point值是否相同来判断呢,这种应该是最不好的方法了
通过ElementGraphicsProcessor的ProcessFacets得到的
不能通过地址来判断,两次函数调用时其参数的地址完全有可能相同。
那是否还有其他办法呢?
最好从ElementGraphicsProcessor之前的元素入手来判断是否相同。比如,判断两个元素是否是相同名称的Cell,如果是的话,则面片化后的三角网应该是相同的,仅仅是经过了一定的变换。
Answer Verified By: 派 山
谢谢付老师的解答,我大概知道了,现在我有客户的模型如下图所示
有多个相同的元素,每个cell名称相同,但这个名称是可以手动修改的,几何相同的cell可能名称不同,这个是不是就只能和建模的人达成规定呢