【前端】智能库房综合管理系统前端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

948 lines
27 KiB

3 years ago
  1. // 从这里开始
  2. var h1 = null;
  3. var h2 = null;
  4. var h3 = null;
  5. var oldtransformNodex = null;
  6. var oldtransformNodeOther = null;
  7. var drag = null;
  8. var notmoveGroup = null;
  9. var movedGroup = null;
  10. var movesingle = false;
  11. var dynamicTexture = null;
  12. var dynamicTexture2 = null;
  13. var show = 50;
  14. var showdd = 50;
  15. BABYLON.DefaultLoadingScreen.prototype.displayLoadingUI = function() {
  16. if (document.getElementById("customLoadingScreenDiv")) {
  17. document.getElementById("customLoadingScreenDiv").style.display = "initial";
  18. return;
  19. }
  20. this._loadingDiv = document.createElement("div");
  21. this._loadingDiv.id = "customLoadingScreenDiv";
  22. thecss = "lohingifpc";
  23. thecss2 = "zcpc";
  24. this._loadingDiv.innerHTML =
  25. "<div class='oka'><div class='" +
  26. thecss +
  27. "'><image src='./logok.gif' class='jiazaiimg'/></div><div class='" +
  28. thecss2 +
  29. "'>由 <image class='feitimg' src='./img/yxlogo.png'/> 阅行客 提供技术支持!</div></div>";
  30. this._resizeLoadingUI();
  31. window.addEventListener("resize", this._resizeLoadingUI);
  32. document.body.appendChild(this._loadingDiv);
  33. };
  34. var movebyName = function(nodeName) {
  35. var x = scene.getTransformNodeByName(nodeName);
  36. moveTrans(x);
  37. };
  38. BABYLON.DefaultLoadingScreen.prototype.hideLoadingUI = function() {
  39. show = 50;
  40. document.getElementById("customLoadingScreenDiv").style.display = "none";
  41. document.getElementById("customLoadingScreenDiv_first").style.display =
  42. "none";
  43. document.title = "全景图";
  44. var prepareGroupButton = function(transformNodex, color, qu) {
  45. var mesheses = null;
  46. if (transformNodex.getClassName() == "TransformNode") {
  47. mesheses = transformNodex.getChildMeshes(false);
  48. } else {
  49. mesheses = [];
  50. mesheses.push(transformNodex);
  51. }
  52. for (var i = 0; i < mesheses.length; i++) {
  53. mesheses[i].actionManager = new BABYLON.ActionManager(scene);
  54. var theScaling = mesheses[i].scaling;
  55. /*if (true) {
  56. try {
  57. mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
  58. 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));
  59. } catch (error) {
  60. //alert(error)
  61. }
  62. }*/
  63. var clickbegin = false;
  64. mesheses[i].actionManager.registerAction(
  65. new BABYLON.ExecuteCodeAction(
  66. {
  67. trigger: BABYLON.ActionManager.OnPointerOverTrigger,
  68. parameter: ""
  69. },
  70. function() {
  71. clickbegin = true;
  72. if (true) {
  73. if (oldtransformNodeOther != null) {
  74. oldtransformNodeOther.removeBehavior(drag);
  75. var mesheses2 = null;
  76. if (oldtransformNodeOther.getClassName() == "TransformNode") {
  77. mesheses2 = oldtransformNodeOther.getChildMeshes(false);
  78. } else {
  79. mesheses2 = [];
  80. mesheses2.push(oldtransformNodeOther);
  81. }
  82. for (var i = 0; i < mesheses2.length; i++) {
  83. try {
  84. h2.removeMesh(mesheses2[i]);
  85. } catch (error) {
  86. // alert(error)
  87. }
  88. }
  89. }
  90. oldtransformNodeOther = transformNodex;
  91. //transformNodex.addBehavior(drag);
  92. var mesheses3 = null;
  93. if (transformNodex.getClassName() == "TransformNode") {
  94. mesheses3 = transformNodex.getChildMeshes(false);
  95. } else {
  96. mesheses3 = [];
  97. mesheses3.push(transformNodex);
  98. }
  99. for (var i = 0; i < mesheses3.length; i++) {
  100. try {
  101. h2.addMesh(mesheses3[i], color);
  102. } catch (error) {
  103. // alert(error)
  104. }
  105. }
  106. clickbegin = false;
  107. }
  108. }
  109. )
  110. );
  111. mesheses[i].actionManager.registerAction(
  112. new BABYLON.ExecuteCodeAction(
  113. {
  114. trigger: BABYLON.ActionManager.OnPickTrigger,
  115. parameter: ""
  116. },
  117. function() {
  118. clickbegin = true;
  119. if (true) {
  120. try {
  121. quClick(qu);
  122. } catch (error) {
  123. // alert(error)
  124. }
  125. clickbegin = false;
  126. }
  127. }
  128. )
  129. );
  130. }
  131. };
  132. var prepareGroupButton2 = function(transformNodex, color, qu) {
  133. var mesheses = null;
  134. if (transformNodex.getClassName() == "TransformNode") {
  135. mesheses = transformNodex.getChildMeshes(false);
  136. } else {
  137. mesheses = [];
  138. mesheses.push(transformNodex);
  139. }
  140. for (var i = 0; i < mesheses.length; i++) {
  141. mesheses[i].actionManager = new BABYLON.ActionManager(scene);
  142. var theScaling = mesheses[i].scaling;
  143. /*if (true) {
  144. try {
  145. mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
  146. 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));
  147. } catch (error) {
  148. //alert(error)
  149. }
  150. }*/
  151. var clickbegin = false;
  152. mesheses[i].actionManager.registerAction(
  153. new BABYLON.ExecuteCodeAction(
  154. {
  155. trigger: BABYLON.ActionManager.OnPointerOverTrigger,
  156. parameter: ""
  157. },
  158. function() {
  159. clickbegin = true;
  160. if (true) {
  161. if (oldtransformNodeOther != null) {
  162. oldtransformNodeOther.removeBehavior(drag);
  163. var mesheses2 = null;
  164. if (oldtransformNodeOther.getClassName() == "TransformNode") {
  165. mesheses2 = oldtransformNodeOther.getChildMeshes(false);
  166. } else {
  167. mesheses2 = [];
  168. mesheses2.push(oldtransformNodeOther);
  169. }
  170. for (var i = 0; i < mesheses2.length; i++) {
  171. try {
  172. h2.removeMesh(mesheses2[i]);
  173. } catch (error) {
  174. // alert(error)
  175. }
  176. }
  177. }
  178. oldtransformNodeOther = transformNodex;
  179. //transformNodex.addBehavior(drag);
  180. var mesheses3 = null;
  181. if (transformNodex.getClassName() == "TransformNode") {
  182. mesheses3 = transformNodex.getChildMeshes(false);
  183. } else {
  184. mesheses3 = [];
  185. mesheses3.push(transformNodex);
  186. }
  187. for (var i = 0; i < mesheses3.length; i++) {
  188. try {
  189. h2.addMesh(mesheses3[i], color);
  190. } catch (error) {
  191. // alert(error)
  192. }
  193. }
  194. clickbegin = false;
  195. }
  196. }
  197. )
  198. );
  199. mesheses[i].actionManager.registerAction(
  200. new BABYLON.ExecuteCodeAction(
  201. {
  202. trigger: BABYLON.ActionManager.OnPickTrigger,
  203. parameter: ""
  204. },
  205. function() {
  206. clickbegin = true;
  207. if (true) {
  208. try {
  209. // quClick(transformNodex.name)
  210. cameraClick(transformNodex);
  211. } catch (error) {
  212. // alert(error)
  213. }
  214. clickbegin = false;
  215. }
  216. }
  217. )
  218. );
  219. }
  220. };
  221. var dag1 = scene.getTransformNodeByName("A区");
  222. var dag2 = scene.getTransformNodeByName("B区");
  223. var dag3 = scene.getTransformNodeByName("C区");
  224. prepareGroupButton(dag1, new BABYLON.Color3(1, 1, 0), "A区");
  225. prepareGroupButton(dag2, new BABYLON.Color3(1, 1, 0), "B区");
  226. prepareGroupButton(dag3, new BABYLON.Color3(1, 1, 0), "C区");
  227. //绑功能点
  228. var cl = new BABYLON.Color3(0, 0, 1);
  229. var jk01 = scene.getTransformNodeByName("camera01");
  230. jk01.nameID = "DAK_MO_CAM_001";
  231. prepareGroupButton2(jk01, cl);
  232. var jk02 = scene.getTransformNodeByName("camera02");
  233. jk02.nameID = "DAK_MO_CAM_002";
  234. prepareGroupButton2(jk02, cl);
  235. var jk03 = scene.getTransformNodeByName("camera03");
  236. jk03.nameID = "DAK_MO_CAM_003";
  237. prepareGroupButton2(jk03, cl);
  238. var jk04 = scene.getTransformNodeByName("camera04");
  239. jk04.nameID = "DAK_MO_CAM_004";
  240. prepareGroupButton2(jk04, cl);
  241. var jk05 = scene.getTransformNodeByName("camera05");
  242. jk05.nameID = "ZLS_MO_CAM_001";
  243. prepareGroupButton2(jk05, cl);
  244. var jk06 = scene.getTransformNodeByName("camera06");
  245. jk06.nameID = "ZLS_MO_CAM_002";
  246. prepareGroupButton2(jk06, cl);
  247. var jk07 = scene.getTransformNodeByName("camera07");
  248. jk07.nameID = "YLS_MO_CAM_001";
  249. prepareGroupButton2(jk07, cl);
  250. var jk08 = scene.getTransformNodeByName("camera08");
  251. jk08.nameID = "YLS_MO_CAM_002";
  252. prepareGroupButton2(jk08, cl);
  253. var jk09 = scene.getTransformNodeByName("camera09");
  254. jk09.nameID = "ZL_MO_CAM_001";
  255. prepareGroupButton2(jk09, cl);
  256. //set camera to null
  257. var x = scene.getMeshByName("档案架01_primitive0");
  258. x.overlayColor = BABYLON.Color3.White();
  259. x.renderOverlay = true;
  260. x = scene.getMeshByName("档案架02_primitive0");
  261. x.overlayColor = BABYLON.Color3.White();
  262. x.renderOverlay = true;
  263. x = scene.getMeshByName("档案架03_primitive0");
  264. x.overlayColor = BABYLON.Color3.White();
  265. x.renderOverlay = true;
  266. x = scene.getMeshByName("档案架04_primitive0");
  267. x.overlayColor = BABYLON.Color3.White();
  268. x.renderOverlay = true;
  269. x = scene.getMeshByName("档案架05_primitive0");
  270. x.overlayColor = BABYLON.Color3.White();
  271. x.renderOverlay = true;
  272. x = scene.getMeshByName("档案架06_primitive0");
  273. x.overlayColor = BABYLON.Color3.White();
  274. x.renderOverlay = true;
  275. x = scene.getMeshByName("档案架07_primitive0");
  276. x.overlayColor = BABYLON.Color3.White();
  277. x.renderOverlay = true;
  278. x = scene.getMeshByName("档案架08_primitive0");
  279. x.overlayColor = BABYLON.Color3.White();
  280. x.renderOverlay = true;
  281. x = scene.getMeshByName("档案架09_primitive0");
  282. x.overlayColor = BABYLON.Color3.White();
  283. x.renderOverlay = true;
  284. x = scene.getMeshByName("档案架10_primitive0");
  285. x.overlayColor = BABYLON.Color3.White();
  286. x.renderOverlay = true;
  287. x = scene.getMeshByName("前门01_primitive0");
  288. x.overlayColor = BABYLON.Color3.White();
  289. x.renderOverlay = true;
  290. x = scene.getMeshByName("后门01_primitive0");
  291. x.overlayColor = BABYLON.Color3.White();
  292. x.renderOverlay = true;
  293. x = scene.getMeshByName("墙体");
  294. x.overlayColor = BABYLON.Color3.White();
  295. x.renderOverlay = true;
  296. x = scene.getMeshByName("立方体_9_2");
  297. x.overlayColor = BABYLON.Color3.White();
  298. x.renderOverlay = true;
  299. x = scene.getMeshByName("立方体_2_17.001_primitive0");
  300. x.overlayColor = BABYLON.Color3.White();
  301. x.renderOverlay = true;
  302. x = scene.getMeshByName("立方体_2_17.001_primitive1");
  303. x.overlayColor = BABYLON.Color3.White();
  304. x.renderOverlay = true;
  305. x = scene.getMeshByName("立方体_2_17.001_primitive2");
  306. x.overlayColor = BABYLON.Color3.White();
  307. x.renderOverlay = true;
  308. x = scene.getMeshByName("立方体_2_17.001_primitive3");
  309. x.overlayColor = BABYLON.Color3.White();
  310. x.renderOverlay = true;
  311. x = scene.getMeshByName("立方体_12_2_primitive0");
  312. x.overlayColor = BABYLON.Color3.White();
  313. x.renderOverlay = true;
  314. x = scene.getMeshByName("立方体_12_2_primitive1");
  315. x.overlayColor = BABYLON.Color3.White();
  316. x.renderOverlay = true;
  317. //x = scene.getMeshByName("立方体_12_2_primitive2");
  318. //x.overlayColor = BABYLON.Color3.White()
  319. //x.renderOverlay = true;
  320. x = scene.getMeshByName("立方体_12_2_primitive3");
  321. x.overlayColor = BABYLON.Color3.White();
  322. x.renderOverlay = true;
  323. x = scene.getMeshByName("立方体_12_2_primitive4");
  324. x.overlayColor = BABYLON.Color3.White();
  325. x.renderOverlay = true;
  326. x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive0");
  327. x.overlayColor = BABYLON.Color3.White();
  328. x.renderOverlay = true;
  329. x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive2");
  330. x.overlayColor = BABYLON.Color3.White();
  331. x.renderOverlay = true;
  332. x = scene.getMeshByName("立方体_1_12.001_LOD1");
  333. x.overlayColor = BABYLON.Color3.White();
  334. x.renderOverlay = true;
  335. };
  336. // createScene function that creates and return the scene
  337. var createScene = function() {
  338. engine.displayLoadingUI();
  339. // create a basic BJS Scene object
  340. var scene = new BABYLON.Scene(engine);
  341. // scene.debugLayer.show();
  342. var camera = new BABYLON.ArcRotateCamera(
  343. "Camera",
  344. 0,
  345. 0,
  346. 5,
  347. new BABYLON.Vector3(0, -1, 0),
  348. scene
  349. );
  350. camera.setTarget(new BABYLON.Vector3(0.5, 2, -4));
  351. camera.attachControl(canvas, true);
  352. camera.lowerRadiusLimit = 2.0; // 这里是最大的位置,值越大,物体越小
  353. camera.upperRadiusLimit = 40;
  354. camera.radius = 19.328;
  355. camera.alpha = (Math.PI * -211.4) / 180;
  356. camera.beta = (Math.PI * 66) / 180;
  357. camera.inertia = 0.1; // 缩放的快慢
  358. camera.useAutoRotationBehavior = true; // 自动旋转
  359. camera.panningDistanceLimit = 2; //平移半径
  360. camera.panningInertia = 0;
  361. camera.autoTransitionRange = 1;
  362. camera.pinchToPanMaxDistance = 0.1;
  363. camera.pinchDeltaPercentage = 0.001;
  364. camera.useAutoRotationBehavior = false;
  365. scene.activeCamera = camera;
  366. scene.activeCamera.useInputToRestoreState = true;
  367. var camera1_status = scene.activeCamera.storeState();
  368. // 改变场景背景颜色 - 背景颜色opacity值设为0,达到透明背景的效果
  369. scene.clearColor = new BABYLON.Color4(0, 0, 0, 0);
  370. var assetsManager = new BABYLON.AssetsManager(scene);
  371. var meshTask = assetsManager.addMeshTask(
  372. "skull task",
  373. "",
  374. "asset/",
  375. "total2.glb"
  376. );
  377. meshTask.onSuccess = function(task) {
  378. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  379. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  380. };
  381. meshTask.onError = function(task, message, exception) {
  382. console.log(message, exception);
  383. };
  384. var meshTask_camera = assetsManager.addMeshTask(
  385. "skull task",
  386. "",
  387. "asset/",
  388. "TotalCamera.glb"
  389. );
  390. meshTask_camera.onSuccess = function(task) {
  391. task.loadedMeshes[0].name = "cameras";
  392. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  393. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  394. };
  395. meshTask_camera.onError = function(task, message, exception) {
  396. console.log(message, exception);
  397. };
  398. var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData(
  399. "textures/environmentSpecular.env",
  400. scene
  401. );
  402. scene.environmentTexture = hdrTexture;
  403. var spriteManagerPlayer = new BABYLON.SpriteManager(
  404. "playerManager",
  405. "./img/bl9.png",
  406. 10,
  407. {
  408. width: 100,
  409. height: 100
  410. },
  411. scene
  412. );
  413. //spriteManagerPlayer.renderingGroupId = 2;
  414. spriteManagerPlayer.isPickable = true;
  415. scene.onPointerDown = function(evt) {
  416. var pickResult = scene.pickSprite(this.pointerX, this.pointerY);
  417. var pick = scene.pick(scene.pointerX, scene.pointerY);
  418. console.log(pick.pickedPoint);
  419. if (pickResult.pickedSprite != null) {
  420. if (pickResult.hit) {
  421. alert(pickResult.pickedSprite.name);
  422. }
  423. }
  424. };
  425. // renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")';
  426. assetsManager.load();
  427. drag = new BABYLON.PointerDragBehavior({
  428. dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
  429. });
  430. //drag.useObjectOrienationForDragging = false;
  431. drag.validateDrag = targetPosition => {
  432. console.log(targetPosition);
  433. if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
  434. return false;
  435. }
  436. if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
  437. return false;
  438. }
  439. if (oldtransformNodex != null) {
  440. return true;
  441. }
  442. };
  443. drag.onDragEndObservable.add(event => {
  444. console.log("dragEnd");
  445. //console.log(event);
  446. //console.log(line03_position)
  447. });
  448. //GUI
  449. h1 = new BABYLON.HighlightLayer("hl1", scene);
  450. h2 = new BABYLON.HighlightLayer("hl2", scene);
  451. h3 = new BABYLON.HighlightLayer("hl2", scene);
  452. var step = 0.1;
  453. var currentx = 1;
  454. var step2 = 0.1;
  455. var currentx2 = 0.1;
  456. h1.blurHorizontalSize = 0.1;
  457. var showx = 0;
  458. var showx2 = 2;
  459. scene.registerAfterRender(() => {
  460. h1.blurHorizontalSize = h1.blurVerticalSize + currentx;
  461. var nodealert = scene.getTransformNodeByName("camera01");
  462. if (nodealert != null) {
  463. var mesheses3 = null;
  464. if (nodealert.getClassName() == "TransformNode") {
  465. mesheses3 = nodealert.getChildMeshes(false);
  466. } else {
  467. mesheses3 = [];
  468. mesheses3.push(nodealert);
  469. }
  470. for (var i = 0; i < mesheses3.length; i++) {
  471. try {
  472. if (nodealert.baojing == true) {
  473. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  474. } else {
  475. h3.removeMesh(mesheses3[i]);
  476. }
  477. } catch (error) {
  478. // alert(error)
  479. }
  480. }
  481. }
  482. var nodealert = scene.getTransformNodeByName("camera02");
  483. if (nodealert != null) {
  484. var mesheses3 = null;
  485. if (nodealert.getClassName() == "TransformNode") {
  486. mesheses3 = nodealert.getChildMeshes(false);
  487. } else {
  488. mesheses3 = [];
  489. mesheses3.push(nodealert);
  490. }
  491. for (var i = 0; i < mesheses3.length; i++) {
  492. try {
  493. if (nodealert.baojing == true) {
  494. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  495. } else {
  496. h3.removeMesh(mesheses3[i]);
  497. }
  498. } catch (error) {
  499. // alert(error)
  500. }
  501. }
  502. }
  503. var nodealert = scene.getTransformNodeByName("camera03");
  504. if (nodealert != null) {
  505. var mesheses3 = null;
  506. if (nodealert.getClassName() == "TransformNode") {
  507. mesheses3 = nodealert.getChildMeshes(false);
  508. } else {
  509. mesheses3 = [];
  510. mesheses3.push(nodealert);
  511. }
  512. for (var i = 0; i < mesheses3.length; i++) {
  513. try {
  514. if (nodealert.baojing == true) {
  515. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  516. } else {
  517. h3.removeMesh(mesheses3[i]);
  518. }
  519. } catch (error) {
  520. // alert(error)
  521. }
  522. }
  523. }
  524. var nodealert = scene.getTransformNodeByName("camera04");
  525. if (nodealert != null) {
  526. var mesheses3 = null;
  527. if (nodealert.getClassName() == "TransformNode") {
  528. mesheses3 = nodealert.getChildMeshes(false);
  529. } else {
  530. mesheses3 = [];
  531. mesheses3.push(nodealert);
  532. }
  533. for (var i = 0; i < mesheses3.length; i++) {
  534. try {
  535. if (nodealert.baojing == true) {
  536. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  537. } else {
  538. h3.removeMesh(mesheses3[i]);
  539. }
  540. } catch (error) {
  541. // alert(error)
  542. }
  543. }
  544. }
  545. var nodealert = scene.getTransformNodeByName("camera05");
  546. if (nodealert != null) {
  547. var mesheses3 = null;
  548. if (nodealert.getClassName() == "TransformNode") {
  549. mesheses3 = nodealert.getChildMeshes(false);
  550. } else {
  551. mesheses3 = [];
  552. mesheses3.push(nodealert);
  553. }
  554. for (var i = 0; i < mesheses3.length; i++) {
  555. try {
  556. if (nodealert.baojing == true) {
  557. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  558. } else {
  559. h3.removeMesh(mesheses3[i]);
  560. }
  561. } catch (error) {
  562. // alert(error)
  563. }
  564. }
  565. }
  566. var nodealert = scene.getTransformNodeByName("camera06");
  567. if (nodealert != null) {
  568. var mesheses3 = null;
  569. if (nodealert.getClassName() == "TransformNode") {
  570. mesheses3 = nodealert.getChildMeshes(false);
  571. } else {
  572. mesheses3 = [];
  573. mesheses3.push(nodealert);
  574. }
  575. for (var i = 0; i < mesheses3.length; i++) {
  576. try {
  577. if (nodealert.baojing == true) {
  578. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  579. } else {
  580. h3.removeMesh(mesheses3[i]);
  581. }
  582. } catch (error) {
  583. // alert(error)
  584. }
  585. }
  586. }
  587. var nodealert = scene.getTransformNodeByName("camera07");
  588. if (nodealert != null) {
  589. var mesheses3 = null;
  590. if (nodealert.getClassName() == "TransformNode") {
  591. mesheses3 = nodealert.getChildMeshes(false);
  592. } else {
  593. mesheses3 = [];
  594. mesheses3.push(nodealert);
  595. }
  596. for (var i = 0; i < mesheses3.length; i++) {
  597. try {
  598. if (nodealert.baojing == true) {
  599. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  600. } else {
  601. h3.removeMesh(mesheses3[i]);
  602. }
  603. } catch (error) {
  604. // alert(error)
  605. }
  606. }
  607. }
  608. var nodealert = scene.getTransformNodeByName("camera08");
  609. if (nodealert != null) {
  610. var mesheses3 = null;
  611. if (nodealert.getClassName() == "TransformNode") {
  612. mesheses3 = nodealert.getChildMeshes(false);
  613. } else {
  614. mesheses3 = [];
  615. mesheses3.push(nodealert);
  616. }
  617. for (var i = 0; i < mesheses3.length; i++) {
  618. try {
  619. if (nodealert.baojing == true) {
  620. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  621. } else {
  622. h3.removeMesh(mesheses3[i]);
  623. }
  624. } catch (error) {
  625. // alert(error)
  626. }
  627. }
  628. }
  629. var nodealert = scene.getTransformNodeByName("camera09");
  630. if (nodealert != null) {
  631. var mesheses3 = null;
  632. if (nodealert.getClassName() == "TransformNode") {
  633. mesheses3 = nodealert.getChildMeshes(false);
  634. } else {
  635. mesheses3 = [];
  636. mesheses3.push(nodealert);
  637. }
  638. for (var i = 0; i < mesheses3.length; i++) {
  639. try {
  640. if (nodealert.baojing == true) {
  641. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  642. } else {
  643. h3.removeMesh(mesheses3[i]);
  644. }
  645. } catch (error) {
  646. // alert(error)
  647. }
  648. }
  649. }
  650. if (currentx > 0.5) {
  651. step *= -1;
  652. }
  653. if (currentx < 0) {
  654. step *= -1;
  655. }
  656. currentx += step;
  657. if (currentx2 > 5) {
  658. step2 *= -1;
  659. }
  660. if (currentx2 < 0) {
  661. step2 *= -1;
  662. }
  663. currentx2 += step2;
  664. if (dynamicTexture != null && show == 0) {
  665. var textx = showx;
  666. var font_size = 48;
  667. var font = "bold " + font_size + "px Arial";
  668. dynamicTexture.drawText(
  669. textx,
  670. null,
  671. null,
  672. font,
  673. "#FF0000",
  674. "#ffffff",
  675. true
  676. );
  677. showx++;
  678. show = 50;
  679. }
  680. if (dynamicTexture2 != null && showdd == 0) {
  681. var textx = showx2;
  682. var font_size = 48;
  683. var font = "bold " + font_size + "px Arial";
  684. dynamicTexture2.drawText(
  685. textx,
  686. null,
  687. null,
  688. font,
  689. "#0000FF",
  690. "#ffffff",
  691. true
  692. );
  693. showx2++;
  694. showdd = 50;
  695. if (showx2 == 10) {
  696. showx2 = 0;
  697. }
  698. }
  699. show--;
  700. showdd--;
  701. });
  702. return scene;
  703. };
  704. var canvas = document.getElementById("renderCanvas");
  705. // load the 3D engine
  706. var engine = new BABYLON.Engine(canvas, true, {
  707. stencil: true
  708. });
  709. // call the createScene function
  710. var scene = createScene();
  711. scene.autoClear = true;
  712. scene.imageProcessingConfiguration.exposure = 1;
  713. scene.imageProcessingConfiguration.contrast = 1;
  714. scene.environmentIntensity = 1;
  715. engine.runRenderLoop(function() {
  716. scene.render();
  717. });
  718. window.addEventListener("resize", function() {
  719. engine.resize();
  720. });
  721. //功能:点区以后跳转到新页
  722. //quName :转过来的区号
  723. // function quClick(quName){
  724. // if(quName=="A区"){
  725. // window.location.href = "http://192.168.99.72:8099/83/webA/index.html";
  726. // }
  727. // if(quName=="B区"){
  728. // window.location.href = "http://192.168.99.72:8099/83/webB/index.html";
  729. // }
  730. // if(quName=="C区"){
  731. // window.location.href = "http://192.168.99.72:8099/83/webC/index.html";
  732. // }
  733. // }
  734. function quClick(name) {
  735. window.parent.postMessage(
  736. {
  737. data: name
  738. },
  739. "*"
  740. );
  741. }
  742. //功能:点camera后事件
  743. // function cameraClick(camera){
  744. // alert(camera.nameID);
  745. // }
  746. function cameraClick(camera) {
  747. window.parent.postMessage(
  748. {
  749. data: camera.nameID
  750. },
  751. "*"
  752. );
  753. }
  754. function HashMap() {
  755. //定义长度
  756. var length = 0;
  757. //创建一个对象
  758. var obj = new Object();
  759. //判断Map是否为空
  760. this.isEmpty = function() {
  761. return length == 0;
  762. };
  763. //判断对象中是否包含给定Key
  764. this.containsKey = function(key) {
  765. return key in obj;
  766. };
  767. //判断对象中是否包含给定的Value
  768. this.containsValue = function(value) {
  769. for (var key in obj) {
  770. if (obj[key] == value) {
  771. return true;
  772. }
  773. }
  774. return false;
  775. };
  776. //向map中添加数据
  777. this.put = function(key, value) {
  778. if (!this.containsKey(key)) {
  779. length++;
  780. }
  781. obj[key] = value;
  782. };
  783. //根据给定的key获取Value
  784. this.get = function(key) {
  785. return this.containsKey(key) ? obj[key] : null;
  786. };
  787. //根据给定的Key删除一个值
  788. this.remove = function(key) {
  789. if (this.containsKey(key) && delete obj[key]) {
  790. length--;
  791. }
  792. };
  793. //获得Map中所有的value
  794. this.values = function() {
  795. var _values = new Array();
  796. for (var key in obj) {
  797. _values.push(obj[key]);
  798. }
  799. return _values;
  800. };
  801. //获得Map中的所有key
  802. this.keySet = function() {
  803. var _keys = new Array();
  804. for (var key in obj) {
  805. _keys.push(key);
  806. }
  807. return _keys;
  808. };
  809. //获得Map的长度
  810. this.size = function() {
  811. return length;
  812. };
  813. //清空Map
  814. this.clear = function() {
  815. length = 0;
  816. obj = new Object();
  817. };
  818. }
  819. var yangans = new HashMap();
  820. yangans.put("DAK_MO_CAM_001", "camera01");
  821. yangans.put("DAK_MO_CAM_002", "camera02");
  822. yangans.put("DAK_MO_CAM_003", "camera03");
  823. yangans.put("DAK_MO_CAM_004", "camera04");
  824. yangans.put("ZLS_MO_CAM_001", "camera05");
  825. yangans.put("ZLS_MO_CAM_002", "camera06");
  826. yangans.put("YLS_MO_CAM_001", "camera07");
  827. yangans.put("YLS_MO_CAM_002", "camera08");
  828. yangans.put("ZL_MO_CAM_001", "camera09");
  829. //功能转入报警
  830. function Myalert(MathineID, baojing) {
  831. var theName = yangans.get(MathineID);
  832. if (theName == "camera01") {
  833. scene.getTransformNodeByName("camera01").baojing = baojing;
  834. }
  835. if (theName == "camera02") {
  836. scene.getTransformNodeByName("camera02").baojing = baojing;
  837. }
  838. if (theName == "camera03") {
  839. scene.getTransformNodeByName("camera03").baojing = baojing;
  840. }
  841. if (theName == "camera04") {
  842. scene.getTransformNodeByName("camera04").baojing = baojing;
  843. }
  844. if (theName == "camera05") {
  845. scene.getTransformNodeByName("camera05").baojing = baojing;
  846. }
  847. if (theName == "camera06") {
  848. scene.getTransformNodeByName("camera06").baojing = baojing;
  849. }
  850. if (theName == "camera07") {
  851. scene.getTransformNodeByName("camera07").baojing = baojing;
  852. }
  853. if (theName == "camera08") {
  854. scene.getTransformNodeByName("camera08").baojing = baojing;
  855. }
  856. if (theName == "camera09") {
  857. scene.getTransformNodeByName("camera09").baojing = baojing;
  858. }
  859. }
  860. //报警 true:表示报警, false :表示不报警
  861. //Myalert("DAK_MO_OAO_001",true)