3d中猎取对象围困盒 位置的经常使用要领

// 猎取对象的围困盒
getObjboundsById(objId){
    var box = new THREE.Box3();
    var bounds = new THREE.Box3();
    var instanceTree = viewer.model.getData().instanceTree;
    var fragList = viewer.model.getFragmentList();
    box.makeEmpty();
    bounds.makeEmpty();
    instanceTree.enumNodeFragments(objId, function (fragId) {
        fragList.getWorldBounds(fragId, box);
        bounds.union(box)
    }, true)

    return bounds
}
 // 猎取中间位置
getObjPosition(dbId){
    var bound = vmethods.getObjboundsById(dbId);
    var posx = (bound.max.x + bound.min.x) / 2;
    var posy = (bound.max.y + bound.min.y) / 2;
    var posz = (bound.max.z + bound.min.z) / 2;
    var pos = {
        x:posx,
        y:posy,
        z:posz
    }
    return pos;
}
    原文作者:weijie
    原文地址: https://segmentfault.com/a/1190000019026244
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