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

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