如何在Forge Viewer中复制或克隆模型的元素

时间:2019-01-25 09:28:33

标签: autodesk-forge

我已经加载了一个模型,我要从中选择一个元素,对其进行克隆,然后将克隆沿X轴移动1000个单位。

通过在Web浏览器控制台中进行测试,我使用以下代码管理了沿X轴部分的移动:

var tree = NOP_VIEWER.model.getData().instanceTree;
var offset = new THREE.Vector3( 1000, 0 , 0 );

tree.enumNodeFragments(7836, function (frag) {
    var fragProxy = NOP_VIEWER.impl.getFragmentProxy( NOP_VIEWER.model, frag);
    var newfragProxy = fragProxy.mesh().clone();
    fragProxy.getAnimTransform();
    var position = new THREE.Vector3(
        fragProxy.position.x + offset.x,
        fragProxy.position.y + offset.y,
        fragProxy.position.z + offset.z
    );
    fragProxy.position = position;
    fragProxy.updateAnimTransform();
});

NOP_VIEWER.impl.sceneUpdated(true);`

但是我没有找到克隆初始元素的方法。有人可以帮助我创建元素的副本或元素的几何形状的副本吗?

谢谢您的时间。

1 个答案:

答案 0 :(得分:2)

官方Viewer APIs目前不支持这种操作。

您可能会通过未缩小的JavaScript代码对FragmentList类进行逆向工程,但是您很有可能会看到很多意外行为。查看器进行了大量预处理,以确保有效的场景遍历和渲染(例如,计算BVH或合并网格),所有这些优化均假定场景为静态。