【前端】智能库房综合管理系统前端项目
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.

1076 lines
32 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
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. var colorddd = new BABYLON.Color3(51 / 255, 156 / 255, 1);
  225. prepareGroupButton(dag1, colorddd, "A区");
  226. prepareGroupButton(dag2, colorddd, "B区");
  227. prepareGroupButton(dag3, colorddd, "C区");
  228. //绑功能点
  229. var cl = new BABYLON.Color3(0, 0, 1);
  230. var jk01 = scene.getTransformNodeByName("camera01");
  231. jk01.nameID = "DAK_MO_CAM_001";
  232. prepareGroupButton2(jk01, cl);
  233. var jk02 = scene.getTransformNodeByName("camera02");
  234. jk02.nameID = "DAK_MO_CAM_002";
  235. prepareGroupButton2(jk02, cl);
  236. var jk03 = scene.getTransformNodeByName("camera03");
  237. jk03.nameID = "DAK_MO_CAM_003";
  238. prepareGroupButton2(jk03, cl);
  239. var jk04 = scene.getTransformNodeByName("camera04");
  240. jk04.nameID = "DAK_MO_CAM_004";
  241. prepareGroupButton2(jk04, cl);
  242. var jk05 = scene.getTransformNodeByName("camera05");
  243. jk05.nameID = "ZLS_MO_CAM_001";
  244. prepareGroupButton2(jk05, cl);
  245. var jk06 = scene.getTransformNodeByName("camera06");
  246. jk06.nameID = "ZLS_MO_CAM_002";
  247. prepareGroupButton2(jk06, cl);
  248. var jk07 = scene.getTransformNodeByName("camera07");
  249. jk07.nameID = "YLS_MO_CAM_001";
  250. prepareGroupButton2(jk07, cl);
  251. var jk08 = scene.getTransformNodeByName("camera08");
  252. jk08.nameID = "YLS_MO_CAM_002";
  253. prepareGroupButton2(jk08, cl);
  254. var jk09 = scene.getTransformNodeByName("camera09");
  255. jk09.nameID = "ZL_MO_CAM_001";
  256. prepareGroupButton2(jk09, cl);
  257. //set camera to null
  258. var x = scene.getMeshByName("档案架01_primitive0");
  259. x.overlayColor = BABYLON.Color3.White();
  260. x.renderOverlay = true;
  261. x = scene.getMeshByName("档案架02_primitive0");
  262. x.overlayColor = BABYLON.Color3.White();
  263. x.renderOverlay = true;
  264. x = scene.getMeshByName("档案架03_primitive0");
  265. x.overlayColor = BABYLON.Color3.White();
  266. x.renderOverlay = true;
  267. x = scene.getMeshByName("档案架04_primitive0");
  268. x.overlayColor = BABYLON.Color3.White();
  269. x.renderOverlay = true;
  270. x = scene.getMeshByName("档案架05_primitive0");
  271. x.overlayColor = BABYLON.Color3.White();
  272. x.renderOverlay = true;
  273. x = scene.getMeshByName("档案架06_primitive0");
  274. x.overlayColor = BABYLON.Color3.White();
  275. x.renderOverlay = true;
  276. x = scene.getMeshByName("档案架07_primitive0");
  277. x.overlayColor = BABYLON.Color3.White();
  278. x.renderOverlay = true;
  279. x = scene.getMeshByName("档案架08_primitive0");
  280. x.overlayColor = BABYLON.Color3.White();
  281. x.renderOverlay = true;
  282. x = scene.getMeshByName("档案架09_primitive0");
  283. x.overlayColor = BABYLON.Color3.White();
  284. x.renderOverlay = true;
  285. x = scene.getMeshByName("档案架10_primitive0");
  286. x.overlayColor = BABYLON.Color3.White();
  287. x.renderOverlay = true;
  288. x = scene.getMeshByName("前门01_primitive0");
  289. x.overlayColor = BABYLON.Color3.White();
  290. x.renderOverlay = true;
  291. x = scene.getMeshByName("后门01_primitive0");
  292. x.overlayColor = BABYLON.Color3.White();
  293. x.renderOverlay = true;
  294. // x = scene.getMeshByName("墙体");
  295. // x.overlayColor = BABYLON.Color3.White();
  296. // x.renderOverlay = true;
  297. // x = scene.getMeshByName("立方体_9_2");
  298. // x.overlayColor = BABYLON.Color3.White();
  299. // x.renderOverlay = true;
  300. // x = scene.getMeshByName("立方体_2_17.001_primitive0");
  301. // x.overlayColor = BABYLON.Color3.White();
  302. // x.renderOverlay = true;
  303. // x = scene.getMeshByName("立方体_2_17.001_primitive1");
  304. // x.overlayColor = BABYLON.Color3.White();
  305. // x.renderOverlay = true;
  306. // x = scene.getMeshByName("立方体_2_17.001_primitive2");
  307. // x.overlayColor = BABYLON.Color3.White();
  308. // x.renderOverlay = true;
  309. // x = scene.getMeshByName("立方体_2_17.001_primitive3");
  310. // x.overlayColor = BABYLON.Color3.White();
  311. // x.renderOverlay = true;
  312. // x = scene.getMeshByName("立方体_12_2_primitive0");
  313. // x.overlayColor = BABYLON.Color3.White();
  314. // x.renderOverlay = true;
  315. // x = scene.getMeshByName("立方体_12_2_primitive1");
  316. // x.overlayColor = BABYLON.Color3.White();
  317. // x.renderOverlay = true;
  318. //x = scene.getMeshByName("立方体_12_2_primitive2");
  319. //x.overlayColor = BABYLON.Color3.White()
  320. //x.renderOverlay = true;
  321. // x = scene.getMeshByName("立方体_12_2_primitive3");
  322. // x.overlayColor = BABYLON.Color3.White();
  323. // x.renderOverlay = true;
  324. // x = scene.getMeshByName("立方体_12_2_primitive4");
  325. // x.overlayColor = BABYLON.Color3.White();
  326. // x.renderOverlay = true;
  327. x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive0");
  328. x.overlayColor = BABYLON.Color3.White();
  329. x.renderOverlay = true;
  330. x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive2");
  331. x.overlayColor = BABYLON.Color3.White();
  332. x.renderOverlay = true;
  333. x = scene.getMeshByName("立方体_1_12.001_LOD1");
  334. x.overlayColor = BABYLON.Color3.White();
  335. x.renderOverlay = true;
  336. var light = new BABYLON.HemisphericLight(
  337. "HemiLight",
  338. new BABYLON.Vector3(0, 1, 0),
  339. scene
  340. );
  341. light.intensity = 2;
  342. light.diffuse = new BABYLON.Color3(0.92, 0.92, 0.92);
  343. var material1 = scene.getMaterialByName("材质.107");
  344. material1.albedoColor = new BABYLON.Color3(168 / 255, 167 / 255, 168 / 255);
  345. material1.roughness = 1;
  346. //墙
  347. scene.getMaterialByName("cover_label.009").metallic = 0.36;
  348. scene.getMaterialByName("cover_label.009").albedoColor = new BABYLON.Color3(
  349. 1,
  350. 1,
  351. 1
  352. );
  353. scene.getMaterialByName("cover_label.010").metallic = 0.36;
  354. scene.getMaterialByName("cover_label.010").albedoColor = new BABYLON.Color3(
  355. 1,
  356. 1,
  357. 1
  358. );
  359. //铁
  360. var material3 = scene.getMaterialByName("材质.116");
  361. material3.metallic = 0.9;
  362. material3.roughness = 0;
  363. material3.emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  364. scene.getMaterialByName("材质.102").metallic = 0.9;
  365. scene.getMaterialByName("材质.102").roughness = 0.0;
  366. scene.getMaterialByName("材质.102").emissiveColor = new BABYLON.Color3(
  367. 0.278,
  368. 0.278,
  369. 0.278
  370. );
  371. scene.getMaterialByName("材质.132").metallic = 0.9;
  372. scene.getMaterialByName("材质.132").roughness = 0.0;
  373. scene.getMaterialByName("材质.132").emissiveColor = new BABYLON.Color3(
  374. 0.278,
  375. 0.278,
  376. 0.278
  377. );
  378. scene.getMaterialByName("材质.122").metallic = 0.9;
  379. scene.getMaterialByName("材质.122").roughness = 0.0;
  380. scene.getMaterialByName("材质.122").emissiveColor = new BABYLON.Color3(
  381. 0.278,
  382. 0.278,
  383. 0.278
  384. );
  385. //地
  386. var material2 = scene.getMaterialByName("材质.106");
  387. material2.albedoColor = new BABYLON.Color3(0.8, 0.8, 0.8);
  388. material2.metallic = 0.52;
  389. material2.roughness = 0;
  390. //material2.metallicReflectanceColor=new BABYLON.Color3(1,0,0);
  391. //material2.emissiveColor=new BABYLON.Color3(0.8,0.8,0.8);
  392. //地面扩大处理
  393. var meshground1 = scene.getMeshByName("地面A").clone();
  394. var meshground = scene.getMeshByName("地面A");
  395. meshground.isVisible = false;
  396. meshground1.position = new BABYLON.Vector3(-1.512, -0.069, 1.852);
  397. meshground1.scaling = new BABYLON.Vector3(0.022, 0.013, 0.005);
  398. meshground1.parent = scene.getMeshByName("__root__");
  399. //scene.getMeshByName("地面.002").isVisible = false;
  400. //scene.getMeshByName("地面.003").isVisible = false;
  401. //scene.getMeshByName("地面").isVisible = false;
  402. scene.getMaterialByName("材质.127").metallic = 0.8;
  403. scene.getMaterialByName("Wood-04.004").metallic = 0.8;
  404. scene.getMaterialByName("Wood-04.004").metallic = 0.8;
  405. scene.getMaterialByName("Desk.002").metallic = 0.8;
  406. scene.getMaterialByName("Desk.002").roughness = 0.72;
  407. scene.getMaterialByName("Desk.003").metallic = 0.8;
  408. scene.getMaterialByName("Desk.003").roughness = 0.72;
  409. scene.getMaterialByName("Desk.004").metallic = 0.8;
  410. scene.getMaterialByName("Desk.004").roughness = 0.72;
  411. scene.getMaterialByName("Desk.007").metallic = 0.8;
  412. scene.getMaterialByName("Desk.007").roughness = 0.72;
  413. scene.getMaterialByName("Desk.008").metallic = 0.8;
  414. scene.getMaterialByName("Desk.008").roughness = 0.72;
  415. scene.getMaterialByName("Desk.009").metallic = 0.8;
  416. scene.getMaterialByName("Desk.009").roughness = 0.72;
  417. scene.getMaterialByName("Desk.019").metallic = 0.8;
  418. scene.getMaterialByName("Desk.019").roughness = 0.72;
  419. scene.getMaterialByName("Desk.020").metallic = 0.8;
  420. scene.getMaterialByName("Desk.020").roughness = 0.72;
  421. scene.getMaterialByName("Desk.021").metallic = 0.8;
  422. scene.getMaterialByName("Desk.021").roughness = 0.72;
  423. scene.getMaterialByName("Desk.022").metallic = 0.8;
  424. scene.getMaterialByName("Desk.022").roughness = 0.72;
  425. scene.getMaterialByName("Desk.023").metallic = 0.8;
  426. scene.getMaterialByName("Desk.023").roughness = 0.72;
  427. scene.getMaterialByName("Desk.024").metallic = 0.8;
  428. scene.getMaterialByName("Desk.024").roughness = 0.72;
  429. scene.getMeshByName("档案架01_primitive3").material = scene.getMaterialByName("10.002");
  430. scene.getMeshByName("档案架02_primitive4").material = scene.getMaterialByName("09.002");
  431. scene.getMeshByName("档案架03_primitive4").material = scene.getMaterialByName("08.002");
  432. scene.getMeshByName("档案架04_primitive4").material = scene.getMaterialByName("07.002");
  433. scene.getMeshByName("档案架05_primitive4").material = scene.getMaterialByName("06.002");
  434. scene.getMeshByName("档案架06_primitive4").material = scene.getMaterialByName("05.002");
  435. scene.getMeshByName("档案架07_primitive4").material = scene.getMaterialByName("04.002");
  436. scene.getMeshByName("档案架08_primitive4").material = scene.getMaterialByName("03.002");
  437. scene.getMeshByName("档案架09_primitive4").material = scene.getMaterialByName("02.002");
  438. scene.getMeshByName("档案架10_primitive3").material = scene.getMaterialByName("01.002");
  439. scene.getTransformNodeByName("档案柜01").setEnabled(false);
  440. scene.getTransformNodeByName("档案柜02").setEnabled(false);
  441. var v1 = scene.getMeshByName("钢轨01");
  442. v1.position = new BABYLON.Vector3(v1.position.x,60.0,v1.position.z);
  443. v1.scaling = new BABYLON.Vector3(1,0.9,1);
  444. };
  445. // createScene function that creates and return the scene
  446. var createScene = function() {
  447. engine.displayLoadingUI();
  448. // create a basic BJS Scene object
  449. var scene = new BABYLON.Scene(engine);
  450. // scene.debugLayer.show();
  451. var camera = new BABYLON.ArcRotateCamera(
  452. "Camera",
  453. 0,
  454. 0,
  455. 5,
  456. new BABYLON.Vector3(0, -1, 0),
  457. scene
  458. );
  459. camera.setTarget(new BABYLON.Vector3(0, 2, 0));
  460. camera.attachControl(canvas, true);
  461. camera.lowerRadiusLimit = 2.0; // 这里是最大的位置,值越大,物体越小
  462. camera.upperRadiusLimit = 40;
  463. camera.radius = 15.998;
  464. camera.alpha = (Math.PI * -248.8) / 180;
  465. camera.beta = (Math.PI * 66) / 180;
  466. camera.inertia = 0.1; // 缩放的快慢
  467. camera.useAutoRotationBehavior = true; // 自动旋转
  468. camera.panningDistanceLimit = 2; //平移半径
  469. camera.panningInertia = 0;
  470. camera.autoTransitionRange = 1;
  471. camera.pinchToPanMaxDistance = 0.1;
  472. camera.pinchDeltaPercentage = 0.001;
  473. camera.useAutoRotationBehavior = false;
  474. scene.activeCamera = camera;
  475. scene.activeCamera.useInputToRestoreState = true;
  476. var camera1_status = scene.activeCamera.storeState();
  477. // 改变场景背景颜色 - 背景颜色opacity值设为0,达到透明背景的效果
  478. scene.clearColor = new BABYLON.Color4(0, 0, 0, 0);
  479. var assetsManager = new BABYLON.AssetsManager(scene);
  480. var meshTask = assetsManager.addMeshTask(
  481. "skull task",
  482. "",
  483. "asset/",
  484. "total2.glb"
  485. );
  486. meshTask.onSuccess = function(task) {
  487. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  488. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  489. };
  490. meshTask.onError = function(task, message, exception) {
  491. console.log(message, exception);
  492. };
  493. var meshTask_camera = assetsManager.addMeshTask(
  494. "skull task",
  495. "",
  496. "asset/",
  497. "TotalCamera.glb"
  498. );
  499. meshTask_camera.onSuccess = function(task) {
  500. task.loadedMeshes[0].name = "cameras";
  501. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  502. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  503. };
  504. meshTask_camera.onError = function(task, message, exception) {
  505. console.log(message, exception);
  506. };
  507. var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData(
  508. "textures/environmentSpecular.env",
  509. scene
  510. );
  511. scene.environmentTexture = hdrTexture;
  512. var spriteManagerPlayer = new BABYLON.SpriteManager(
  513. "playerManager",
  514. "./img/bl9.png",
  515. 10,
  516. {
  517. width: 100,
  518. height: 100
  519. },
  520. scene
  521. );
  522. //spriteManagerPlayer.renderingGroupId = 2;
  523. spriteManagerPlayer.isPickable = true;
  524. scene.onPointerDown = function(evt) {
  525. var pickResult = scene.pickSprite(this.pointerX, this.pointerY);
  526. var pick = scene.pick(scene.pointerX, scene.pointerY);
  527. console.log(pick.pickedPoint);
  528. if (pickResult.pickedSprite != null) {
  529. if (pickResult.hit) {
  530. alert(pickResult.pickedSprite.name);
  531. }
  532. }
  533. };
  534. // renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")';
  535. assetsManager.load();
  536. drag = new BABYLON.PointerDragBehavior({
  537. dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
  538. });
  539. //drag.useObjectOrienationForDragging = false;
  540. drag.validateDrag = targetPosition => {
  541. console.log(targetPosition);
  542. if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
  543. return false;
  544. }
  545. if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
  546. return false;
  547. }
  548. if (oldtransformNodex != null) {
  549. return true;
  550. }
  551. };
  552. drag.onDragEndObservable.add(event => {
  553. console.log("dragEnd");
  554. //console.log(event);
  555. //console.log(line03_position)
  556. });
  557. //GUI
  558. h1 = new BABYLON.HighlightLayer("hl1", scene);
  559. h2 = new BABYLON.HighlightLayer("hl2", scene);
  560. h3 = new BABYLON.HighlightLayer("hl2", scene);
  561. var step = 0.1;
  562. var currentx = 1;
  563. var step2 = 0.1;
  564. var currentx2 = 0.1;
  565. h1.blurHorizontalSize = 0.1;
  566. var showx = 0;
  567. var showx2 = 2;
  568. scene.registerAfterRender(() => {
  569. h1.blurHorizontalSize = h1.blurVerticalSize + currentx;
  570. var nodealert = scene.getTransformNodeByName("camera01");
  571. if (nodealert != null) {
  572. var mesheses3 = null;
  573. if (nodealert.getClassName() == "TransformNode") {
  574. mesheses3 = nodealert.getChildMeshes(false);
  575. } else {
  576. mesheses3 = [];
  577. mesheses3.push(nodealert);
  578. }
  579. for (var i = 0; i < mesheses3.length; i++) {
  580. try {
  581. if (nodealert.baojing == true) {
  582. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  583. } else {
  584. h3.removeMesh(mesheses3[i]);
  585. }
  586. } catch (error) {
  587. // alert(error)
  588. }
  589. }
  590. }
  591. var nodealert = scene.getTransformNodeByName("camera02");
  592. if (nodealert != null) {
  593. var mesheses3 = null;
  594. if (nodealert.getClassName() == "TransformNode") {
  595. mesheses3 = nodealert.getChildMeshes(false);
  596. } else {
  597. mesheses3 = [];
  598. mesheses3.push(nodealert);
  599. }
  600. for (var i = 0; i < mesheses3.length; i++) {
  601. try {
  602. if (nodealert.baojing == true) {
  603. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  604. } else {
  605. h3.removeMesh(mesheses3[i]);
  606. }
  607. } catch (error) {
  608. // alert(error)
  609. }
  610. }
  611. }
  612. var nodealert = scene.getTransformNodeByName("camera03");
  613. if (nodealert != null) {
  614. var mesheses3 = null;
  615. if (nodealert.getClassName() == "TransformNode") {
  616. mesheses3 = nodealert.getChildMeshes(false);
  617. } else {
  618. mesheses3 = [];
  619. mesheses3.push(nodealert);
  620. }
  621. for (var i = 0; i < mesheses3.length; i++) {
  622. try {
  623. if (nodealert.baojing == true) {
  624. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  625. } else {
  626. h3.removeMesh(mesheses3[i]);
  627. }
  628. } catch (error) {
  629. // alert(error)
  630. }
  631. }
  632. }
  633. var nodealert = scene.getTransformNodeByName("camera04");
  634. if (nodealert != null) {
  635. var mesheses3 = null;
  636. if (nodealert.getClassName() == "TransformNode") {
  637. mesheses3 = nodealert.getChildMeshes(false);
  638. } else {
  639. mesheses3 = [];
  640. mesheses3.push(nodealert);
  641. }
  642. for (var i = 0; i < mesheses3.length; i++) {
  643. try {
  644. if (nodealert.baojing == true) {
  645. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  646. } else {
  647. h3.removeMesh(mesheses3[i]);
  648. }
  649. } catch (error) {
  650. // alert(error)
  651. }
  652. }
  653. }
  654. var nodealert = scene.getTransformNodeByName("camera05");
  655. if (nodealert != null) {
  656. var mesheses3 = null;
  657. if (nodealert.getClassName() == "TransformNode") {
  658. mesheses3 = nodealert.getChildMeshes(false);
  659. } else {
  660. mesheses3 = [];
  661. mesheses3.push(nodealert);
  662. }
  663. for (var i = 0; i < mesheses3.length; i++) {
  664. try {
  665. if (nodealert.baojing == true) {
  666. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  667. } else {
  668. h3.removeMesh(mesheses3[i]);
  669. }
  670. } catch (error) {
  671. // alert(error)
  672. }
  673. }
  674. }
  675. var nodealert = scene.getTransformNodeByName("camera06");
  676. if (nodealert != null) {
  677. var mesheses3 = null;
  678. if (nodealert.getClassName() == "TransformNode") {
  679. mesheses3 = nodealert.getChildMeshes(false);
  680. } else {
  681. mesheses3 = [];
  682. mesheses3.push(nodealert);
  683. }
  684. for (var i = 0; i < mesheses3.length; i++) {
  685. try {
  686. if (nodealert.baojing == true) {
  687. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  688. } else {
  689. h3.removeMesh(mesheses3[i]);
  690. }
  691. } catch (error) {
  692. // alert(error)
  693. }
  694. }
  695. }
  696. var nodealert = scene.getTransformNodeByName("camera07");
  697. if (nodealert != null) {
  698. var mesheses3 = null;
  699. if (nodealert.getClassName() == "TransformNode") {
  700. mesheses3 = nodealert.getChildMeshes(false);
  701. } else {
  702. mesheses3 = [];
  703. mesheses3.push(nodealert);
  704. }
  705. for (var i = 0; i < mesheses3.length; i++) {
  706. try {
  707. if (nodealert.baojing == true) {
  708. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  709. } else {
  710. h3.removeMesh(mesheses3[i]);
  711. }
  712. } catch (error) {
  713. // alert(error)
  714. }
  715. }
  716. }
  717. var nodealert = scene.getTransformNodeByName("camera08");
  718. if (nodealert != null) {
  719. var mesheses3 = null;
  720. if (nodealert.getClassName() == "TransformNode") {
  721. mesheses3 = nodealert.getChildMeshes(false);
  722. } else {
  723. mesheses3 = [];
  724. mesheses3.push(nodealert);
  725. }
  726. for (var i = 0; i < mesheses3.length; i++) {
  727. try {
  728. if (nodealert.baojing == true) {
  729. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  730. } else {
  731. h3.removeMesh(mesheses3[i]);
  732. }
  733. } catch (error) {
  734. // alert(error)
  735. }
  736. }
  737. }
  738. var nodealert = scene.getTransformNodeByName("camera09");
  739. if (nodealert != null) {
  740. var mesheses3 = null;
  741. if (nodealert.getClassName() == "TransformNode") {
  742. mesheses3 = nodealert.getChildMeshes(false);
  743. } else {
  744. mesheses3 = [];
  745. mesheses3.push(nodealert);
  746. }
  747. for (var i = 0; i < mesheses3.length; i++) {
  748. try {
  749. if (nodealert.baojing == true) {
  750. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  751. } else {
  752. h3.removeMesh(mesheses3[i]);
  753. }
  754. } catch (error) {
  755. // alert(error)
  756. }
  757. }
  758. }
  759. if (currentx > 0.5) {
  760. step *= -1;
  761. }
  762. if (currentx < 0) {
  763. step *= -1;
  764. }
  765. currentx += step;
  766. if (currentx2 > 5) {
  767. step2 *= -1;
  768. }
  769. if (currentx2 < 0) {
  770. step2 *= -1;
  771. }
  772. currentx2 += step2;
  773. if (dynamicTexture != null && show == 0) {
  774. var textx = showx;
  775. var font_size = 48;
  776. var font = "bold " + font_size + "px Arial";
  777. dynamicTexture.drawText(
  778. textx,
  779. null,
  780. null,
  781. font,
  782. "#FF0000",
  783. "#ffffff",
  784. true
  785. );
  786. showx++;
  787. show = 50;
  788. }
  789. if (dynamicTexture2 != null && showdd == 0) {
  790. var textx = showx2;
  791. var font_size = 48;
  792. var font = "bold " + font_size + "px Arial";
  793. dynamicTexture2.drawText(
  794. textx,
  795. null,
  796. null,
  797. font,
  798. "#0000FF",
  799. "#ffffff",
  800. true
  801. );
  802. showx2++;
  803. showdd = 50;
  804. if (showx2 == 10) {
  805. showx2 = 0;
  806. }
  807. }
  808. show--;
  809. showdd--;
  810. });
  811. return scene;
  812. };
  813. var canvas = document.getElementById("renderCanvas");
  814. // load the 3D engine
  815. var engine = new BABYLON.Engine(canvas, true, {
  816. stencil: true
  817. });
  818. // call the createScene function
  819. var scene = createScene();
  820. scene.autoClear = true;
  821. scene.imageProcessingConfiguration.exposure = 1;
  822. scene.imageProcessingConfiguration.contrast = 1;
  823. scene.environmentIntensity = 0.4;
  824. engine.runRenderLoop(function() {
  825. scene.render();
  826. });
  827. window.addEventListener("resize", function() {
  828. engine.resize();
  829. });
  830. //功能:点区以后跳转到新页
  831. //quName :转过来的区号
  832. // function quClick(quName){
  833. // if(quName=="A区"){
  834. // window.location.href = "http://192.168.99.72:8099/83/webA/index.html";
  835. // }
  836. // if(quName=="B区"){
  837. // window.location.href = "http://192.168.99.72:8099/83/webB/index.html";
  838. // }
  839. // if(quName=="C区"){
  840. // window.location.href = "http://192.168.99.72:8099/83/webC/index.html";
  841. // }
  842. // }
  843. function quClick(name) {
  844. window.parent.postMessage(
  845. {
  846. data: name
  847. },
  848. "*"
  849. );
  850. }
  851. //功能:点camera后事件
  852. // function cameraClick(camera){
  853. // alert(camera.nameID);
  854. // }
  855. function cameraClick(camera) {
  856. window.parent.postMessage(
  857. {
  858. data: camera.nameID
  859. },
  860. "*"
  861. );
  862. }
  863. function HashMap() {
  864. //定义长度
  865. var length = 0;
  866. //创建一个对象
  867. var obj = new Object();
  868. //判断Map是否为空
  869. this.isEmpty = function() {
  870. return length == 0;
  871. };
  872. //判断对象中是否包含给定Key
  873. this.containsKey = function(key) {
  874. return key in obj;
  875. };
  876. //判断对象中是否包含给定的Value
  877. this.containsValue = function(value) {
  878. for (var key in obj) {
  879. if (obj[key] == value) {
  880. return true;
  881. }
  882. }
  883. return false;
  884. };
  885. //向map中添加数据
  886. this.put = function(key, value) {
  887. if (!this.containsKey(key)) {
  888. length++;
  889. }
  890. obj[key] = value;
  891. };
  892. //根据给定的key获取Value
  893. this.get = function(key) {
  894. return this.containsKey(key) ? obj[key] : null;
  895. };
  896. //根据给定的Key删除一个值
  897. this.remove = function(key) {
  898. if (this.containsKey(key) && delete obj[key]) {
  899. length--;
  900. }
  901. };
  902. //获得Map中所有的value
  903. this.values = function() {
  904. var _values = new Array();
  905. for (var key in obj) {
  906. _values.push(obj[key]);
  907. }
  908. return _values;
  909. };
  910. //获得Map中的所有key
  911. this.keySet = function() {
  912. var _keys = new Array();
  913. for (var key in obj) {
  914. _keys.push(key);
  915. }
  916. return _keys;
  917. };
  918. //获得Map的长度
  919. this.size = function() {
  920. return length;
  921. };
  922. //清空Map
  923. this.clear = function() {
  924. length = 0;
  925. obj = new Object();
  926. };
  927. }
  928. var yangans = new HashMap();
  929. yangans.put("DAK_MO_CAM_001", "camera01");
  930. yangans.put("DAK_MO_CAM_002", "camera02");
  931. yangans.put("DAK_MO_CAM_003", "camera03");
  932. yangans.put("DAK_MO_CAM_004", "camera04");
  933. yangans.put("ZLS_MO_CAM_001", "camera05");
  934. yangans.put("ZLS_MO_CAM_002", "camera06");
  935. yangans.put("YLS_MO_CAM_001", "camera07");
  936. yangans.put("YLS_MO_CAM_002", "camera08");
  937. yangans.put("ZL_MO_CAM_001", "camera09");
  938. //功能转入报警
  939. function Myalert(MathineID, baojing) {
  940. var theName = yangans.get(MathineID);
  941. if (theName == "camera01") {
  942. scene.getTransformNodeByName("camera01").baojing = baojing;
  943. }
  944. if (theName == "camera02") {
  945. scene.getTransformNodeByName("camera02").baojing = baojing;
  946. }
  947. if (theName == "camera03") {
  948. scene.getTransformNodeByName("camera03").baojing = baojing;
  949. }
  950. if (theName == "camera04") {
  951. scene.getTransformNodeByName("camera04").baojing = baojing;
  952. }
  953. if (theName == "camera05") {
  954. scene.getTransformNodeByName("camera05").baojing = baojing;
  955. }
  956. if (theName == "camera06") {
  957. scene.getTransformNodeByName("camera06").baojing = baojing;
  958. }
  959. if (theName == "camera07") {
  960. scene.getTransformNodeByName("camera07").baojing = baojing;
  961. }
  962. if (theName == "camera08") {
  963. scene.getTransformNodeByName("camera08").baojing = baojing;
  964. }
  965. if (theName == "camera09") {
  966. scene.getTransformNodeByName("camera09").baojing = baojing;
  967. }
  968. }
  969. //报警 true:表示报警, false :表示不报警
  970. //Myalert("DAK_MO_OAO_001",true)