问题描述:
如果需要在中望CAD中使用ZRX接口对点云数据按照空间分布进行筛选,一般会从 IZcDbPointCloudSpatialFilter 派生一个类,然后调用 ZcDbPointCloudEx 的 traverseAllPointData() 方法传入该派生类作为参数,通过派生类中实现的各个回调函数来对点云数据进行筛选。在这个过程中开发者可能会发现筛选的结果不正确,原因是在回调函数 testPoint() 中传入的点坐标跟其它CAD平台中获取到的不一样。
原因分析:
这是因为在其它CAD平台中调用回调函数 testCell() 的时候会先调用回调函数 transformFilter() 对点坐标进行变换,然后才传入 testCell(),但是在调用 testPoint() 前不会调用 transformFilter(),所以需要开发者在 testPoint() 函数的定义中自行进行坐标变换。但是中望CAD在调用 testPoint() 前也会调用一次 transformFilter(),再叠加开发者在 testPoint() 函数中做的变换就会导致结果错误。
解决方案:
在中望CAD平台上不需要在 testPoint() 函数中对参数传入的点坐标做变换。
| 英文空间链接 |
|---|
★在中望CAD中使用IZcDbPointCloudSpatialFilter筛选点云数据时testPoint()回调函数传入的点坐标不正确,如何解决?:https://confluence.zwcad.com/pages/viewpage.action?pageId=323749448