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

1084 lines
33 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. // 还原到10列,注释掉下面代码
  440. // scene.getTransformNodeByName("档案柜01").setEnabled(false);
  441. // scene.getTransformNodeByName("档案柜02").setEnabled(false);
  442. // var v1 = scene.getMeshByName("钢轨01");
  443. // v1.position = new BABYLON.Vector3(v1.position.x,60.0,v1.position.z);
  444. // v1.scaling = new BABYLON.Vector3(1,0.9,1);
  445. var v2 = scene.getTransformNodeByName("后门01");
  446. v2.setParent( scene.getTransformNodeByName("档案柜03"),true);
  447. v2.position = new BABYLON.Vector3(v2.position.x,-122.479,v2.position.z);
  448. // 墙体添加透明度
  449. scene.getMaterialByName("cover_label.010").alpha = 0.7;
  450. scene.getMaterialByName("cover_label.010").transparencyMode=2; //ALPHABLEND
  451. };
  452. // createScene function that creates and return the scene
  453. var createScene = function() {
  454. engine.displayLoadingUI();
  455. // create a basic BJS Scene object
  456. var scene = new BABYLON.Scene(engine);
  457. // scene.debugLayer.show();
  458. var camera = new BABYLON.ArcRotateCamera(
  459. "Camera",
  460. 0,
  461. 0,
  462. 5,
  463. new BABYLON.Vector3(0, -1, 0),
  464. scene
  465. );
  466. camera.setTarget(new BABYLON.Vector3(0, 2, 0));
  467. camera.attachControl(canvas, true);
  468. camera.lowerRadiusLimit = 2.0; // 这里是最大的位置,值越大,物体越小
  469. camera.upperRadiusLimit = 40;
  470. camera.radius = 15.998;
  471. camera.alpha = (Math.PI * -248.8) / 180;
  472. camera.beta = (Math.PI * 66) / 180;
  473. camera.inertia = 0.1; // 缩放的快慢
  474. camera.useAutoRotationBehavior = true; // 自动旋转
  475. camera.panningDistanceLimit = 2; //平移半径
  476. camera.panningInertia = 0;
  477. camera.autoTransitionRange = 1;
  478. camera.pinchToPanMaxDistance = 0.1;
  479. camera.pinchDeltaPercentage = 0.001;
  480. camera.useAutoRotationBehavior = false;
  481. scene.activeCamera = camera;
  482. scene.activeCamera.useInputToRestoreState = true;
  483. var camera1_status = scene.activeCamera.storeState();
  484. // 改变场景背景颜色 - 背景颜色opacity值设为0,达到透明背景的效果
  485. scene.clearColor = new BABYLON.Color4(0, 0, 0, 0);
  486. var assetsManager = new BABYLON.AssetsManager(scene);
  487. var meshTask = assetsManager.addMeshTask(
  488. "skull task",
  489. "",
  490. "asset/",
  491. "total2.glb"
  492. );
  493. meshTask.onSuccess = function(task) {
  494. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  495. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  496. };
  497. meshTask.onError = function(task, message, exception) {
  498. console.log(message, exception);
  499. };
  500. var meshTask_camera = assetsManager.addMeshTask(
  501. "skull task",
  502. "",
  503. "asset/",
  504. "TotalCamera.glb"
  505. );
  506. meshTask_camera.onSuccess = function(task) {
  507. task.loadedMeshes[0].name = "cameras";
  508. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  509. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  510. };
  511. meshTask_camera.onError = function(task, message, exception) {
  512. console.log(message, exception);
  513. };
  514. var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData(
  515. "textures/environmentSpecular.env",
  516. scene
  517. );
  518. scene.environmentTexture = hdrTexture;
  519. var spriteManagerPlayer = new BABYLON.SpriteManager(
  520. "playerManager",
  521. "./img/bl9.png",
  522. 10,
  523. {
  524. width: 100,
  525. height: 100
  526. },
  527. scene
  528. );
  529. //spriteManagerPlayer.renderingGroupId = 2;
  530. spriteManagerPlayer.isPickable = true;
  531. scene.onPointerDown = function(evt) {
  532. var pickResult = scene.pickSprite(this.pointerX, this.pointerY);
  533. var pick = scene.pick(scene.pointerX, scene.pointerY);
  534. console.log(pick.pickedPoint);
  535. if (pickResult.pickedSprite != null) {
  536. if (pickResult.hit) {
  537. alert(pickResult.pickedSprite.name);
  538. }
  539. }
  540. };
  541. // renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")';
  542. assetsManager.load();
  543. drag = new BABYLON.PointerDragBehavior({
  544. dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
  545. });
  546. //drag.useObjectOrienationForDragging = false;
  547. drag.validateDrag = targetPosition => {
  548. console.log(targetPosition);
  549. if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
  550. return false;
  551. }
  552. if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
  553. return false;
  554. }
  555. if (oldtransformNodex != null) {
  556. return true;
  557. }
  558. };
  559. drag.onDragEndObservable.add(event => {
  560. console.log("dragEnd");
  561. //console.log(event);
  562. //console.log(line03_position)
  563. });
  564. //GUI
  565. h1 = new BABYLON.HighlightLayer("hl1", scene);
  566. h2 = new BABYLON.HighlightLayer("hl2", scene);
  567. h3 = new BABYLON.HighlightLayer("hl2", scene);
  568. var step = 0.1;
  569. var currentx = 1;
  570. var step2 = 0.1;
  571. var currentx2 = 0.1;
  572. h1.blurHorizontalSize = 0.1;
  573. var showx = 0;
  574. var showx2 = 2;
  575. scene.registerAfterRender(() => {
  576. h1.blurHorizontalSize = h1.blurVerticalSize + currentx;
  577. var nodealert = scene.getTransformNodeByName("camera01");
  578. if (nodealert != null) {
  579. var mesheses3 = null;
  580. if (nodealert.getClassName() == "TransformNode") {
  581. mesheses3 = nodealert.getChildMeshes(false);
  582. } else {
  583. mesheses3 = [];
  584. mesheses3.push(nodealert);
  585. }
  586. for (var i = 0; i < mesheses3.length; i++) {
  587. try {
  588. if (nodealert.baojing == true) {
  589. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  590. } else {
  591. h3.removeMesh(mesheses3[i]);
  592. }
  593. } catch (error) {
  594. // alert(error)
  595. }
  596. }
  597. }
  598. var nodealert = scene.getTransformNodeByName("camera02");
  599. if (nodealert != null) {
  600. var mesheses3 = null;
  601. if (nodealert.getClassName() == "TransformNode") {
  602. mesheses3 = nodealert.getChildMeshes(false);
  603. } else {
  604. mesheses3 = [];
  605. mesheses3.push(nodealert);
  606. }
  607. for (var i = 0; i < mesheses3.length; i++) {
  608. try {
  609. if (nodealert.baojing == true) {
  610. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  611. } else {
  612. h3.removeMesh(mesheses3[i]);
  613. }
  614. } catch (error) {
  615. // alert(error)
  616. }
  617. }
  618. }
  619. var nodealert = scene.getTransformNodeByName("camera03");
  620. if (nodealert != null) {
  621. var mesheses3 = null;
  622. if (nodealert.getClassName() == "TransformNode") {
  623. mesheses3 = nodealert.getChildMeshes(false);
  624. } else {
  625. mesheses3 = [];
  626. mesheses3.push(nodealert);
  627. }
  628. for (var i = 0; i < mesheses3.length; i++) {
  629. try {
  630. if (nodealert.baojing == true) {
  631. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  632. } else {
  633. h3.removeMesh(mesheses3[i]);
  634. }
  635. } catch (error) {
  636. // alert(error)
  637. }
  638. }
  639. }
  640. var nodealert = scene.getTransformNodeByName("camera04");
  641. if (nodealert != null) {
  642. var mesheses3 = null;
  643. if (nodealert.getClassName() == "TransformNode") {
  644. mesheses3 = nodealert.getChildMeshes(false);
  645. } else {
  646. mesheses3 = [];
  647. mesheses3.push(nodealert);
  648. }
  649. for (var i = 0; i < mesheses3.length; i++) {
  650. try {
  651. if (nodealert.baojing == true) {
  652. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  653. } else {
  654. h3.removeMesh(mesheses3[i]);
  655. }
  656. } catch (error) {
  657. // alert(error)
  658. }
  659. }
  660. }
  661. var nodealert = scene.getTransformNodeByName("camera05");
  662. if (nodealert != null) {
  663. var mesheses3 = null;
  664. if (nodealert.getClassName() == "TransformNode") {
  665. mesheses3 = nodealert.getChildMeshes(false);
  666. } else {
  667. mesheses3 = [];
  668. mesheses3.push(nodealert);
  669. }
  670. for (var i = 0; i < mesheses3.length; i++) {
  671. try {
  672. if (nodealert.baojing == true) {
  673. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  674. } else {
  675. h3.removeMesh(mesheses3[i]);
  676. }
  677. } catch (error) {
  678. // alert(error)
  679. }
  680. }
  681. }
  682. var nodealert = scene.getTransformNodeByName("camera06");
  683. if (nodealert != null) {
  684. var mesheses3 = null;
  685. if (nodealert.getClassName() == "TransformNode") {
  686. mesheses3 = nodealert.getChildMeshes(false);
  687. } else {
  688. mesheses3 = [];
  689. mesheses3.push(nodealert);
  690. }
  691. for (var i = 0; i < mesheses3.length; i++) {
  692. try {
  693. if (nodealert.baojing == true) {
  694. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  695. } else {
  696. h3.removeMesh(mesheses3[i]);
  697. }
  698. } catch (error) {
  699. // alert(error)
  700. }
  701. }
  702. }
  703. var nodealert = scene.getTransformNodeByName("camera07");
  704. if (nodealert != null) {
  705. var mesheses3 = null;
  706. if (nodealert.getClassName() == "TransformNode") {
  707. mesheses3 = nodealert.getChildMeshes(false);
  708. } else {
  709. mesheses3 = [];
  710. mesheses3.push(nodealert);
  711. }
  712. for (var i = 0; i < mesheses3.length; i++) {
  713. try {
  714. if (nodealert.baojing == true) {
  715. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  716. } else {
  717. h3.removeMesh(mesheses3[i]);
  718. }
  719. } catch (error) {
  720. // alert(error)
  721. }
  722. }
  723. }
  724. var nodealert = scene.getTransformNodeByName("camera08");
  725. if (nodealert != null) {
  726. var mesheses3 = null;
  727. if (nodealert.getClassName() == "TransformNode") {
  728. mesheses3 = nodealert.getChildMeshes(false);
  729. } else {
  730. mesheses3 = [];
  731. mesheses3.push(nodealert);
  732. }
  733. for (var i = 0; i < mesheses3.length; i++) {
  734. try {
  735. if (nodealert.baojing == true) {
  736. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  737. } else {
  738. h3.removeMesh(mesheses3[i]);
  739. }
  740. } catch (error) {
  741. // alert(error)
  742. }
  743. }
  744. }
  745. var nodealert = scene.getTransformNodeByName("camera09");
  746. if (nodealert != null) {
  747. var mesheses3 = null;
  748. if (nodealert.getClassName() == "TransformNode") {
  749. mesheses3 = nodealert.getChildMeshes(false);
  750. } else {
  751. mesheses3 = [];
  752. mesheses3.push(nodealert);
  753. }
  754. for (var i = 0; i < mesheses3.length; i++) {
  755. try {
  756. if (nodealert.baojing == true) {
  757. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  758. } else {
  759. h3.removeMesh(mesheses3[i]);
  760. }
  761. } catch (error) {
  762. // alert(error)
  763. }
  764. }
  765. }
  766. if (currentx > 0.5) {
  767. step *= -1;
  768. }
  769. if (currentx < 0) {
  770. step *= -1;
  771. }
  772. currentx += step;
  773. if (currentx2 > 5) {
  774. step2 *= -1;
  775. }
  776. if (currentx2 < 0) {
  777. step2 *= -1;
  778. }
  779. currentx2 += step2;
  780. if (dynamicTexture != null && show == 0) {
  781. var textx = showx;
  782. var font_size = 48;
  783. var font = "bold " + font_size + "px Arial";
  784. dynamicTexture.drawText(
  785. textx,
  786. null,
  787. null,
  788. font,
  789. "#FF0000",
  790. "#ffffff",
  791. true
  792. );
  793. showx++;
  794. show = 50;
  795. }
  796. if (dynamicTexture2 != null && showdd == 0) {
  797. var textx = showx2;
  798. var font_size = 48;
  799. var font = "bold " + font_size + "px Arial";
  800. dynamicTexture2.drawText(
  801. textx,
  802. null,
  803. null,
  804. font,
  805. "#0000FF",
  806. "#ffffff",
  807. true
  808. );
  809. showx2++;
  810. showdd = 50;
  811. if (showx2 == 10) {
  812. showx2 = 0;
  813. }
  814. }
  815. show--;
  816. showdd--;
  817. });
  818. return scene;
  819. };
  820. var canvas = document.getElementById("renderCanvas");
  821. // load the 3D engine
  822. var engine = new BABYLON.Engine(canvas, true, {
  823. stencil: true
  824. });
  825. // call the createScene function
  826. var scene = createScene();
  827. scene.autoClear = true;
  828. scene.imageProcessingConfiguration.exposure = 1;
  829. scene.imageProcessingConfiguration.contrast = 1;
  830. scene.environmentIntensity = 0.4;
  831. engine.runRenderLoop(function() {
  832. scene.render();
  833. });
  834. window.addEventListener("resize", function() {
  835. engine.resize();
  836. });
  837. //功能:点区以后跳转到新页
  838. //quName :转过来的区号
  839. // function quClick(quName){
  840. // if(quName=="A区"){
  841. // window.location.href = "http://192.168.99.72:8099/83/webA/index.html";
  842. // }
  843. // if(quName=="B区"){
  844. // window.location.href = "http://192.168.99.72:8099/83/webB/index.html";
  845. // }
  846. // if(quName=="C区"){
  847. // window.location.href = "http://192.168.99.72:8099/83/webC/index.html";
  848. // }
  849. // }
  850. function quClick(name) {
  851. window.parent.postMessage(
  852. {
  853. data: name
  854. },
  855. "*"
  856. );
  857. }
  858. //功能:点camera后事件
  859. // function cameraClick(camera){
  860. // alert(camera.nameID);
  861. // }
  862. function cameraClick(camera) {
  863. window.parent.postMessage(
  864. {
  865. data: camera.nameID
  866. },
  867. "*"
  868. );
  869. }
  870. function HashMap() {
  871. //定义长度
  872. var length = 0;
  873. //创建一个对象
  874. var obj = new Object();
  875. //判断Map是否为空
  876. this.isEmpty = function() {
  877. return length == 0;
  878. };
  879. //判断对象中是否包含给定Key
  880. this.containsKey = function(key) {
  881. return key in obj;
  882. };
  883. //判断对象中是否包含给定的Value
  884. this.containsValue = function(value) {
  885. for (var key in obj) {
  886. if (obj[key] == value) {
  887. return true;
  888. }
  889. }
  890. return false;
  891. };
  892. //向map中添加数据
  893. this.put = function(key, value) {
  894. if (!this.containsKey(key)) {
  895. length++;
  896. }
  897. obj[key] = value;
  898. };
  899. //根据给定的key获取Value
  900. this.get = function(key) {
  901. return this.containsKey(key) ? obj[key] : null;
  902. };
  903. //根据给定的Key删除一个值
  904. this.remove = function(key) {
  905. if (this.containsKey(key) && delete obj[key]) {
  906. length--;
  907. }
  908. };
  909. //获得Map中所有的value
  910. this.values = function() {
  911. var _values = new Array();
  912. for (var key in obj) {
  913. _values.push(obj[key]);
  914. }
  915. return _values;
  916. };
  917. //获得Map中的所有key
  918. this.keySet = function() {
  919. var _keys = new Array();
  920. for (var key in obj) {
  921. _keys.push(key);
  922. }
  923. return _keys;
  924. };
  925. //获得Map的长度
  926. this.size = function() {
  927. return length;
  928. };
  929. //清空Map
  930. this.clear = function() {
  931. length = 0;
  932. obj = new Object();
  933. };
  934. }
  935. var yangans = new HashMap();
  936. yangans.put("DAK_MO_CAM_001", "camera01");
  937. yangans.put("DAK_MO_CAM_002", "camera02");
  938. yangans.put("DAK_MO_CAM_003", "camera03");
  939. yangans.put("DAK_MO_CAM_004", "camera04");
  940. yangans.put("ZLS_MO_CAM_001", "camera05");
  941. yangans.put("ZLS_MO_CAM_002", "camera06");
  942. yangans.put("YLS_MO_CAM_001", "camera07");
  943. yangans.put("YLS_MO_CAM_002", "camera08");
  944. yangans.put("ZL_MO_CAM_001", "camera09");
  945. //功能转入报警
  946. function Myalert(MathineID, baojing) {
  947. var theName = yangans.get(MathineID);
  948. if (theName == "camera01") {
  949. scene.getTransformNodeByName("camera01").baojing = baojing;
  950. }
  951. if (theName == "camera02") {
  952. scene.getTransformNodeByName("camera02").baojing = baojing;
  953. }
  954. if (theName == "camera03") {
  955. scene.getTransformNodeByName("camera03").baojing = baojing;
  956. }
  957. if (theName == "camera04") {
  958. scene.getTransformNodeByName("camera04").baojing = baojing;
  959. }
  960. if (theName == "camera05") {
  961. scene.getTransformNodeByName("camera05").baojing = baojing;
  962. }
  963. if (theName == "camera06") {
  964. scene.getTransformNodeByName("camera06").baojing = baojing;
  965. }
  966. if (theName == "camera07") {
  967. scene.getTransformNodeByName("camera07").baojing = baojing;
  968. }
  969. if (theName == "camera08") {
  970. scene.getTransformNodeByName("camera08").baojing = baojing;
  971. }
  972. if (theName == "camera09") {
  973. scene.getTransformNodeByName("camera09").baojing = baojing;
  974. }
  975. }
  976. //报警 true:表示报警, false :表示不报警
  977. //Myalert("DAK_MO_OAO_001",true)