MeshEvent.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <script setup>
  2. import { QingXiCheAndQvMyThreeWorldStore } from "./store/QingXiCheAndQvMyThreeWorldStore.js";
  3. import { CommonVal } from "@/components/ChengGuangYuanJing/store/CommonVal.js";
  4. /**
  5. * 定位到指定的物体
  6. * meshId 物体id
  7. */
  8. const lookMesh = (meshId) => {
  9. // 引入的3d对象, 这里的 CommonValQingXiCheAndQv 是你前面自定义的,后续可以自己更换
  10. var threeWorld = CommonVal().obj.CommonValQingXiCheAndQv;
  11. var objIframeEdit = threeWorld;
  12. var objIframe = threeWorld.objIframe;
  13. var scene = threeWorld.objIframe.ChengGuangYuanJing.CommonVal.find().objScene;
  14. var BABYLON = threeWorld.objIframe.BABYLON;
  15. // 获取对应物体的配置项和mesh对象
  16. let getMeshAndConfigMain = objIframeEdit.getMeshAndConfig(meshId);
  17. let config = getMeshAndConfigMain['config'];
  18. let objMesh = getMeshAndConfigMain['objMesh'];
  19. console.log(
  20. config, objMesh
  21. );
  22. // 飞到指定物体的视角
  23. objIframeEdit.flight(meshId);
  24. /**
  25. * 目前我们飞行过去一般是1.5秒完成,可以自己这里写个延迟后
  26. * 去完成,类似飞行到某个物体后,弹出什么数据
  27. */
  28. setTimeout(function() {
  29. console.log("我成功飞行到了物体 " + meshId + " 开始弹出对应想要的数据");
  30. QingXiCheAndQvMyThreeWorldStore().meshDbOpen = true;
  31. QingXiCheAndQvMyThreeWorldStore().meshDbOpenMeshId = meshId;
  32. }, 1500);
  33. }
  34. </script>
  35. <template>
  36. <div class="MeshEvent">
  37. <div class="title">操作物体demo</div>
  38. <div class="list" v-on:click="lookMesh('model_1718949010369H5_Body_4.002')" >
  39. <p>定位到 model_1718949010369H5_Body_4.002</p>
  40. </div>
  41. <div class="list" v-on:click="lookMesh('model_1718949010369H9_Body_04.002')" >
  42. <p>定位到 model_1718949010369H9_Body_04.002</p>
  43. </div>
  44. <div class="list" v-on:click="lookMesh('model_1718949010369EHS9_Body_02.002')" >
  45. <p>定位到 model_1718949010369EHS9_Body_02.002</p>
  46. </div>
  47. <div class="list" v-on:click="lookMesh('model_1718949010369HS7_Body_01.002')" >
  48. <p>定位到 model_1718949010369HS7_Body_01.002</p>
  49. </div>
  50. <div class="list" v-on:click="lookMesh('model_1718949010369HS5_Body_01.003')" >
  51. <p>定位到 model_1718949010369HS5_Body_01.003</p>
  52. </div>
  53. </div>
  54. </template>
  55. <style lang="less" scoped>
  56. .MeshEvent * {
  57. -moz-user-select: none;
  58. -webkit-user-select: none;
  59. -ms-user-select: none;
  60. -khtml-user-select: none;
  61. user-select: none;
  62. }
  63. .MeshEvent {
  64. position: fixed;
  65. top: 0px;
  66. left: 0px;
  67. width: 300px;
  68. padding: 5px;
  69. z-index: 1;
  70. background-color: #000000;
  71. border: 1px solid #ffffff;
  72. .title {
  73. width: 100%;
  74. padding: 5px;
  75. text-align: center;
  76. font-size: 14px;
  77. border: 1px solid #ffffff;
  78. color: #ffffff;
  79. }
  80. .list {
  81. width: 100%;
  82. padding: 3px;
  83. border: 1px solid #ffffff;
  84. color: #ffffff;
  85. cursor:pointer;
  86. }
  87. }
  88. </style>