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

1017 lines
34 KiB

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