|
@@ -62,6 +62,7 @@ Date.prototype.Format = function (fmt) {
|
|
|
let dracoLoader = null;
|
|
|
let g_sqlResult = null;
|
|
|
let g_childMeshTmp = null;
|
|
|
+let g_childMeshTmpMan = null;
|
|
|
|
|
|
function getsqlData() {
|
|
|
if(g_PosArrayResult == null)
|
|
@@ -117,6 +118,7 @@ function getsqlData() {
|
|
|
fbxLoader1.setDRACOLoader(dracoLoader);
|
|
|
|
|
|
var bMovingMan = false;
|
|
|
+ var bMovingHook = false;
|
|
|
|
|
|
fbxLoader1.load("../models/man.gltf", function (fbx) {
|
|
|
|
|
@@ -243,28 +245,25 @@ function getsqlData() {
|
|
|
|
|
|
sdkInstance.sceneRenderer.scene.add(childMeshTmp)
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
if(bMovingMan == false)
|
|
|
{
|
|
|
- g_childMeshTmp = childMeshTmp
|
|
|
+ g_childMeshTmpMan = childMeshTmp
|
|
|
bMovingMan = true;
|
|
|
- var startX = 8.7;
|
|
|
- var startY = 50;
|
|
|
- var endX = 20;
|
|
|
- var endY = 15;
|
|
|
+ var startX = 20;
|
|
|
+ var startY = 30;
|
|
|
+ var endX = 8.7;
|
|
|
+ var endY = 50;
|
|
|
var speed = 1;
|
|
|
var distance = Math.sqrt((endX - startX)*(endX - startX)+(endY - startY)*(endY - startY))
|
|
|
var sin = (endX - startX)/distance
|
|
|
var cos = (endY - startY)/distance
|
|
|
var direct = 1;
|
|
|
- var curX = 8.7;
|
|
|
- var curY = 50;
|
|
|
+ var curX = 20;
|
|
|
+ var curY = 30;
|
|
|
var distanceOffset = 5;
|
|
|
var xOffset = 10
|
|
|
setInterval(()=>{
|
|
|
- if(curX>endX || curX<startX)
|
|
|
+ if(curX<endX || curX>startX)
|
|
|
{
|
|
|
direct*=-1;
|
|
|
}
|
|
@@ -276,14 +275,15 @@ function getsqlData() {
|
|
|
z=-1;
|
|
|
}
|
|
|
|
|
|
- g_childMeshTmp.position.set(curX, z, curY)
|
|
|
+ g_childMeshTmpMan.position.set(curX, z, curY)
|
|
|
var distanceCur = Math.sqrt((endX - curX)*(endX - curX)+(endY - curY)*(endY - curY))
|
|
|
var objText = document.getElementById('collisionmenuid')
|
|
|
+ if(false)
|
|
|
if(distanceCur<distanceOffset)
|
|
|
{
|
|
|
objText.textContent = ''
|
|
|
setTimeout(()=>{
|
|
|
- objText.textContent = '碰撞危险报警,距离塔吊'+distanceCur.toFixed(2)+'米'
|
|
|
+ objText.textContent = '碰撞危险报警,钩子距离高压线'+distanceCur.toFixed(2)+'米'
|
|
|
objText.style.color = 'red';
|
|
|
},100)
|
|
|
|
|
@@ -292,12 +292,13 @@ function getsqlData() {
|
|
|
{
|
|
|
objText.textContent = ''
|
|
|
setTimeout(()=>{
|
|
|
- objText.textContent = '未检测到碰撞危险,距离塔吊'+distanceCur.toFixed(2)+'米'
|
|
|
+ objText.textContent = '未检测到碰撞危险,钩子距离高压线'+distanceCur.toFixed(2)+'米'
|
|
|
objText.style.color = 'white';
|
|
|
},100)
|
|
|
}
|
|
|
},1000)
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
};
|
|
@@ -395,8 +396,16 @@ function getsqlData() {
|
|
|
let geometryArrayTop = []; // 将你的要合并的多个geometry放入到该数组
|
|
|
let materialArrayTop = []; // 将你的要赋值的多个material放入到该数组
|
|
|
|
|
|
- for(let iTop = 0;iTop<arrTop.length;iTop++){
|
|
|
- //for(let iTop = 0;iTop<1;iTop++){
|
|
|
+
|
|
|
+ let iTop = 0;
|
|
|
+ let iLength = arrTop.length;
|
|
|
+ if(bMovingHook == false)
|
|
|
+ {
|
|
|
+ iTop = 4;
|
|
|
+ iLength = 5;
|
|
|
+ }
|
|
|
+ //for(let iTop = 0;iTop<arrTop.length;iTop++){
|
|
|
+ for(;iTop<iLength;iTop++){
|
|
|
let geometryArray = []; // 将你的要合并的多个geometry放入到该数组
|
|
|
let materialArray = []; // 将你的要赋值的多个material放入到该数组
|
|
|
if(iTop == 9)
|
|
@@ -466,6 +475,66 @@ function getsqlData() {
|
|
|
childMeshTmp.userData = customData;
|
|
|
|
|
|
sdkInstance.sceneRenderer.scene.add(childMeshTmp)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(bMovingHook == false)
|
|
|
+ {
|
|
|
+ g_childMeshTmp = childMeshTmp
|
|
|
+ bMovingHook = true;
|
|
|
+ var startX = 8.7;
|
|
|
+ var startY = 50;
|
|
|
+ var endX = 20;
|
|
|
+ var endY = 15;
|
|
|
+ var speed = 1;
|
|
|
+ var distance = Math.sqrt((endX - startX)*(endX - startX)+(endY - startY)*(endY - startY))
|
|
|
+ var sin = (endX - startX)/distance
|
|
|
+ var cos = (endY - startY)/distance
|
|
|
+ var direct = 1;
|
|
|
+ var curX = 8.7;
|
|
|
+ var curY = 50;
|
|
|
+ var distanceOffset = 5;
|
|
|
+ var xOffset = 10
|
|
|
+ var zPos = 7;
|
|
|
+ setInterval(()=>{
|
|
|
+ if(curX>endX || curX<startX)
|
|
|
+ {
|
|
|
+ direct*=-1;
|
|
|
+ }
|
|
|
+ curX+=direct*sin*speed;
|
|
|
+ curY+=direct*cos*speed;
|
|
|
+ let z = 0.75;
|
|
|
+ if(curX>xOffset)
|
|
|
+ {
|
|
|
+ z=8;
|
|
|
+ }
|
|
|
+
|
|
|
+ g_childMeshTmp.position.set(curX, z, curY)
|
|
|
+ var distanceCur = Math.sqrt((endX - curX)*(endX - curX)+(endY - curY)*(endY - curY))
|
|
|
+ var objText = document.getElementById('collisionmenuid')
|
|
|
+ if(distanceCur<distanceOffset)
|
|
|
+ {
|
|
|
+ objText.textContent = ''
|
|
|
+ setTimeout(()=>{
|
|
|
+ objText.textContent = '碰撞危险报警,钩子距离高压线X:'+(Math.abs(endX - curX)).toFixed(2)+'米;'
|
|
|
+ +'Y:'+(Math.abs(endY - curY)).toFixed(2)+'米;'
|
|
|
+ +'Y:'+(Math.abs(z - zPos)).toFixed(2)+'米;'
|
|
|
+ objText.style.color = 'red';
|
|
|
+ },100)
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ objText.textContent = ''
|
|
|
+ setTimeout(()=>{
|
|
|
+ objText.textContent = '碰撞危险报警,钩子距离高压线X:'+(Math.abs(endX - curX)).toFixed(2)+'米;'
|
|
|
+ +'Y:'+(Math.abs(endY - curY)).toFixed(2)+'米;'
|
|
|
+ +'Z:'+(Math.abs(z - zPos)).toFixed(2)+'米;'
|
|
|
+ objText.style.color = 'white';
|
|
|
+ },100)
|
|
|
+ }
|
|
|
+ },1000)
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
setTimeout(()=>
|