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

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