@anov/3d-ability 0.0.165 → 0.0.167

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/business/Animation/motion/index.d.ts +3 -2
  2. package/dist/business/Animation/motion/index.js +6 -1
  3. package/dist/business/Animation/motion/index.js.map +1 -1
  4. package/dist/business/Area/Fence/FenceBase.d.ts +2 -2
  5. package/dist/business/Area/Fence/FenceBase.js +1 -1
  6. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  7. package/dist/business/Area/Fence/fence_base_01.js +1 -1
  8. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  9. package/dist/business/Area/Fence/fence_feeting_01.js +1 -1
  10. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  11. package/dist/business/Area/Fence/fence_roll_01.js +1 -1
  12. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  13. package/dist/business/Area/FillArea/FillAreaBase.d.ts +2 -2
  14. package/dist/business/Area/FillArea/FillAreaBase.js +1 -1
  15. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  16. package/dist/business/Area/index.d.ts +2 -1
  17. package/dist/business/Area/index.js +2 -2
  18. package/dist/business/Area/index.js.map +1 -1
  19. package/dist/business/Base/ObjectLayer.d.ts +4 -2
  20. package/dist/business/Base/ObjectLayer.js +7 -11
  21. package/dist/business/Base/ObjectLayer.js.map +1 -1
  22. package/dist/business/Batch/index.d.ts +1 -1
  23. package/dist/business/Batch/index.js +2 -2
  24. package/dist/business/Batch/index.js.map +1 -1
  25. package/dist/business/Box/index.d.ts +1 -1
  26. package/dist/business/Box/index.js +2 -2
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Box/interface.js.map +1 -1
  29. package/dist/business/Box/types.js.map +1 -1
  30. package/dist/business/Cylinder/index.d.ts +1 -1
  31. package/dist/business/Cylinder/index.js +2 -2
  32. package/dist/business/Cylinder/index.js.map +1 -1
  33. package/dist/business/Cylinder/interface.d.ts +1 -1
  34. package/dist/business/Cylinder/interface.js.map +1 -1
  35. package/dist/business/Cylinder/types.js.map +1 -1
  36. package/dist/business/Flyline/index.d.ts +2 -2
  37. package/dist/business/Flyline/index.js +8 -8
  38. package/dist/business/Flyline/index.js.map +1 -1
  39. package/dist/business/Flyline/line/ArcLine.d.ts +1 -1
  40. package/dist/business/Flyline/line/ArcLine.js +3 -3
  41. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  42. package/dist/business/HeatMap/HeatMap.d.ts +3 -59
  43. package/dist/business/HeatMap/HeatMap.js +7 -95
  44. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  45. package/dist/business/InfoPanel/index.d.ts +3 -4
  46. package/dist/business/InfoPanel/index.js +13 -19
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/InfoPanel/type.js.map +1 -1
  49. package/dist/business/Line/index.d.ts +3 -3
  50. package/dist/business/Line/index.js +8 -7
  51. package/dist/business/Line/index.js.map +1 -1
  52. package/dist/business/Line/interface.d.ts +4 -4
  53. package/dist/business/Line/interface.js.map +1 -1
  54. package/dist/business/Line/types.js.map +1 -1
  55. package/dist/business/Mark/index.d.ts +2 -1
  56. package/dist/business/Mark/index.js +3 -3
  57. package/dist/business/Mark/index.js.map +1 -1
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.d.ts +5 -3
  59. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +14 -10
  60. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  61. package/dist/business/MaterialSwitch/index.js.map +1 -1
  62. package/dist/business/Plane/index.d.ts +3 -2
  63. package/dist/business/Plane/index.js +2 -2
  64. package/dist/business/Plane/index.js.map +1 -1
  65. package/dist/business/Plane/interface.d.ts +5 -5
  66. package/dist/business/Plane/interface.js.map +1 -1
  67. package/dist/business/Plane/types.js.map +1 -1
  68. package/dist/business/Poi/index.d.ts +2 -3
  69. package/dist/business/Poi/index.js +25 -54
  70. package/dist/business/Poi/index.js.map +1 -1
  71. package/dist/business/Poi/link/Cylinder.d.ts +2 -1
  72. package/dist/business/Poi/link/Cylinder.js +3 -3
  73. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  74. package/dist/business/Poi/link/Pyramid.d.ts +2 -1
  75. package/dist/business/Poi/link/Pyramid.js +2 -2
  76. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  77. package/dist/business/Poi/link/index.d.ts +3 -3
  78. package/dist/business/Poi/link/index.js +2 -2
  79. package/dist/business/Poi/link/index.js.map +1 -1
  80. package/dist/business/Poi/panel/index.d.ts +3 -3
  81. package/dist/business/Poi/panel/index.js +7 -6
  82. package/dist/business/Poi/panel/index.js.map +1 -1
  83. package/dist/business/Poi/panel/interfaces.js.map +1 -1
  84. package/dist/business/Poi/panel/utils.d.ts +1 -1
  85. package/dist/business/Poi/panel/utils.js +3 -3
  86. package/dist/business/Poi/panel/utils.js.map +1 -1
  87. package/dist/business/Poi/particle/DoubleCircle.d.ts +2 -1
  88. package/dist/business/Poi/particle/DoubleCircle.js +3 -2
  89. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  90. package/dist/business/Poi/particle/DynamicCircle.d.ts +2 -1
  91. package/dist/business/Poi/particle/DynamicCircle.js +3 -2
  92. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  93. package/dist/business/Poi/particle/SingleCircle.d.ts +2 -1
  94. package/dist/business/Poi/particle/SingleCircle.js +3 -2
  95. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  96. package/dist/business/Poi/particle/index.d.ts +2 -2
  97. package/dist/business/Poi/particle/index.js +2 -2
  98. package/dist/business/Poi/particle/index.js.map +1 -1
  99. package/dist/business/Poi/title/Border.d.ts +2 -1
  100. package/dist/business/Poi/title/Border.js +2 -2
  101. package/dist/business/Poi/title/Border.js.map +1 -1
  102. package/dist/business/Poi/title/Ellipse.d.ts +2 -1
  103. package/dist/business/Poi/title/Ellipse.js +2 -2
  104. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  105. package/dist/business/Poi/title/index.d.ts +3 -2
  106. package/dist/business/Poi/title/index.js +2 -2
  107. package/dist/business/Poi/title/index.js.map +1 -1
  108. package/dist/business/Sphere/index.d.ts +2 -2
  109. package/dist/business/Sphere/index.js +2 -2
  110. package/dist/business/Sphere/index.js.map +1 -1
  111. package/dist/business/Sphere/interface.js.map +1 -1
  112. package/dist/business/Sphere/types.js.map +1 -1
  113. package/dist/business/Spline/index.d.ts +2 -1
  114. package/dist/business/Spline/index.js +14 -28
  115. package/dist/business/Spline/index.js.map +1 -1
  116. package/dist/business/SplitBuilding/index.d.ts +2 -2
  117. package/dist/business/SplitBuilding/index.js +2 -2
  118. package/dist/business/SplitBuilding/index.js.map +1 -1
  119. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.d.ts +2 -2
  120. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +6 -5
  121. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  122. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.d.ts +2 -2
  123. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +3 -3
  124. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  125. package/dist/business/TrafficComponents/base.d.ts +4 -4
  126. package/dist/business/TrafficComponents/base.js +6 -6
  127. package/dist/business/TrafficComponents/base.js.map +1 -1
  128. package/dist/business/TrafficComponents/index.d.ts +4 -2
  129. package/dist/business/TrafficComponents/index.js +2 -2
  130. package/dist/business/TrafficComponents/index.js.map +1 -1
  131. package/dist/business/Utils/defineProps.js +3 -3
  132. package/dist/business/Utils/defineProps.js.map +1 -1
  133. package/dist/business/VideoPanel/index.d.ts +4 -4
  134. package/dist/business/VideoPanel/index.js +11 -13
  135. package/dist/business/VideoPanel/index.js.map +1 -1
  136. package/dist/business/VideoPanel/type.d.ts +8 -8
  137. package/dist/business/VideoPanel/type.js.map +1 -1
  138. package/dist/business/Water/index.d.ts +3 -1
  139. package/dist/business/Water/index.js +5 -5
  140. package/dist/business/Water/index.js.map +1 -1
  141. package/dist/business/index.d.ts +21 -18
  142. package/dist/business/index.js +18 -18
  143. package/dist/business/index.js.map +1 -1
  144. package/dist/core/Camera/PerspectiveCamera/CameraExpand.d.ts +1 -1
  145. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +4 -4
  146. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  147. package/dist/core/Camera/index.d.ts +2 -1
  148. package/dist/core/Camera/index.js +1 -1
  149. package/dist/core/Camera/index.js.map +1 -1
  150. package/dist/core/Controls/FirstViewControl/index.d.ts +3 -2
  151. package/dist/core/Controls/FirstViewControl/index.js +4 -2
  152. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  153. package/dist/core/Controls/ThirdViewControl/index.d.ts +3 -2
  154. package/dist/core/Controls/ThirdViewControl/index.js +6 -3
  155. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  156. package/dist/core/Controls/ThirdViewControl/player/camera.d.ts +4 -2
  157. package/dist/core/Controls/ThirdViewControl/player/camera.js +5 -2
  158. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  159. package/dist/core/Controls/ThirdViewControl/player.d.ts +4 -2
  160. package/dist/core/Controls/ThirdViewControl/player.js +6 -2
  161. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  162. package/dist/core/Controls/base.d.ts +4 -3
  163. package/dist/core/Controls/base.js +5 -3
  164. package/dist/core/Controls/base.js.map +1 -1
  165. package/dist/core/Curve/index.d.ts +2 -1
  166. package/dist/core/Curve/index.js +1 -1
  167. package/dist/core/Curve/index.js.map +1 -1
  168. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  169. package/dist/core/Material/index.d.ts +5 -3
  170. package/dist/core/Material/index.js +3 -3
  171. package/dist/core/Material/index.js.map +1 -1
  172. package/dist/core/PostEffects/addACESFilmicToneMappingPass.d.ts +2 -1
  173. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +4 -4
  174. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  175. package/dist/core/PostEffects/addBrightnessContrastPass.d.ts +2 -1
  176. package/dist/core/PostEffects/addBrightnessContrastPass.js +4 -4
  177. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  178. package/dist/core/PostEffects/bloomPass.d.ts +2 -1
  179. package/dist/core/PostEffects/bloomPass.js +6 -5
  180. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  181. package/dist/core/PostEffects/bloomSelect.d.ts +2 -2
  182. package/dist/core/PostEffects/bloomSelect.js +7 -6
  183. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  184. package/dist/core/PostEffects/colorifyPass.d.ts +2 -2
  185. package/dist/core/PostEffects/colorifyPass.js +4 -4
  186. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  187. package/dist/core/PostEffects/index.d.ts +4 -13
  188. package/dist/core/PostEffects/index.js +14 -20
  189. package/dist/core/PostEffects/index.js.map +1 -1
  190. package/dist/core/PostEffects/outlinePass.d.ts +2 -2
  191. package/dist/core/PostEffects/outlinePass.js +4 -5
  192. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  193. package/dist/core/PostEffects/postprocessing.d.ts +2 -2
  194. package/dist/core/PostEffects/postprocessing.js +2 -2
  195. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  196. package/dist/core/PostEffects/saoPass.d.ts +2 -1
  197. package/dist/core/PostEffects/saoPass.js +4 -5
  198. package/dist/core/PostEffects/saoPass.js.map +1 -1
  199. package/dist/core/SceneEffect/grow/grow.d.ts +3 -1
  200. package/dist/core/SceneEffect/grow/grow.js +5 -3
  201. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  202. package/dist/core/WeatherSystem/DynamicWeatherSystem.d.ts +3 -1
  203. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +6 -4
  204. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  205. package/dist/core/WeatherSystem/color/index.d.ts +3 -0
  206. package/dist/core/WeatherSystem/color/index.js +9 -14
  207. package/dist/core/WeatherSystem/color/index.js.map +1 -1
  208. package/dist/core/WeatherSystem/controller/ColorController.d.ts +3 -1
  209. package/dist/core/WeatherSystem/controller/ColorController.js +5 -3
  210. package/dist/core/WeatherSystem/controller/ColorController.js.map +1 -1
  211. package/dist/core/WeatherSystem/controller/HDRController.d.ts +3 -1
  212. package/dist/core/WeatherSystem/controller/HDRController.js +5 -3
  213. package/dist/core/WeatherSystem/controller/HDRController.js.map +1 -1
  214. package/dist/core/WeatherSystem/controller/SkyController.d.ts +3 -1
  215. package/dist/core/WeatherSystem/controller/SkyController.js +4 -2
  216. package/dist/core/WeatherSystem/controller/SkyController.js.map +1 -1
  217. package/dist/core/WeatherSystem/hdr/index.d.ts +4 -2
  218. package/dist/core/WeatherSystem/hdr/index.js +12 -11
  219. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  220. package/dist/core/WeatherSystem/index.d.ts +3 -2
  221. package/dist/core/WeatherSystem/index.js +7 -4
  222. package/dist/core/WeatherSystem/index.js.map +1 -1
  223. package/dist/core/WeatherSystem/objects/rain/index.d.ts +2 -1
  224. package/dist/core/WeatherSystem/objects/rain/index.js +3 -3
  225. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  226. package/dist/core/WeatherSystem/objects/rain/lineRain.d.ts +3 -1
  227. package/dist/core/WeatherSystem/objects/rain/lineRain.js +7 -5
  228. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  229. package/dist/core/WeatherSystem/objects/rain/plane.d.ts +3 -1
  230. package/dist/core/WeatherSystem/objects/rain/plane.js +6 -4
  231. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  232. package/dist/core/WeatherSystem/objects/rain/point.d.ts +3 -1
  233. package/dist/core/WeatherSystem/objects/rain/point.js +3 -0
  234. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  235. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  236. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  237. package/dist/core/WeatherSystem/weather/index.d.ts +3 -2
  238. package/dist/core/WeatherSystem/weather/index.js +7 -5
  239. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  240. package/dist/index.d.ts +13 -8
  241. package/dist/index.js +8 -8
  242. package/dist/index.js.map +1 -1
  243. package/package.json +3 -3
