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

1017 lines
33 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 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.style.height = '1750px';
  22. this._loadingDiv.id = "customLoadingScreenDiv";
  23. thecss = 'lohingifpc';
  24. thecss2 = 'zcpc'
  25. this._loadingDiv.innerHTML = "<div class='oka'><div class='" + thecss + "'><image src='./logok.gif' class='jiazaiimg'/></div>";
  26. // this._loadingDiv.innerHTML =
  27. // "<div class='oka'><div class='" +
  28. // thecss +
  29. // "'><image src='./logok.gif' class='jiazaiimg'/></div><div class='" +
  30. // thecss2 +
  31. // "'>由 <image class='feitimg' src='./img/yxlogo.png'/> 阅行客 提供技术支持!</div></div>";
  32. this._resizeLoadingUI();
  33. window.addEventListener("resize", this._resizeLoadingUI);
  34. document.body.appendChild(this._loadingDiv);
  35. };
  36. var movebyName = function (nodeName) {
  37. var x = scene.getTransformNodeByName(nodeName);
  38. moveTrans(x);
  39. }
  40. BABYLON.DefaultLoadingScreen.prototype.hideLoadingUI = function () {
  41. show = 50;
  42. document.getElementById("customLoadingScreenDiv").style.display = "none";
  43. document.getElementById("customLoadingScreenDiv_first").style.display = "none";
  44. document.title = '全景图';
  45. var prepareGroupButton = function (transformNodex, color, qu) {
  46. var mesheses = null;
  47. if (transformNodex.getClassName() == "TransformNode") {
  48. mesheses = transformNodex.getChildMeshes(false);
  49. } else {
  50. mesheses = [];
  51. mesheses.push(transformNodex);
  52. }
  53. for (var i = 0; i < mesheses.length; i++) {
  54. mesheses[i].actionManager = new BABYLON.ActionManager(scene);
  55. var theScaling = mesheses[i].scaling;
  56. /*if (true) {
  57. try {
  58. mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
  59. 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));
  60. } catch (error) {
  61. //alert(error)
  62. }
  63. }*/
  64. var clickbegin = false;
  65. mesheses[i].actionManager.registerAction(
  66. new BABYLON.ExecuteCodeAction({
  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. trigger: BABYLON.ActionManager.OnPickTrigger,
  114. parameter: ""
  115. },
  116. function () {
  117. clickbegin = true;
  118. if (true) {
  119. try {
  120. quClick(qu);
  121. } catch (error) {
  122. // alert(error)
  123. }
  124. clickbegin = false;
  125. }
  126. }
  127. )
  128. );
  129. }
  130. }
  131. var prepareGroupButton2 = function (transformNodex, color, qu) {
  132. var mesheses = null;
  133. if (transformNodex.getClassName() == "TransformNode") {
  134. mesheses = transformNodex.getChildMeshes(false);
  135. } else {
  136. mesheses = [];
  137. mesheses.push(transformNodex);
  138. }
  139. for (var i = 0; i < mesheses.length; i++) {
  140. mesheses[i].actionManager = new BABYLON.ActionManager(scene);
  141. var theScaling = mesheses[i].scaling;
  142. /*if (true) {
  143. try {
  144. mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
  145. 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));
  146. } catch (error) {
  147. //alert(error)
  148. }
  149. }*/
  150. var clickbegin = false;
  151. mesheses[i].actionManager.registerAction(
  152. new BABYLON.ExecuteCodeAction({
  153. trigger: BABYLON.ActionManager.OnPointerOverTrigger,
  154. parameter: ""
  155. },
  156. function () {
  157. clickbegin = true;
  158. if (true) {
  159. if (oldtransformNodeOther != null) {
  160. oldtransformNodeOther.removeBehavior(drag);
  161. var mesheses2 = null;
  162. if (oldtransformNodeOther.getClassName() == "TransformNode") {
  163. mesheses2 = oldtransformNodeOther.getChildMeshes(false);
  164. } else {
  165. mesheses2 = [];
  166. mesheses2.push(oldtransformNodeOther);
  167. }
  168. for (var i = 0; i < mesheses2.length; i++) {
  169. try {
  170. h2.removeMesh(mesheses2[i]);
  171. } catch (error) {
  172. // alert(error)
  173. }
  174. }
  175. }
  176. oldtransformNodeOther = transformNodex;
  177. //transformNodex.addBehavior(drag);
  178. var mesheses3 = null;
  179. if (transformNodex.getClassName() == "TransformNode") {
  180. mesheses3 = transformNodex.getChildMeshes(false);
  181. } else {
  182. mesheses3 = [];
  183. mesheses3.push(transformNodex);
  184. }
  185. for (var i = 0; i < mesheses3.length; i++) {
  186. try {
  187. h2.addMesh(mesheses3[i], color);
  188. } catch (error) {
  189. // alert(error)
  190. }
  191. }
  192. clickbegin = false;
  193. }
  194. }
  195. )
  196. );
  197. mesheses[i].actionManager.registerAction(
  198. new BABYLON.ExecuteCodeAction({
  199. trigger: BABYLON.ActionManager.OnPickTrigger,
  200. parameter: ""
  201. },
  202. function () {
  203. clickbegin = true;
  204. if (true) {
  205. try {
  206. // quClick(transformNodex.name)
  207. cameraClick(transformNodex)
  208. } catch (error) {
  209. // alert(error)
  210. }
  211. clickbegin = false;
  212. }
  213. }
  214. )
  215. );
  216. }
  217. }
  218. var dag1 = scene.getTransformNodeByName("A区");
  219. var dag2 = scene.getTransformNodeByName("B区");
  220. var dag3 = scene.getTransformNodeByName("C区");
  221. var colorddd = new BABYLON.Color3(51 / 255, 156 / 255, 1);
  222. prepareGroupButton(dag1, colorddd, "A区")
  223. prepareGroupButton(dag2, colorddd, "B区")
  224. prepareGroupButton(dag3, colorddd, "C区")
  225. //绑功能点
  226. var cl = new BABYLON.Color3(0, 0, 1);
  227. var jk01 = scene.getTransformNodeByName("camera01");
  228. jk01.nameID = "DAK_MO_CAM_001"
  229. prepareGroupButton2(jk01, cl)
  230. var jk02 = scene.getTransformNodeByName("camera02");
  231. jk02.nameID = "DAK_MO_CAM_002"
  232. prepareGroupButton2(jk02, cl)
  233. var jk03 = scene.getTransformNodeByName("camera03");
  234. jk03.nameID = "DAK_MO_CAM_003"
  235. prepareGroupButton2(jk03, cl)
  236. var jk04 = scene.getTransformNodeByName("camera04");
  237. jk04.nameID = "DAK_MO_CAM_004"
  238. prepareGroupButton2(jk04, cl)
  239. var jk05 = scene.getTransformNodeByName("camera05");
  240. jk05.nameID = "ZLS_MO_CAM_001"
  241. prepareGroupButton2(jk05, cl)
  242. var jk06 = scene.getTransformNodeByName("camera06");
  243. jk06.nameID = "ZLS_MO_CAM_002"
  244. prepareGroupButton2(jk06, cl)
  245. var jk07 = scene.getTransformNodeByName("camera07");
  246. jk07.nameID = "YLS_MO_CAM_001"
  247. prepareGroupButton2(jk07, cl)
  248. var jk08 = scene.getTransformNodeByName("camera08");
  249. jk08.nameID = "YLS_MO_CAM_002"
  250. prepareGroupButton2(jk08, cl)
  251. var jk09 = scene.getTransformNodeByName("camera09");
  252. jk09.nameID = "ZL_MO_CAM_001"
  253. prepareGroupButton2(jk09, cl)
  254. //set camera to null
  255. var x = scene.getMeshByName("档案架01_primitive0");
  256. x.overlayColor = BABYLON.Color3.White()
  257. x.renderOverlay = true;
  258. x = scene.getMeshByName("档案架02_primitive0");
  259. x.overlayColor = BABYLON.Color3.White()
  260. x.renderOverlay = true;
  261. x = scene.getMeshByName("档案架03_primitive0");
  262. x.overlayColor = BABYLON.Color3.White()
  263. x.renderOverlay = true;
  264. x = scene.getMeshByName("档案架04_primitive0");
  265. x.overlayColor = BABYLON.Color3.White()
  266. x.renderOverlay = true;
  267. x = scene.getMeshByName("档案架05_primitive0");
  268. x.overlayColor = BABYLON.Color3.White()
  269. x.renderOverlay = true;
  270. x = scene.getMeshByName("档案架06_primitive0");
  271. x.overlayColor = BABYLON.Color3.White()
  272. x.renderOverlay = true;
  273. x = scene.getMeshByName("档案架07_primitive0");
  274. x.overlayColor = BABYLON.Color3.White()
  275. x.renderOverlay = true;
  276. x = scene.getMeshByName("档案架08_primitive0");
  277. x.overlayColor = BABYLON.Color3.White()
  278. x.renderOverlay = true;
  279. x = scene.getMeshByName("档案架09_primitive0");
  280. x.overlayColor = BABYLON.Color3.White()
  281. x.renderOverlay = true;
  282. x = scene.getMeshByName("档案架10_primitive0");
  283. x.overlayColor = BABYLON.Color3.White()
  284. x.renderOverlay = true;
  285. x = scene.getMeshByName("前门01_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("立方体_5_2.001_LOD1_primitive0");
  292. x.overlayColor = BABYLON.Color3.White()
  293. x.renderOverlay = true;
  294. x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive2");
  295. x.overlayColor = BABYLON.Color3.White()
  296. x.renderOverlay = true;
  297. x = scene.getMeshByName("立方体_1_12.001_LOD1");
  298. x.overlayColor = BABYLON.Color3.White()
  299. x.renderOverlay = true;
  300. /*
  301. var hdrTexture2 = BABYLON.CubeTexture.CreateFromPrefilteredData("textures/environment.dds", scene);
  302. var plastic = new BABYLON.PBRMaterial("plastic", scene);
  303. plastic.reflectionTexture = hdrTexture2;
  304. plastic.microSurface = 0.96;
  305. plastic.albedoColor = new BABYLON.Color3(1, 1, 1);
  306. plastic.reflectivityColor = new BABYLON.Color3(0.003, 0.003, 0.003);
  307. scene.getMeshByName("墙体").material = plastic;
  308. alert("d");*/
  309. var light = new BABYLON.HemisphericLight("HemiLight", new BABYLON.Vector3(0, 1, 0), scene);
  310. light.intensity = 2;
  311. light.diffuse = new BABYLON.Color3(0.92, 0.92, 0.92);
  312. var material1 = scene.getMaterialByName("材质.107");
  313. material1.albedoColor = new BABYLON.Color3(168 / 255, 167 / 255, 168 / 255);
  314. material1.roughness = 1;
  315. //墙
  316. scene.getMaterialByName("cover_label.009").metallic = 0.36;
  317. scene.getMaterialByName("cover_label.009").albedoColor = new BABYLON.Color3(1, 1, 1);
  318. //scene.getMaterialByName("cover_label.010").metallic =0.36;
  319. //scene.getMaterialByName("cover_label.010").albedoColor = new BABYLON.Color3(1, 1, 1);
  320. //铁
  321. var material3 = scene.getMaterialByName("材质.116");
  322. material3.metallic = 0.9;
  323. material3.roughness = 0;
  324. material3.emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  325. scene.getMaterialByName("材质.102").metallic = 0.9;
  326. scene.getMaterialByName("材质.102").roughness = 0.0;
  327. scene.getMaterialByName("材质.102").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  328. //scene.getMaterialByName("材质.132").metallic = 0.9;
  329. //scene.getMaterialByName("材质.132").roughness = 0.0;
  330. //scene.getMaterialByName("材质.132").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  331. scene.getMaterialByName("材质.122").metallic = 0.9;
  332. scene.getMaterialByName("材质.122").roughness = 0.0;
  333. scene.getMaterialByName("材质.122").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  334. //地
  335. var material2 = scene.getMaterialByName("材质.106");
  336. material2.albedoColor = new BABYLON.Color3(0.8, 0.8, 0.8);
  337. material2.metallic = 0.52;
  338. material2.roughness = 0;
  339. //material2.metallicReflectanceColor=new BABYLON.Color3(1,0,0);
  340. //material2.emissiveColor=new BABYLON.Color3(0.8,0.8,0.8);
  341. //地面扩大处理
  342. var meshground1 = scene.getMeshByName("地面A").clone();
  343. var meshground = scene.getMeshByName("地面A");
  344. meshground.isVisible = false;
  345. meshground1.position = new BABYLON.Vector3(-1.512, -0.069, 1.852);
  346. meshground1.scaling = new BABYLON.Vector3(0.022, 0.013, 0.005);
  347. meshground1.parent = scene.getMeshByName("__root__");
  348. //scene.getMeshByName("地面.002").isVisible = false;
  349. //scene.getMeshByName("地面.003").isVisible = false;
  350. //scene.getMeshByName("地面").isVisible = false;
  351. scene.getMaterialByName("材质.127").metallic = 0.80;
  352. scene.getMaterialByName("Wood-04.004").metallic = 0.80;
  353. scene.getMaterialByName("Wood-04.004").metallic = 0.80;
  354. scene.getMaterialByName("Desk.002").metallic = 0.80;
  355. scene.getMaterialByName("Desk.002").roughness = 0.72;
  356. //scene.getMaterialByName("Desk.003").metallic =0.80;
  357. //scene.getMaterialByName("Desk.003").roughness = 0.72;
  358. //scene.getMaterialByName("Desk.004").metallic =0.80;
  359. //scene.getMaterialByName("Desk.004").roughness = 0.72;
  360. //scene.getMaterialByName("Desk.007").metallic =0.80;
  361. //scene.getMaterialByName("Desk.007").roughness = 0.72;
  362. //scene.getMaterialByName("Desk.008").metallic =0.80;
  363. //scene.getMaterialByName("Desk.008").roughness = 0.72;
  364. //scene.getMaterialByName("Desk.009").metallic =0.80;
  365. //scene.getMaterialByName("Desk.009").roughness = 0.72;
  366. scene.getMaterialByName("Desk.019").metallic = 0.80;
  367. scene.getMaterialByName("Desk.019").roughness = 0.72;
  368. //scene.getMaterialByName("Desk.020").metallic =0.80;
  369. //scene.getMaterialByName("Desk.020").roughness = 0.72;
  370. //scene.getMaterialByName("Desk.021").metallic =0.80;
  371. //scene.getMaterialByName("Desk.021").roughness = 0.72;
  372. scene.getMaterialByName("Desk.022").metallic = 0.80;
  373. scene.getMaterialByName("Desk.022").roughness = 0.72;
  374. scene.getMaterialByName("Desk.023").metallic = 0.80;
  375. scene.getMaterialByName("Desk.023").roughness = 0.72;
  376. scene.getMaterialByName("Desk.024").metallic = 0.80;
  377. scene.getMaterialByName("Desk.024").roughness = 0.72;
  378. //scene.getMaterialByName("cover_label.010").alpha = 0.7;
  379. //scene.getMaterialByName("cover_label.010").transparencyMode=2; //ALPHABLEND
  380. scene.getMeshByName("档案架01_primitive3").material = scene.getMaterialByName("10.002");
  381. scene.getMeshByName("档案架02_primitive4").material = scene.getMaterialByName("09.002");
  382. scene.getMeshByName("档案架03_primitive4").material = scene.getMaterialByName("08.002");
  383. scene.getMeshByName("档案架04_primitive4").material = scene.getMaterialByName("07.002");
  384. scene.getMeshByName("档案架05_primitive4").material = scene.getMaterialByName("06.002");
  385. scene.getMeshByName("档案架06_primitive4").material = scene.getMaterialByName("05.002");
  386. scene.getMeshByName("档案架07_primitive4").material = scene.getMaterialByName("04.002");
  387. scene.getMeshByName("档案架08_primitive4").material = scene.getMaterialByName("03.002");
  388. scene.getMeshByName("档案架09_primitive4").material = scene.getMaterialByName("02.002");
  389. scene.getMeshByName("档案架10_primitive3").material = scene.getMaterialByName("01.002");
  390. //scene.getTransformNodeByName("档案柜01").setEnabled(false);
  391. //scene.getTransformNodeByName("档案柜02").setEnabled(false);
  392. var v1 = scene.getMeshByName("钢轨01");
  393. v1.position = new BABYLON.Vector3(v1.position.x, 60.0, v1.position.z);
  394. v1.scaling = new BABYLON.Vector3(1, 0.9, 1);
  395. var v2 = scene.getTransformNodeByName("后门01");
  396. v2.setParent(scene.getTransformNodeByName("档案柜03"), true);
  397. v2.position = new BABYLON.Vector3(v2.position.x, -122.479, v2.position.z);
  398. scene.getTransformNodeByName("红").setEnabled(false);
  399. scene.getTransformNodeByName("蓝").setEnabled(false);
  400. }
  401. // createScene function that creates and return the scene
  402. var createScene = function () {
  403. engine.displayLoadingUI();
  404. // create a basic BJS Scene object
  405. var scene = new BABYLON.Scene(engine);
  406. // console.log("60ee2")
  407. // scene.debugLayer.show();
  408. var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 5, new BABYLON.Vector3(0, -1, 0), scene);
  409. camera.setTarget(new BABYLON.Vector3(0, 2, 0));
  410. camera.attachControl(canvas, true);
  411. camera.lowerRadiusLimit = 2.0; // 这里是最大的位置,值越大,物体越小
  412. camera.upperRadiusLimit = 40;
  413. camera.radius = 15.998;
  414. camera.alpha = Math.PI * -248.8 / 180;
  415. camera.beta = Math.PI * 66 / 180;;
  416. camera.inertia = 0.1; // 缩放的快慢
  417. camera.useAutoRotationBehavior = true; // 自动旋转
  418. camera.panningDistanceLimit = 2; //平移半径
  419. camera.panningInertia = 0;
  420. camera.autoTransitionRange = 1;
  421. camera.pinchToPanMaxDistance = 0.1;
  422. camera.pinchDeltaPercentage = 0.001;
  423. camera.useAutoRotationBehavior = false;
  424. scene.activeCamera = camera;
  425. // console.log("60e3")
  426. scene.activeCamera.useInputToRestoreState = true;
  427. var camera1_status = scene.activeCamera.storeState();
  428. // console.log("6033")
  429. // 改变场景背景颜色 - 背景颜色opacity值设为0,达到透明背景的效果
  430. scene.clearColor = new BABYLON.Color4(0, 0, 0, 0);
  431. var assetsManager = new BABYLON.AssetsManager(scene);
  432. var meshTask = assetsManager.addMeshTask("skull task", "", "asset/", "total2.glb");
  433. meshTask.onSuccess = function (task) {
  434. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  435. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  436. }
  437. meshTask.onError = function (task, message, exception) {
  438. console.log(message, exception);
  439. }
  440. var meshTask_camera = assetsManager.addMeshTask("skull task", "", "asset/", "TotalCamera.glb");
  441. meshTask_camera.onSuccess = function (task) {
  442. task.loadedMeshes[0].name = "cameras";
  443. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  444. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  445. }
  446. meshTask_camera.onError = function (task, message, exception) {
  447. console.log(message, exception);
  448. }
  449. // console.log("60ee")
  450. var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData("textures/environmentSpecular.env", scene);
  451. scene.environmentTexture = hdrTexture;
  452. // console.log("604")
  453. var spriteManagerPlayer = new BABYLON.SpriteManager("playerManager", "./img/bl9.png", 10, {
  454. width: 100,
  455. height: 100
  456. }, scene);
  457. //spriteManagerPlayer.renderingGroupId = 2;
  458. spriteManagerPlayer.isPickable = true;
  459. // console.log("604")
  460. scene.onPointerDown = function (evt) {
  461. var pickResult = scene.pickSprite(this.pointerX, this.pointerY);
  462. var pick = scene.pick(scene.pointerX, scene.pointerY);
  463. // console.log(pick.pickedPoint);
  464. if (pickResult.pickedSprite != null) {
  465. if (pickResult.hit) {
  466. alert(pickResult.pickedSprite.name);
  467. }
  468. }
  469. };
  470. // console.log("x1");
  471. // renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")';
  472. assetsManager.load();
  473. drag = new BABYLON.PointerDragBehavior({
  474. dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
  475. });
  476. //drag.useObjectOrienationForDragging = false;
  477. drag.validateDrag = (targetPosition) => {
  478. console.log(targetPosition)
  479. if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
  480. return false;
  481. }
  482. if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
  483. return false;
  484. }
  485. if (oldtransformNodex != null) {
  486. return true;
  487. }
  488. }
  489. drag.onDragEndObservable.add((event) => {
  490. console.log("dragEnd");
  491. //console.log(event);
  492. //console.log(line03_position)
  493. })
  494. //GUI
  495. h1 = new BABYLON.HighlightLayer("hl1", scene);
  496. h2 = new BABYLON.HighlightLayer("hl2", scene);
  497. h3 = new BABYLON.HighlightLayer("hl2", scene);
  498. var step = 0.1;
  499. var currentx = 1;
  500. var step2 = 0.1;
  501. var currentx2 = 0.1;
  502. h1.blurHorizontalSize = 0.1;
  503. var showx = 0;
  504. var showx2 = 2;
  505. scene.registerAfterRender(() => {
  506. h1.blurHorizontalSize = h1.blurVerticalSize + currentx;
  507. var nodealert = scene.getTransformNodeByName("camera01");
  508. if (nodealert != null) {
  509. var mesheses3 = null;
  510. if (nodealert.getClassName() == "TransformNode") {
  511. mesheses3 = nodealert.getChildMeshes(false);
  512. } else {
  513. mesheses3 = [];
  514. mesheses3.push(nodealert);
  515. }
  516. for (var i = 0; i < mesheses3.length; i++) {
  517. try {
  518. if (nodealert.baojing == true) {
  519. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  520. } else {
  521. h3.removeMesh(mesheses3[i]);
  522. }
  523. } catch (error) {
  524. // alert(error)
  525. }
  526. }
  527. }
  528. var nodealert = scene.getTransformNodeByName("camera02");
  529. if (nodealert != null) {
  530. var mesheses3 = null;
  531. if (nodealert.getClassName() == "TransformNode") {
  532. mesheses3 = nodealert.getChildMeshes(false);
  533. } else {
  534. mesheses3 = [];
  535. mesheses3.push(nodealert);
  536. }
  537. for (var i = 0; i < mesheses3.length; i++) {
  538. try {
  539. if (nodealert.baojing == true) {
  540. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  541. } else {
  542. h3.removeMesh(mesheses3[i]);
  543. }
  544. } catch (error) {
  545. // alert(error)
  546. }
  547. }
  548. }
  549. var nodealert = scene.getTransformNodeByName("camera03");
  550. if (nodealert != null) {
  551. var mesheses3 = null;
  552. if (nodealert.getClassName() == "TransformNode") {
  553. mesheses3 = nodealert.getChildMeshes(false);
  554. } else {
  555. mesheses3 = [];
  556. mesheses3.push(nodealert);
  557. }
  558. for (var i = 0; i < mesheses3.length; i++) {
  559. try {
  560. if (nodealert.baojing == true) {
  561. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  562. } else {
  563. h3.removeMesh(mesheses3[i]);
  564. }
  565. } catch (error) {
  566. // alert(error)
  567. }
  568. }
  569. }
  570. var nodealert = scene.getTransformNodeByName("camera04");
  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("camera05");
  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("camera06");
  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("camera07");
  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("camera08");
  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("camera09");
  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. if (currentx > 0.5) {
  697. step *= -1;
  698. }
  699. if (currentx < 0) {
  700. step *= -1;
  701. }
  702. currentx += step;
  703. if (currentx2 > 5) {
  704. step2 *= -1;
  705. }
  706. if (currentx2 < 0) {
  707. step2 *= -1;
  708. }
  709. currentx2 += step2;
  710. if (dynamicTexture != null && show == 0) {
  711. var textx = showx;
  712. var font_size = 48;
  713. var font = "bold " + font_size + "px Arial";
  714. dynamicTexture.drawText(textx, null, null, font, "#FF0000", "#ffffff", true);
  715. showx++;
  716. show = 50;
  717. }
  718. if (dynamicTexture2 != null && showdd == 0) {
  719. var textx = showx2;
  720. var font_size = 48;
  721. var font = "bold " + font_size + "px Arial";
  722. dynamicTexture2.drawText(textx, null, null, font, "#0000FF", "#ffffff", true);
  723. showx2++;
  724. showdd = 50;
  725. if (showx2 == 10) { showx2 = 0 }
  726. }
  727. show--;
  728. showdd--;
  729. });
  730. return scene;
  731. }
  732. var canvas = document.getElementById('renderCanvas');
  733. // load the 3D engine
  734. var engine = new BABYLON.Engine(canvas, true, {
  735. stencil: true
  736. });
  737. // call the createScene function
  738. var scene = createScene();
  739. scene.autoClear = true;
  740. scene.imageProcessingConfiguration.exposure = 1;
  741. scene.imageProcessingConfiguration.contrast = 1;
  742. scene.environmentIntensity = 0.4;
  743. engine.runRenderLoop(function () {
  744. scene.render();
  745. });
  746. window.addEventListener('resize', function () {
  747. engine.resize();
  748. });
  749. //功能:点区以后跳转到新页
  750. //quName :转过来的区号
  751. //function quClick(quName) {
  752. // if (quName == "A区") {
  753. // window.location.href = "http://192.168.99.117:8099/83/webA/index.html";
  754. // }
  755. // if (quName == "B区") {
  756. // window.location.href = "http://192.168.99.117:8099/83/webB/index.html";
  757. // }
  758. // if (quName == "C区") {
  759. // window.location.href = "http://192.168.99.117:8099/83/webC/index.html";
  760. // }
  761. //}
  762. function quClick (name) {
  763. window.parent.postMessage(
  764. {
  765. data: name
  766. },
  767. "*"
  768. );
  769. }
  770. //功能:点camera后事件
  771. //function cameraClick(camera) {
  772. //alert(camera.nameID);
  773. //}
  774. function cameraClick (camera) {
  775. window.parent.postMessage(
  776. {
  777. data: camera.nameID
  778. },
  779. "*"
  780. );
  781. }
  782. function HashMap () {
  783. //定义长度
  784. var length = 0;
  785. //创建一个对象
  786. var obj = new Object();
  787. //判断Map是否为空
  788. this.isEmpty = function () {
  789. return length == 0;
  790. }
  791. //判断对象中是否包含给定Key
  792. this.containsKey = function (key) {
  793. return (key in obj);
  794. }
  795. //判断对象中是否包含给定的Value
  796. this.containsValue = function (value) {
  797. for (var key in obj) {
  798. if (obj[key] == value) {
  799. return true;
  800. }
  801. }
  802. return false;
  803. }
  804. //向map中添加数据
  805. this.put = function (key, value) {
  806. if (!this.containsKey(key)) {
  807. length++;
  808. }
  809. obj[key] = value;
  810. }
  811. //根据给定的key获取Value
  812. this.get = function (key) {
  813. return this.containsKey(key) ? obj[key] : null;
  814. }
  815. //根据给定的Key删除一个值
  816. this.remove = function (key) {
  817. if (this.containsKey(key) && (delete obj[key])) {
  818. length--;
  819. }
  820. }
  821. //获得Map中所有的value
  822. this.values = function () {
  823. var _values = new Array();
  824. for (var key in obj) {
  825. _values.push(obj[key]);
  826. }
  827. return _values;
  828. }
  829. //获得Map中的所有key
  830. this.keySet = function () {
  831. var _keys = new Array();
  832. for (var key in obj) {
  833. _keys.push(key);
  834. }
  835. return _keys;
  836. }
  837. //获得Map的长度
  838. this.size = function () {
  839. return length;
  840. }
  841. //清空Map
  842. this.clear = function () {
  843. length = 0;
  844. obj = new Object();
  845. }
  846. }
  847. var yangans = new HashMap();
  848. yangans.put('DAK_MO_CAM_001', 'camera01');
  849. yangans.put('DAK_MO_CAM_002', 'camera02');
  850. yangans.put('DAK_MO_CAM_003', 'camera03');
  851. yangans.put('DAK_MO_CAM_004', 'camera04');
  852. yangans.put('ZLS_MO_CAM_001', 'camera05');
  853. yangans.put('ZLS_MO_CAM_002', 'camera06');
  854. yangans.put('YLS_MO_CAM_001', 'camera07');
  855. yangans.put('YLS_MO_CAM_002', 'camera08');
  856. yangans.put('ZL_MO_CAM_001', 'camera09');
  857. //功能转入报警
  858. function Myalert (MathineID, baojing) {
  859. var theName = yangans.get(MathineID);
  860. if (theName == "camera01") {
  861. scene.getTransformNodeByName("camera01").baojing = baojing;
  862. }
  863. if (theName == "camera02") {
  864. scene.getTransformNodeByName("camera02").baojing = baojing;
  865. }
  866. if (theName == "camera03") {
  867. scene.getTransformNodeByName("camera03").baojing = baojing;
  868. }
  869. if (theName == "camera04") {
  870. scene.getTransformNodeByName("camera04").baojing = baojing;
  871. }
  872. if (theName == "camera05") {
  873. scene.getTransformNodeByName("camera05").baojing = baojing;
  874. }
  875. if (theName == "camera06") {
  876. scene.getTransformNodeByName("camera06").baojing = baojing;
  877. }
  878. if (theName == "camera07") {
  879. scene.getTransformNodeByName("camera07").baojing = baojing;
  880. }
  881. if (theName == "camera08") {
  882. scene.getTransformNodeByName("camera08").baojing = baojing;
  883. }
  884. if (theName == "camera09") {
  885. scene.getTransformNodeByName("camera09").baojing = baojing;
  886. }
  887. }
  888. //报警 true:表示报警, false :表示不报警
  889. //Myalert("DAK_MO_OAO_001",true)