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

1013 lines
34 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 jk01 = scene.getTransformNodeByName("Camera01");
  229. //jk01.nameID = "DAK_MO_CAM_001"
  230. //prepareGroupButton2(jk01, cl)
  231. //var jk02 = scene.getTransformNodeByName("Camera02");
  232. //jk02.nameID = "DAK_MO_CAM_002"
  233. //prepareGroupButton2(jk02, cl)
  234. //var jk03 = scene.getTransformNodeByName("Camera03");
  235. //jk03.nameID = "DAK_MO_CAM_003"
  236. //prepareGroupButton2(jk03, cl)
  237. //var jk04 = scene.getTransformNodeByName("Camera04");
  238. //jk04.nameID = "DAK_MO_CAM_004"
  239. //prepareGroupButton2(jk04, cl)
  240. //var jk05 = scene.getTransformNodeByName("Camera05");
  241. // jk05.nameID = "ZLS_MO_CAM_001"
  242. // prepareGroupButton2(jk05, cl)
  243. var jk06 = scene.getTransformNodeByName("Camera06");
  244. jk06.nameID = "DXW_MO_CAM_001"
  245. prepareGroupButton2(jk06, cl)
  246. // alert("abdd23");
  247. //set camera to null
  248. /*var x = scene.getMeshByName("01_primitive0");
  249. x.overlayColor = BABYLON.Color3.White()
  250. x.renderOverlay = true;
  251. x = scene.getMeshByName("档案架02_primitive0");
  252. x.overlayColor = BABYLON.Color3.White()
  253. x.renderOverlay = true;
  254. x = scene.getMeshByName("档案架03_primitive0");
  255. x.overlayColor = BABYLON.Color3.White()
  256. x.renderOverlay = true;
  257. x = scene.getMeshByName("档案架04_primitive0");
  258. x.overlayColor = BABYLON.Color3.White()
  259. x.renderOverlay = true;
  260. x = scene.getMeshByName("档案架05_primitive0");
  261. x.overlayColor = BABYLON.Color3.White()
  262. x.renderOverlay = true;
  263. x = scene.getMeshByName("档案架06_primitive0");
  264. x.overlayColor = BABYLON.Color3.White()
  265. x.renderOverlay = true;
  266. x = scene.getMeshByName("档案架07_primitive0");
  267. x.overlayColor = BABYLON.Color3.White()
  268. x.renderOverlay = true;
  269. x = scene.getMeshByName("档案架08_primitive0");
  270. x.overlayColor = BABYLON.Color3.White()
  271. x.renderOverlay = true;
  272. x = scene.getMeshByName("档案架09_primitive0");
  273. x.overlayColor = BABYLON.Color3.White()
  274. x.renderOverlay = true;
  275. x = scene.getMeshByName("档案架10_primitive0");
  276. x.overlayColor = BABYLON.Color3.White()
  277. x.renderOverlay = true;
  278. x = scene.getMeshByName("前门01_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("立方体_5_2.001_LOD1_primitive0");
  285. x.overlayColor = BABYLON.Color3.White()
  286. x.renderOverlay = true;
  287. x = scene.getMeshByName("立方体_5_2.001_LOD1_primitive2");
  288. x.overlayColor = BABYLON.Color3.White()
  289. x.renderOverlay = true;
  290. x = scene.getMeshByName("立方体_1_12.001_LOD1");
  291. x.overlayColor = BABYLON.Color3.White()
  292. x.renderOverlay = true;*/
  293. /*
  294. var hdrTexture2 = BABYLON.CubeTexture.CreateFromPrefilteredData("textures/environment.dds", scene);
  295. var plastic = new BABYLON.PBRMaterial("plastic", scene);
  296. plastic.reflectionTexture = hdrTexture2;
  297. plastic.microSurface = 0.96;
  298. plastic.albedoColor = new BABYLON.Color3(1, 1, 1);
  299. plastic.reflectivityColor = new BABYLON.Color3(0.003, 0.003, 0.003);
  300. scene.getMeshByName("墙体").material = plastic;
  301. alert("d");*/
  302. var light = new BABYLON.HemisphericLight("HemiLight", new BABYLON.Vector3(0, 1, 0), scene);
  303. light.intensity = 2;
  304. light.diffuse = new BABYLON.Color3(0.92, 0.92, 0.92);
  305. //var material1 = scene.getMaterialByName("材质.29");
  306. //material1.albedoColor = new BABYLON.Color3(168 / 255, 167 / 255, 168 / 255);
  307. //material1.roughness = 1;
  308. //var material1_add = scene.getMaterialByName("材质.039");
  309. // material1_add.albedoColor = new BABYLON.Color3(168 / 255, 167 / 255, 168 / 255);
  310. //material1_add.roughness = 1;
  311. //墙
  312. scene.getMaterialByName("墙体.001").metallic = 0.36;
  313. scene.getMaterialByName("墙体.001").albedoColor = new BABYLON.Color3(1, 1, 1);
  314. scene.getMaterialByName("墙体").metallic = 0.36;
  315. scene.getMaterialByName("墙体").albedoColor = new BABYLON.Color3(1, 1, 1);
  316. //铁
  317. var material3 = scene.getMaterialByName("材质.29");
  318. material3.metallic = 0.37;
  319. material3.roughness = 0;
  320. material3.emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  321. scene.getMaterialByName("材质.29").metallic == 0.37;
  322. scene.getMaterialByName("材质.29").roughness = 0.0;
  323. scene.getMaterialByName("材质.29").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  324. var material3_add = scene.getMaterialByName("材质.039");
  325. material3_add.metallic = 0.37;
  326. material3_add.roughness = 0;
  327. material3_add.emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  328. scene.getMaterialByName("材质.039").metallic = 0.37;
  329. scene.getMaterialByName("材质.039").roughness = 0.0;
  330. scene.getMaterialByName("材质.039").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  331. var material3 = scene.getMaterialByName("材质.031");
  332. material3.metallic = 0.37;
  333. material3.roughness = 0;
  334. material3.emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  335. scene.getMaterialByName("材质.031").metallic = 0.37;
  336. scene.getMaterialByName("材质.031").roughness = 0.0;
  337. scene.getMaterialByName("材质.031").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  338. //scene.getMaterialByName("材质.132").metallic = 0.9;
  339. //scene.getMaterialByName("材质.132").roughness = 0.0;
  340. //scene.getMaterialByName("材质.132").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  341. //scene.getMaterialByName("材质.122").metallic = 0.9;
  342. //scene.getMaterialByName("材质.122").roughness = 0.0;
  343. //scene.getMaterialByName("材质.122").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
  344. //地
  345. var material2 = scene.getMaterialByName("材质.042");
  346. material2.albedoColor = new BABYLON.Color3(0.8, 0.8, 0.8);
  347. material2.metallic = 0.52;
  348. material2.roughness = 0;
  349. // alert("here!ddddddd")
  350. //material2.metallicReflectanceColor=new BABYLON.Color3(1,0,0);
  351. //material2.emissiveColor=new BABYLON.Color3(0.8,0.8,0.8);
  352. //地面扩大处理
  353. //var meshground1 = scene.getMeshByName("地面A").clone();
  354. //var meshground = scene.getMeshByName("地面A");
  355. //meshground.isVisible =false;
  356. //meshground1.position = new BABYLON.Vector3(-1.512,-0.069,1.852);
  357. //meshground1.scaling = new BABYLON.Vector3(0.022,0.013,0.005);
  358. //meshground1.parent = scene.getMeshByName("__root__");
  359. //scene.getMeshByName("地面.002").isVisible = false;
  360. //scene.getMeshByName("地面.003").isVisible = false;
  361. //scene.getMeshByName("地面").isVisible = false;
  362. //scene.getMaterialByName("材质.127").metallic =0.80;
  363. //scene.getMaterialByName("Wood-04.004").metallic =0.80;
  364. //scene.getMaterialByName("Wood-04.004").metallic =0.80;
  365. //scene.getMaterialByName("Desk.002").metallic =0.80;
  366. //scene.getMaterialByName("Desk.002").roughness = 0.72;
  367. //scene.getMaterialByName("Desk.003").metallic =0.80;
  368. //scene.getMaterialByName("Desk.003").roughness = 0.72;
  369. //scene.getMaterialByName("Desk.004").metallic =0.80;
  370. //scene.getMaterialByName("Desk.004").roughness = 0.72;
  371. //scene.getMaterialByName("Desk.007").metallic =0.80;
  372. //scene.getMaterialByName("Desk.007").roughness = 0.72;
  373. //scene.getMaterialByName("Desk.008").metallic =0.80;
  374. //scene.getMaterialByName("Desk.008").roughness = 0.72;
  375. //scene.getMaterialByName("Desk.009").metallic =0.80;
  376. //scene.getMaterialByName("Desk.009").roughness = 0.72;
  377. scene.getMaterialByName("Desk.002").metallic = 0.80;
  378. scene.getMaterialByName("Desk.002").roughness = 0.72;
  379. //scene.getMaterialByName("Desk.020").metallic =0.80;
  380. //scene.getMaterialByName("Desk.020").roughness = 0.72;
  381. //scene.getMaterialByName("Desk.021").metallic =0.80;
  382. //scene.getMaterialByName("Desk.021").roughness = 0.72;
  383. //scene.getMaterialByName("Desk.022").metallic =0.80;
  384. //scene.getMaterialByName("Desk.022").roughness = 0.72;
  385. //scene.getMaterialByName("Desk.023").metallic =0.80;
  386. //scene.getMaterialByName("Desk.023").roughness = 0.72;
  387. //scene.getMaterialByName("Desk.024").metallic =0.80;
  388. //scene.getMaterialByName("Desk.024").roughness = 0.72;
  389. //scene.getMaterialByName("cover_label.010").alpha = 0.7;
  390. //scene.getMaterialByName("cover_label.010").transparencyMode=2; //ALPHABLEND
  391. //scene.getMeshByName("档案架01_primitive3").material = scene.getMaterialByName("10.002");
  392. //scene.getMeshByName("档案架02_primitive4").material = scene.getMaterialByName("09.002");
  393. //scene.getMeshByName("档案架03_primitive4").material = scene.getMaterialByName("08.002");
  394. // scene.getMeshByName("档案架04_primitive4").material = scene.getMaterialByName("07.002");
  395. //scene.getMeshByName("档案架05_primitive4").material = scene.getMaterialByName("06.002");
  396. //scene.getMeshByName("档案架06_primitive4").material = scene.getMaterialByName("05.002");
  397. //scene.getMeshByName("档案架07_primitive4").material = scene.getMaterialByName("04.002");
  398. //scene.getMeshByName("档案架08_primitive4").material = scene.getMaterialByName("03.002");
  399. //scene.getMeshByName("档案架09_primitive4").material = scene.getMaterialByName("02.002");
  400. //scene.getMeshByName("档案架10_primitive3").material = scene.getMaterialByName("01.002");
  401. //scene.getTransformNodeByName("档案柜01").setEnabled(false);
  402. //scene.getTransformNodeByName("档案柜02").setEnabled(false);
  403. //var v1 = scene.getMeshByName("钢轨01");
  404. //v1.position = new BABYLON.Vector3(v1.position.x,60.0,v1.position.z);
  405. //v1.scaling = new BABYLON.Vector3(1,0.9,1);
  406. //var v2 = scene.getTransformNodeByName("后门01");
  407. //v2.setParent( scene.getTransformNodeByName("档案柜03"),true);
  408. //v2.position = new BABYLON.Vector3(v2.position.x,-122.479,v2.position.z);
  409. }
  410. // createScene function that creates and return the scene
  411. var createScene = function () {
  412. engine.displayLoadingUI();
  413. // create a basic BJS Scene object
  414. var scene = new BABYLON.Scene(engine);
  415. // console.log("60ee2")
  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.25, 0));
  419. camera.attachControl(canvas, true);
  420. camera.lowerRadiusLimit = 2.0; // 这里是最大的位置,值越大,物体越小
  421. camera.upperRadiusLimit = 40;
  422. camera.radius = 1;
  423. camera.alpha = Math.PI * -221.4 / 180;
  424. camera.beta = Math.PI * 66 / 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. // console.log("60e3")
  437. scene.activeCamera.useInputToRestoreState = true;
  438. var camera1_status = scene.activeCamera.storeState();
  439. // console.log("6033")
  440. var assetsManager = new BABYLON.AssetsManager(scene);
  441. var meshTask = assetsManager.addMeshTask("skull task", "", "asset/", "7lou-B.glb");
  442. meshTask.onSuccess = function (task) {
  443. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  444. task.loadedMeshes[0].position = new BABYLON.Vector3(0.42, 0.35, 0);
  445. }
  446. meshTask.onError = function (task, message, exception) {
  447. console.log(message, exception);
  448. }
  449. /* var meshTask_camera = assetsManager.addMeshTask("skull task", "", "asset/", "TotalCamera.glb");
  450. meshTask_camera.onSuccess = function (task) {
  451. task.loadedMeshes[0].name = "cameras";
  452. task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2);
  453. task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0);
  454. }
  455. meshTask_camera.onError = function (task, message, exception) {
  456. console.log(message, exception);
  457. }*/
  458. var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData("textures/environmentSpecular.env", scene);
  459. scene.environmentTexture = hdrTexture;
  460. var spriteManagerPlayer = new BABYLON.SpriteManager("playerManager", "./img/bl9.png", 10, {
  461. width: 100,
  462. height: 100
  463. }, scene);
  464. //spriteManagerPlayer.renderingGroupId = 2;
  465. spriteManagerPlayer.isPickable = true;
  466. scene.onPointerDown = function (evt) {
  467. var pickResult = scene.pickSprite(this.pointerX, this.pointerY);
  468. var pick = scene.pick(scene.pointerX, scene.pointerY);
  469. console.log(pick.pickedPoint);
  470. if (pickResult.pickedSprite != null) {
  471. if (pickResult.hit) {
  472. alert(pickResult.pickedSprite.name);
  473. }
  474. }
  475. };
  476. // renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")';
  477. // console.log("x2");
  478. assetsManager.load();
  479. drag = new BABYLON.PointerDragBehavior({
  480. dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
  481. });
  482. //drag.useObjectOrienationForDragging = false;
  483. drag.validateDrag = (targetPosition) => {
  484. console.log(targetPosition)
  485. if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
  486. return false;
  487. }
  488. if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
  489. return false;
  490. }
  491. if (oldtransformNodex != null) {
  492. return true;
  493. }
  494. }
  495. drag.onDragEndObservable.add((event) => {
  496. console.log("dragEnd");
  497. //console.log(event);
  498. //console.log(line03_position)
  499. })
  500. // console.log("x3");
  501. //GUI
  502. h1 = new BABYLON.HighlightLayer("hl1", scene);
  503. h2 = new BABYLON.HighlightLayer("hl2", scene);
  504. h3 = new BABYLON.HighlightLayer("hl2", scene);
  505. var step = 0.1;
  506. var currentx = 1;
  507. var step2 = 0.1;
  508. var currentx2 = 0.1;
  509. h1.blurHorizontalSize = 0.1;
  510. var showx = 0;
  511. var showx2 = 2;
  512. console.log("x4");
  513. scene.registerAfterRender(() => {
  514. h1.blurHorizontalSize = h1.blurVerticalSize + currentx;
  515. /*var nodealert = scene.getTransformNodeByName("camera01");
  516. if (nodealert != null) {
  517. var mesheses3 = null;
  518. if (nodealert.getClassName() == "TransformNode") {
  519. mesheses3 = nodealert.getChildMeshes(false);
  520. } else {
  521. mesheses3 = [];
  522. mesheses3.push(nodealert);
  523. }
  524. for (var i = 0; i < mesheses3.length; i++) {
  525. try {
  526. if (nodealert.baojing == true) {
  527. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  528. } else {
  529. h3.removeMesh(mesheses3[i]);
  530. }
  531. } catch (error) {
  532. // alert(error)
  533. }
  534. }
  535. }
  536. var nodealert = scene.getTransformNodeByName("camera02");
  537. if (nodealert != null) {
  538. var mesheses3 = null;
  539. if (nodealert.getClassName() == "TransformNode") {
  540. mesheses3 = nodealert.getChildMeshes(false);
  541. } else {
  542. mesheses3 = [];
  543. mesheses3.push(nodealert);
  544. }
  545. for (var i = 0; i < mesheses3.length; i++) {
  546. try {
  547. if (nodealert.baojing == true) {
  548. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  549. } else {
  550. h3.removeMesh(mesheses3[i]);
  551. }
  552. } catch (error) {
  553. // alert(error)
  554. }
  555. }
  556. }
  557. var nodealert = scene.getTransformNodeByName("camera03");
  558. if (nodealert != null) {
  559. var mesheses3 = null;
  560. if (nodealert.getClassName() == "TransformNode") {
  561. mesheses3 = nodealert.getChildMeshes(false);
  562. } else {
  563. mesheses3 = [];
  564. mesheses3.push(nodealert);
  565. }
  566. for (var i = 0; i < mesheses3.length; i++) {
  567. try {
  568. if (nodealert.baojing == true) {
  569. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  570. } else {
  571. h3.removeMesh(mesheses3[i]);
  572. }
  573. } catch (error) {
  574. // alert(error)
  575. }
  576. }
  577. }
  578. var nodealert = scene.getTransformNodeByName("camera04");
  579. if (nodealert != null) {
  580. var mesheses3 = null;
  581. if (nodealert.getClassName() == "TransformNode") {
  582. mesheses3 = nodealert.getChildMeshes(false);
  583. } else {
  584. mesheses3 = [];
  585. mesheses3.push(nodealert);
  586. }
  587. for (var i = 0; i < mesheses3.length; i++) {
  588. try {
  589. if (nodealert.baojing == true) {
  590. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  591. } else {
  592. h3.removeMesh(mesheses3[i]);
  593. }
  594. } catch (error) {
  595. // alert(error)
  596. }
  597. }
  598. }
  599. var nodealert = scene.getTransformNodeByName("camera05");
  600. if (nodealert != null) {
  601. var mesheses3 = null;
  602. if (nodealert.getClassName() == "TransformNode") {
  603. mesheses3 = nodealert.getChildMeshes(false);
  604. } else {
  605. mesheses3 = [];
  606. mesheses3.push(nodealert);
  607. }
  608. for (var i = 0; i < mesheses3.length; i++) {
  609. try {
  610. if (nodealert.baojing == true) {
  611. h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0));
  612. } else {
  613. h3.removeMesh(mesheses3[i]);
  614. }
  615. } catch (error) {
  616. // alert(error)
  617. }
  618. }
  619. }
  620. */
  621. var nodealert = scene.getTransformNodeByName("camera06");
  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. //功能:点camera后事件
  772. // function cameraClick (camera) {
  773. // //alert(camera.nameID);
  774. // }
  775. function cameraClick(TheCamera) {
  776. window.parent.postMessage(
  777. {
  778. data: TheCamera.nameID
  779. },
  780. "*"
  781. );
  782. }
  783. function HashMap () {
  784. //定义长度
  785. var length = 0;
  786. //创建一个对象
  787. var obj = new Object();
  788. //判断Map是否为空
  789. this.isEmpty = function () {
  790. return length == 0;
  791. }
  792. //判断对象中是否包含给定Key
  793. this.containsKey = function (key) {
  794. return (key in obj);
  795. }
  796. //判断对象中是否包含给定的Value
  797. this.containsValue = function (value) {
  798. for (var key in obj) {
  799. if (obj[key] == value) {
  800. return true;
  801. }
  802. }
  803. return false;
  804. }
  805. //向map中添加数据
  806. this.put = function (key, value) {
  807. if (!this.containsKey(key)) {
  808. length++;
  809. }
  810. obj[key] = value;
  811. }
  812. //根据给定的key获取Value
  813. this.get = function (key) {
  814. return this.containsKey(key) ? obj[key] : null;
  815. }
  816. //根据给定的Key删除一个值
  817. this.remove = function (key) {
  818. if (this.containsKey(key) && (delete obj[key])) {
  819. length--;
  820. }
  821. }
  822. //获得Map中所有的value
  823. this.values = function () {
  824. var _values = new Array();
  825. for (var key in obj) {
  826. _values.push(obj[key]);
  827. }
  828. return _values;
  829. }
  830. //获得Map中的所有key
  831. this.keySet = function () {
  832. var _keys = new Array();
  833. for (var key in obj) {
  834. _keys.push(key);
  835. }
  836. return _keys;
  837. }
  838. //获得Map的长度
  839. this.size = function () {
  840. return length;
  841. }
  842. //清空Map
  843. this.clear = function () {
  844. length = 0;
  845. obj = new Object();
  846. }
  847. }
  848. var yangans = new HashMap();
  849. //yangans.put('DAK_MO_CAM_001', 'camera01');
  850. //yangans.put('DAK_MO_CAM_002', 'camera02');
  851. //yangans.put('DAK_MO_CAM_003', 'camera03');
  852. //yangans.put('DAK_MO_CAM_004', 'camera04');
  853. //yangans.put('ZLS_MO_CAM_001', 'camera05');
  854. //yangans.put('ZLS_MO_CAM_002', 'camera06');
  855. //yangans.put('YLS_MO_CAM_001', 'camera07');
  856. //yangans.put('YLS_MO_CAM_002', 'camera08');
  857. //yangans.put('ZL_MO_CAM_001', 'camera09');
  858. //功能转入报警
  859. function Myalert (MathineID, baojing) {
  860. var theName = yangans.get(MathineID);
  861. /*if (theName == "camera01") {
  862. scene.getTransformNodeByName("camera01").baojing = baojing;
  863. }
  864. if (theName == "camera01.001") {
  865. scene.getTransformNodeByName("camera01.001").baojing = baojing;
  866. }
  867. if (theName == "camera01.002") {
  868. scene.getTransformNodeByName("camera01.002").baojing = baojing;
  869. }
  870. if (theName == "camera01.003") {
  871. scene.getTransformNodeByName("camera01.003").baojing = baojing;
  872. }
  873. if (theName == "camera01.004") {
  874. scene.getTransformNodeByName("camera01.004").baojing = baojing;
  875. }
  876. if (theName == "camera01.005") {
  877. scene.getTransformNodeByName("camera01.005").baojing = baojing;
  878. }*/
  879. if (theName == "camera06") {
  880. scene.getTransformNodeByName("camera06").baojing = baojing;
  881. }
  882. }
  883. //报警 true:表示报警, false :表示不报警
  884. //Myalert("DAK_MO_OAO_001",true)