@@ -32,14 +32,10 @@ var defaultGradient = {
32
32
  0.85: 'yellow',
33
33
  1.0: 'rgb(255,0,0)'
34
34
  };
35
-
36
- /**
37
- * 区域热力图
38
- */
39
35
  var HeatMap = /*#__PURE__*/function (_Object3D) {
40
36
  _inherits(HeatMap, _Object3D);
41
37
  var _super = _createSuper(HeatMap);
42
- function HeatMap(options) {
38
+ function HeatMap(options, sceneControl) {
43
39
  var _options$radius, _options$height, _options$isPixel;
44
40
  var _this;
45
41
  _classCallCheck(this, HeatMap);
@@ -55,13 +51,13 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
55
51
  _defineProperty(_assertThisInitialized(_this), "_attachmentMesh", void 0);
56
52
  _defineProperty(_assertThisInitialized(_this), "_supercluster", void 0);
57
53
  _defineProperty(_assertThisInitialized(_this), "_range", void 0);
54
+ _defineProperty(_assertThisInitialized(_this), "sceneControl", void 0);
55
+ _this.sceneControl = sceneControl;
58
56
  _this._colorMap = options.colorMap || defaultGradient;
59
57
  _this._radius = (_options$radius = options.radius) !== null && _options$radius !== void 0 ? _options$radius : 40;
60
58
  _this._height = (_options$height = options.height) !== null && _options$height !== void 0 ? _options$height : 70;
61
59
  _this._isPixel = (_options$isPixel = options.isPixel) !== null && _options$isPixel !== void 0 ? _options$isPixel : false;
62
60
  _this._range = options.range;
63
-
64
- // this.initSupercluster()
65
61
  return _this;
66
62
  }
67
63
  _createClass(HeatMap, [{
@@ -85,10 +81,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
85
81
  maxZoom: 16
86
82
  });
87
83
  }
88
-
89
- /**
90
- * set supercluster data
91
- */
92
84
  }, {
93
85
  key: "setSuperclusterData",
94
86
  value: function setSuperclusterData() {
@@ -105,12 +97,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
105
97
  console.log('正在加载点数据到supercluster:', featuresPoints.length);
106
98
  this._supercluster.load(featuresPoints);
107
99
  }
108
-
109
- /**
110
- * get zoom level
111
- * @param camera
112
- * @returns
113
- */
114
100
  }, {
115
101
  key: "getZoomLevel",
116
102
  value: function getZoomLevel(camera) {
@@ -120,26 +106,16 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
120
106
  var maxHeight = 1000;
121
107
  return Math.max(minZoom, Math.min(maxZoom, (maxHeight - camera.position.y) / (maxHeight - minHeight) * (maxZoom - minZoom) + minZoom));
122
108
  }
123
-
124
- /**
125
- * get supercluster data
126
- * @returns
127
- */
128
109
  }, {
129
110
  key: "getSuperclusterData",
130
111
  value: function getSuperclusterData() {
131
112
  var _this$calDataMaxMin = this.calDataMaxMin(),
132
113
  max = _this$calDataMaxMin.max;
133
- var zoom = this.getZoomLevel(use.useScene().camera);
114
+ var zoom = this.getZoomLevel(use.useScene(this.sceneControl).camera);
134
115
  var clusters = this._supercluster.getClusters([-max, -max, max, max], zoom);
135
116
  console.log('当前缩放级别:', zoom, '输入点数量:', this.data.length, '聚类后点数量:', clusters.length);
136
117
  return clusters;
137
118
  }
138
-
139
- /**
140
- * calculate data max and min
141
- * @returns
142
- */
143
119
  }, {
144
120
  key: "calDataMaxMin",
145
121
  value: function calDataMaxMin() {
@@ -180,11 +156,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
180
156
  maxRadius: maxRadius
181
157
  };
182
158
  }
183
-
184
- /**
185
- * generateAsitePoints
186
- * @param data
187
- */
188
159
  }, {
189
160
  key: "generateAsitePoints",
190
161
  value: function generateAsitePoints(data) {
@@ -239,15 +210,9 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
239
210
  maxRadius: maxRadius
240
211
  };
241
212
  }
242
-
243
- /**
244
- * generate new origin
245
- * @returns
246
- */
247
213
  }, {
248
214
  key: "newOrigin",
249
215
  get: function get() {
250
- // need to consider one point and multiple points
251
216
  var _this$calDataMaxMin2 = this.calDataMaxMin(),
252
217
  minX = _this$calDataMaxMin2.minX,
253
218
  minZ = _this$calDataMaxMin2.minZ,
@@ -258,12 +223,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
258
223
  z: (maxZ + minZ) / 2
259
224
  };
260
225
  }
261
-
262
- /**
263
- * coordinate 3D transformation
264
- * @param data
265
- * @returns
266
- */
267
226
  }, {
268
227
  key: "coordinate3DTransformation",
269
228
  value: function coordinate3DTransformation(data) {
@@ -280,12 +239,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
280
239
  });
281
240
  });
282
241
  }
283
-
284
- /**
285
- * coordinate transformation, to canvas coordinate
286
- * @param data
287
- * @returns
288
- */
289
242
  }, {
290
243
  key: "coordinateTransformation",
291
244
  value: function coordinateTransformation(data) {
@@ -308,21 +261,8 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
308
261
  isBoundary: item === null || item === void 0 ? void 0 : item.isBoundary
309
262
  };
310
263
  });
311
-
312
- // console.log('原始', data, realShowWidth, realShowHeight)
313
- // console.log('newOrigin', this.newOrigin)
314
- // console.log('hanldeData', hanldeData)
315
- // console.log('结果', result)
316
- // console.log('resolutionScale', resolutionScale, realShowWidth, realShowHeight, realShowWidth * resolutionScale, realShowHeight * resolutionScale)
317
-
318
264
  return result;
319
265
  }
320
-
321
- /**
322
- * generate heatmap texture
323
- * @param canvasBox
324
- * @returns
325
- */
326
266
  }, {
327
267
  key: "createHeatmapTool",
328
268
  value: function createHeatmapTool() {
@@ -335,11 +275,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
335
275
  });
336
276
  return heatmap;
337
277
  }
338
-
339
- /**
340
- * create heatmap container canvas
341
- * @returns
342
- */
343
278
  }, {
344
279
  key: "createCanvas",
345
280
  value: function createCanvas(width, height) {
@@ -348,15 +283,9 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
348
283
  canvasBox.style.height = "".concat(height, "px");
349
284
  canvasBox.style.top = '0';
350
285
  canvasBox.style.right = '0';
351
- use.useScene().domElement.parentElement.appendChild(canvasBox);
286
+ use.useScene(this.sceneControl).domElement.parentElement.appendChild(canvasBox);
352
287
  return canvasBox;
353
288
  }
354
-
355
- /**
356
- * calculate resolution scale
357
- * @param width
358
- * @returns
359
- */
360
289
  }, {
361
290
  key: "calResolutionScale",
362
291
  value: function calResolutionScale() {
@@ -394,10 +323,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
394
323
  }
395
324
  return 1;
396
325
  }
