diff --git a/public/webTotal/index.js b/public/webTotal/index.js
new file mode 100644
index 0000000..8e0802f
--- /dev/null
+++ b/public/webTotal/index.js
@@ -0,0 +1,1090 @@
+// 从这里开始
+var h1 = null;
+var h2 = null;
+var h3 = null;
+
+var oldtransformNodex = null;
+var oldtransformNodeOther = null;
+var drag = null;
+var notmoveGroup = null;
+var movedGroup = null;
+
+var movesingle = false;
+var dynamicTexture = null;
+var dynamicTexture2 = null;
+var show = 50;
+var showdd = 50;
+BABYLON.DefaultLoadingScreen.prototype.displayLoadingUI = function() {
+ if (document.getElementById("customLoadingScreenDiv")) {
+ document.getElementById("customLoadingScreenDiv").style.display = "initial";
+ return;
+ }
+ this._loadingDiv = document.createElement("div");
+ this._loadingDiv.id = "customLoadingScreenDiv";
+ thecss = "lohingifpc";
+ thecss2 = "zcpc";
+ this._loadingDiv.innerHTML =
+ "
";
+
+ // this._loadingDiv.innerHTML =
+ // "
";
+
+ this._resizeLoadingUI();
+ window.addEventListener("resize", this._resizeLoadingUI);
+ document.body.appendChild(this._loadingDiv);
+};
+
+var movebyName = function(nodeName) {
+ var x = scene.getTransformNodeByName(nodeName);
+ moveTrans(x);
+};
+
+BABYLON.DefaultLoadingScreen.prototype.hideLoadingUI = function() {
+ show = 50;
+ document.getElementById("customLoadingScreenDiv").style.display = "none";
+ document.getElementById("customLoadingScreenDiv_first").style.display =
+ "none";
+ document.title = "全景图";
+ var prepareGroupButton = function(transformNodex, color, qu) {
+ var mesheses = null;
+ if (transformNodex.getClassName() == "TransformNode") {
+ mesheses = transformNodex.getChildMeshes(false);
+ } else {
+ mesheses = [];
+ mesheses.push(transformNodex);
+ }
+ for (var i = 0; i < mesheses.length; i++) {
+ mesheses[i].actionManager = new BABYLON.ActionManager(scene);
+ var theScaling = mesheses[i].scaling;
+ /*if (true) {
+ try {
+ mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
+ mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x * 1.01, theScaling.y * 1.01, theScaling.z * 1.01), 100));
+
+ } catch (error) {
+ //alert(error)
+ }
+ }*/
+ var clickbegin = false;
+ mesheses[i].actionManager.registerAction(
+ new BABYLON.ExecuteCodeAction(
+ {
+ trigger: BABYLON.ActionManager.OnPointerOverTrigger,
+ parameter: ""
+ },
+ function() {
+ clickbegin = true;
+ if (true) {
+ if (oldtransformNodeOther != null) {
+ oldtransformNodeOther.removeBehavior(drag);
+ var mesheses2 = null;
+ if (oldtransformNodeOther.getClassName() == "TransformNode") {
+ mesheses2 = oldtransformNodeOther.getChildMeshes(false);
+ } else {
+ mesheses2 = [];
+ mesheses2.push(oldtransformNodeOther);
+ }
+ for (var i = 0; i < mesheses2.length; i++) {
+ try {
+ h2.removeMesh(mesheses2[i]);
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+ oldtransformNodeOther = transformNodex;
+ //transformNodex.addBehavior(drag);
+ var mesheses3 = null;
+ if (transformNodex.getClassName() == "TransformNode") {
+ mesheses3 = transformNodex.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(transformNodex);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ h2.addMesh(mesheses3[i], color);
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ clickbegin = false;
+ }
+ }
+ )
+ );
+ mesheses[i].actionManager.registerAction(
+ new BABYLON.ExecuteCodeAction(
+ {
+ trigger: BABYLON.ActionManager.OnPickTrigger,
+ parameter: ""
+ },
+ function() {
+ clickbegin = true;
+ if (true) {
+ try {
+ quClick(qu);
+ } catch (error) {
+ // alert(error)
+ }
+ clickbegin = false;
+ }
+ }
+ )
+ );
+ }
+ };
+
+ var prepareGroupButton2 = function(transformNodex, color, qu) {
+ var mesheses = null;
+ if (transformNodex.getClassName() == "TransformNode") {
+ mesheses = transformNodex.getChildMeshes(false);
+ } else {
+ mesheses = [];
+ mesheses.push(transformNodex);
+ }
+
+ for (var i = 0; i < mesheses.length; i++) {
+ mesheses[i].actionManager = new BABYLON.ActionManager(scene);
+ var theScaling = mesheses[i].scaling;
+ /*if (true) {
+ try {
+ mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
+ mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x * 1.01, theScaling.y * 1.01, theScaling.z * 1.01), 100));
+
+ } catch (error) {
+ //alert(error)
+ }
+ }*/
+ var clickbegin = false;
+ mesheses[i].actionManager.registerAction(
+ new BABYLON.ExecuteCodeAction(
+ {
+ trigger: BABYLON.ActionManager.OnPointerOverTrigger,
+ parameter: ""
+ },
+ function() {
+ clickbegin = true;
+ if (true) {
+ if (oldtransformNodeOther != null) {
+ oldtransformNodeOther.removeBehavior(drag);
+ var mesheses2 = null;
+ if (oldtransformNodeOther.getClassName() == "TransformNode") {
+ mesheses2 = oldtransformNodeOther.getChildMeshes(false);
+ } else {
+ mesheses2 = [];
+ mesheses2.push(oldtransformNodeOther);
+ }
+ for (var i = 0; i < mesheses2.length; i++) {
+ try {
+ h2.removeMesh(mesheses2[i]);
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+ oldtransformNodeOther = transformNodex;
+ //transformNodex.addBehavior(drag);
+ var mesheses3 = null;
+ if (transformNodex.getClassName() == "TransformNode") {
+ mesheses3 = transformNodex.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(transformNodex);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ h2.addMesh(mesheses3[i], color);
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ clickbegin = false;
+ }
+ }
+ )
+ );
+ mesheses[i].actionManager.registerAction(
+ new BABYLON.ExecuteCodeAction(
+ {
+ trigger: BABYLON.ActionManager.OnPickTrigger,
+ parameter: ""
+ },
+ function() {
+ clickbegin = true;
+ if (true) {
+ try {
+ // quClick(transformNodex.name)
+ cameraClick(transformNodex);
+ } catch (error) {
+ // alert(error)
+ }
+ clickbegin = false;
+ }
+ }
+ )
+ );
+ }
+ };
+
+ var dag1 = scene.getTransformNodeByName("A区");
+ var dag2 = scene.getTransformNodeByName("B区");
+ var dag3 = scene.getTransformNodeByName("C区");
+
+ var colorddd = new BABYLON.Color3(51 / 255, 156 / 255, 1);
+
+ prepareGroupButton(dag1, colorddd, "A区");
+ prepareGroupButton(dag2, colorddd, "B区");
+ prepareGroupButton(dag3, colorddd, "C区");
+
+ //绑功能点
+ var cl = new BABYLON.Color3(0, 0, 1);
+ var jk01 = scene.getTransformNodeByName("camera01");
+ jk01.nameID = "DAK_MO_CAM_001";
+ prepareGroupButton2(jk01, cl);
+
+ var jk02 = scene.getTransformNodeByName("camera02");
+ jk02.nameID = "DAK_MO_CAM_002";
+ prepareGroupButton2(jk02, cl);
+
+ var jk03 = scene.getTransformNodeByName("camera03");
+ jk03.nameID = "DAK_MO_CAM_003";
+ prepareGroupButton2(jk03, cl);
+
+ var jk04 = scene.getTransformNodeByName("camera04");
+ jk04.nameID = "DAK_MO_CAM_004";
+ prepareGroupButton2(jk04, cl);
+
+ var jk05 = scene.getTransformNodeByName("camera05");
+ jk05.nameID = "ZLS_MO_CAM_001";
+ prepareGroupButton2(jk05, cl);
+
+ var jk06 = scene.getTransformNodeByName("camera06");
+ jk06.nameID = "ZLS_MO_CAM_002";
+ prepareGroupButton2(jk06, cl);
+
+ var jk07 = scene.getTransformNodeByName("camera07");
+ jk07.nameID = "YLS_MO_CAM_001";
+ prepareGroupButton2(jk07, cl);
+
+ var jk08 = scene.getTransformNodeByName("camera08");
+ jk08.nameID = "YLS_MO_CAM_002";
+ prepareGroupButton2(jk08, cl);
+
+ var jk09 = scene.getTransformNodeByName("camera09");
+ jk09.nameID = "ZL_MO_CAM_001";
+ prepareGroupButton2(jk09, cl);
+ //set camera to null
+
+ var x = scene.getMeshByName("档案架01_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+ x = scene.getMeshByName("档案架02_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架03_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架04_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架05_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架06_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架07_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架08_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架09_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("档案架10_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("前门01_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("后门01_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ // x = scene.getMeshByName("墙体");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_9_2");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_2_17.001_primitive0");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_2_17.001_primitive1");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_2_17.001_primitive2");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_2_17.001_primitive3");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_12_2_primitive0");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_12_2_primitive1");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ //x = scene.getMeshByName("立方体_12_2_primitive2");
+ //x.overlayColor = BABYLON.Color3.White()
+ //x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_12_2_primitive3");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ // x = scene.getMeshByName("立方体_12_2_primitive4");
+ // x.overlayColor = BABYLON.Color3.White();
+ // x.renderOverlay = true;
+
+ x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive0");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive2");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ x = scene.getMeshByName("立方体_1_12.001_LOD1");
+ x.overlayColor = BABYLON.Color3.White();
+ x.renderOverlay = true;
+
+ var light = new BABYLON.HemisphericLight(
+ "HemiLight",
+ new BABYLON.Vector3(0, 1, 0),
+ scene
+ );
+ light.intensity = 2;
+ light.diffuse = new BABYLON.Color3(0.92, 0.92, 0.92);
+
+ var material1 = scene.getMaterialByName("材质.107");
+ material1.albedoColor = new BABYLON.Color3(168 / 255, 167 / 255, 168 / 255);
+ material1.roughness = 1;
+
+ //墙
+ scene.getMaterialByName("cover_label.009").metallic = 0.36;
+ scene.getMaterialByName("cover_label.009").albedoColor = new BABYLON.Color3(
+ 1,
+ 1,
+ 1
+ );
+ scene.getMaterialByName("cover_label.010").metallic = 0.36;
+ scene.getMaterialByName("cover_label.010").albedoColor = new BABYLON.Color3(
+ 1,
+ 1,
+ 1
+ );
+
+ //铁
+ var material3 = scene.getMaterialByName("材质.116");
+ material3.metallic = 0.9;
+ material3.roughness = 0;
+ material3.emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
+ scene.getMaterialByName("材质.102").metallic = 0.9;
+ scene.getMaterialByName("材质.102").roughness = 0.0;
+ scene.getMaterialByName("材质.102").emissiveColor = new BABYLON.Color3(
+ 0.278,
+ 0.278,
+ 0.278
+ );
+
+ scene.getMaterialByName("材质.132").metallic = 0.9;
+ scene.getMaterialByName("材质.132").roughness = 0.0;
+ scene.getMaterialByName("材质.132").emissiveColor = new BABYLON.Color3(
+ 0.278,
+ 0.278,
+ 0.278
+ );
+
+ scene.getMaterialByName("材质.122").metallic = 0.9;
+ scene.getMaterialByName("材质.122").roughness = 0.0;
+ scene.getMaterialByName("材质.122").emissiveColor = new BABYLON.Color3(
+ 0.278,
+ 0.278,
+ 0.278
+ );
+
+ //地
+ var material2 = scene.getMaterialByName("材质.106");
+ material2.albedoColor = new BABYLON.Color3(0.8, 0.8, 0.8);
+ material2.metallic = 0.52;
+ material2.roughness = 0;
+ //material2.metallicReflectanceColor=new BABYLON.Color3(1,0,0);
+ //material2.emissiveColor=new BABYLON.Color3(0.8,0.8,0.8);
+ //地面扩大处理
+ var meshground1 = scene.getMeshByName("地面A").clone();
+ var meshground = scene.getMeshByName("地面A");
+ meshground.isVisible = false;
+
+ meshground1.position = new BABYLON.Vector3(-1.512, -0.069, 1.852);
+ meshground1.scaling = new BABYLON.Vector3(0.022, 0.013, 0.005);
+ meshground1.parent = scene.getMeshByName("__root__");
+
+ //scene.getMeshByName("地面.002").isVisible = false;
+ //scene.getMeshByName("地面.003").isVisible = false;
+ //scene.getMeshByName("地面").isVisible = false;
+
+ scene.getMaterialByName("材质.127").metallic = 0.8;
+ scene.getMaterialByName("Wood-04.004").metallic = 0.8;
+ scene.getMaterialByName("Wood-04.004").metallic = 0.8;
+
+ scene.getMaterialByName("Desk.002").metallic = 0.8;
+ scene.getMaterialByName("Desk.002").roughness = 0.72;
+ scene.getMaterialByName("Desk.003").metallic = 0.8;
+ scene.getMaterialByName("Desk.003").roughness = 0.72;
+ scene.getMaterialByName("Desk.004").metallic = 0.8;
+ scene.getMaterialByName("Desk.004").roughness = 0.72;
+
+ scene.getMaterialByName("Desk.007").metallic = 0.8;
+ scene.getMaterialByName("Desk.007").roughness = 0.72;
+ scene.getMaterialByName("Desk.008").metallic = 0.8;
+ scene.getMaterialByName("Desk.008").roughness = 0.72;
+ scene.getMaterialByName("Desk.009").metallic = 0.8;
+ scene.getMaterialByName("Desk.009").roughness = 0.72;
+
+ scene.getMaterialByName("Desk.019").metallic = 0.8;
+ scene.getMaterialByName("Desk.019").roughness = 0.72;
+ scene.getMaterialByName("Desk.020").metallic = 0.8;
+ scene.getMaterialByName("Desk.020").roughness = 0.72;
+ scene.getMaterialByName("Desk.021").metallic = 0.8;
+ scene.getMaterialByName("Desk.021").roughness = 0.72;
+
+ scene.getMaterialByName("Desk.022").metallic = 0.8;
+ scene.getMaterialByName("Desk.022").roughness = 0.72;
+ scene.getMaterialByName("Desk.023").metallic = 0.8;
+ scene.getMaterialByName("Desk.023").roughness = 0.72;
+ scene.getMaterialByName("Desk.024").metallic = 0.8;
+ scene.getMaterialByName("Desk.024").roughness = 0.72;
+
+ scene.getMeshByName("档案架01_primitive3").material = scene.getMaterialByName("10.002");
+ scene.getMeshByName("档案架02_primitive4").material = scene.getMaterialByName("09.002");
+ scene.getMeshByName("档案架03_primitive4").material = scene.getMaterialByName("08.002");
+ scene.getMeshByName("档案架04_primitive4").material = scene.getMaterialByName("07.002");
+ scene.getMeshByName("档案架05_primitive4").material = scene.getMaterialByName("06.002");
+ scene.getMeshByName("档案架06_primitive4").material = scene.getMaterialByName("05.002");
+ scene.getMeshByName("档案架07_primitive4").material = scene.getMaterialByName("04.002");
+ scene.getMeshByName("档案架08_primitive4").material = scene.getMaterialByName("03.002");
+ scene.getMeshByName("档案架09_primitive4").material = scene.getMaterialByName("02.002");
+ scene.getMeshByName("档案架10_primitive3").material = scene.getMaterialByName("01.002");
+
+ // 还原到10列,注释掉下面代码
+ // scene.getTransformNodeByName("档案柜01").setEnabled(false);
+ // scene.getTransformNodeByName("档案柜02").setEnabled(false);
+ // var v1 = scene.getMeshByName("钢轨01");
+ // v1.position = new BABYLON.Vector3(v1.position.x,60.0,v1.position.z);
+ // v1.scaling = new BABYLON.Vector3(1,0.9,1);
+
+ var v2 = scene.getTransformNodeByName("后门01");
+ v2.setParent( scene.getTransformNodeByName("档案柜03"),true);
+ v2.position = new BABYLON.Vector3(v2.position.x,-122.479,v2.position.z);
+
+ // 墙体添加透明度
+ scene.getMaterialByName("cover_label.010").alpha = 0.7;
+ scene.getMaterialByName("cover_label.010").transparencyMode=2; //ALPHABLEND
+
+};
+
+// createScene function that creates and return the scene
+var createScene = function() {
+ engine.displayLoadingUI();
+ // create a basic BJS Scene object
+ var scene = new BABYLON.Scene(engine);
+ // scene.debugLayer.show();
+ var camera = new BABYLON.ArcRotateCamera(
+ "Camera",
+ 0,
+ 0,
+ 5,
+ new BABYLON.Vector3(0, -1, 0),
+ scene
+ );
+ camera.setTarget(new BABYLON.Vector3(0, 2, 0));
+ camera.attachControl(canvas, true);
+ camera.lowerRadiusLimit = 2.0; // 这里是最大的位置,值越大,物体越小
+ camera.upperRadiusLimit = 40;
+ camera.radius = 15.998;
+ camera.alpha = (Math.PI * -248.8) / 180;
+ camera.beta = (Math.PI * 66) / 180;
+ camera.inertia = 0.1; // 缩放的快慢
+ camera.useAutoRotationBehavior = true; // 自动旋转
+
+ camera.panningDistanceLimit = 2; //平移半径
+ camera.panningInertia = 0;
+ camera.autoTransitionRange = 1;
+ camera.pinchToPanMaxDistance = 0.1;
+ camera.pinchDeltaPercentage = 0.001;
+ camera.useAutoRotationBehavior = false;
+
+ scene.activeCamera = camera;
+ scene.activeCamera.useInputToRestoreState = true;
+ var camera1_status = scene.activeCamera.storeState();
+ // 改变场景背景颜色 - 背景颜色opacity值设为0,达到透明背景的效果
+ scene.clearColor = new BABYLON.Color4(0, 0, 0, 0);
+ var assetsManager = new BABYLON.AssetsManager(scene);
+ var meshTask = assetsManager.addMeshTask(
+ "skull task",
+ "",
+ "asset/",
+ "total2.glb"
+ );
+
+ meshTask.onSuccess = function(task) {
+ task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
+ task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
+ };
+ meshTask.onError = function(task, message, exception) {
+ console.log(message, exception);
+ };
+
+ var meshTask_camera = assetsManager.addMeshTask(
+ "skull task",
+ "",
+ "asset/",
+ "TotalCamera.glb"
+ );
+ meshTask_camera.onSuccess = function(task) {
+ task.loadedMeshes[0].name = "cameras";
+ task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
+ task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
+ };
+ meshTask_camera.onError = function(task, message, exception) {
+ console.log(message, exception);
+ };
+
+ var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData(
+ "textures/environmentSpecular.env",
+ scene
+ );
+ scene.environmentTexture = hdrTexture;
+ var spriteManagerPlayer = new BABYLON.SpriteManager(
+ "playerManager",
+ "./img/bl9.png",
+ 10,
+ {
+ width: 100,
+ height: 100
+ },
+ scene
+ );
+ //spriteManagerPlayer.renderingGroupId = 2;
+ spriteManagerPlayer.isPickable = true;
+
+ scene.onPointerDown = function(evt) {
+ var pickResult = scene.pickSprite(this.pointerX, this.pointerY);
+ var pick = scene.pick(scene.pointerX, scene.pointerY);
+ console.log(pick.pickedPoint);
+ if (pickResult.pickedSprite != null) {
+ if (pickResult.hit) {
+ alert(pickResult.pickedSprite.name);
+ }
+ }
+ };
+
+ // renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")';
+ assetsManager.load();
+
+ drag = new BABYLON.PointerDragBehavior({
+ dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
+ });
+ //drag.useObjectOrienationForDragging = false;
+
+ drag.validateDrag = targetPosition => {
+ console.log(targetPosition);
+ if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
+ return false;
+ }
+ if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
+ return false;
+ }
+ if (oldtransformNodex != null) {
+ return true;
+ }
+ };
+ drag.onDragEndObservable.add(event => {
+ console.log("dragEnd");
+ //console.log(event);
+ //console.log(line03_position)
+ });
+
+ //GUI
+ h1 = new BABYLON.HighlightLayer("hl1", scene);
+ h2 = new BABYLON.HighlightLayer("hl2", scene);
+ h3 = new BABYLON.HighlightLayer("hl2", scene);
+ var step = 0.1;
+ var currentx = 1;
+
+ var step2 = 0.1;
+ var currentx2 = 0.1;
+ h1.blurHorizontalSize = 0.1;
+ var showx = 0;
+ var showx2 = 2;
+ scene.registerAfterRender(() => {
+ h1.blurHorizontalSize = h1.blurVerticalSize + currentx;
+ var nodealert = scene.getTransformNodeByName("camera01");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera02");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera03");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera04");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera05");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera06");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera07");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera08");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+
+ var nodealert = scene.getTransformNodeByName("camera09");
+ if (nodealert != null) {
+ var mesheses3 = null;
+ if (nodealert.getClassName() == "TransformNode") {
+ mesheses3 = nodealert.getChildMeshes(false);
+ } else {
+ mesheses3 = [];
+ mesheses3.push(nodealert);
+ }
+ for (var i = 0; i < mesheses3.length; i++) {
+ try {
+ if (nodealert.baojing == true) {
+ h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
+ } else {
+ h3.removeMesh(mesheses3[i]);
+ }
+ } catch (error) {
+ // alert(error)
+ }
+ }
+ }
+ if (currentx > 0.5) {
+ step *= -1;
+ }
+ if (currentx < 0) {
+ step *= -1;
+ }
+ currentx += step;
+ if (currentx2 > 5) {
+ step2 *= -1;
+ }
+ if (currentx2 < 0) {
+ step2 *= -1;
+ }
+ currentx2 += step2;
+
+ if (dynamicTexture != null && show == 0) {
+ var textx = showx;
+ var font_size = 48;
+ var font = "bold " + font_size + "px Arial";
+ dynamicTexture.drawText(
+ textx,
+ null,
+ null,
+ font,
+ "#FF0000",
+ "#ffffff",
+ true
+ );
+ showx++;
+ show = 50;
+ }
+
+ if (dynamicTexture2 != null && showdd == 0) {
+ var textx = showx2;
+ var font_size = 48;
+ var font = "bold " + font_size + "px Arial";
+ dynamicTexture2.drawText(
+ textx,
+ null,
+ null,
+ font,
+ "#0000FF",
+ "#ffffff",
+ true
+ );
+ showx2++;
+ showdd = 50;
+ if (showx2 == 10) {
+ showx2 = 0;
+ }
+ }
+ show--;
+ showdd--;
+ });
+ return scene;
+};
+
+var canvas = document.getElementById("renderCanvas");
+// load the 3D engine
+var engine = new BABYLON.Engine(canvas, true, {
+ stencil: true
+});
+
+// call the createScene function
+var scene = createScene();
+scene.autoClear = true;
+scene.imageProcessingConfiguration.exposure = 1;
+scene.imageProcessingConfiguration.contrast = 1;
+scene.environmentIntensity = 0.4;
+engine.runRenderLoop(function() {
+ scene.render();
+});
+
+window.addEventListener("resize", function() {
+ engine.resize();
+});
+
+//功能:点区以后跳转到新页
+//quName :转过来的区号
+// function quClick(quName){
+// if(quName=="A区"){
+// window.location.href = "http://192.168.99.72:8099/83/webA/index.html";
+// }
+// if(quName=="B区"){
+// window.location.href = "http://192.168.99.72:8099/83/webB/index.html";
+// }
+// if(quName=="C区"){
+// window.location.href = "http://192.168.99.72:8099/83/webC/index.html";
+// }
+// }
+
+function quClick(name) {
+ window.parent.postMessage(
+ {
+ data: name
+ },
+ "*"
+ );
+}
+
+//功能:点camera后事件
+// function cameraClick(camera){
+// alert(camera.nameID);
+// }
+
+function cameraClick(camera) {
+ window.parent.postMessage(
+ {
+ data: camera.nameID
+ },
+ "*"
+ );
+}
+
+function HashMap() {
+ //定义长度
+ var length = 0;
+ //创建一个对象
+ var obj = new Object();
+
+ //判断Map是否为空
+ this.isEmpty = function() {
+ return length == 0;
+ };
+
+ //判断对象中是否包含给定Key
+ this.containsKey = function(key) {
+ return key in obj;
+ };
+
+ //判断对象中是否包含给定的Value
+ this.containsValue = function(value) {
+ for (var key in obj) {
+ if (obj[key] == value) {
+ return true;
+ }
+ }
+ return false;
+ };
+
+ //向map中添加数据
+ this.put = function(key, value) {
+ if (!this.containsKey(key)) {
+ length++;
+ }
+ obj[key] = value;
+ };
+
+ //根据给定的key获取Value
+ this.get = function(key) {
+ return this.containsKey(key) ? obj[key] : null;
+ };
+
+ //根据给定的Key删除一个值
+ this.remove = function(key) {
+ if (this.containsKey(key) && delete obj[key]) {
+ length--;
+ }
+ };
+
+ //获得Map中所有的value
+ this.values = function() {
+ var _values = new Array();
+ for (var key in obj) {
+ _values.push(obj[key]);
+ }
+ return _values;
+ };
+
+ //获得Map中的所有key
+ this.keySet = function() {
+ var _keys = new Array();
+ for (var key in obj) {
+ _keys.push(key);
+ }
+ return _keys;
+ };
+
+ //获得Map的长度
+ this.size = function() {
+ return length;
+ };
+
+ //清空Map
+ this.clear = function() {
+ length = 0;
+ obj = new Object();
+ };
+}
+
+var yangans = new HashMap();
+yangans.put("DAK_MO_CAM_001", "camera01");
+yangans.put("DAK_MO_CAM_002", "camera02");
+yangans.put("DAK_MO_CAM_003", "camera03");
+yangans.put("DAK_MO_CAM_004", "camera04");
+yangans.put("ZLS_MO_CAM_001", "camera05");
+yangans.put("ZLS_MO_CAM_002", "camera06");
+yangans.put("YLS_MO_CAM_001", "camera07");
+yangans.put("YLS_MO_CAM_002", "camera08");
+yangans.put("ZL_MO_CAM_001", "camera09");
+
+//功能转入报警
+function Myalert(MathineID, baojing) {
+ var theName = yangans.get(MathineID);
+ if (theName == "camera01") {
+ scene.getTransformNodeByName("camera01").baojing = baojing;
+ }
+ if (theName == "camera02") {
+ scene.getTransformNodeByName("camera02").baojing = baojing;
+ }
+ if (theName == "camera03") {
+ scene.getTransformNodeByName("camera03").baojing = baojing;
+ }
+ if (theName == "camera04") {
+ scene.getTransformNodeByName("camera04").baojing = baojing;
+ }
+ if (theName == "camera05") {
+ scene.getTransformNodeByName("camera05").baojing = baojing;
+ }
+ if (theName == "camera06") {
+ scene.getTransformNodeByName("camera06").baojing = baojing;
+ }
+ if (theName == "camera07") {
+ scene.getTransformNodeByName("camera07").baojing = baojing;
+ }
+ if (theName == "camera08") {
+ scene.getTransformNodeByName("camera08").baojing = baojing;
+ }
+ if (theName == "camera09") {
+ scene.getTransformNodeByName("camera09").baojing = baojing;
+ }
+}
+
+//报警 true:表示报警, false :表示不报警
+//Myalert("DAK_MO_OAO_001",true)