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

981 lines
33 KiB

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