鍍金池/ 問答/HTML/ forge 加載多個(gè)模型后,worldToClient的問題

forge 加載多個(gè)模型后,worldToClient的問題

1.
計(jì)算位置

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來調(diào)用getFragmentList接口
    fragList.getWorldBounds(fragId, fragbBox);
    nodebBox.union(fragbBox);

    var center = nodebBox.center();
    var c = _viewer.impl.worldToClient(center);
    console.log(c.x,c.y);//兩次獲取的坐標(biāo)不一樣
  },true);
  
}

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

回答
編輯回答
扯機(jī)薄

通過 _viewer.impl.modelQueue().getModels() 獲取model 數(shù)組

firstmodel = _viewer.impl.modelQueue().getModels()[0].
對應(yīng)調(diào)用firstmodel.getFragmentList();即可。
感謝康大神

2017年8月11日 03:27