为什么剖切面遮盖丢失了?
我调用 viewer.setCutPlanes()
,剖切到的部份是空心的,没有被遮盖像下面两张截图:
但当我使用 viewer
自带的剖切功能的时候,有被剖切到的部份是遮盖的,像这张截图:
请问我可以在调用 viewer.setCutPlanes()
的时候自个加上遮盖?
附注:我在 viewer
的代码里发现 SectionTool
这个扩展,但他的相关函数几乎都是不公开的,我该把那些跟剖切遮盖有关的函数都拿到这里用吗?或者有ES6的模块可以使用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我的观察,目前
Forge Viewer
是没有 ES6(ECMAScript2015) 模块。依照我调试的结果,我发现
Viewer3D.setCutPlanes()
只是一个帮助产生ThreeJS
剖切面的工具函数,它被调用后不会产生盖顶组件。此外,我还发现你在使用viewer
自带剖切功能看到的那些盖顶组件目前只有在Autodesk.Viewing.Extensions.Section.SectionTool
里的代码有体现。如果你想在调用
Viewer3D.setCutPlanes()
的时候同时也产生那些盖顶的话,你可以尝试将下面几个不公开的函数从SectionTool
里头复制出来:getDiffuseColor()
init_three_triangulator()
init_three_intersector()
updateCapMeshes()
还有必需将上面几个函数里的 _viewer 变量替换成
Viewer3D.impl
,否则浏览器会报错。或者你也可以尝试将updateCapMeshes()
的定义修改成这个样子:在来像下面这样调用修改完的
updateCapMeshes()
就可以在剖切的部份产生你要的盖顶组件:执行完上面那些函数后就可以看到这样的结果:
最后,如果你想要拿掉那些盖顶组件的话,可以这样做: