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

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