Позиция модели кузницы после преобразования

Я использовал расширение преобразования модели для перемещения модели из одной точки в другую. Теперь Как я могу получить новое местоположение / координаты / позицию преобразованной модели или ее ограничивающего прямоугольника, как если бы я запрашивал граничные рамки min и max, они одинаковы все время. Есть идеи?? Моя цель - получить новую позицию модели по происхождению после перевода.

javascript,three.js,autodesk-forge,autodesk-viewer,

0

Ответов: 1


0

Я изолировал основную часть этого расширения и проверил положение и ограничительную рамку до и после преобразования. Быть просто, только переводить. Похоже, эти значения обновляются после преобразования. Не могли бы вы проверить, может ли это помочь диагностировать вашу проблему?

Чтобы проверить его, выберите один объект и запустите функцию.

 $('#test').click(function(rt){

        var dbids = NOP_VIEWER.getSelection();
        var it = NOP_VIEWER.model.getData().instanceTree;
        var fragList = NOP_VIEWER.model.getFragmentList();  

        fragIds = [];

        it.enumNodeFragments(dbids[0], function(fragId) {
            fragIds.push(fragId); 
        }, false);

        var bb = getModifiedWorldBoundingBox(fragIds,fragList);
        console.log('boundingbox before transform: [max,min]: ' + 
        bb.max.x + ' ' + bb.max.y + ' ' + bb.max.z + '
'+ 
        bb.min.x + ' ' + bb.min.y + ' ' + bb.min.z ); 

        fragIds.forEach(function(fragId){ 

            var fragProxy = NOP_VIEWER.impl.getFragmentProxy(
            NOP_VIEWER.model,
            fragId)

            fragProxy.getAnimTransform()

            console.log('frag position in LCS before transform:' + 
                            fragProxy.position.x + ','+
                            fragProxy.position.y + ','+ 
                            fragProxy.position.z);

            var wcsMatrix = new THREE.Matrix4(); 
            fragProxy.getWorldMatrix(wcsMatrix);
            var wcsPos = wcsMatrix.getPosition();
            console.log('frag position in wcs matrix  before transform: ' + 
            wcsPos.x + ' ' + wcsPos.y + ' ' + wcsPos.z);


            fragProxy.position.x += 10; 
            fragProxy.position.y += 10; 
            fragProxy.position.z += 10;   

            fragProxy.updateAnimTransform()  
        }); 
        NOP_VIEWER.impl.sceneUpdated(true) 


        fragIds.forEach(function(fragId){ 

            var fragProxy = NOP_VIEWER.impl.getFragmentProxy(
            NOP_VIEWER.model,
            fragId)

            fragProxy.getAnimTransform()

            console.log('frag position in LCS after transform:' + 
                            fragProxy.position.x + ','+
                            fragProxy.position.y + ','+ 
                            fragProxy.position.z); 

            var wcsMatrix = new THREE.Matrix4(); 
            fragProxy.getWorldMatrix(wcsMatrix);
            var wcsPos = wcsMatrix.getPosition();
            console.log('frag position in wcs matrix  after transform: ' + 
            wcsPos.x + ' ' + wcsPos.y + ' ' + wcsPos.z);
        }); 

        bb = getModifiedWorldBoundingBox(fragIds,fragList);
        console.log('boundingbox after transform: [max,min]: ' + 
        bb.max.x + ' ' + bb.max.y + ' ' + bb.max.z + '
'+ 
        bb.min.x + ' ' + bb.min.y + ' ' + bb.min.z ); 

    });
JavaScript, Three.js, кузнечно-Autodesk, Autodesk-зритель,
Похожие вопросы