397
-
398
- /**
399
- * create attachment mesh
400
- */
401
326
  }, {
402
327
  key: "createAttachmentMesh",
403
328
  value: function createAttachmentMesh() {
@@ -453,11 +378,6 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
453
378
  this._attachmentMesh = mesh;
454
379
  this.add(mesh);
455
380
  }
456
-
457
- /**
458
- * set heatmap data
459
- * @param data
460
- */
461
381
  }, {
462
382
  key: "setData",
463
383
  value: function setData(data) {
@@ -466,7 +386,7 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
466
386
  boundaryPoints = _this$generateAsitePo.boundaryPoints;
467
387
  this.data = [].concat(_toConsumableArray(boundaryPoints), _toConsumableArray(data));
468
388
  var heatmapData = this.coordinateTransformation(this.data);
469
- this._canvasBox && use.useScene().domElement.parentElement.removeChild(this._canvasBox);
389
+ this._canvasBox && use.useScene(this.sceneControl).domElement.parentElement.removeChild(this._canvasBox);
470
390
  this._canvasBox = this.createCanvas(Math.max.apply(Math, _toConsumableArray(heatmapData.map(function (item) {
471
391
  return item.x;
472
392
  }))), Math.max.apply(Math, _toConsumableArray(heatmapData.map(function (item) {
@@ -481,22 +401,14 @@ var HeatMap = /*#__PURE__*/function (_Object3D) {
481
401
  min: (_this$_range$min = (_this$_range2 = this._range) === null || _this$_range2 === void 0 ? void 0 : _this$_range2.min) !== null && _this$_range$min !== void 0 ? _this$_range$min : 0
482
402
  });
483
403
  this.createAttachmentMesh();
484
-
485
- // 聚类暂时不实现
486
- // this.setSuperclusterData()
487
- // use.useScene().orbitControls.addEventListener('change', () => {
488
- // const clusters = this.getSuperclusterData()
489
- // console.log(clusters)
490
- // })
491
404
  }
492
405
  }, {
493
406
  key: "removeFromParent",
494
407
  value: function removeFromParent() {
495
408
  _get(_getPrototypeOf(HeatMap.prototype), "removeFromParent", this).call(this);
496
- // todo: 升级three.js后,父对象变化,会触发此函数,重组内部引起关系
497
409
  if (this.parent) {
498
410
  var _this$_attachmentMesh;
499
- use.useScene().domElement.parentElement.removeChild(this._canvasBox);
411
+ use.useScene(this.sceneControl).domElement.parentElement.removeChild(this._canvasBox);
500
412
 
501
413
  // @ts-ignore
502
414
  (_this$_attachmentMesh = this._attachmentMesh) === null || _this$_attachmentMesh === void 0 || _this$_attachmentMesh.material.dispose();
@@ -1 +1 @@
1
- {"version":3,"names":["CanvasTexture","DoubleSide","Mesh","NearestFilter","Object3D","PlaneGeometry","ShaderMaterial","Vector2","use","h","Supercluster","heightFragmentShader","heightVertexShader","defaultGradient","HeatMap","_Object3D","_inherits","_super","_createSuper","options","_options$radius","_options$height","_options$isPixel","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_colorMap","colorMap","_radius","radius","_height","height","_isPixel","isPixel","_range","range","_createClass","key","get","Math","max","apply","_toConsumableArray","data","map","item","value","_url","initSupercluster","_supercluster","minZoom","maxZoom","setSuperclusterData","featuresPoints","type","properties","geometry","coordinates","x","z","console","log","length","load","getZoomLevel","camera","minHeight","maxHeight","min","position","y","getSuperclusterData","_this$calDataMaxMin","calDataMaxMin","zoom","useScene","clusters","getClusters","_this2","maxX","minX","maxZ","minZ","abs","ceil","maxRadius","_item$radius","concat","width","realShowWidth","realShowHeight","realShowMax","generateAsitePoints","_this3","_item$radius2","boundaryPoints","isBoundary","_this$calDataMaxMin2","coordinate3DTransformation","_this4","_this$newOrigin","newOrigin","_item$radius3","_objectSpread","coordinateTransformation","_this5","hanldeData","_this$calDataMaxMin3","resolutionScale","calResolutionScale","result","_item$radius4","floor","createHeatmapTool","heatmap","create","container","_canvasBox","gradient","maxOpacity","minOpacity","createCanvas","canvasBox","document","createElement","style","top","right","domElement","parentElement","appendChild","_this$calDataMaxMin4","maxY","scale","createAttachmentMesh","_attachmentMesh","remove","_this$calDataMaxMin5","canvas","_heatmap","_renderer","texture","minFilter","magFilter","toDataURL","threshold","shaderMaterial","uniforms","granularity","uOpacity","uHeight","uRange","vertexShader","fragmentShader","transparent","side","depthTest","mesh","_this$newOrigin2","rotation","PI","set","renderOrder","add","setData","_this$_range$max","_this$_range","_this$_range$min","_this$_range2","_this$generateAsitePo","heatmapData","removeChild","filter","defaultMax","removeFromParent","_get","_getPrototypeOf","prototype","parent","_this$_attachmentMesh","material","dispose"],"sources":["../../../src/business/HeatMap/HeatMap.ts"],"sourcesContent":["import type { PerspectiveCamera } from '@anov/3d-core'\nimport { CanvasTexture, DoubleSide, Mesh, NearestFilter, Object3D, PlaneGeometry, ShaderMaterial, Vector2, use } from '@anov/3d-core'\nimport h from 'anov-heat-map'\nimport type { AnyProps } from 'supercluster'\nimport Supercluster from 'supercluster'\nimport { heightFragmentShader, heightVertexShader } from './shader'\nimport type { HeatMapData, HeatMapnterface } from './index'\n\ntype RangeType = {\n min: number\n max: number\n}\n\ntype HeatMapOptions = {\n colorMap?: {\n [key: number]: string\n }\n max?: number\n radius?: number\n height?: number\n isPixel?: boolean\n range?: RangeType\n}\n\nconst defaultGradient = { 0.25: 'rgb(0,0,255)', 0.55: 'rgb(0,255,0)', 0.85: 'yellow', 1.0: 'rgb(255,0,0)' }\n\n/**\n * 区域热力图\n */\n\nclass HeatMap extends Object3D implements HeatMapnterface {\n public data: HeatMapData[] = []\n\n private _height: number\n private _radius: number\n private _heatmap: any\n private _url: string\n private _colorMap: {\n [key: number]: string\n }\n\n private _isPixel: boolean\n private _canvasBox: HTMLDivElement | undefined\n private _attachmentMesh: Mesh | undefined\n private _supercluster: Supercluster\n private _range: RangeType | undefined\n\n private get defaultMax() {\n return Math.max(...this.data.map(item => item.value))\n }\n\n public get url() {\n return this._url\n }\n\n constructor(options: HeatMapOptions) {\n super()\n\n this._colorMap = options.colorMap || defaultGradient\n this._radius = options.radius ?? 40\n this._height = options.height ?? 70\n this._isPixel = options.isPixel ?? false\n this._range = options.range\n\n // this.initSupercluster()\n }\n\n private initSupercluster() {\n this._supercluster = new Supercluster({\n radius: 40,\n minZoom: 1,\n maxZoom: 16,\n })\n }\n\n /**\n * set supercluster data\n */\n private setSuperclusterData() {\n const featuresPoints = this.data.map((item) => {\n return {\n type: 'Feature',\n properties: {},\n geometry: {\n type: 'Point',\n coordinates: [item.x, item.z],\n },\n }\n })\n\n console.log('正在加载点数据到supercluster:', featuresPoints.length)\n this._supercluster.load(featuresPoints as Supercluster.PointFeature<AnyProps>[])\n }\n\n /**\n * get zoom level\n * @param camera\n * @returns\n */\n private getZoomLevel(camera: PerspectiveCamera) {\n const minZoom = 10\n const maxZoom = 16\n const minHeight = 10\n const maxHeight = 1000\n\n return Math.max(minZoom, Math.min(maxZoom,\n ((maxHeight - camera.position.y) / (maxHeight - minHeight)) * (maxZoom - minZoom) + minZoom,\n ))\n }\n\n /**\n * get supercluster data\n * @returns\n */\n private getSuperclusterData() {\n const { max } = this.calDataMaxMin()\n const zoom = this.getZoomLevel(use.useScene().camera)\n const clusters = this._supercluster.getClusters([-max, -max, max, max], zoom)\n\n console.log('当前缩放级别:', zoom, '输入点数量:', this.data.length, '聚类后点数量:', clusters.length)\n\n return clusters\n }\n\n /**\n * calculate data max and min\n * @returns\n */\n private calDataMaxMin() {\n const maxX = Math.max(...this.data.map(item => item.x))\n const minX = Math.min(...this.data.map(item => item.x))\n const maxZ = Math.max(...this.data.map(item => item.z))\n const minZ = Math.min(...this.data.map(item => item.z))\n\n const max = Math.max(Math.abs(Math.ceil(maxX)), Math.abs(Math.ceil(minX)), Math.abs(Math.ceil(maxZ)), Math.abs(Math.ceil(minZ)), 60)\n const maxRadius = Math.max(...this.data.map(item => item.radius ?? this._radius), this._radius)\n\n const width = max * 2\n const height = max * 2\n\n const realShowWidth = maxX - minX\n const realShowHeight = maxZ - minZ\n\n const realShowMax = Math.max(Math.ceil(realShowWidth), Math.ceil(realShowHeight), 60)\n\n return { width, height, max, minX, minZ, maxX, maxZ, realShowMax, realShowWidth, realShowHeight, maxRadius }\n }\n\n /**\n * generateAsitePoints\n * @param data\n */\n private generateAsitePoints(data: HeatMapData[]) {\n const maxX = Math.max(...data.map(item => item.x))\n const minX = Math.min(...data.map(item => item.x))\n const maxZ = Math.max(...data.map(item => item.z))\n const minZ = Math.min(...data.map(item => item.z))\n\n const maxRadius = 2 * Math.max(...data.map(item => item.radius ?? this._radius), this._radius)\n\n const boundaryPoints = [\n { x: minX - maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: minX - maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n ]\n\n return { boundaryPoints, maxRadius }\n }\n\n /**\n * generate new origin\n * @returns\n */\n private get newOrigin() {\n // need to consider one point and multiple points\n const { minX, minZ, maxX, maxZ } = this.calDataMaxMin()\n\n return {\n x: (maxX + minX) / 2,\n z: (maxZ + minZ) / 2,\n }\n }\n\n /**\n * coordinate 3D transformation\n * @param data\n * @returns\n */\n private coordinate3DTransformation(data: HeatMapData[]) {\n const { x, z } = this.newOrigin\n return data.map(item => ({\n ...item,\n x: item.x - x,\n z: item.z - z,\n radius: item.radius ?? this._radius,\n }))\n }\n\n /**\n * coordinate transformation, to canvas coordinate\n * @param data\n * @returns\n */\n private coordinateTransformation(data: HeatMapData[]) {\n const hanldeData = this.coordinate3DTransformation(data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const resolutionScale = this.calResolutionScale()\n\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width) * resolutionScale,\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height) * resolutionScale,\n value: item.value,\n radius: (item.radius ?? this._radius) * resolutionScale * 2,\n // @ts-ignore\n isBoundary: item?.isBoundary,\n }))\n\n // console.log('原始', data, realShowWidth, realShowHeight)\n // console.log('newOrigin', this.newOrigin)\n // console.log('hanldeData', hanldeData)\n // console.log('结果', result)\n // console.log('resolutionScale', resolutionScale, realShowWidth, realShowHeight, realShowWidth * resolutionScale, realShowHeight * resolutionScale)\n\n return result\n }\n\n /**\n * generate heatmap texture\n * @param canvasBox\n * @returns\n */\n private createHeatmapTool() {\n const heatmap = h.create({\n container: this._canvasBox,\n radius: this._radius,\n gradient: this._colorMap,\n maxOpacity: 1,\n minOpacity: 0,\n })\n\n return heatmap\n }\n\n /**\n * create heatmap container canvas\n * @returns\n */\n private createCanvas(width: number, height: number) {\n const canvasBox = document.createElement('div')\n\n canvasBox.style.width = `${width}px`\n canvasBox.style.height = `${height}px`\n canvasBox.style.top = '0'\n canvasBox.style.right = '0'\n\n use.useScene().domElement.parentElement.appendChild(canvasBox)\n\n return canvasBox\n }\n\n /**\n * calculate resolution scale\n * @param width\n * @returns\n */\n private calResolutionScale() {\n const hanldeData = this.coordinate3DTransformation(this.data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width),\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height),\n value: item.value,\n radius: item.radius * 2,\n }))\n\n const maxRadius = Math.max(...result.map(item => item.radius))\n const maxX = Math.max(...result.map(item => item.x))\n const maxY = Math.max(...result.map(item => item.y))\n const max = Math.max(maxX, maxY)\n\n if (max <= 1000) {\n const scale = (1000 - max) / 1000 * 15 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n if (max <= 5000) {\n const scale = (5000 - max) / 5000 * 5 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n return 1\n }\n\n /**\n * create attachment mesh\n */\n private createAttachmentMesh() {\n if (this._attachmentMesh)\n this.remove(this._attachmentMesh)\n\n const { realShowMax, max, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const canvas = this._heatmap._renderer.canvas\n const texture = new CanvasTexture(canvas)\n\n texture.minFilter = NearestFilter\n texture.magFilter = NearestFilter\n\n this._url = canvas.toDataURL('image/png')\n\n const threshold = (0.3 / 1000 * realShowMax)\n const shaderMaterial = new ShaderMaterial({\n uniforms: {\n map: { value: texture },\n granularity: { value: realShowMax / 3 < 300 ? 300 : realShowMax / 3 },\n threshold: { value: threshold > 0.6 ? 0.6 : threshold < 0.25 ? 0.25 : threshold },\n uOpacity: { value: 2.0 },\n uHeight: { value: this._height },\n isPixel: { value: this._isPixel },\n uRange: { value: new Vector2(-max, max) },\n\n },\n vertexShader: heightVertexShader,\n fragmentShader: heightFragmentShader,\n transparent: true,\n side: DoubleSide,\n depthTest: false,\n })\n\n const mesh = new Mesh(new PlaneGeometry(realShowWidth, realShowHeight, 500, 500), shaderMaterial)\n const { x, z } = this.newOrigin\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(x, 0, z)\n mesh.renderOrder = 1000\n\n this._attachmentMesh = mesh\n this.add(mesh)\n }\n\n /**\n * set heatmap data\n * @param data\n */\n public setData(data: HeatMapData[]) {\n const { boundaryPoints } = this.generateAsitePoints(data)\n this.data = [...boundaryPoints, ...data]\n\n const heatmapData = this.coordinateTransformation(this.data)\n this._canvasBox && use.useScene().domElement.parentElement.removeChild(this._canvasBox)\n this._canvasBox = this.createCanvas(Math.max(...heatmapData.map(item => item.x)), Math.max(...heatmapData.map(item => item.y)))\n this._heatmap = this.createHeatmapTool()\n\n this._heatmap.setData({\n data: heatmapData.filter(item => !item.isBoundary),\n max: this._range?.max ?? this.defaultMax,\n min: this._range?.min ?? 0,\n })\n\n this.createAttachmentMesh()\n\n // 聚类暂时不实现\n // this.setSuperclusterData()\n // use.useScene().orbitControls.addEventListener('change', () => {\n // const clusters = this.getSuperclusterData()\n // console.log(clusters)\n // })\n }\n\n override removeFromParent(): this {\n super.removeFromParent()\n // todo: 升级three.js后,父对象变化,会触发此函数,重组内部引起关系\n if (this.parent) {\n use.useScene().domElement.parentElement.removeChild(this._canvasBox)\n\n // @ts-ignore\n this._attachmentMesh?.material.dispose()\n }\n\n return this\n }\n}\n\nexport default HeatMap"],"mappings":"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"}
1
+ {"version":3,"names":["CanvasTexture","DoubleSide","Mesh","NearestFilter","Object3D","PlaneGeometry","ShaderMaterial","Vector2","use","h","Supercluster","heightFragmentShader","heightVertexShader","defaultGradient","HeatMap","_Object3D","_inherits","_super","_createSuper","options","sceneControl","_options$radius","_options$height","_options$isPixel","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_colorMap","colorMap","_radius","radius","_height","height","_isPixel","isPixel","_range","range","_createClass","key","get","Math","max","apply","_toConsumableArray","data","map","item","value","_url","initSupercluster","_supercluster","minZoom","maxZoom","setSuperclusterData","featuresPoints","type","properties","geometry","coordinates","x","z","console","log","length","load","getZoomLevel","camera","minHeight","maxHeight","min","position","y","getSuperclusterData","_this$calDataMaxMin","calDataMaxMin","zoom","useScene","clusters","getClusters","_this2","maxX","minX","maxZ","minZ","abs","ceil","maxRadius","_item$radius","concat","width","realShowWidth","realShowHeight","realShowMax","generateAsitePoints","_this3","_item$radius2","boundaryPoints","isBoundary","_this$calDataMaxMin2","coordinate3DTransformation","_this4","_this$newOrigin","newOrigin","_item$radius3","_objectSpread","coordinateTransformation","_this5","hanldeData","_this$calDataMaxMin3","resolutionScale","calResolutionScale","result","_item$radius4","floor","createHeatmapTool","heatmap","create","container","_canvasBox","gradient","maxOpacity","minOpacity","createCanvas","canvasBox","document","createElement","style","top","right","domElement","parentElement","appendChild","_this$calDataMaxMin4","maxY","scale","createAttachmentMesh","_attachmentMesh","remove","_this$calDataMaxMin5","canvas","_heatmap","_renderer","texture","minFilter","magFilter","toDataURL","threshold","shaderMaterial","uniforms","granularity","uOpacity","uHeight","uRange","vertexShader","fragmentShader","transparent","side","depthTest","mesh","_this$newOrigin2","rotation","PI","set","renderOrder","add","setData","_this$_range$max","_this$_range","_this$_range$min","_this$_range2","_this$generateAsitePo","heatmapData","removeChild","filter","defaultMax","removeFromParent","_get","_getPrototypeOf","prototype","parent","_this$_attachmentMesh","material","dispose"],"sources":["../../../src/business/HeatMap/HeatMap.ts"],"sourcesContent":["import type { PerspectiveCamera, SceneControl } from '@anov/3d-core'\nimport { CanvasTexture, DoubleSide, Mesh, NearestFilter, Object3D, PlaneGeometry, ShaderMaterial, Vector2, use } from '@anov/3d-core'\nimport h from 'anov-heat-map'\nimport type { AnyProps } from 'supercluster'\nimport Supercluster from 'supercluster'\nimport { heightFragmentShader, heightVertexShader } from './shader'\nimport type { HeatMapData, HeatMapnterface } from './index'\n\ntype RangeType = {\n min: number\n max: number\n}\n\ntype HeatMapOptions = {\n colorMap?: {\n [key: number]: string\n }\n max?: number\n radius?: number\n height?: number\n isPixel?: boolean\n range?: RangeType\n}\n\nconst defaultGradient = { 0.25: 'rgb(0,0,255)', 0.55: 'rgb(0,255,0)', 0.85: 'yellow', 1.0: 'rgb(255,0,0)' }\n\nclass HeatMap extends Object3D implements HeatMapnterface {\n public data: HeatMapData[] = []\n\n private _height: number\n private _radius: number\n private _heatmap: any\n private _url: string\n private _colorMap: {\n [key: number]: string\n }\n\n private _isPixel: boolean\n private _canvasBox: HTMLDivElement | undefined\n private _attachmentMesh: Mesh | undefined\n private _supercluster: Supercluster\n private _range: RangeType | undefined\n private sceneControl?: SceneControl\n\n private get defaultMax() {\n return Math.max(...this.data.map(item => item.value))\n }\n\n public get url() {\n return this._url\n }\n\n constructor(options: HeatMapOptions, sceneControl?: SceneControl) {\n super()\n this.sceneControl = sceneControl\n\n this._colorMap = options.colorMap || defaultGradient\n this._radius = options.radius ?? 40\n this._height = options.height ?? 70\n this._isPixel = options.isPixel ?? false\n this._range = options.range\n }\n\n private initSupercluster() {\n this._supercluster = new Supercluster({\n radius: 40,\n minZoom: 1,\n maxZoom: 16,\n })\n }\n\n private setSuperclusterData() {\n const featuresPoints = this.data.map((item) => {\n return {\n type: 'Feature',\n properties: {},\n geometry: {\n type: 'Point',\n coordinates: [item.x, item.z],\n },\n }\n })\n\n console.log('正在加载点数据到supercluster:', featuresPoints.length)\n this._supercluster.load(featuresPoints as Supercluster.PointFeature<AnyProps>[])\n }\n\n private getZoomLevel(camera: PerspectiveCamera) {\n const minZoom = 10\n const maxZoom = 16\n const minHeight = 10\n const maxHeight = 1000\n\n return Math.max(minZoom, Math.min(maxZoom,\n ((maxHeight - camera.position.y) / (maxHeight - minHeight)) * (maxZoom - minZoom) + minZoom,\n ))\n }\n\n private getSuperclusterData() {\n const { max } = this.calDataMaxMin()\n const zoom = this.getZoomLevel(use.useScene(this.sceneControl).camera)\n const clusters = this._supercluster.getClusters([-max, -max, max, max], zoom)\n\n console.log('当前缩放级别:', zoom, '输入点数量:', this.data.length, '聚类后点数量:', clusters.length)\n\n return clusters\n }\n\n private calDataMaxMin() {\n const maxX = Math.max(...this.data.map(item => item.x))\n const minX = Math.min(...this.data.map(item => item.x))\n const maxZ = Math.max(...this.data.map(item => item.z))\n const minZ = Math.min(...this.data.map(item => item.z))\n\n const max = Math.max(Math.abs(Math.ceil(maxX)), Math.abs(Math.ceil(minX)), Math.abs(Math.ceil(maxZ)), Math.abs(Math.ceil(minZ)), 60)\n const maxRadius = Math.max(...this.data.map(item => item.radius ?? this._radius), this._radius)\n\n const width = max * 2\n const height = max * 2\n\n const realShowWidth = maxX - minX\n const realShowHeight = maxZ - minZ\n\n const realShowMax = Math.max(Math.ceil(realShowWidth), Math.ceil(realShowHeight), 60)\n\n return { width, height, max, minX, minZ, maxX, maxZ, realShowMax, realShowWidth, realShowHeight, maxRadius }\n }\n\n private generateAsitePoints(data: HeatMapData[]) {\n const maxX = Math.max(...data.map(item => item.x))\n const minX = Math.min(...data.map(item => item.x))\n const maxZ = Math.max(...data.map(item => item.z))\n const minZ = Math.min(...data.map(item => item.z))\n\n const maxRadius = 2 * Math.max(...data.map(item => item.radius ?? this._radius), this._radius)\n\n const boundaryPoints = [\n { x: minX - maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: minZ - maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: minX - maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n { x: maxX + maxRadius, z: maxZ + maxRadius, value: 0, y: 0, isBoundary: true, radius: 0.001 },\n ]\n\n return { boundaryPoints, maxRadius }\n }\n\n private get newOrigin() {\n const { minX, minZ, maxX, maxZ } = this.calDataMaxMin()\n\n return {\n x: (maxX + minX) / 2,\n z: (maxZ + minZ) / 2,\n }\n }\n\n private coordinate3DTransformation(data: HeatMapData[]) {\n const { x, z } = this.newOrigin\n return data.map(item => ({\n ...item,\n x: item.x - x,\n z: item.z - z,\n radius: item.radius ?? this._radius,\n }))\n }\n\n private coordinateTransformation(data: HeatMapData[]) {\n const hanldeData = this.coordinate3DTransformation(data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const resolutionScale = this.calResolutionScale()\n\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width) * resolutionScale,\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height) * resolutionScale,\n value: item.value,\n radius: (item.radius ?? this._radius) * resolutionScale * 2,\n // @ts-ignore\n isBoundary: item?.isBoundary,\n }))\n\n return result\n }\n\n private createHeatmapTool() {\n const heatmap = h.create({\n container: this._canvasBox,\n radius: this._radius,\n gradient: this._colorMap,\n maxOpacity: 1,\n minOpacity: 0,\n })\n\n return heatmap\n }\n\n private createCanvas(width: number, height: number) {\n const canvasBox = document.createElement('div')\n\n canvasBox.style.width = `${width}px`\n canvasBox.style.height = `${height}px`\n canvasBox.style.top = '0'\n canvasBox.style.right = '0'\n\n use.useScene(this.sceneControl).domElement.parentElement.appendChild(canvasBox)\n\n return canvasBox\n }\n\n private calResolutionScale() {\n const hanldeData = this.coordinate3DTransformation(this.data)\n const { width, height, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const result = hanldeData.map(item => ({\n x: Math.floor((item.x - (-realShowWidth / 2)) / (realShowWidth / 2 - (-realShowWidth / 2)) * width),\n y: Math.floor((item.z - (-realShowHeight / 2)) / (realShowHeight / 2 - (-realShowHeight / 2)) * height),\n value: item.value,\n radius: item.radius * 2,\n }))\n\n const maxRadius = Math.max(...result.map(item => item.radius))\n const maxX = Math.max(...result.map(item => item.x))\n const maxY = Math.max(...result.map(item => item.y))\n const max = Math.max(maxX, maxY)\n\n if (max <= 1000) {\n const scale = (1000 - max) / 1000 * 15 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n if (max <= 5000) {\n const scale = (5000 - max) / 5000 * 5 + 1\n return Math.floor(maxRadius < 40 ? scale : 1)\n }\n\n return 1\n }\n\n private createAttachmentMesh() {\n if (this._attachmentMesh)\n this.remove(this._attachmentMesh)\n\n const { realShowMax, max, realShowWidth, realShowHeight } = this.calDataMaxMin()\n const canvas = this._heatmap._renderer.canvas\n const texture = new CanvasTexture(canvas)\n\n texture.minFilter = NearestFilter\n texture.magFilter = NearestFilter\n\n this._url = canvas.toDataURL('image/png')\n\n const threshold = (0.3 / 1000 * realShowMax)\n const shaderMaterial = new ShaderMaterial({\n uniforms: {\n map: { value: texture },\n granularity: { value: realShowMax / 3 < 300 ? 300 : realShowMax / 3 },\n threshold: { value: threshold > 0.6 ? 0.6 : threshold < 0.25 ? 0.25 : threshold },\n uOpacity: { value: 2.0 },\n uHeight: { value: this._height },\n isPixel: { value: this._isPixel },\n uRange: { value: new Vector2(-max, max) },\n\n },\n vertexShader: heightVertexShader,\n fragmentShader: heightFragmentShader,\n transparent: true,\n side: DoubleSide,\n depthTest: false,\n })\n\n const mesh = new Mesh(new PlaneGeometry(realShowWidth, realShowHeight, 500, 500), shaderMaterial)\n const { x, z } = this.newOrigin\n\n mesh.rotation.x = -Math.PI / 2\n mesh.position.set(x, 0, z)\n mesh.renderOrder = 1000\n\n this._attachmentMesh = mesh\n this.add(mesh)\n }\n\n public setData(data: HeatMapData[]) {\n const { boundaryPoints } = this.generateAsitePoints(data)\n this.data = [...boundaryPoints, ...data]\n\n const heatmapData = this.coordinateTransformation(this.data)\n this._canvasBox && use.useScene(this.sceneControl).domElement.parentElement.removeChild(this._canvasBox)\n this._canvasBox = this.createCanvas(Math.max(...heatmapData.map(item => item.x)), Math.max(...heatmapData.map(item => item.y)))\n this._heatmap = this.createHeatmapTool()\n\n this._heatmap.setData({\n data: heatmapData.filter(item => !item.isBoundary),\n max: this._range?.max ?? this.defaultMax,\n min: this._range?.min ?? 0,\n })\n\n this.createAttachmentMesh()\n }\n\n override removeFromParent(): this {\n super.removeFromParent()\n if (this.parent) {\n use.useScene(this.sceneControl).domElement.parentElement.removeChild(this._canvasBox)\n\n // @ts-ignore\n this._attachmentMesh?.material.dispose()\n }\n\n return this\n }\n}\n\nexport default HeatMap\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,SAASA,aAAa,EAAEC,UAAU,EAAEC,IAAI,EAAEC,aAAa,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,cAAc,EAAEC,OAAO,EAAEC,GAAG,QAAQ,eAAe;AACrI,OAAOC,CAAC,MAAM,eAAe;AAE7B,OAAOC,YAAY,MAAM,cAAc;AACvC,SAASC,oBAAoB,EAAEC,kBAAkB;AAmBjD,IAAMC,eAAe,GAAG;EAAE,IAAI,EAAE,cAAc;EAAE,IAAI,EAAE,cAAc;EAAE,IAAI,EAAE,QAAQ;EAAE,GAAG,EAAE;AAAe,CAAC;AAAA,IAErGC,OAAO,0BAAAC,SAAA;EAAAC,SAAA,CAAAF,OAAA,EAAAC,SAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,OAAA;EA0BX,SAAAA,QAAYK,OAAuB,EAAEC,YAA2B,EAAE;IAAA,IAAAC,eAAA,EAAAC,eAAA,EAAAC,gBAAA;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAAX,OAAA;IAChEU,KAAA,GAAAP,MAAA,CAAAS,IAAA;IAAOC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA,WA1BoB,EAAE;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IA2B7BA,KAAA,CAAKJ,YAAY,GAAGA,YAAY;IAEhCI,KAAA,CAAKK,SAAS,GAAGV,OAAO,CAACW,QAAQ,IAAIjB,eAAe;IACpDW,KAAA,CAAKO,OAAO,IAAAV,eAAA,GAAGF,OAAO,CAACa,MAAM,cAAAX,eAAA,cAAAA,eAAA,GAAI,EAAE;IACnCG,KAAA,CAAKS,OAAO,IAAAX,eAAA,GAAGH,OAAO,CAACe,MAAM,cAAAZ,eAAA,cAAAA,eAAA,GAAI,EAAE;IACnCE,KAAA,CAAKW,QAAQ,IAAAZ,gBAAA,GAAGJ,OAAO,CAACiB,OAAO,cAAAb,gBAAA,cAAAA,gBAAA,GAAI,KAAK;IACxCC,KAAA,CAAKa,MAAM,GAAGlB,OAAO,CAACmB,KAAK;IAAA,OAAAd,KAAA;EAC7B;EAACe,YAAA,CAAAzB,OAAA;IAAA0B,GAAA;IAAAC,GAAA,EAjBD,SAAAA,IAAA,EAAyB;MACvB,OAAOC,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQ,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACC,KAAK;MAAA,EAAC,EAAC;IACvD;EAAC;IAAAT,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAiB;MACf,OAAO,IAAI,CAACS,IAAI;IAClB;EAAC;IAAAV,GAAA;IAAAS,KAAA,EAaD,SAAAE,iBAAA,EAA2B;MACzB,IAAI,CAACC,aAAa,GAAG,IAAI1C,YAAY,CAAC;QACpCsB,MAAM,EAAE,EAAE;QACVqB,OAAO,EAAE,CAAC;QACVC,OAAO,EAAE;MACX,CAAC,CAAC;IACJ;EAAC;IAAAd,GAAA;IAAAS,KAAA,EAED,SAAAM,oBAAA,EAA8B;MAC5B,IAAMC,cAAc,GAAG,IAAI,CAACV,IAAI,CAACC,GAAG,CAAC,UAACC,IAAI,EAAK;QAC7C,OAAO;UACLS,IAAI,EAAE,SAAS;UACfC,UAAU,EAAE,CAAC,CAAC;UACdC,QAAQ,EAAE;YACRF,IAAI,EAAE,OAAO;YACbG,WAAW,EAAE,CAACZ,IAAI,CAACa,CAAC,EAAEb,IAAI,CAACc,CAAC;UAC9B;QACF,CAAC;MACH,CAAC,CAAC;MAEFC,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAER,cAAc,CAACS,MAAM,CAAC;MAC3D,IAAI,CAACb,aAAa,CAACc,IAAI,CAACV,cAAuD,CAAC;IAClF;EAAC;IAAAhB,GAAA;IAAAS,KAAA,EAED,SAAAkB,aAAqBC,MAAyB,EAAE;MAC9C,IAAMf,OAAO,GAAG,EAAE;MAClB,IAAMC,OAAO,GAAG,EAAE;MAClB,IAAMe,SAAS,GAAG,EAAE;MACpB,IAAMC,SAAS,GAAG,IAAI;MAEtB,OAAO5B,IAAI,CAACC,GAAG,CAACU,OAAO,EAAEX,IAAI,CAAC6B,GAAG,CAACjB,OAAO,EACtC,CAACgB,SAAS,GAAGF,MAAM,CAACI,QAAQ,CAACC,CAAC,KAAKH,SAAS,GAAGD,SAAS,CAAC,IAAKf,OAAO,GAAGD,OAAO,CAAC,GAAGA,OACtF,CAAC,CAAC;IACJ;EAAC;IAAAb,GAAA;IAAAS,KAAA,EAED,SAAAyB,oBAAA,EAA8B;MAC5B,IAAAC,mBAAA,GAAgB,IAAI,CAACC,aAAa,CAAC,CAAC;QAA5BjC,GAAG,GAAAgC,mBAAA,CAAHhC,GAAG;MACX,IAAMkC,IAAI,GAAG,IAAI,CAACV,YAAY,CAAC3D,GAAG,CAACsE,QAAQ,CAAC,IAAI,CAAC1D,YAAY,CAAC,CAACgD,MAAM,CAAC;MACtE,IAAMW,QAAQ,GAAG,IAAI,CAAC3B,aAAa,CAAC4B,WAAW,CAAC,CAAC,CAACrC,GAAG,EAAE,CAACA,GAAG,EAAEA,GAAG,EAAEA,GAAG,CAAC,EAAEkC,IAAI,CAAC;MAE7Ed,OAAO,CAACC,GAAG,CAAC,SAAS,EAAEa,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC/B,IAAI,CAACmB,MAAM,EAAE,SAAS,EAAEc,QAAQ,CAACd,MAAM,CAAC;MAEpF,OAAOc,QAAQ;IACjB;EAAC;IAAAvC,GAAA;IAAAS,KAAA,EAED,SAAA2B,cAAA,EAAwB;MAAA,IAAAK,MAAA;MACtB,IAAMC,IAAI,GAAGxC,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQ,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACa,CAAC;MAAA,EAAC,EAAC;MACvD,IAAMsB,IAAI,GAAGzC,IAAI,CAAC6B,GAAG,CAAA3B,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQ,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACa,CAAC;MAAA,EAAC,EAAC;MACvD,IAAMuB,IAAI,GAAG1C,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQ,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACc,CAAC;MAAA,EAAC,EAAC;MACvD,IAAMuB,IAAI,GAAG3C,IAAI,CAAC6B,GAAG,CAAA3B,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQ,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACc,CAAC;MAAA,EAAC,EAAC;MAEvD,IAAMnB,GAAG,GAAGD,IAAI,CAACC,GAAG,CAACD,IAAI,CAAC4C,GAAG,CAAC5C,IAAI,CAAC6C,IAAI,CAACL,IAAI,CAAC,CAAC,EAAExC,IAAI,CAAC4C,GAAG,CAAC5C,IAAI,CAAC6C,IAAI,CAACJ,IAAI,CAAC,CAAC,EAAEzC,IAAI,CAAC4C,GAAG,CAAC5C,IAAI,CAAC6C,IAAI,CAACH,IAAI,CAAC,CAAC,EAAE1C,IAAI,CAAC4C,GAAG,CAAC5C,IAAI,CAAC6C,IAAI,CAACF,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;MACpI,IAAMG,SAAS,GAAG9C,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQ,IAAI,CAACC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,IAAAyC,YAAA;QAAA,QAAAA,YAAA,GAAIzC,IAAI,CAAChB,MAAM,cAAAyD,YAAA,cAAAA,YAAA,GAAIR,MAAI,CAAClD,OAAO;MAAA,EAAC,EAAA2D,MAAA,EAAE,IAAI,CAAC3D,OAAO,GAAC;MAE/F,IAAM4D,KAAK,GAAGhD,GAAG,GAAG,CAAC;MACrB,IAAMT,MAAM,GAAGS,GAAG,GAAG,CAAC;MAEtB,IAAMiD,aAAa,GAAGV,IAAI,GAAGC,IAAI;MACjC,IAAMU,cAAc,GAAGT,IAAI,GAAGC,IAAI;MAElC,IAAMS,WAAW,GAAGpD,IAAI,CAACC,GAAG,CAACD,IAAI,CAAC6C,IAAI,CAACK,aAAa,CAAC,EAAElD,IAAI,CAAC6C,IAAI,CAACM,cAAc,CAAC,EAAE,EAAE,CAAC;MAErF,OAAO;QAAEF,KAAK,EAALA,KAAK;QAAEzD,MAAM,EAANA,MAAM;QAAES,GAAG,EAAHA,GAAG;QAAEwC,IAAI,EAAJA,IAAI;QAAEE,IAAI,EAAJA,IAAI;QAAEH,IAAI,EAAJA,IAAI;QAAEE,IAAI,EAAJA,IAAI;QAAEU,WAAW,EAAXA,WAAW;QAAEF,aAAa,EAAbA,aAAa;QAAEC,cAAc,EAAdA,cAAc;QAAEL,SAAS,EAATA;MAAU,CAAC;IAC9G;EAAC;IAAAhD,GAAA;IAAAS,KAAA,EAED,SAAA8C,oBAA4BjD,IAAmB,EAAE;MAAA,IAAAkD,MAAA;MAC/C,IAAMd,IAAI,GAAGxC,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACa,CAAC;MAAA,EAAC,EAAC;MAClD,IAAMsB,IAAI,GAAGzC,IAAI,CAAC6B,GAAG,CAAA3B,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACa,CAAC;MAAA,EAAC,EAAC;MAClD,IAAMuB,IAAI,GAAG1C,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACc,CAAC;MAAA,EAAC,EAAC;MAClD,IAAMuB,IAAI,GAAG3C,IAAI,CAAC6B,GAAG,CAAA3B,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACc,CAAC;MAAA,EAAC,EAAC;MAElD,IAAM0B,SAAS,GAAG,CAAC,GAAG9C,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQC,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,IAAAiD,aAAA;QAAA,QAAAA,aAAA,GAAIjD,IAAI,CAAChB,MAAM,cAAAiE,aAAA,cAAAA,aAAA,GAAID,MAAI,CAACjE,OAAO;MAAA,EAAC,EAAA2D,MAAA,EAAE,IAAI,CAAC3D,OAAO,GAAC;MAE9F,IAAMmE,cAAc,GAAG,CACrB;QAAErC,CAAC,EAAEsB,IAAI,GAAGK,SAAS;QAAE1B,CAAC,EAAEuB,IAAI,GAAGG,SAAS;QAAEvC,KAAK,EAAE,CAAC;QAAEwB,CAAC,EAAE,CAAC;QAAE0B,UAAU,EAAE,IAAI;QAAEnE,MAAM,EAAE;MAAM,CAAC,EAC7F;QAAE6B,CAAC,EAAEqB,IAAI,GAAGM,SAAS;QAAE1B,CAAC,EAAEuB,IAAI,GAAGG,SAAS;QAAEvC,KAAK,EAAE,CAAC;QAAEwB,CAAC,EAAE,CAAC;QAAE0B,UAAU,EAAE,IAAI;QAAEnE,MAAM,EAAE;MAAM,CAAC,EAC7F;QAAE6B,CAAC,EAAEsB,IAAI,GAAGK,SAAS;QAAE1B,CAAC,EAAEsB,IAAI,GAAGI,SAAS;QAAEvC,KAAK,EAAE,CAAC;QAAEwB,CAAC,EAAE,CAAC;QAAE0B,UAAU,EAAE,IAAI;QAAEnE,MAAM,EAAE;MAAM,CAAC,EAC7F;QAAE6B,CAAC,EAAEqB,IAAI,GAAGM,SAAS;QAAE1B,CAAC,EAAEsB,IAAI,GAAGI,SAAS;QAAEvC,KAAK,EAAE,CAAC;QAAEwB,CAAC,EAAE,CAAC;QAAE0B,UAAU,EAAE,IAAI;QAAEnE,MAAM,EAAE;MAAM,CAAC,CAC9F;MAED,OAAO;QAAEkE,cAAc,EAAdA,cAAc;QAAEV,SAAS,EAATA;MAAU,CAAC;IACtC;EAAC;IAAAhD,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAwB;MACtB,IAAA2D,oBAAA,GAAmC,IAAI,CAACxB,aAAa,CAAC,CAAC;QAA/CO,IAAI,GAAAiB,oBAAA,CAAJjB,IAAI;QAAEE,IAAI,GAAAe,oBAAA,CAAJf,IAAI;QAAEH,IAAI,GAAAkB,oBAAA,CAAJlB,IAAI;QAAEE,IAAI,GAAAgB,oBAAA,CAAJhB,IAAI;MAE9B,OAAO;QACLvB,CAAC,EAAE,CAACqB,IAAI,GAAGC,IAAI,IAAI,CAAC;QACpBrB,CAAC,EAAE,CAACsB,IAAI,GAAGC,IAAI,IAAI;MACrB,CAAC;IACH;EAAC;IAAA7C,GAAA;IAAAS,KAAA,EAED,SAAAoD,2BAAmCvD,IAAmB,EAAE;MAAA,IAAAwD,MAAA;MACtD,IAAAC,eAAA,GAAiB,IAAI,CAACC,SAAS;QAAvB3C,CAAC,GAAA0C,eAAA,CAAD1C,CAAC;QAAEC,CAAC,GAAAyC,eAAA,CAADzC,CAAC;MACZ,OAAOhB,IAAI,CAACC,GAAG,CAAC,UAAAC,IAAI;QAAA,IAAAyD,aAAA;QAAA,OAAAC,aAAA,CAAAA,aAAA,KACf1D,IAAI;UACPa,CAAC,EAAEb,IAAI,CAACa,CAAC,GAAGA,CAAC;UACbC,CAAC,EAAEd,IAAI,CAACc,CAAC,GAAGA,CAAC;UACb9B,MAAM,GAAAyE,aAAA,GAAEzD,IAAI,CAAChB,MAAM,cAAAyE,aAAA,cAAAA,aAAA,GAAIH,MAAI,CAACvE;QAAO;MAAA,CACnC,CAAC;IACL;EAAC;IAAAS,GAAA;IAAAS,KAAA,EAED,SAAA0D,yBAAiC7D,IAAmB,EAAE;MAAA,IAAA8D,MAAA;MACpD,IAAMC,UAAU,GAAG,IAAI,CAACR,0BAA0B,CAACvD,IAAI,CAAC;MACxD,IAAAgE,oBAAA,GAAyD,IAAI,CAAClC,aAAa,CAAC,CAAC;QAArEe,KAAK,GAAAmB,oBAAA,CAALnB,KAAK;QAAEzD,MAAM,GAAA4E,oBAAA,CAAN5E,MAAM;QAAE0D,aAAa,GAAAkB,oBAAA,CAAblB,aAAa;QAAEC,cAAc,GAAAiB,oBAAA,CAAdjB,cAAc;MACpD,IAAMkB,eAAe,GAAG,IAAI,CAACC,kBAAkB,CAAC,CAAC;MAEjD,IAAMC,MAAM,GAAGJ,UAAU,CAAC9D,GAAG,CAAC,UAAAC,IAAI;QAAA,IAAAkE,aAAA;QAAA,OAAK;UACrCrD,CAAC,EAAEnB,IAAI,CAACyE,KAAK,CAAC,CAACnE,IAAI,CAACa,CAAC,GAAI,CAAC+B,aAAa,GAAG,CAAE,KAAKA,aAAa,GAAG,CAAC,GAAI,CAACA,aAAa,GAAG,CAAE,CAAC,GAAGD,KAAK,CAAC,GAAGoB,eAAe;UACrHtC,CAAC,EAAE/B,IAAI,CAACyE,KAAK,CAAC,CAACnE,IAAI,CAACc,CAAC,GAAI,CAAC+B,cAAc,GAAG,CAAE,KAAKA,cAAc,GAAG,CAAC,GAAI,CAACA,cAAc,GAAG,CAAE,CAAC,GAAG3D,MAAM,CAAC,GAAG6E,eAAe;UACzH9D,KAAK,EAAED,IAAI,CAACC,KAAK;UACjBjB,MAAM,EAAE,EAAAkF,aAAA,GAAClE,IAAI,CAAChB,MAAM,cAAAkF,aAAA,cAAAA,aAAA,GAAIN,MAAI,CAAC7E,OAAO,IAAIgF,eAAe,GAAG,CAAC;UAC3D;UACAZ,UAAU,EAAEnD,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEmD;QACpB,CAAC;MAAA,CAAC,CAAC;MAEH,OAAOc,MAAM;IACf;EAAC;IAAAzE,GAAA;IAAAS,KAAA,EAED,SAAAmE,kBAAA,EAA4B;MAC1B,IAAMC,OAAO,GAAG5G,CAAC,CAAC6G,MAAM,CAAC;QACvBC,SAAS,EAAE,IAAI,CAACC,UAAU;QAC1BxF,MAAM,EAAE,IAAI,CAACD,OAAO;QACpB0F,QAAQ,EAAE,IAAI,CAAC5F,SAAS;QACxB6F,UAAU,EAAE,CAAC;QACbC,UAAU,EAAE;MACd,CAAC,CAAC;MAEF,OAAON,OAAO;IAChB;EAAC;IAAA7E,GAAA;IAAAS,KAAA,EAED,SAAA2E,aAAqBjC,KAAa,EAAEzD,MAAc,EAAE;MAClD,IAAM2F,SAAS,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAE/CF,SAAS,CAACG,KAAK,CAACrC,KAAK,MAAAD,MAAA,CAAMC,KAAK,OAAI;MACpCkC,SAAS,CAACG,KAAK,CAAC9F,MAAM,MAAAwD,MAAA,CAAMxD,MAAM,OAAI;MACtC2F,SAAS,CAACG,KAAK,CAACC,GAAG,GAAG,GAAG;MACzBJ,SAAS,CAACG,KAAK,CAACE,KAAK,GAAG,GAAG;MAE3B1H,GAAG,CAACsE,QAAQ,CAAC,IAAI,CAAC1D,YAAY,CAAC,CAAC+G,UAAU,CAACC,aAAa,CAACC,WAAW,CAACR,SAAS,CAAC;MAE/E,OAAOA,SAAS;IAClB;EAAC;IAAArF,GAAA;IAAAS,KAAA,EAED,SAAA+D,mBAAA,EAA6B;MAC3B,IAAMH,UAAU,GAAG,IAAI,CAACR,0BAA0B,CAAC,IAAI,CAACvD,IAAI,CAAC;MAC7D,IAAAwF,oBAAA,GAAyD,IAAI,CAAC1D,aAAa,CAAC,CAAC;QAArEe,KAAK,GAAA2C,oBAAA,CAAL3C,KAAK;QAAEzD,MAAM,GAAAoG,oBAAA,CAANpG,MAAM;QAAE0D,aAAa,GAAA0C,oBAAA,CAAb1C,aAAa;QAAEC,cAAc,GAAAyC,oBAAA,CAAdzC,cAAc;MACpD,IAAMoB,MAAM,GAAGJ,UAAU,CAAC9D,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAK;UACrCa,CAAC,EAAEnB,IAAI,CAACyE,KAAK,CAAC,CAACnE,IAAI,CAACa,CAAC,GAAI,CAAC+B,aAAa,GAAG,CAAE,KAAKA,aAAa,GAAG,CAAC,GAAI,CAACA,aAAa,GAAG,CAAE,CAAC,GAAGD,KAAK,CAAC;UACnGlB,CAAC,EAAE/B,IAAI,CAACyE,KAAK,CAAC,CAACnE,IAAI,CAACc,CAAC,GAAI,CAAC+B,cAAc,GAAG,CAAE,KAAKA,cAAc,GAAG,CAAC,GAAI,CAACA,cAAc,GAAG,CAAE,CAAC,GAAG3D,MAAM,CAAC;UACvGe,KAAK,EAAED,IAAI,CAACC,KAAK;UACjBjB,MAAM,EAAEgB,IAAI,CAAChB,MAAM,GAAG;QACxB,CAAC;MAAA,CAAC,CAAC;MAEH,IAAMwD,SAAS,GAAG9C,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQoE,MAAM,CAAClE,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAAChB,MAAM;MAAA,EAAC,EAAC;MAC9D,IAAMkD,IAAI,GAAGxC,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQoE,MAAM,CAAClE,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACa,CAAC;MAAA,EAAC,EAAC;MACpD,IAAM0E,IAAI,GAAG7F,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQoE,MAAM,CAAClE,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACyB,CAAC;MAAA,EAAC,EAAC;MACpD,IAAM9B,GAAG,GAAGD,IAAI,CAACC,GAAG,CAACuC,IAAI,EAAEqD,IAAI,CAAC;MAEhC,IAAI5F,GAAG,IAAI,IAAI,EAAE;QACf,IAAM6F,KAAK,GAAG,CAAC,IAAI,GAAG7F,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC;QAC1C,OAAOD,IAAI,CAACyE,KAAK,CAAC3B,SAAS,GAAG,EAAE,GAAGgD,KAAK,GAAG,CAAC,CAAC;MAC/C;MAEA,IAAI7F,GAAG,IAAI,IAAI,EAAE;QACf,IAAM6F,MAAK,GAAG,CAAC,IAAI,GAAG7F,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC;QACzC,OAAOD,IAAI,CAACyE,KAAK,CAAC3B,SAAS,GAAG,EAAE,GAAGgD,MAAK,GAAG,CAAC,CAAC;MAC/C;MAEA,OAAO,CAAC;IACV;EAAC;IAAAhG,GAAA;IAAAS,KAAA,EAED,SAAAwF,qBAAA,EAA+B;MAC7B,IAAI,IAAI,CAACC,eAAe,EACtB,IAAI,CAACC,MAAM,CAAC,IAAI,CAACD,eAAe,CAAC;MAEnC,IAAAE,oBAAA,GAA4D,IAAI,CAAChE,aAAa,CAAC,CAAC;QAAxEkB,WAAW,GAAA8C,oBAAA,CAAX9C,WAAW;QAAEnD,GAAG,GAAAiG,oBAAA,CAAHjG,GAAG;QAAEiD,aAAa,GAAAgD,oBAAA,CAAbhD,aAAa;QAAEC,cAAc,GAAA+C,oBAAA,CAAd/C,cAAc;MACvD,IAAMgD,MAAM,GAAG,IAAI,CAACC,QAAQ,CAACC,SAAS,CAACF,MAAM;MAC7C,IAAMG,OAAO,GAAG,IAAIhJ,aAAa,CAAC6I,MAAM,CAAC;MAEzCG,OAAO,CAACC,SAAS,GAAG9I,aAAa;MACjC6I,OAAO,CAACE,SAAS,GAAG/I,aAAa;MAEjC,IAAI,CAAC+C,IAAI,GAAG2F,MAAM,CAACM,SAAS,CAAC,WAAW,CAAC;MAEzC,IAAMC,SAAS,GAAI,GAAG,GAAG,IAAI,GAAGtD,WAAY;MAC5C,IAAMuD,cAAc,GAAG,IAAI/I,cAAc,CAAC;QACxCgJ,QAAQ,EAAE;UACRvG,GAAG,EAAE;YAAEE,KAAK,EAAE+F;UAAQ,CAAC;UACvBO,WAAW,EAAE;YAAEtG,KAAK,EAAE6C,WAAW,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGA,WAAW,GAAG;UAAE,CAAC;UACrEsD,SAAS,EAAE;YAAEnG,KAAK,EAAEmG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAGA,SAAS,GAAG,IAAI,GAAG,IAAI,GAAGA;UAAU,CAAC;UACjFI,QAAQ,EAAE;YAAEvG,KAAK,EAAE;UAAI,CAAC;UACxBwG,OAAO,EAAE;YAAExG,KAAK,EAAE,IAAI,CAAChB;UAAQ,CAAC;UAChCG,OAAO,EAAE;YAAEa,KAAK,EAAE,IAAI,CAACd;UAAS,CAAC;UACjCuH,MAAM,EAAE;YAAEzG,KAAK,EAAE,IAAI1C,OAAO,CAAC,CAACoC,GAAG,EAAEA,GAAG;UAAE;QAE1C,CAAC;QACDgH,YAAY,EAAE/I,kBAAkB;QAChCgJ,cAAc,EAAEjJ,oBAAoB;QACpCkJ,WAAW,EAAE,IAAI;QACjBC,IAAI,EAAE7J,UAAU;QAChB8J,SAAS,EAAE;MACb,CAAC,CAAC;MAEF,IAAMC,IAAI,GAAG,IAAI9J,IAAI,CAAC,IAAIG,aAAa,CAACuF,aAAa,EAAEC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEwD,cAAc,CAAC;MACjG,IAAAY,gBAAA,GAAiB,IAAI,CAACzD,SAAS;QAAvB3C,CAAC,GAAAoG,gBAAA,CAADpG,CAAC;QAAEC,CAAC,GAAAmG,gBAAA,CAADnG,CAAC;MAEZkG,IAAI,CAACE,QAAQ,CAACrG,CAAC,GAAG,CAACnB,IAAI,CAACyH,EAAE,GAAG,CAAC;MAC9BH,IAAI,CAACxF,QAAQ,CAAC4F,GAAG,CAACvG,CAAC,EAAE,CAAC,EAAEC,CAAC,CAAC;MAC1BkG,IAAI,CAACK,WAAW,GAAG,IAAI;MAEvB,IAAI,CAAC3B,eAAe,GAAGsB,IAAI;MAC3B,IAAI,CAACM,GAAG,CAACN,IAAI,CAAC;IAChB;EAAC;IAAAxH,GAAA;IAAAS,KAAA,EAED,SAAAsH,QAAezH,IAAmB,EAAE;MAAA,IAAA0H,gBAAA,EAAAC,YAAA,EAAAC,gBAAA,EAAAC,aAAA;MAClC,IAAAC,qBAAA,GAA2B,IAAI,CAAC7E,mBAAmB,CAACjD,IAAI,CAAC;QAAjDoD,cAAc,GAAA0E,qBAAA,CAAd1E,cAAc;MACtB,IAAI,CAACpD,IAAI,MAAA4C,MAAA,CAAA7C,kBAAA,CAAOqD,cAAc,GAAArD,kBAAA,CAAKC,IAAI,EAAC;MAExC,IAAM+H,WAAW,GAAG,IAAI,CAAClE,wBAAwB,CAAC,IAAI,CAAC7D,IAAI,CAAC;MAC5D,IAAI,CAAC0E,UAAU,IAAIhH,GAAG,CAACsE,QAAQ,CAAC,IAAI,CAAC1D,YAAY,CAAC,CAAC+G,UAAU,CAACC,aAAa,CAAC0C,WAAW,CAAC,IAAI,CAACtD,UAAU,CAAC;MACxG,IAAI,CAACA,UAAU,GAAG,IAAI,CAACI,YAAY,CAAClF,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQgI,WAAW,CAAC9H,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACa,CAAC;MAAA,EAAC,EAAC,EAAEnB,IAAI,CAACC,GAAG,CAAAC,KAAA,CAARF,IAAI,EAAAG,kBAAA,CAAQgI,WAAW,CAAC9H,GAAG,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,CAACyB,CAAC;MAAA,EAAC,EAAC,CAAC;MAC/H,IAAI,CAACqE,QAAQ,GAAG,IAAI,CAAC1B,iBAAiB,CAAC,CAAC;MAExC,IAAI,CAAC0B,QAAQ,CAACyB,OAAO,CAAC;QACpBzH,IAAI,EAAE+H,WAAW,CAACE,MAAM,CAAC,UAAA/H,IAAI;UAAA,OAAI,CAACA,IAAI,CAACmD,UAAU;QAAA,EAAC;QAClDxD,GAAG,GAAA6H,gBAAA,IAAAC,YAAA,GAAE,IAAI,CAACpI,MAAM,cAAAoI,YAAA,uBAAXA,YAAA,CAAa9H,GAAG,cAAA6H,gBAAA,cAAAA,gBAAA,GAAI,IAAI,CAACQ,UAAU;QACxCzG,GAAG,GAAAmG,gBAAA,IAAAC,aAAA,GAAE,IAAI,CAACtI,MAAM,cAAAsI,aAAA,uBAAXA,aAAA,CAAapG,GAAG,cAAAmG,gBAAA,cAAAA,gBAAA,GAAI;MAC3B,CAAC,CAAC;MAEF,IAAI,CAACjC,oBAAoB,CAAC,CAAC;IAC7B;EAAC;IAAAjG,GAAA;IAAAS,KAAA,EAED,SAAAgI,iBAAA,EAAkC;MAChCC,IAAA,CAAAC,eAAA,CAAArK,OAAA,CAAAsK,SAAA,6BAAA1J,IAAA;MACA,IAAI,IAAI,CAAC2J,MAAM,EAAE;QAAA,IAAAC,qBAAA;QACf9K,GAAG,CAACsE,QAAQ,CAAC,IAAI,CAAC1D,YAAY,CAAC,CAAC+G,UAAU,CAACC,aAAa,CAAC0C,WAAW,CAAC,IAAI,CAACtD,UAAU,CAAC;;QAErF;QACA,CAAA8D,qBAAA,OAAI,CAAC5C,eAAe,cAAA4C,qBAAA,eAApBA,qBAAA,CAAsBC,QAAQ,CAACC,OAAO,CAAC,CAAC;MAC1C;MAEA,OAAO,IAAI;IACb;EAAC;EAAA,OAAA1K,OAAA;AAAA,EAxRmBV,QAAQ;AA2R9B,eAAeU,OAAO"}
@@ -5,9 +5,8 @@
5
5
  * @createTime 2025-08-22
6
6
  * @lastEditTime 2025-08-22
7
7
  */
8
- import ObjectLayer from "../Base/ObjectLayer";
9
- import type { Option } from './type';
10
- import { IPanel } from './type';
8
+ import ObjectLayer from '../Base/ObjectLayer';
9
+ import type { IPanel, Option } from './type';
11
10
  declare class InfoPanel extends ObjectLayer implements IPanel {
12
11
  private _title;
13
12
  private _content;
@@ -25,7 +24,7 @@ declare class InfoPanel extends ObjectLayer implements IPanel {
25
24
  private _group;
26
25
  private _onClose;
27
26
  visible: boolean;
28
- constructor(option: Option);
27
+ constructor(option: Option, sceneControl?: any);
29
28
  private init;
30
29
  private createBox;
31
30
  /** 创建背景 */
@@ -30,9 +30,9 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
30
30
  * @lastEditTime 2025-08-22
31
31
  */
32
32
 
33
- import ObjectLayer from "../Base/ObjectLayer";
34
33
  import _ from 'lodash';
35
34
  import { Group, Vector3, createLabel } from '@anov/3d-core';
35
+ import ObjectLayer from "../Base/ObjectLayer";
36
36
  var DEFAULT_OPTION = {
37
37
  position: [0, 0, 0],
38
38
  type: 'info',
@@ -54,10 +54,10 @@ var DEFAULT_OPTION = {
54
54
  var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
55
55
  _inherits(InfoPanel, _ObjectLayer);
56
56
  var _super = _createSuper(InfoPanel);
57
- function InfoPanel(option) {
57
+ function InfoPanel(option, sceneControl) {
58
58
  var _this;
59
59
  _classCallCheck(this, InfoPanel);
60
- _this = _super.call(this);
60
+ _this = _super.call(this, sceneControl);
61
61
  _defineProperty(_assertThisInitialized(_this), "_title", void 0);
62
62
  _defineProperty(_assertThisInitialized(_this), "_content", void 0);
63
63
  _defineProperty(_assertThisInitialized(_this), "_width", void 0);
@@ -120,22 +120,18 @@ var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
120
120
  value: function createBox() {
121
121
  // 使用 DocumentFragment 减少重排
122
122
  // const fragment = document.createDocumentFragment();
123
- var bgDom = this.createBgDom(); //创建容器盒子
124
- var headerDom = this.createHeaderDom(); //创建头部盒子
123
+ var bgDom = this.createBgDom(); // 创建容器盒子
124
+ var headerDom = this.createHeaderDom(); // 创建头部盒子
125
125
 
126
126
  // 创建内容
127
127
  var contentDom = document.createElement('div');
128
128
  contentDom.className = 'panel-content';
129
- if (typeof this._content.value === 'string') {
130
- contentDom.textContent = this._content.value;
131
- } else if (this._content.value instanceof HTMLElement) {
132
- contentDom.appendChild(this._content.value);
133
- }
129
+ if (typeof this._content.value === 'string') contentDom.textContent = this._content.value;else if (this._content.value instanceof HTMLElement) contentDom.appendChild(this._content.value);
134
130
  var _this$_content = this._content,
135
131
  value = _this$_content.value,
136
132
  contentStyle = _objectWithoutProperties(_this$_content, _excluded);
137
133
  // 正确设置样式的方式
138
- Object.assign(contentDom.style, contentStyle); //待测试
134
+ Object.assign(contentDom.style, contentStyle); // 待测试
139
135
 
140
136
  bgDom.appendChild(headerDom);
141
137
  bgDom.appendChild(contentDom);
@@ -146,11 +142,12 @@ var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
146
142
  this.add(this._group);
147
143
  this.applyPosition(); // 初始化自动定位
148
144
  }
145
+
149
146
  /** 创建背景 */
150
147
  }, {
151
148
  key: "createBgDom",
152
149
  value: function createBgDom() {
153
- //创建容器盒子
150
+ // 创建容器盒子
154
151
  var bgDom = document.createElement('div');
155
152
  Object.assign(bgDom.style, {
156
153
  width: "".concat(this._width, "px"),
@@ -170,6 +167,7 @@ var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
170
167
  if (this._customStyle) Object.assign(bgDom.style, this._customStyle);
171
168
  return bgDom;
172
169
  }
170
+
173
171
  /** 创建头部 */
174
172
  }, {
175
173
  key: "createHeaderDom",
@@ -189,7 +187,7 @@ var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
189
187
  titleValue = _this$_title.value,
190
188
  titleStyle = _objectWithoutProperties(_this$_title, _excluded2);
191
189
  // 正确设置样式的方式
192
- Object.assign(titleDom.style, titleStyle); //待测试
190
+ Object.assign(titleDom.style, titleStyle); // 待测试
193
191
 
194
192
  headerDom.appendChild(titleDom);
195
193
 
@@ -249,9 +247,7 @@ var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
249
247
  // child.element.style.display = 'none';
250
248
  // }
251
249
  // });
252
- if (this._onClose) {
253
- this._onClose();
254
- }
250
+ if (this._onClose) this._onClose();
255
251
  }
256
252
  }, {
257
253
  key: "update",
@@ -276,9 +272,7 @@ var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
276
272
  this.remove(this._group);
277
273
  // 清理DOM引用
278
274
  this._group.children.forEach(function (child) {
279
- if (child.element && child.element.parentNode) {
280
- child.element.parentNode.removeChild(child.element);
281
- }
275
+ if (child.element && child.element.parentNode) child.element.parentNode.removeChild(child.element);
282
276
  });
283
277
  }
284
278
  }]);
@@ -1 +1 @@
1
- {"version":3,"names":["ObjectLayer","_","Group","Vector3","createLabel","DEFAULT_OPTION","position","type","title","value","fontSize","content","width","height","bgColor","borderRadius","closable","padding","InfoPanel","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","params","mergeWith","cloneDeep","_title","_content","_width","_height","_bgColor","_position","_type","_bgUrl","bgUrl","_className","className","_customStyle","customStyle","_borderRadius","_padding","_closeable","_onClose","onClose","Object","assign","_group","visible","init","_createClass","key","createBox","bgDom","createBgDom","headerDom","createHeaderDom","contentDom","document","createElement","textContent","HTMLElement","appendChild","_this$_content","contentStyle","_objectWithoutProperties","_excluded","style","bgObject","set","center","add","applyPosition","concat","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","_this2","display","alignItems","titleDom","flex","_this$_title","titleValue","titleStyle","_excluded2","closeDom","cursor","color","pointerEvents","onclick","close","offset","arguments","length","undefined","Array","isArray","_this$_position","_slicedToArray","x","y","z","open","update","merged","clear","destroy","remove","children","forEach","child","element","parentNode","removeChild"],"sources":["../../../src/business/InfoPanel/index.ts"],"sourcesContent":["/**\n * @file index.ts\n * @description 信息面板\n * @author xingwei\n * @createTime 2025-08-22\n * @lastEditTime 2025-08-22\n */\n\n\nimport ObjectLayer from \"../Base/ObjectLayer\";\nimport _ from 'lodash'\nimport { Group, Vector3, createLabel, CSS2DRenderer, Mesh, SphereGeometry, MeshBasicMaterial } from '@anov/3d-core'\nimport type {Option, TitleOption, ContentOption, PanelType, PanelPosition} from './type'\nimport { IPanel } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n type: 'info',\n title: {\n value: '面板标题',\n fontSize: '20px',\n },\n content: {\n value: '面板内容',\n fontSize: '16px',\n },\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closable: true,\n padding: '10px'\n}\n\nclass InfoPanel extends ObjectLayer implements IPanel{\n private _title: TitleOption\n private _content: ContentOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\n private _type: PanelType\n private _borderRadius: number = 10\n private _bgUrl: string\n private _className: string\n private _customStyle: any\n private _closeable: boolean\n private _padding: string \n private _group: Group\n private _onClose: Function\n visible: boolean = false;\n\n constructor(option: Option) {\n super();\n const params = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option)\n const {\n title: _title,\n content: _content,\n width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n type: _type,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closable: _closeable,\n onClose: _onClose\n } = params;\n\n Object.assign(this, {\n _title, _content, _width, _height, _bgColor, _position, _type,\n _bgUrl, _className, _customStyle, _borderRadius, _padding,_closeable, _onClose\n });\n \n this._group = new Group()\n this._group.visible = this.visible\n this.init()\n }\n private init(){\n this.createBox()\n \n }\n\n\n private createBox(){\n\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() //创建容器盒子\n const headerDom = this.createHeaderDom() //创建头部盒子\n\n\n // 创建内容\n const contentDom = document.createElement('div')\n contentDom.className = 'panel-content'\n if(typeof this._content.value === 'string'){\n contentDom.textContent = this._content.value\n }else if(this._content.value instanceof HTMLElement){\n contentDom.appendChild(this._content.value)\n }\n \n const {value, ...contentStyle} = this._content\n // 正确设置样式的方式\n Object.assign(contentDom.style, contentStyle) //待测试\n\n bgDom.appendChild(headerDom)\n bgDom.appendChild(contentDom)\n\n\n const bgObject = createLabel(bgDom);\n bgObject.position.set(0, 0, 0);\n bgObject.center.set(0, 0);\n\n this._group.add(bgObject);\n\n this.add(this._group)\n this.applyPosition(); // 初始化自动定位\n }\n /** 创建背景 */\n private createBgDom(){\n //创建容器盒子\n const bgDom = document.createElement('div');\n Object.assign(bgDom.style, {\n width: `${this._width}px`,\n height: `${this._height}px`,\n // left: `${this._position[0]}px`,\n // top: `${this._position[1]}px`,\n overflow: 'hidden',\n padding: this._padding,\n borderRadius: this._bgUrl ? '' : `${this._borderRadius}px`,\n backgroundColor: this._bgUrl ? '' : this._bgColor,\n backgroundImage: this._bgUrl ? `url(${this._bgUrl})` : '',\n backgroundSize: this._bgUrl ? 'contain' : '',\n backgroundRepeat: this._bgUrl ? 'no-repeat' : '',\n boxSizing: 'border-box'\n \n });\n if (this._className) bgDom.className = this._className;\n if (this._customStyle) Object.assign(bgDom.style, this._customStyle);\n return bgDom;\n }\n /** 创建头部 */\n private createHeaderDom(){\n const headerDom = document.createElement('div')\n headerDom.className = 'panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n // 创建标题\n const titleDom = document.createElement('p')\n titleDom.className = 'panel-title'\n titleDom.style.display = 'flex'\n titleDom.style.flex = '1'\n titleDom.textContent = this._title.value\n const {value: titleValue, ...titleStyle} = this._title\n // 正确设置样式的方式\n Object.assign(titleDom.style, titleStyle) //待测试\n\n headerDom.appendChild(titleDom)\n\n // 创建关闭按钮\n if(this._closeable){\n const closeDom = document.createElement('div')\n closeDom.className = 'panel-close'\n closeDom.style.cursor = 'pointer'\n closeDom.style.fontSize = this._title.fontSize\n closeDom.style.color = this._title.color\n closeDom.textContent = 'x'\n closeDom.style.pointerEvents = 'auto'\n closeDom.onclick = () => {\n this.close()\n }\n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n\n /** 自动定位面板 */\n private applyPosition(offset: Vector3 = new Vector3(0, 0, 0)) {\n if (Array.isArray(this._position)) {\n // 如果是数组 [x, y]\n const [x, y, z] = this._position;\n this._group.position.set(x, y, z); // 注意y轴取反\n }\n }\n\n public open(){\n this.visible = true\n this._group.visible = true;\n\n // 同步 DOM 节点显示\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'block';\n // }\n // });\n }\n public close(){\n this.visible = false\n this._group.visible = false;\n\n // 同步 DOM 节点隐藏\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'none';\n // }\n // });\n if(this._onClose){\n this._onClose()\n }\n }\n public update(option: Option){\n const merged = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option);\n this._title = merged.title;\n this._content = merged.content;\n this._width = merged.width;\n this._height = merged.height;\n this._bgColor = merged.bgColor;\n this._borderRadius = merged.borderRadius || 0;\n this._bgUrl = merged.bgUrl;\n this._className = merged.className;\n this._customStyle = merged.style;\n\n this._group.clear();\n this.init();\n }\n destroy(): void {\n this._group.clear();\n this.remove(this._group)\n // 清理DOM引用\n this._group.children.forEach((child: any) => {\n if (child.element && child.element.parentNode) {\n child.element.parentNode.removeChild(child.element);\n }\n });\n }\n}\n\nexport {InfoPanel}"],"mappings":"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"}
1
+ {"version":3,"names":["_","Group","Vector3","createLabel","ObjectLayer","DEFAULT_OPTION","position","type","title","value","fontSize","content","width","height","bgColor","borderRadius","closable","padding","InfoPanel","_ObjectLayer","_inherits","_super","_createSuper","option","sceneControl","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","params","mergeWith","cloneDeep","_title","_content","_width","_height","_bgColor","_position","_type","_bgUrl","bgUrl","_className","className","_customStyle","customStyle","_borderRadius","_padding","_closeable","_onClose","onClose","Object","assign","_group","visible","init","_createClass","key","createBox","bgDom","createBgDom","headerDom","createHeaderDom","contentDom","document","createElement","textContent","HTMLElement","appendChild","_this$_content","contentStyle","_objectWithoutProperties","_excluded","style","bgObject","set","center","add","applyPosition","concat","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","_this2","display","alignItems","titleDom","flex","_this$_title","titleValue","titleStyle","_excluded2","closeDom","cursor","color","pointerEvents","onclick","close","offset","arguments","length","undefined","Array","isArray","_this$_position","_slicedToArray","x","y","z","open","update","merged","clear","destroy","remove","children","forEach","child","element","parentNode","removeChild"],"sources":["../../../src/business/InfoPanel/index.ts"],"sourcesContent":["/**\n * @file index.ts\n * @description 信息面板\n * @author xingwei\n * @createTime 2025-08-22\n * @lastEditTime 2025-08-22\n */\n\nimport _ from 'lodash'\nimport { Group, Vector3, createLabel } from '@anov/3d-core'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { ContentOption, IPanel, Option, PanelType, TitleOption } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n type: 'info',\n title: {\n value: '面板标题',\n fontSize: '20px',\n },\n content: {\n value: '面板内容',\n fontSize: '16px',\n },\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closable: true,\n padding: '10px',\n}\n\nclass InfoPanel extends ObjectLayer implements IPanel {\n private _title: TitleOption\n private _content: ContentOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\n private _type: PanelType\n private _borderRadius = 10\n private _bgUrl: string\n private _className: string\n private _customStyle: any\n private _closeable: boolean\n private _padding: string\n private _group: Group\n private _onClose: Function\n visible = false\n\n constructor(option: Option, sceneControl?: any) {\n super(sceneControl)\n const params = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option)\n const {\n title: _title,\n content: _content,\n width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n type: _type,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closable: _closeable,\n onClose: _onClose,\n } = params\n\n Object.assign(this, {\n _title,\n _content,\n _width,\n _height,\n _bgColor,\n _position,\n _type,\n _bgUrl,\n _className,\n _customStyle,\n _borderRadius,\n _padding,\n _closeable,\n _onClose,\n })\n\n this._group = new Group()\n this._group.visible = this.visible\n this.init()\n }\n\n private init() {\n this.createBox()\n }\n\n private createBox() {\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() // 创建容器盒子\n const headerDom = this.createHeaderDom() // 创建头部盒子\n\n // 创建内容\n const contentDom = document.createElement('div')\n contentDom.className = 'panel-content'\n if (typeof this._content.value === 'string')\n contentDom.textContent = this._content.value\n\n else if (this._content.value instanceof HTMLElement)\n contentDom.appendChild(this._content.value)\n\n const { value, ...contentStyle } = this._content\n // 正确设置样式的方式\n Object.assign(contentDom.style, contentStyle) // 待测试\n\n bgDom.appendChild(headerDom)\n bgDom.appendChild(contentDom)\n\n const bgObject = createLabel(bgDom)\n bgObject.position.set(0, 0, 0)\n bgObject.center.set(0, 0)\n\n this._group.add(bgObject)\n\n this.add(this._group)\n this.applyPosition() // 初始化自动定位\n }\n\n /** 创建背景 */\n private createBgDom() {\n // 创建容器盒子\n const bgDom = document.createElement('div')\n Object.assign(bgDom.style, {\n width: `${this._width}px`,\n height: `${this._height}px`,\n // left: `${this._position[0]}px`,\n // top: `${this._position[1]}px`,\n overflow: 'hidden',\n padding: this._padding,\n borderRadius: this._bgUrl ? '' : `${this._borderRadius}px`,\n backgroundColor: this._bgUrl ? '' : this._bgColor,\n backgroundImage: this._bgUrl ? `url(${this._bgUrl})` : '',\n backgroundSize: this._bgUrl ? 'contain' : '',\n backgroundRepeat: this._bgUrl ? 'no-repeat' : '',\n boxSizing: 'border-box',\n\n })\n if (this._className)\n bgDom.className = this._className\n if (this._customStyle)\n Object.assign(bgDom.style, this._customStyle)\n return bgDom\n }\n\n /** 创建头部 */\n private createHeaderDom() {\n const headerDom = document.createElement('div')\n headerDom.className = 'panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n // 创建标题\n const titleDom = document.createElement('p')\n titleDom.className = 'panel-title'\n titleDom.style.display = 'flex'\n titleDom.style.flex = '1'\n titleDom.textContent = this._title.value\n const { value: titleValue, ...titleStyle } = this._title\n // 正确设置样式的方式\n Object.assign(titleDom.style, titleStyle) // 待测试\n\n headerDom.appendChild(titleDom)\n\n // 创建关闭按钮\n if (this._closeable) {\n const closeDom = document.createElement('div')\n closeDom.className = 'panel-close'\n closeDom.style.cursor = 'pointer'\n closeDom.style.fontSize = this._title.fontSize\n closeDom.style.color = this._title.color\n closeDom.textContent = 'x'\n closeDom.style.pointerEvents = 'auto'\n closeDom.onclick = () => {\n this.close()\n }\n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n\n /** 自动定位面板 */\n private applyPosition(offset: Vector3 = new Vector3(0, 0, 0)) {\n if (Array.isArray(this._position)) {\n // 如果是数组 [x, y]\n const [x, y, z] = this._position\n this._group.position.set(x, y, z) // 注意y轴取反\n }\n }\n\n public open() {\n this.visible = true\n this._group.visible = true\n\n // 同步 DOM 节点显示\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'block';\n // }\n // });\n }\n\n public close() {\n this.visible = false\n this._group.visible = false\n\n // 同步 DOM 节点隐藏\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'none';\n // }\n // });\n if (this._onClose)\n this._onClose()\n }\n\n public update(option: Option) {\n const merged = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option)\n this._title = merged.title\n this._content = merged.content\n this._width = merged.width\n this._height = merged.height\n this._bgColor = merged.bgColor\n this._borderRadius = merged.borderRadius || 0\n this._bgUrl = merged.bgUrl\n this._className = merged.className\n this._customStyle = merged.style\n\n this._group.clear()\n this.init()\n }\n\n destroy(): void {\n this._group.clear()\n this.remove(this._group)\n // 清理DOM引用\n this._group.children.forEach((child: any) => {\n if (child.element && child.element.parentNode)\n child.element.parentNode.removeChild(child.element)\n })\n }\n}\n\nexport { InfoPanel }"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/business/InfoPanel/type.ts"],"sourcesContent":["\nexport interface IPanel {\n /** 打开面板 */\n open: () => void;\n /** 关闭面板 */\n close: () => void;\n /** 更新面板 */\n update: (option: Option) => void;\n /** 销毁面板 */\n destroy: () => void;\n}\n\n// 面板配置项\nexport type Option = Partial<{\n position: Array<number>; // 位置\n type: PanelType; // 类型\n title: TitleOption; // 标题\n content: ContentOption; // 内容\n width: number; // 宽度\n height: number; // 高度\n bgColor: string; // 背景颜色\n bgUrl: string; // 背景图片\n borderRadius: number; // 圆角\n padding: string; // 内边距\n closeable: boolean; // 是否显示关闭按钮\n className: string; // 自定义类名\n customStyle: object; // 自定义样式\n onClose: () => void; // 关闭回调\n}>\n\n// 面板位置\nexport type PanelPosition = 'left' | 'right' | 'top' | 'bottom' | 'center';\n\n// 面板类型\nexport type PanelType = 'info' | 'warning' | 'error' | 'success';\n\n// 标题\nexport type TitleOption = Partial<{\n value: string;\n fontSize: string;\n color: string;\n fontFamily: string;\n fontWeight: number;\n lineHeight: number | string;\n textAlign: string;\n padding: string;\n margin: string;\n icon: string;\n}>\n\n// 内容\nexport type ContentOption = Partial<{\n value: string | HTMLElement;\n fontSize: string;\n color: string;\n fontFamily: string;\n fontWeight: number;\n lineHeight: string;\n textAlign: string;\n padding: string;\n margin: string;\n textIndent: string;\n}>\n\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/business/InfoPanel/type.ts"],"sourcesContent":["export interface IPanel {\n /** 打开面板 */\n open: () => void\n /** 关闭面板 */\n close: () => void\n /** 更新面板 */\n update: (option: Option) => void\n /** 销毁面板 */\n destroy: () => void\n}\n\n// 面板配置项\nexport type Option = Partial<{\n position: Array<number> // 位置\n type: PanelType // 类型\n title: TitleOption // 标题\n content: ContentOption // 内容\n width: number // 宽度\n height: number // 高度\n bgColor: string // 背景颜色\n bgUrl: string // 背景图片\n borderRadius: number // 圆角\n padding: string // 内边距\n closeable: boolean // 是否显示关闭按钮\n className: string // 自定义类名\n customStyle: object // 自定义样式\n onClose: () => void // 关闭回调\n}>\n\n// 面板位置\nexport type PanelPosition = 'left' | 'right' | 'top' | 'bottom' | 'center'\n\n// 面板类型\nexport type PanelType = 'info' | 'warning' | 'error' | 'success'\n\n// 标题\nexport type TitleOption = Partial<{\n value: string\n fontSize: string\n color: string\n fontFamily: string\n fontWeight: number\n lineHeight: number | string\n textAlign: string\n padding: string\n margin: string\n icon: string\n}>\n\n// 内容\nexport type ContentOption = Partial<{\n value: string | HTMLElement\n fontSize: string\n color: string\n fontFamily: string\n fontWeight: number\n lineHeight: string\n textAlign: string\n padding: string\n margin: string\n textIndent: string\n}>\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
+ import type { SceneControl, Line as TLine } from '@anov/3d-core';
1
2
  import ObjectLayer from '../Base/ObjectLayer';
2
3
  import type { options } from './types';
3
- import { ILine } from './interface';
4
- import type { Line as TLine } from '@anov/3d-core';
4
+ import type { ILine } from './interface';
5
5
  export declare class Line extends ObjectLayer implements ILine {
6
6
  private line;
7
- constructor(options: options);
7
+ constructor(options: options, sceneControl: SceneControl);
8
8
  createLine(options: options): TLine;
9
9
  /** 更新线条 */
10
10
  updateLine(options: options): void;