forge 加载多个模型后,worldToClient的问题

新手上路,请多包涵

1.
计算位置

function worldToClient(dbid){
  var it = _viewer.model.getData().instanceTree;
  it.enumNodeFragments(dbid,(fragId,dbid)=>{
    var nodebBox = new THREE.Box3();
    var fragbBox = new THREE.Box3();
    var fragList = _viewer.model.getFragmentList();//这里如何获取指定模型1 模型2来调用getFragmentList接口
    fragList.getWorldBounds(fragId, fragbBox);
    nodebBox.union(fragbBox);

    var center = nodebBox.center();
    var c = _viewer.impl.worldToClient(center);
    console.log(c.x,c.y);//两次获取的坐标不一样
  },true);
  
}

_viewer.loadModel("模型1")
worldToClient(dbid)
_viewer.loadModel("模型2")
worldToClient(dbid)

阅读 1.9k
1 个回答
新手上路,请多包涵

通过 _viewer.impl.modelQueue().getModels() 获取model 数组

firstmodel = _viewer.impl.modelQueue().getModels()[0].
对应调用firstmodel.getFragmentList();即可。
感谢康大神

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题