Compare commits
No commits in common. "03d75fd3ab18c8950aeb726ab16dc9321d896beb" and "285b0843030ce8b6f9ffd776e0f60128af43a212" have entirely different histories.
03d75fd3ab
...
285b084303
|
@ -78,7 +78,7 @@ let objM = [];
|
||||||
// 监测设备
|
// 监测设备
|
||||||
let warnSets = [];
|
let warnSets = [];
|
||||||
// 设置漫游索引
|
// 设置漫游索引
|
||||||
let currentIndex = 1;
|
let currentIndex = 0;
|
||||||
let romeObj = []
|
let romeObj = []
|
||||||
// 设置巡检
|
// 设置巡检
|
||||||
let checkArr = [];
|
let checkArr = [];
|
||||||
|
@ -173,6 +173,16 @@ const loadSence = () => {
|
||||||
yjobj.push(e);
|
yjobj.push(e);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
// 设置漫游点位
|
||||||
|
const objname = ['start', 'middle1', 'middle2', 'end']
|
||||||
|
objname.forEach((item, index) => {
|
||||||
|
var targetModel = model.getObjectByName(item);
|
||||||
|
if (targetModel) romeObj.push(
|
||||||
|
targetModel
|
||||||
|
)
|
||||||
|
console.log('targetModel', targetModel)
|
||||||
|
})
|
||||||
|
// 漫游结束
|
||||||
|
|
||||||
// 获取巡检设备
|
// 获取巡检设备
|
||||||
const checkname = [{
|
const checkname = [{
|
||||||
|
@ -415,6 +425,47 @@ const centerSelectedGroup = (obj) => {
|
||||||
tween.start();
|
tween.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 漫游
|
||||||
|
const roam = () => {
|
||||||
|
if (currentIndex < romeObj.length) {
|
||||||
|
console.log('照相机坐标', camera.position);
|
||||||
|
console.log('物体坐标', romeObj[currentIndex].getWorldPosition(new THREE.Vector3()));
|
||||||
|
|
||||||
|
|
||||||
|
var nextPosition = romeObj[currentIndex].getWorldPosition(new THREE.Vector3());
|
||||||
|
// 在动画完成后触发下一个漫游
|
||||||
|
gsap.to(camera.position, {
|
||||||
|
x: nextPosition.x,
|
||||||
|
y: nextPosition.y + 2.2,
|
||||||
|
z: nextPosition.z,
|
||||||
|
duration: 10,
|
||||||
|
ease: 'power1.inOut',
|
||||||
|
onComplete: () => {
|
||||||
|
roam()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let lookObj;
|
||||||
|
if (currentIndex == romeObj.length - 1) {
|
||||||
|
lookObj = romeObj[0].getWorldPosition(new THREE.Vector3())
|
||||||
|
} else if (currentIndex < romeObj.length) {
|
||||||
|
lookObj = romeObj[currentIndex + 1].getWorldPosition(new THREE.Vector3())
|
||||||
|
}
|
||||||
|
gsap.to(controls.target, {
|
||||||
|
x: lookObj.x,
|
||||||
|
y: lookObj.y + 2.2,
|
||||||
|
z: lookObj.z,
|
||||||
|
duration: 10,
|
||||||
|
|
||||||
|
ease: "power1.inOut",
|
||||||
|
onComplete: () => { },
|
||||||
|
});
|
||||||
|
currentIndex++;
|
||||||
|
console.log('lookObj', currentIndex)
|
||||||
|
} else {
|
||||||
|
toHomeView();
|
||||||
|
}
|
||||||
|
}
|
||||||
// 返回初始值
|
// 返回初始值
|
||||||
const toHomeView = () => {
|
const toHomeView = () => {
|
||||||
// 清除选中框
|
// 清除选中框
|
||||||
|
@ -572,7 +623,18 @@ const xfadd = (obj, state) => {
|
||||||
}
|
}
|
||||||
// 移除消防标签
|
// 移除消防标签
|
||||||
const removexf = () => {
|
const removexf = () => {
|
||||||
console.log(xfobj.length);
|
// model.traverse(e => {
|
||||||
|
// if (e.isMesh && e.children.length > 0) {
|
||||||
|
// e.remove(e.children[0])
|
||||||
|
// } else {
|
||||||
|
// e.traverse(o => {
|
||||||
|
// if (o.isMesh && o.children.length > 0) {
|
||||||
|
// o.remove(o.children[0])
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
|
||||||
|
// }
|
||||||
|
// })
|
||||||
xfobj.forEach((o) => {
|
xfobj.forEach((o) => {
|
||||||
// 倒序
|
// 倒序
|
||||||
let obj = o.children[o.children.length-1];
|
let obj = o.children[o.children.length-1];
|
||||||
|
@ -617,11 +679,11 @@ const changeMap = (img) => {
|
||||||
}
|
}
|
||||||
// 巡检
|
// 巡检
|
||||||
const check = () => {
|
const check = () => {
|
||||||
console.log('照相机坐标', camera.position);
|
|
||||||
console.log('物体坐标', checkArr[checkindex].getWorldPosition(new THREE.Vector3()));
|
if (currentIndex < romeObj.length) {
|
||||||
|
// .getWorldPosition()属性需要用三维向量表示摸个坐标后方可读取
|
||||||
if (checkindex < checkArr.length ) {
|
|
||||||
var checkPosition = checkArr[checkindex].getWorldPosition(new THREE.Vector3());
|
var checkPosition = checkArr[checkindex].getWorldPosition(new THREE.Vector3());
|
||||||
|
|
||||||
gsap.to(camera.position, {
|
gsap.to(camera.position, {
|
||||||
x: checkPosition.x,
|
x: checkPosition.x,
|
||||||
y: checkPosition.y + 5.2,
|
y: checkPosition.y + 5.2,
|
||||||
|
@ -629,42 +691,48 @@ const check = () => {
|
||||||
duration: 10,
|
duration: 10,
|
||||||
ease: 'power1.inOut',
|
ease: 'power1.inOut',
|
||||||
onComplete: () => {
|
onComplete: () => {
|
||||||
// 显示标签,已经检查通过
|
if (checkindex == romeObj.length) { // 巡检结束
|
||||||
addLabel(checkArr[checkindex], checkArr[checkindex].isPass);
|
|
||||||
if (checkindex == checkArr.length - 1) { // 巡检结束
|
|
||||||
checkComplete();
|
checkComplete();
|
||||||
} else {
|
|
||||||
check()
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
check()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
var pos1 = new THREE.Vector3( camera.position );
|
||||||
|
|
||||||
|
var pos2 = new THREE.Vector3( checkPosition );
|
||||||
|
|
||||||
|
var distance = pos1.distanceTo(pos2);
|
||||||
|
console.log(12354, distance);
|
||||||
|
|
||||||
let nextObj;
|
let nextObj;
|
||||||
if (checkindex == checkArr.length - 1) {
|
if (checkindex == checkArr.length - 1) {
|
||||||
nextObj = checkArr[0].getWorldPosition(new THREE.Vector3())
|
nextObj = checkArr[0].getWorldPosition(new THREE.Vector3())
|
||||||
} else if (checkindex < checkArr.length - 1) {
|
return;
|
||||||
|
} else if (checkindex < checkArr.length) {
|
||||||
nextObj = checkArr[checkindex + 1].getWorldPosition(new THREE.Vector3())
|
nextObj = checkArr[checkindex + 1].getWorldPosition(new THREE.Vector3())
|
||||||
}
|
}
|
||||||
|
|
||||||
gsap.to(controls.target, {
|
gsap.to(controls.target, {
|
||||||
x: nextObj.x,
|
x: nextObj.x,
|
||||||
y: nextObj.y + 5.2,
|
y: nextObj.y + 5.2,
|
||||||
z: nextObj.z,
|
z: nextObj.z,
|
||||||
duration: 10,
|
duration: 10,
|
||||||
|
|
||||||
ease: "power1.inOut",
|
ease: "power1.inOut",
|
||||||
onComplete: () => {
|
onComplete: () => {
|
||||||
|
// 显示标签,已经检查通过
|
||||||
|
// addLabel(checkArr[checkindex], checkArr[checkindex].isPass);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
checkindex++;
|
checkindex++;
|
||||||
|
console.log('nextObj', checkindex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 巡检结束
|
// 巡检结束
|
||||||
const checkComplete = () => {
|
const checkComplete = () => {
|
||||||
toHomeView();
|
toHomeView();
|
||||||
bimStore().setCheckArr(checkArr);
|
checkindex = 0;
|
||||||
emit('checkComplete', checkArr);
|
bimStore().setCheckArr(romeObj);
|
||||||
|
emit('checkComplete', romeObj);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue