當我使用功能viewer.setCutPlanes()
被切割成不包括飛機:封面削減剖切面
但用瀏覽器部分的分析工具平面切割,他們得到覆蓋(和每個蓋是其自身節點的一部分,這是很好):
的蓋板使用012時,我怎樣才能添加到模型?
PS:我在查看器中找到了部分工具擴展,但似乎它的所有相關功能都是私有的。我應該嘗試複製這個擴展名並在那裏公開必要的功能嗎?是否有ES6版本的回購?
當我使用功能viewer.setCutPlanes()
被切割成不包括飛機:封面削減剖切面
但用瀏覽器部分的分析工具平面切割,他們得到覆蓋(和每個蓋是其自身節點的一部分,這是很好):
的蓋板使用012時,我怎樣才能添加到模型?
PS:我在查看器中找到了部分工具擴展,但似乎它的所有相關功能都是私有的。我應該嘗試複製這個擴展名並在那裏公開必要的功能嗎?是否有ES6版本的回購?
不幸的是,Forge Viewer
沒有ES6模塊。 Viewer3D.setCutPlanes()
是僅用於生產ThreeJS
裁剪平面的實用方法,現在,該截取覆蓋功能由Autodesk.Viewing.Extensions.Section.SectionTool
存檔。
getDiffuseColor()
init_three_triangulator()
init_three_intersector()
updateCapMeshes()
此外:下面列出
功能必須從SectionTool
擴展,如果你想自己控制下執行該功能被複制,上述那些私人功能中的_viewer
變量應該由Viewer3DImpl
實例替代,即Viewer3D.impl
。或者你也可以像下面改變updateCapMeshes
函數聲明:
function updateCapMeshes(_viewer, plane) {
init_three_triangulator();
init_three_intersector();
// ... Original content of updateCapMeshes below ...
}
呼叫修改updateCapMeshes
函數來創建切蓋這樣的方式:
//-- Helper function to create your own cut planes.
function createMyOwnPlane(_viewer, _sectionPlanes) {
if (_sectionPlanes.length === 1) {
updateCapMeshes(_viewer, new THREE.Plane().setComponents(_sectionPlanes[0].x, _sectionPlanes[0].y, _sectionPlanes[0].z, _sectionPlanes[0].w));
}
_viewer.setCutPlanes(_sectionPlanes);
}
//-- Call functions here.
var viewer = viewerApp.getCurrentViewer();
createMyOwnPlane(viewer.impl, [ new THREE.Vector4(0, 0, 1, 0) ]);
,你會得到喜歡這幅畫結果沒有TransformControl
: Result of createMyOwnPlane
順便說一句,切割蓋可通過這種方式〜
除去var oldsection = viewer.impl.sceneAfter.getObjectByName("section");
if (oldsection)
viewer.impl.sceneAfter.remove(oldsection);
viewer.setCutPlanes();
非常感謝。 {} – shinzou
@ eason-kang你知道這個計劃將來會成爲一個公共的Viewer3D API嗎?複製私有實現有點脆弱。謝謝。 – bartzy