Я создал функцию ниже, чтобы вернуть worldCoordinates, но она дает разные значения в двух случаях.
При нажатии dbId, я получаю корбинаты dbid и передаю его функции ниже, которая дает мне мировые координаты, но вы можете видеть, что пока я сохраняю выбранный dbId в БД и перезагружаю страницу в следующий раз, чтобы увидеть его, он дает мне другие координаты. Почему это так?
сохранение фазы dbid
координаты dbid x: -26.277027130126953 y: 18.102033615112305 z: -7.173819303512573
getWorldCoordinates x: 256.76347287180107 y: 306.8180434914181 z: 0
фаза страницы перекодировки
координаты dbid x: -26.277027130126953 y: 18.102033615112305 z: -7.173819303512573
getWorldCoordinates x: 422.50000131979897 y: 249.49997927733767 z: 0
function getWorldCoordinates(position){
var screenpoint = viewer.worldToClient(
new THREE.Vector3(position.x,
position.y,
position.z,));
return screenpoint
}
function getObjPosition(dbId) {
function getObjPosition(dbId) {
const model = viewer.model;
const instanceTree = model.getData().instanceTree;
const fragList = model.getFragmentList();
let bounds = new THREE.Box3();
instanceTree.enumNodeFragments( dbId, ( fragId ) => {
let box = new THREE.Box3();
fragList.getWorldBounds( fragId, box );
bounds.union( box );
}, true );
const position = bounds.center();
return position;
}