@anov/3d-ability 0.0.142 → 0.0.144

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 (257) hide show
  1. package/dist/business/Animation/motion/index.js +56 -35
  2. package/dist/business/Animation/motion/index.js.map +1 -1
  3. package/dist/business/Animation/type.js +2 -2
  4. package/dist/business/Area/Fence/FenceBase.js +187 -146
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +112 -120
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +130 -140
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +483 -267
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +26 -14
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +46 -21
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +234 -189
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +81 -52
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +79 -51
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +21 -7
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +162 -96
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +291 -208
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +22 -8
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +467 -380
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +525 -405
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +3 -69
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +242 -201
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +88 -55
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +176 -145
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +294 -196
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +3 -36
  55. package/dist/business/Mark/shader/tanhao.js.map +1 -1
  56. package/dist/business/Mark/type.js +1 -1
  57. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +551 -377
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +58 -92
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +16 -95
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +78 -51
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.js +336 -248
  72. package/dist/business/Poi/index.js.map +1 -1
  73. package/dist/business/Poi/link/Cylinder.js +89 -56
  74. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  75. package/dist/business/Poi/link/Pyramid.js +165 -104
  76. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  77. package/dist/business/Poi/link/index.d.ts +1 -1
  78. package/dist/business/Poi/link/index.js +114 -54
  79. package/dist/business/Poi/link/index.js.map +1 -1
  80. package/dist/business/Poi/panel/index.js +373 -315
  81. package/dist/business/Poi/panel/index.js.map +1 -1
  82. package/dist/business/Poi/panel/utils.js +10 -5
  83. package/dist/business/Poi/panel/utils.js.map +1 -1
  84. package/dist/business/Poi/particle/DoubleCircle.js +107 -71
  85. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  86. package/dist/business/Poi/particle/DynamicCircle.js +111 -75
  87. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  88. package/dist/business/Poi/particle/SingleCircle.js +98 -62
  89. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  90. package/dist/business/Poi/particle/index.js +117 -49
  91. package/dist/business/Poi/particle/index.js.map +1 -1
  92. package/dist/business/Poi/shader/circle.js +3 -31
  93. package/dist/business/Poi/shader/circle.js.map +1 -1
  94. package/dist/business/Poi/shader/cylinder.js +3 -37
  95. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  96. package/dist/business/Poi/shader/doubleCircle.js +3 -55
  97. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  98. package/dist/business/Poi/shader/dynamicCircle.js +3 -67
  99. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  100. package/dist/business/Poi/title/Border.js +27 -7
  101. package/dist/business/Poi/title/Border.js.map +1 -1
  102. package/dist/business/Poi/title/Ellipse.js +27 -7
  103. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  104. package/dist/business/Poi/title/index.js +292 -208
  105. package/dist/business/Poi/title/index.js.map +1 -1
  106. package/dist/business/Poi/tools.js +17 -18
  107. package/dist/business/Poi/tools.js.map +1 -1
  108. package/dist/business/Sphere/index.js +72 -47
  109. package/dist/business/Sphere/index.js.map +1 -1
  110. package/dist/business/Spline/index.js +245 -190
  111. package/dist/business/Spline/index.js.map +1 -1
  112. package/dist/business/SplitBuilding/index.js +536 -327
  113. package/dist/business/SplitBuilding/index.js.map +1 -1
  114. package/dist/business/SplitBuilding/type.js +2 -2
  115. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
  116. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  117. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
  118. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  119. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
  120. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  121. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
  122. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  123. package/dist/business/TrafficComponents/base.js +55 -32
  124. package/dist/business/TrafficComponents/base.js.map +1 -1
  125. package/dist/business/TrafficComponents/utils.js +24 -25
  126. package/dist/business/TrafficComponents/utils.js.map +1 -1
  127. package/dist/business/Utils/Curve.js +56 -40
  128. package/dist/business/Utils/Curve.js.map +1 -1
  129. package/dist/business/Utils/constant.js +1 -1
  130. package/dist/business/Utils/constant.js.map +1 -1
  131. package/dist/business/Utils/defineProps.js +14 -13
  132. package/dist/business/Utils/defineProps.js.map +1 -1
  133. package/dist/business/Utils/round-curve.js +153 -127
  134. package/dist/business/Utils/round-curve.js.map +1 -1
  135. package/dist/business/VideoPanel/index.js +319 -258
  136. package/dist/business/VideoPanel/index.js.map +1 -1
  137. package/dist/business/Water/index.js +108 -78
  138. package/dist/business/Water/index.js.map +1 -1
  139. package/dist/business/Water/types.js +1 -1
  140. package/dist/business/Water/types.js.map +1 -1
  141. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +449 -383
  142. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  143. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
  144. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  145. package/dist/core/Controls/FirstViewControl/index.js +96 -84
  146. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  147. package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
  148. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  149. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  150. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  151. package/dist/core/Controls/ThirdViewControl/index.js +28 -19
  152. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  153. package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
  154. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  155. package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
  156. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  157. package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
  158. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  159. package/dist/core/Controls/ThirdViewControl/player.js +91 -66
  160. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  161. package/dist/core/Controls/base.js +30 -14
  162. package/dist/core/Controls/base.js.map +1 -1
  163. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
  164. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  165. package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
  166. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  167. package/dist/core/Light/PointLight/PointLightExt.js +21 -4
  168. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  169. package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
  170. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  171. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
  172. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  173. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
  174. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  175. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
  176. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  177. package/dist/core/Material/SurfaceMaterial/index.js +172 -76
  178. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  179. package/dist/core/Material/decorators.js +11 -6
  180. package/dist/core/Material/decorators.js.map +1 -1
  181. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
  182. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  183. package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
  184. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  185. package/dist/core/PostEffects/bloomPass.js +10 -17
  186. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  187. package/dist/core/PostEffects/bloomSelect.js +43 -60
  188. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  189. package/dist/core/PostEffects/colorifyPass.js +13 -17
  190. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  191. package/dist/core/PostEffects/index.js +22 -28
  192. package/dist/core/PostEffects/index.js.map +1 -1
  193. package/dist/core/PostEffects/outlinePass.js +50 -37
  194. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  195. package/dist/core/PostEffects/postprocessing.js +12 -14
  196. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  197. package/dist/core/PostEffects/saoPass.js +10 -15
  198. package/dist/core/PostEffects/saoPass.js.map +1 -1
  199. package/dist/core/PostEffects/shader/colorify.js +3 -22
  200. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  201. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
  202. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  203. package/dist/core/PostEffects/shader/mapping.js +3 -66
  204. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  205. package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
  206. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  207. package/dist/core/SceneEffect/grow/grow.js +101 -85
  208. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  209. package/dist/core/SceneEffect/grow/style_down.js +77 -60
  210. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  211. package/dist/core/SceneEffect/grow/style_up.js +81 -64
  212. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  213. package/dist/core/SceneEffect/grow/type.js +2 -2
  214. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  215. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +76 -51
  216. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  217. package/dist/core/WeatherSystem/hdr/index.js +105 -69
  218. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  219. package/dist/core/WeatherSystem/index.js +124 -77
  220. package/dist/core/WeatherSystem/index.js.map +1 -1
  221. package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
  222. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  223. package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
  224. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  225. package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
  226. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  227. package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
  228. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  229. package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
  230. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  231. package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
  232. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  233. package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
  234. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  235. package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
  236. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  237. package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
  238. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  239. package/dist/core/WeatherSystem/shaders/fog.js +3 -103
  240. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  241. package/dist/core/WeatherSystem/shaders/rain.js +7 -206
  242. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  243. package/dist/core/WeatherSystem/shaders/sky.js +3 -87
  244. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  245. package/dist/core/WeatherSystem/sky/index.js +135 -104
  246. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  247. package/dist/core/WeatherSystem/utils/constant.js +38 -44
  248. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  249. package/dist/core/WeatherSystem/utils/math.js +25 -18
  250. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  251. package/dist/core/WeatherSystem/utils/type.js +1 -1
  252. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  253. package/dist/core/WeatherSystem/weather/index.js +141 -96
  254. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  255. package/dist/utils/index.js +1 -1
  256. package/dist/utils/index.js.map +1 -1
  257. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["CSS3DObject","Vector3","MathUtils","ObjectLayer","clampAlign","parseWeight","parseStyle","num","color","sanitizeUrl","arr2","arr3","rep","setStyles","arr4","defaults","text","value","fontSize","fontWeight","fontStyle","offset","align","spacing","bgUrl","hsl","bgNineSlice","enabled","slice","width","repeat","fill","radius","bgSlice","content","visible","size","scale","userScale3","pixelLock","billboard","anchor","InfoPanel","constructor","cfg","_defineProperty","config","JSON","parse","stringify","updateConfig","container","document","createElement","titleEl","contentEl","innerWrap","position","left","top","transform","pointerEvents","appendChild","_cssObject","add","applyStyle","t","c","ns","Array","isArray","length","sx","sy","sz","s","bb","ac","setPosition","x","y","z","set","setRotation","rotation","setScale","setScalar","setBillboard","mode","m","setVisible","v","display","boxSizing","transformOrigin","backgroundRepeat","backgroundPosition","backfaceVisibility","padding","pxW","pxH","height","minWidth","minHeight","style","bottom","textContent","textAlign","letterSpacing","whiteSpace","overflow","textOverflow","marginLeft","marginTop","wordBreak","hasBgUrl","w","wClamped","Math","min","borderStyle","borderWidth","borderImageSource","borderImageSlice","borderImageRepeat","backgroundImage","borderRadius","backgroundSize","filter","update","updateFacing","camera","objPos","_tmpObjPos","camPos","_tmpCamPos","getWorldPosition","lookAt","dx","dz","yaw","atan2","updateDynamicScale","viewportWidth","window","innerWidth","viewportHeight","innerHeight","camDir","_tmpCamDir","getWorldDirection","d","clone","sub","dot","fovRad","degToRad","fov","worldPerPixelY","tan","worldPerPixelX","aspect","userScale","Number","isFinite","MAX_S","MIN_S","max","dispose","parent","remove","getWorldSize","wpx","offsetWidth","hpx","offsetHeight"],"sources":["../../../../src/business/Poi/panel/index.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-11-27 15:14:21\n * @LastEditors: 周志国\n * @LastEditTime: 2025-12-01 15:44:33\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Poi/panel/index.ts\n */\nimport { CSS3DObject, Vector3, MathUtils, type PerspectiveCamera } from '@anov/3d-core'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport { clampAlign, parseWeight, parseStyle, num, color, sanitizeUrl, arr2, arr3, rep, setStyles, arr4 } from './utils'\nimport { InfoPanelConfig,InfoPanelUpdateConfig,NineSliceConfig} from './interfaces'\n/**\n * 文件概览\n * InfoPanel 是一个基于 CSS3DObject 的信息面板组件,用于在三维场景中以“屏幕像素”为基础进行排版和渲染。\n * - 最小像素尺寸通过 `size` 指定(默认 320x180),容器会随内容自适应增大。\n * - `pixelLock` 为 true 时,面板会随相机距离自动缩放以保持屏幕像素大小恒定。\n * - `scale`/`userScale3` 提供统一或非均匀的用户缩放,参与最终缩放计算。\n * - `billboard` 支持朝向相机(`yaw` 或 `full`),用于看板效果。\n */\n\n\n\n/**\n * 组件默认配置。\n * - text: 标题(主文本)相关样式与背景设置\n * - content: 副文本显示与样式\n * - size: 面板最小像素尺寸 `[width, height]`\n * - scale: 统一用户缩放系数(>0)\n * - userScale3: 非均匀用户缩放 `[sx, sy, sz]`,与 `scale` 相乘\n * - pixelLock: 是否锁定屏幕像素尺寸\n * - billboard: 看板模式('none'|'yaw'|'full')\n * - anchor: 面板锚点('top'|'center'|'bottom')\n */\nconst defaults: InfoPanelConfig = {\n text: {\n value: '',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n fontStyle: 'normal',\n offset: [0, 0] as [number, number],\n align: 'left',\n spacing: 0,\n bgUrl: '',\n hsl: [200, 120, 80],\n bgNineSlice: {\n enabled: true,\n slice: [65, 92, 27, 17] as [number, number, number, number],\n width: [65, 92, 27, 17] as [number, number, number, number],\n repeat: 'stretch',\n fill: true,\n radius: 0\n },\n bgSlice: [65, 92, 27, 17] as [number, number, number, number],\n },\n content: {\n visible: false,\n value: '',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n fontStyle: 'normal',\n align: 'left',\n offset: [0, 0] as [number, number],\n spacing: 0\n },\n // 默认面板像素尺寸(宽度,高度)\n size: [320, 180] as [number, number],\n scale: 1,\n // 非均匀用户缩放(来自外部 scale: [x,y,z])\n userScale3: [1, 1, 1] as [number, number, number],\n // 屏幕像素锁定:保持屏幕像素尺寸恒定\n pixelLock: true,\n billboard: 'none',\n anchor: 'top'\n}\n\n/**\n * InfoPanel\n * 一个基于 CSS3DObject 的三维信息面板。面板的排版以像素为单位,\n * 并可根据相机参数在 3D 世界中动态映射为适当的世界尺寸。\n *\n * 关键特性:\n * - 像素锁定(`pixelLock`):保证屏幕像素尺寸恒定的看板效果。\n * - 动态缩放(`updateDynamicScale`):实时根据相机 FOV、距离、视口宽高计算世界尺度。\n * - 看板模式(`billboard`):支持水平(yaw)和全方位(full)朝向相机。\n * - 自定义缩放(`scale` 与 `userScale3`):统一与非均匀缩放相乘得到最终缩放。\n *\n * 用法概览:\n * const panel = new InfoPanel({\n * text: { value: 'POI A', fontSize: 18 },\n * size: [320, 180],\n * scale: 1,\n * pixelLock: true,\n * billboard: 'yaw',\n * anchor: 'top'\n * });\n * panel.updateDynamicScale(camera);\n */\nexport default class InfoPanel extends ObjectLayer {\n // 新增字段声明,修复类型报错\n /**\n * 内部状态与元素引用\n * - config: 当前配置(已合并 defaults 与外部传入)\n * - container: 面板根容器(用于 CSS3DObject 承载)\n * - titleEl: 标题元素\n * - contentEl: 内容元素(可选)\n * - innerWrap: 内部包裹,用于实现锚点与偏移\n * - _cssObject: three.js CSS3DObject(加入到 scene graph)\n */\n private config: InfoPanelConfig\n private container: HTMLDivElement\n private titleEl: HTMLDivElement\n private contentEl: HTMLDivElement\n private innerWrap: HTMLDivElement\n private _cssObject: CSS3DObject\n // 复用的临时向量,避免频繁创建对象\n private _tmpObjPos: Vector3 = new Vector3()\n private _tmpCamPos: Vector3 = new Vector3()\n private _tmpCamDir: Vector3 = new Vector3()\n\n /**\n * 构造函数\n * @param cfg 外部配置对象;仅识别本组件支持的字段,其他字段会忽略\n */\n constructor(cfg: InfoPanelUpdateConfig = {}) {\n super()\n this.config = JSON.parse(JSON.stringify(defaults))\n this.updateConfig(cfg)\n this.container = document.createElement('div')\n this.titleEl = document.createElement('div')\n this.contentEl = document.createElement('div')\n this.innerWrap = document.createElement('div')\n // 内层包裹用于布局,默认采用容器左上角为参考点\n setStyles(this.innerWrap, {\n position: 'relative',\n left: '0',\n top: '0',\n transform: 'none',\n pointerEvents: 'auto',\n })\n this.innerWrap.appendChild(this.titleEl)\n this.innerWrap.appendChild(this.contentEl)\n this.container.appendChild(this.innerWrap)\n // 将 CSS3DObject 作为子节点添加,而非赋值到 this.object3D\n this._cssObject = new CSS3DObject(this.container)\n this.add(this._cssObject)\n this.applyStyle()\n }\n\n /**\n * 将传入的配置与默认值合并并规范化。\n * - 自动处理文本样式、九宫格背景、可见性、对齐与偏移。\n * - `scale`: 支持数值(统一缩放)或长度为 3 的数组(非均匀缩放)。\n * - `pixelLock`: 是否锁定屏幕像素尺寸。\n * - `anchor`: 面板锚点。\n * @param cfg 配置对象\n */\n updateConfig(cfg: InfoPanelUpdateConfig = {}) {\n const t = cfg.text || {}\n const c = cfg.content || {}\n this.config.text.value = typeof t.value === 'string' ? t.value : this.config.text.value\n this.config.text.fontSize = num(t.fontSize, this.config.text.fontSize)\n this.config.text.color = color(t.color, this.config.text.color)\n this.config.text.fontWeight = parseWeight(t.fontWeight || this.config.text.fontWeight)\n this.config.text.fontStyle = parseStyle(t.fontStyle || this.config.text.fontStyle)\n this.config.text.offset = arr2(t.offset, this.config.text.offset) as [number, number]\n this.config.text.align = clampAlign(t.align || this.config.text.align)\n this.config.text.spacing = num(t.spacing, this.config.text.spacing)\n this.config.text.bgUrl = typeof t.bgUrl === 'string' ? sanitizeUrl(t.bgUrl) : this.config.text.bgUrl\n this.config.text.hsl = arr3(t.hsl, this.config.text.hsl).slice(0, 3) as [number, number, number]\n const ns: Partial<NineSliceConfig> = t.bgNineSlice || {}\n this.config.text.bgNineSlice.enabled = typeof ns.enabled === 'boolean' ? ns.enabled : this.config.text.bgNineSlice.enabled\n this.config.text.bgNineSlice.slice = arr4(ns.slice||t.bgSlice, this.config.text.bgNineSlice.slice) as [number, number, number, number]\n this.config.text.bgNineSlice.width = arr4(ns.width||t.bgSlice, this.config.text.bgNineSlice.width) as [number, number, number, number]\n this.config.text.bgNineSlice.repeat = rep(ns.repeat || this.config.text.bgNineSlice.repeat) as NineSliceConfig['repeat']\n this.config.text.bgNineSlice.fill = typeof ns.fill === 'boolean' ? ns.fill : this.config.text.bgNineSlice.fill\n this.config.text.bgNineSlice.radius = num(ns.radius, this.config.text.bgNineSlice.radius)\n this.config.content.visible = typeof c.visible === 'boolean' ? c.visible : this.config.content.visible\n this.config.content.value = typeof c.value === 'string' ? c.value : this.config.content.value\n this.config.content.fontSize = num(c.fontSize, this.config.content.fontSize)\n this.config.content.color = color(c.color, this.config.content.color)\n this.config.content.fontWeight = parseWeight(c.fontWeight || this.config.content.fontWeight)\n this.config.content.fontStyle = parseStyle(c.fontStyle || this.config.content.fontStyle)\n this.config.content.align = clampAlign(c.align || this.config.content.align)\n this.config.content.offset = arr2(c.offset, this.config.content.offset) as [number, number]\n this.config.content.spacing = num(c.spacing, this.config.content.spacing)\n // 支持数值或数组。数值作为统一倍数,数组作为非均匀倍数\n if (Array.isArray(cfg.scale) && cfg.scale.length === 3) {\n const sx = num(cfg.scale[0], this.config.userScale3[0])\n const sy = num(cfg.scale[1], this.config.userScale3[1])\n const sz = num(cfg.scale[2], this.config.userScale3[2])\n this.config.userScale3 = [sx, sy, sz]\n } else {\n const s = num(cfg.scale, this.config.scale)\n // 用户缩放因子:仅作为乘数,不参与单位换算\n this.config.scale = s > 0 ? s : this.config.scale\n }\n const bb = (cfg.billboard || this.config.billboard)\n this.config.billboard = bb === 'yaw' || bb === 'full' ? bb : 'none'\n // 面板尺寸可通过 cfg.size 指定,否则使用默认尺寸\n this.config.size = arr2(cfg.size, this.config.size) as [number, number]\n // 屏幕像素锁定\n this.config.pixelLock = !!(typeof cfg.pixelLock === 'boolean' ? cfg.pixelLock : this.config.pixelLock)\n // 面板锚点\n const ac = cfg.anchor || this.config.anchor\n this.config.anchor = ac === 'top' || ac === 'center' || ac === 'bottom' ? ac : 'bottom'\n }\n\n /**\n * 设置面板世界坐标(应用到 CSS3DObject)。\n */\n setPosition(x: number, y: number, z: number): void {\n this._cssObject.position.set(x, y, z)\n }\n\n /**\n * 设置面板世界旋转(欧拉角,单位:弧度)。\n */\n setRotation(x: number, y: number, z: number): void {\n this._cssObject.rotation.set(x, y, z)\n }\n\n /**\n * 设置统一缩放因子(立即应用到 CSS3DObject)。\n * 注意:若使用 `updateDynamicScale`,每帧会覆盖此值。\n */\n setScale(s: number): void {\n this._cssObject.scale.setScalar(s)\n }\n\n /**\n * 设置看板模式。\n * @param mode 'none' | 'yaw' | 'full'\n */\n setBillboard(mode: 'none' | 'yaw' | 'full'): void {\n const m = mode === 'yaw' || mode === 'full' ? mode : 'none'\n this.config.billboard = m\n }\n\n /**\n * 设置可见性。\n * @param v 是否可见\n */\n setVisible(v: boolean): void {\n this._cssObject.visible = !!v\n }\n\n /**\n * 应用所有样式与文本到 DOM。\n * 仅影响面板的排版与外观,不涉及 3D 变换。\n */\n applyStyle(): void {\n const t = this.config.text\n const c = this.config.content\n // 基础容器样式,确保可见尺寸与居中锚点\n setStyles(this.container, {\n display: 'inline-block',\n boxSizing: 'border-box',\n transformOrigin: 'center center',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n backfaceVisibility: 'hidden',\n padding: '8px',\n })\n // 最小像素尺寸(默认 320x180,可通过 cfg.size 覆盖),容器尺寸随内容自适应\n const [pxW, pxH] = this.config.size\n setStyles(this.container, {\n width: '',\n height: '',\n minWidth: `${pxW}px`,\n minHeight: `${pxH}px`,\n })\n // 根据锚点设置内部包裹的定位与偏移(默认 top:以左上角为参考)\n if (this.config.anchor === 'top') {\n this.innerWrap.style.left = '0'\n this.innerWrap.style.top = '0'\n this.innerWrap.style.bottom = 'auto'\n this.innerWrap.style.transform = 'none'\n }\n else if (this.config.anchor === 'center') {\n this.innerWrap.style.left = '50%'\n this.innerWrap.style.top = '50%'\n this.innerWrap.style.bottom = 'auto'\n this.innerWrap.style.transform = 'translate(-50%, -50%)'\n }\n else { // bottom\n this.innerWrap.style.left = '0'\n this.innerWrap.style.top = 'auto'\n this.innerWrap.style.bottom = '0'\n this.innerWrap.style.transform = 'none'\n }\n this.titleEl.textContent = t.value || ''\n setStyles(this.titleEl, {\n fontSize: `${t.fontSize}px`,\n color: t.color,\n fontWeight: t.fontWeight,\n fontStyle: t.fontStyle,\n textAlign: t.align,\n letterSpacing: `${num(t.spacing)}px`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginLeft: `${num(t.offset[0])}px`,\n marginTop: `${num(t.offset[1])}px`,\n })\n this.contentEl.style.display = c.visible ? 'block' : 'none'\n this.contentEl.textContent = c.value || ''\n setStyles(this.contentEl, {\n fontSize: `${c.fontSize}px`,\n color: c.color,\n fontWeight: c.fontWeight,\n fontStyle: c.fontStyle,\n textAlign: c.align,\n letterSpacing: `${num(c.spacing)}px`,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflow: 'visible',\n textOverflow: 'clip',\n marginLeft: `${num(c.offset[0])}px`,\n marginTop: `${num(c.offset[1])}px`,\n })\n const hasBgUrl = typeof t.bgUrl === 'string' && t.bgUrl.length > 0\n if (hasBgUrl) {\n if (t.bgNineSlice && t.bgNineSlice.enabled) {\n const s = t.bgNineSlice.slice\n const w = t.bgNineSlice.width\n // 厚度限制,避免边框厚度超过容器尺寸导致异常视觉放大\n const wClamped = [\n Math.min(w[0], pxH * 0.5),\n Math.min(w[1], pxW * 0.5),\n Math.min(w[2], pxH * 0.5),\n Math.min(w[3], pxW * 0.5),\n ] as [number, number, number, number]\n setStyles(this.container, {\n borderStyle: 'solid',\n borderWidth: `${wClamped[0]}px ${wClamped[1]}px ${wClamped[2]}px ${wClamped[3]}px`,\n borderImageSource: `url(${t.bgUrl})`,\n borderImageSlice: `${s[0]} ${s[1]} ${s[2]} ${s[3]}${t.bgNineSlice.fill ? ' fill' : ''}`,\n borderImageRepeat: t.bgNineSlice.repeat,\n backgroundImage: 'none',\n borderRadius: `${num(t.bgNineSlice.radius, 0)}px`,\n })\n } else {\n setStyles(this.container, {\n backgroundImage: `url(${t.bgUrl})`,\n borderImageSource: 'none',\n borderImageSlice: '',\n borderImageRepeat: '',\n borderStyle: 'none',\n borderWidth: '0px',\n })\n }\n } else {\n setStyles(this.container, {\n backgroundImage: 'none',\n borderImageSource: 'none',\n borderImageSlice: '',\n borderImageRepeat: '',\n borderStyle: 'none',\n borderWidth: '0px',\n })\n }\n // 背景填充整个容器尺寸\n setStyles(this.container, {\n backgroundSize: '100% 100%',\n textAlign: t.align,\n pointerEvents: 'auto',\n filter: `hue-rotate(${num(t.hsl[0], 0)}deg) saturate(${num(t.hsl[1], 0)}%) brightness(${num(t.hsl[2], 0)}%)`,\n })\n }\n\n /**\n * 更新配置并立即重新应用到 DOM。\n * @param cfg 新配置\n */\n update(cfg: InfoPanelUpdateConfig = {}): void {\n this.updateConfig(cfg)\n this.applyStyle()\n }\n\n /**\n * 根据看板模式使面板朝向相机。\n * - 'full':使用 `lookAt` 全方位朝向相机。\n * - 'yaw':仅绕 Y 轴旋转,保持水平面朝向相机。\n * - 'none':不处理朝向。\n * @param camera three.js 相机\n */\n updateFacing(camera: PerspectiveCamera): void {\n const mode = this.config.billboard\n if (mode === 'none') return\n const objPos = this._tmpObjPos\n const camPos = this._tmpCamPos\n this._cssObject.getWorldPosition(objPos)\n camera.getWorldPosition(camPos)\n if (mode === 'full') {\n this._cssObject.lookAt(camPos)\n } else if (mode === 'yaw') {\n const dx = camPos.x - objPos.x\n const dz = camPos.z - objPos.z\n const yaw = Math.atan2(dx, dz)\n this._cssObject.rotation.set(0, yaw, 0)\n }\n }\n\n /**\n * 动态缩放:根据相机 FOV、沿相机前向的距离 d、视口尺寸,\n * 计算“每像素对应的世界单位”,并结合用户缩放得到最终缩放。\n * - pixelLock: s = worldPerPixelX * userScale\n * - 非锁定: s = userScale\n * - 最终各轴缩放: [sx, sy, sz] = s * userScale3\n */\n updateDynamicScale(camera: PerspectiveCamera, viewportWidth = window.innerWidth, viewportHeight = window.innerHeight): void {\n if (!camera) return\n const objPos = this._tmpObjPos\n const camPos = this._tmpCamPos\n const camDir = this._tmpCamDir\n this._cssObject.getWorldPosition(objPos)\n camera.getWorldPosition(camPos)\n camera.getWorldDirection(camDir)\n const d = objPos.clone().sub(camPos).dot(camDir)\n const fovRad = MathUtils.degToRad(camera.fov)\n const worldPerPixelY = (2 * d * Math.tan(fovRad / 2)) / viewportHeight\n const worldPerPixelX = worldPerPixelY * camera.aspect\n const userScale = this.config.scale\n const userScale3 = this.config.userScale3 || [1, 1, 1]\n // pixel-lock:保持屏幕像素尺寸恒定;非锁定:使用统一用户系数\n let s = this.config.pixelLock\n ? worldPerPixelX * (userScale > 0 ? userScale : 1)\n : (userScale > 0 ? userScale : 1)\n if (!Number.isFinite(s) || s <= 0) return\n // 简单限幅,避免极端相机参数造成缩放异常\n const MAX_S = 1e3\n const MIN_S = 1e-6\n s = Math.max(Math.min(s, MAX_S), MIN_S)\n const sx = s * (userScale3[0] || 1)\n const sy = s * (userScale3[1] || 1)\n const sz = s * (userScale3[2] || 1)\n this._cssObject.scale.set(sx, sy, sz)\n }\n\n // 移除父级缩放抵消,面板可响应外部实体缩放(含非均匀)\n\n /**\n * 释放面板:从场景移除 CSS3DObject,并清理 DOM。\n */\n dispose(): void {\n if (this._cssObject.parent) this._cssObject.parent.remove(this._cssObject)\n this.container.remove()\n }\n\n /**\n * 获取当前面板在世界坐标中的宽高(单位:世界单位)。\n * 注意:结果受相机参数、面板到相机的距离以及当前 `_cssObject.scale` 影响。\n * @param camera three.js 相机\n * @param viewportWidth 视口宽度(像素)\n * @param viewportHeight 视口高度(像素)\n * @returns `{ width, height }` 世界单位\n */\n getWorldSize(camera: PerspectiveCamera, viewportWidth = window.innerWidth, viewportHeight = window.innerHeight): { width: number; height: number } {\n const objPos = this._tmpObjPos\n const camPos = this._tmpCamPos\n const camDir = this._tmpCamDir\n this._cssObject.getWorldPosition(objPos)\n camera.getWorldPosition(camPos)\n camera.getWorldDirection(camDir)\n const d = objPos.clone().sub(camPos).dot(camDir)\n const fovRad = MathUtils.degToRad(camera.fov)\n const worldPerPixelY = (2 * d * Math.tan(fovRad / 2)) / viewportHeight\n const worldPerPixelX = worldPerPixelY * camera.aspect\n const wpx = this.container.offsetWidth || 0\n const hpx = this.container.offsetHeight || 0\n const s = this._cssObject.scale.x\n return { width: wpx * worldPerPixelX * s, height: hpx * worldPerPixelY * s }\n }\n}\n\n"],"mappings":"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"}
1
+ {"version":3,"names":["CSS3DObject","Vector3","MathUtils","ObjectLayer","clampAlign","parseWeight","parseStyle","num","color","sanitizeUrl","arr2","arr3","rep","setStyles","arr4","defaults","text","value","fontSize","fontWeight","fontStyle","offset","align","spacing","bgUrl","hsl","bgNineSlice","enabled","slice","width","repeat","fill","radius","bgSlice","content","visible","size","scale","userScale3","pixelLock","billboard","anchor","InfoPanel","_ObjectLayer","_inherits","_super","_createSuper","_this","cfg","arguments","length","undefined","_classCallCheck","call","_defineProperty","_assertThisInitialized","config","JSON","parse","stringify","updateConfig","container","document","createElement","titleEl","contentEl","innerWrap","position","left","top","transform","pointerEvents","appendChild","_cssObject","add","applyStyle","_createClass","key","t","c","ns","Array","isArray","sx","sy","sz","s","bb","ac","setPosition","x","y","z","set","setRotation","rotation","setScale","setScalar","setBillboard","mode","m","setVisible","v","display","boxSizing","transformOrigin","backgroundRepeat","backgroundPosition","backfaceVisibility","padding","_this$config$size","_slicedToArray","pxW","pxH","height","minWidth","concat","minHeight","style","bottom","textContent","textAlign","letterSpacing","whiteSpace","overflow","textOverflow","marginLeft","marginTop","wordBreak","hasBgUrl","w","wClamped","Math","min","borderStyle","borderWidth","borderImageSource","borderImageSlice","borderImageRepeat","backgroundImage","borderRadius","backgroundSize","filter","update","updateFacing","camera","objPos","_tmpObjPos","camPos","_tmpCamPos","getWorldPosition","lookAt","dx","dz","yaw","atan2","updateDynamicScale","viewportWidth","window","innerWidth","viewportHeight","innerHeight","camDir","_tmpCamDir","getWorldDirection","d","clone","sub","dot","fovRad","degToRad","fov","worldPerPixelY","tan","worldPerPixelX","aspect","userScale","Number","isFinite","MAX_S","MIN_S","max","dispose","parent","remove","getWorldSize","wpx","offsetWidth","hpx","offsetHeight","default"],"sources":["../../../../src/business/Poi/panel/index.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-11-27 15:14:21\n * @LastEditors: 周志国\n * @LastEditTime: 2025-12-01 15:44:33\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Poi/panel/index.ts\n */\nimport { CSS3DObject, Vector3, MathUtils, type PerspectiveCamera } from '@anov/3d-core'\nimport ObjectLayer from '../../Base/ObjectLayer'\nimport { clampAlign, parseWeight, parseStyle, num, color, sanitizeUrl, arr2, arr3, rep, setStyles, arr4 } from './utils'\nimport { InfoPanelConfig,InfoPanelUpdateConfig,NineSliceConfig} from './interfaces'\n/**\n * 文件概览\n * InfoPanel 是一个基于 CSS3DObject 的信息面板组件,用于在三维场景中以“屏幕像素”为基础进行排版和渲染。\n * - 最小像素尺寸通过 `size` 指定(默认 320x180),容器会随内容自适应增大。\n * - `pixelLock` 为 true 时,面板会随相机距离自动缩放以保持屏幕像素大小恒定。\n * - `scale`/`userScale3` 提供统一或非均匀的用户缩放,参与最终缩放计算。\n * - `billboard` 支持朝向相机(`yaw` 或 `full`),用于看板效果。\n */\n\n\n\n/**\n * 组件默认配置。\n * - text: 标题(主文本)相关样式与背景设置\n * - content: 副文本显示与样式\n * - size: 面板最小像素尺寸 `[width, height]`\n * - scale: 统一用户缩放系数(>0)\n * - userScale3: 非均匀用户缩放 `[sx, sy, sz]`,与 `scale` 相乘\n * - pixelLock: 是否锁定屏幕像素尺寸\n * - billboard: 看板模式('none'|'yaw'|'full')\n * - anchor: 面板锚点('top'|'center'|'bottom')\n */\nconst defaults: InfoPanelConfig = {\n text: {\n value: '',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n fontStyle: 'normal',\n offset: [0, 0] as [number, number],\n align: 'left',\n spacing: 0,\n bgUrl: '',\n hsl: [200, 120, 80],\n bgNineSlice: {\n enabled: true,\n slice: [65, 92, 27, 17] as [number, number, number, number],\n width: [65, 92, 27, 17] as [number, number, number, number],\n repeat: 'stretch',\n fill: true,\n radius: 0\n },\n bgSlice: [65, 92, 27, 17] as [number, number, number, number],\n },\n content: {\n visible: false,\n value: '',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n fontStyle: 'normal',\n align: 'left',\n offset: [0, 0] as [number, number],\n spacing: 0\n },\n // 默认面板像素尺寸(宽度,高度)\n size: [320, 180] as [number, number],\n scale: 1,\n // 非均匀用户缩放(来自外部 scale: [x,y,z])\n userScale3: [1, 1, 1] as [number, number, number],\n // 屏幕像素锁定:保持屏幕像素尺寸恒定\n pixelLock: true,\n billboard: 'none',\n anchor: 'top'\n}\n\n/**\n * InfoPanel\n * 一个基于 CSS3DObject 的三维信息面板。面板的排版以像素为单位,\n * 并可根据相机参数在 3D 世界中动态映射为适当的世界尺寸。\n *\n * 关键特性:\n * - 像素锁定(`pixelLock`):保证屏幕像素尺寸恒定的看板效果。\n * - 动态缩放(`updateDynamicScale`):实时根据相机 FOV、距离、视口宽高计算世界尺度。\n * - 看板模式(`billboard`):支持水平(yaw)和全方位(full)朝向相机。\n * - 自定义缩放(`scale` 与 `userScale3`):统一与非均匀缩放相乘得到最终缩放。\n *\n * 用法概览:\n * const panel = new InfoPanel({\n * text: { value: 'POI A', fontSize: 18 },\n * size: [320, 180],\n * scale: 1,\n * pixelLock: true,\n * billboard: 'yaw',\n * anchor: 'top'\n * });\n * panel.updateDynamicScale(camera);\n */\nexport default class InfoPanel extends ObjectLayer {\n // 新增字段声明,修复类型报错\n /**\n * 内部状态与元素引用\n * - config: 当前配置(已合并 defaults 与外部传入)\n * - container: 面板根容器(用于 CSS3DObject 承载)\n * - titleEl: 标题元素\n * - contentEl: 内容元素(可选)\n * - innerWrap: 内部包裹,用于实现锚点与偏移\n * - _cssObject: three.js CSS3DObject(加入到 scene graph)\n */\n private config: InfoPanelConfig\n private container: HTMLDivElement\n private titleEl: HTMLDivElement\n private contentEl: HTMLDivElement\n private innerWrap: HTMLDivElement\n private _cssObject: CSS3DObject\n // 复用的临时向量,避免频繁创建对象\n private _tmpObjPos: Vector3 = new Vector3()\n private _tmpCamPos: Vector3 = new Vector3()\n private _tmpCamDir: Vector3 = new Vector3()\n\n /**\n * 构造函数\n * @param cfg 外部配置对象;仅识别本组件支持的字段,其他字段会忽略\n */\n constructor(cfg: InfoPanelUpdateConfig = {}) {\n super()\n this.config = JSON.parse(JSON.stringify(defaults))\n this.updateConfig(cfg)\n this.container = document.createElement('div')\n this.titleEl = document.createElement('div')\n this.contentEl = document.createElement('div')\n this.innerWrap = document.createElement('div')\n // 内层包裹用于布局,默认采用容器左上角为参考点\n setStyles(this.innerWrap, {\n position: 'relative',\n left: '0',\n top: '0',\n transform: 'none',\n pointerEvents: 'auto',\n })\n this.innerWrap.appendChild(this.titleEl)\n this.innerWrap.appendChild(this.contentEl)\n this.container.appendChild(this.innerWrap)\n // 将 CSS3DObject 作为子节点添加,而非赋值到 this.object3D\n this._cssObject = new CSS3DObject(this.container)\n this.add(this._cssObject)\n this.applyStyle()\n }\n\n /**\n * 将传入的配置与默认值合并并规范化。\n * - 自动处理文本样式、九宫格背景、可见性、对齐与偏移。\n * - `scale`: 支持数值(统一缩放)或长度为 3 的数组(非均匀缩放)。\n * - `pixelLock`: 是否锁定屏幕像素尺寸。\n * - `anchor`: 面板锚点。\n * @param cfg 配置对象\n */\n updateConfig(cfg: InfoPanelUpdateConfig = {}) {\n const t = cfg.text || {}\n const c = cfg.content || {}\n this.config.text.value = typeof t.value === 'string' ? t.value : this.config.text.value\n this.config.text.fontSize = num(t.fontSize, this.config.text.fontSize)\n this.config.text.color = color(t.color, this.config.text.color)\n this.config.text.fontWeight = parseWeight(t.fontWeight || this.config.text.fontWeight)\n this.config.text.fontStyle = parseStyle(t.fontStyle || this.config.text.fontStyle)\n this.config.text.offset = arr2(t.offset, this.config.text.offset) as [number, number]\n this.config.text.align = clampAlign(t.align || this.config.text.align)\n this.config.text.spacing = num(t.spacing, this.config.text.spacing)\n this.config.text.bgUrl = typeof t.bgUrl === 'string' ? sanitizeUrl(t.bgUrl) : this.config.text.bgUrl\n this.config.text.hsl = arr3(t.hsl, this.config.text.hsl).slice(0, 3) as [number, number, number]\n const ns: Partial<NineSliceConfig> = t.bgNineSlice || {}\n this.config.text.bgNineSlice.enabled = typeof ns.enabled === 'boolean' ? ns.enabled : this.config.text.bgNineSlice.enabled\n this.config.text.bgNineSlice.slice = arr4(ns.slice||t.bgSlice, this.config.text.bgNineSlice.slice) as [number, number, number, number]\n this.config.text.bgNineSlice.width = arr4(ns.width||t.bgSlice, this.config.text.bgNineSlice.width) as [number, number, number, number]\n this.config.text.bgNineSlice.repeat = rep(ns.repeat || this.config.text.bgNineSlice.repeat) as NineSliceConfig['repeat']\n this.config.text.bgNineSlice.fill = typeof ns.fill === 'boolean' ? ns.fill : this.config.text.bgNineSlice.fill\n this.config.text.bgNineSlice.radius = num(ns.radius, this.config.text.bgNineSlice.radius)\n this.config.content.visible = typeof c.visible === 'boolean' ? c.visible : this.config.content.visible\n this.config.content.value = typeof c.value === 'string' ? c.value : this.config.content.value\n this.config.content.fontSize = num(c.fontSize, this.config.content.fontSize)\n this.config.content.color = color(c.color, this.config.content.color)\n this.config.content.fontWeight = parseWeight(c.fontWeight || this.config.content.fontWeight)\n this.config.content.fontStyle = parseStyle(c.fontStyle || this.config.content.fontStyle)\n this.config.content.align = clampAlign(c.align || this.config.content.align)\n this.config.content.offset = arr2(c.offset, this.config.content.offset) as [number, number]\n this.config.content.spacing = num(c.spacing, this.config.content.spacing)\n // 支持数值或数组。数值作为统一倍数,数组作为非均匀倍数\n if (Array.isArray(cfg.scale) && cfg.scale.length === 3) {\n const sx = num(cfg.scale[0], this.config.userScale3[0])\n const sy = num(cfg.scale[1], this.config.userScale3[1])\n const sz = num(cfg.scale[2], this.config.userScale3[2])\n this.config.userScale3 = [sx, sy, sz]\n } else {\n const s = num(cfg.scale, this.config.scale)\n // 用户缩放因子:仅作为乘数,不参与单位换算\n this.config.scale = s > 0 ? s : this.config.scale\n }\n const bb = (cfg.billboard || this.config.billboard)\n this.config.billboard = bb === 'yaw' || bb === 'full' ? bb : 'none'\n // 面板尺寸可通过 cfg.size 指定,否则使用默认尺寸\n this.config.size = arr2(cfg.size, this.config.size) as [number, number]\n // 屏幕像素锁定\n this.config.pixelLock = !!(typeof cfg.pixelLock === 'boolean' ? cfg.pixelLock : this.config.pixelLock)\n // 面板锚点\n const ac = cfg.anchor || this.config.anchor\n this.config.anchor = ac === 'top' || ac === 'center' || ac === 'bottom' ? ac : 'bottom'\n }\n\n /**\n * 设置面板世界坐标(应用到 CSS3DObject)。\n */\n setPosition(x: number, y: number, z: number): void {\n this._cssObject.position.set(x, y, z)\n }\n\n /**\n * 设置面板世界旋转(欧拉角,单位:弧度)。\n */\n setRotation(x: number, y: number, z: number): void {\n this._cssObject.rotation.set(x, y, z)\n }\n\n /**\n * 设置统一缩放因子(立即应用到 CSS3DObject)。\n * 注意:若使用 `updateDynamicScale`,每帧会覆盖此值。\n */\n setScale(s: number): void {\n this._cssObject.scale.setScalar(s)\n }\n\n /**\n * 设置看板模式。\n * @param mode 'none' | 'yaw' | 'full'\n */\n setBillboard(mode: 'none' | 'yaw' | 'full'): void {\n const m = mode === 'yaw' || mode === 'full' ? mode : 'none'\n this.config.billboard = m\n }\n\n /**\n * 设置可见性。\n * @param v 是否可见\n */\n setVisible(v: boolean): void {\n this._cssObject.visible = !!v\n }\n\n /**\n * 应用所有样式与文本到 DOM。\n * 仅影响面板的排版与外观,不涉及 3D 变换。\n */\n applyStyle(): void {\n const t = this.config.text\n const c = this.config.content\n // 基础容器样式,确保可见尺寸与居中锚点\n setStyles(this.container, {\n display: 'inline-block',\n boxSizing: 'border-box',\n transformOrigin: 'center center',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n backfaceVisibility: 'hidden',\n padding: '8px',\n })\n // 最小像素尺寸(默认 320x180,可通过 cfg.size 覆盖),容器尺寸随内容自适应\n const [pxW, pxH] = this.config.size\n setStyles(this.container, {\n width: '',\n height: '',\n minWidth: `${pxW}px`,\n minHeight: `${pxH}px`,\n })\n // 根据锚点设置内部包裹的定位与偏移(默认 top:以左上角为参考)\n if (this.config.anchor === 'top') {\n this.innerWrap.style.left = '0'\n this.innerWrap.style.top = '0'\n this.innerWrap.style.bottom = 'auto'\n this.innerWrap.style.transform = 'none'\n }\n else if (this.config.anchor === 'center') {\n this.innerWrap.style.left = '50%'\n this.innerWrap.style.top = '50%'\n this.innerWrap.style.bottom = 'auto'\n this.innerWrap.style.transform = 'translate(-50%, -50%)'\n }\n else { // bottom\n this.innerWrap.style.left = '0'\n this.innerWrap.style.top = 'auto'\n this.innerWrap.style.bottom = '0'\n this.innerWrap.style.transform = 'none'\n }\n this.titleEl.textContent = t.value || ''\n setStyles(this.titleEl, {\n fontSize: `${t.fontSize}px`,\n color: t.color,\n fontWeight: t.fontWeight,\n fontStyle: t.fontStyle,\n textAlign: t.align,\n letterSpacing: `${num(t.spacing)}px`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginLeft: `${num(t.offset[0])}px`,\n marginTop: `${num(t.offset[1])}px`,\n })\n this.contentEl.style.display = c.visible ? 'block' : 'none'\n this.contentEl.textContent = c.value || ''\n setStyles(this.contentEl, {\n fontSize: `${c.fontSize}px`,\n color: c.color,\n fontWeight: c.fontWeight,\n fontStyle: c.fontStyle,\n textAlign: c.align,\n letterSpacing: `${num(c.spacing)}px`,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflow: 'visible',\n textOverflow: 'clip',\n marginLeft: `${num(c.offset[0])}px`,\n marginTop: `${num(c.offset[1])}px`,\n })\n const hasBgUrl = typeof t.bgUrl === 'string' && t.bgUrl.length > 0\n if (hasBgUrl) {\n if (t.bgNineSlice && t.bgNineSlice.enabled) {\n const s = t.bgNineSlice.slice\n const w = t.bgNineSlice.width\n // 厚度限制,避免边框厚度超过容器尺寸导致异常视觉放大\n const wClamped = [\n Math.min(w[0], pxH * 0.5),\n Math.min(w[1], pxW * 0.5),\n Math.min(w[2], pxH * 0.5),\n Math.min(w[3], pxW * 0.5),\n ] as [number, number, number, number]\n setStyles(this.container, {\n borderStyle: 'solid',\n borderWidth: `${wClamped[0]}px ${wClamped[1]}px ${wClamped[2]}px ${wClamped[3]}px`,\n borderImageSource: `url(${t.bgUrl})`,\n borderImageSlice: `${s[0]} ${s[1]} ${s[2]} ${s[3]}${t.bgNineSlice.fill ? ' fill' : ''}`,\n borderImageRepeat: t.bgNineSlice.repeat,\n backgroundImage: 'none',\n borderRadius: `${num(t.bgNineSlice.radius, 0)}px`,\n })\n } else {\n setStyles(this.container, {\n backgroundImage: `url(${t.bgUrl})`,\n borderImageSource: 'none',\n borderImageSlice: '',\n borderImageRepeat: '',\n borderStyle: 'none',\n borderWidth: '0px',\n })\n }\n } else {\n setStyles(this.container, {\n backgroundImage: 'none',\n borderImageSource: 'none',\n borderImageSlice: '',\n borderImageRepeat: '',\n borderStyle: 'none',\n borderWidth: '0px',\n })\n }\n // 背景填充整个容器尺寸\n setStyles(this.container, {\n backgroundSize: '100% 100%',\n textAlign: t.align,\n pointerEvents: 'auto',\n filter: `hue-rotate(${num(t.hsl[0], 0)}deg) saturate(${num(t.hsl[1], 0)}%) brightness(${num(t.hsl[2], 0)}%)`,\n })\n }\n\n /**\n * 更新配置并立即重新应用到 DOM。\n * @param cfg 新配置\n */\n update(cfg: InfoPanelUpdateConfig = {}): void {\n this.updateConfig(cfg)\n this.applyStyle()\n }\n\n /**\n * 根据看板模式使面板朝向相机。\n * - 'full':使用 `lookAt` 全方位朝向相机。\n * - 'yaw':仅绕 Y 轴旋转,保持水平面朝向相机。\n * - 'none':不处理朝向。\n * @param camera three.js 相机\n */\n updateFacing(camera: PerspectiveCamera): void {\n const mode = this.config.billboard\n if (mode === 'none') return\n const objPos = this._tmpObjPos\n const camPos = this._tmpCamPos\n this._cssObject.getWorldPosition(objPos)\n camera.getWorldPosition(camPos)\n if (mode === 'full') {\n this._cssObject.lookAt(camPos)\n } else if (mode === 'yaw') {\n const dx = camPos.x - objPos.x\n const dz = camPos.z - objPos.z\n const yaw = Math.atan2(dx, dz)\n this._cssObject.rotation.set(0, yaw, 0)\n }\n }\n\n /**\n * 动态缩放:根据相机 FOV、沿相机前向的距离 d、视口尺寸,\n * 计算“每像素对应的世界单位”,并结合用户缩放得到最终缩放。\n * - pixelLock: s = worldPerPixelX * userScale\n * - 非锁定: s = userScale\n * - 最终各轴缩放: [sx, sy, sz] = s * userScale3\n */\n updateDynamicScale(camera: PerspectiveCamera, viewportWidth = window.innerWidth, viewportHeight = window.innerHeight): void {\n if (!camera) return\n const objPos = this._tmpObjPos\n const camPos = this._tmpCamPos\n const camDir = this._tmpCamDir\n this._cssObject.getWorldPosition(objPos)\n camera.getWorldPosition(camPos)\n camera.getWorldDirection(camDir)\n const d = objPos.clone().sub(camPos).dot(camDir)\n const fovRad = MathUtils.degToRad(camera.fov)\n const worldPerPixelY = (2 * d * Math.tan(fovRad / 2)) / viewportHeight\n const worldPerPixelX = worldPerPixelY * camera.aspect\n const userScale = this.config.scale\n const userScale3 = this.config.userScale3 || [1, 1, 1]\n // pixel-lock:保持屏幕像素尺寸恒定;非锁定:使用统一用户系数\n let s = this.config.pixelLock\n ? worldPerPixelX * (userScale > 0 ? userScale : 1)\n : (userScale > 0 ? userScale : 1)\n if (!Number.isFinite(s) || s <= 0) return\n // 简单限幅,避免极端相机参数造成缩放异常\n const MAX_S = 1e3\n const MIN_S = 1e-6\n s = Math.max(Math.min(s, MAX_S), MIN_S)\n const sx = s * (userScale3[0] || 1)\n const sy = s * (userScale3[1] || 1)\n const sz = s * (userScale3[2] || 1)\n this._cssObject.scale.set(sx, sy, sz)\n }\n\n // 移除父级缩放抵消,面板可响应外部实体缩放(含非均匀)\n\n /**\n * 释放面板:从场景移除 CSS3DObject,并清理 DOM。\n */\n dispose(): void {\n if (this._cssObject.parent) this._cssObject.parent.remove(this._cssObject)\n this.container.remove()\n }\n\n /**\n * 获取当前面板在世界坐标中的宽高(单位:世界单位)。\n * 注意:结果受相机参数、面板到相机的距离以及当前 `_cssObject.scale` 影响。\n * @param camera three.js 相机\n * @param viewportWidth 视口宽度(像素)\n * @param viewportHeight 视口高度(像素)\n * @returns `{ width, height }` 世界单位\n */\n getWorldSize(camera: PerspectiveCamera, viewportWidth = window.innerWidth, viewportHeight = window.innerHeight): { width: number; height: number } {\n const objPos = this._tmpObjPos\n const camPos = this._tmpCamPos\n const camDir = this._tmpCamDir\n this._cssObject.getWorldPosition(objPos)\n camera.getWorldPosition(camPos)\n camera.getWorldDirection(camDir)\n const d = objPos.clone().sub(camPos).dot(camDir)\n const fovRad = MathUtils.degToRad(camera.fov)\n const worldPerPixelY = (2 * d * Math.tan(fovRad / 2)) / viewportHeight\n const worldPerPixelX = worldPerPixelY * camera.aspect\n const wpx = this.container.offsetWidth || 0\n const hpx = this.container.offsetHeight || 0\n const s = this._cssObject.scale.x\n return { width: wpx * worldPerPixelX * s, height: hpx * worldPerPixelY * s }\n }\n}\n\n"],"mappings":"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"}
@@ -45,7 +45,8 @@ function parseStyle(v) {
45
45
  * @param d 默认值
46
46
  * @returns 有效数字
47
47
  */
48
- function num(n, d = 0) {
48
+ function num(n) {
49
+ var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
49
50
  if (typeof n === 'number' && !Number.isNaN(n)) return n;
50
51
  return d;
51
52
  }
@@ -56,7 +57,8 @@ function num(n, d = 0) {
56
57
  * @param d 默认颜色,默认为 `#ffffff`
57
58
  * @returns 颜色字符串
58
59
  */
59
- function color(c, d = '#ffffff') {
60
+ function color(c) {
61
+ var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '#ffffff';
60
62
  if (typeof c === 'string' && c.length) return c;
61
63
  return d;
62
64
  }
@@ -78,7 +80,8 @@ function sanitizeUrl(u) {
78
80
  * @param d 默认值 `[x, y]`
79
81
  * @returns `[x, y]`
80
82
  */
81
- function arr2(a, d = [0, 0]) {
83
+ function arr2(a) {
84
+ var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0];
82
85
  if (Array.isArray(a) && a.length >= 2) return [num(a[0], d[0]), num(a[1], d[1])];
83
86
  return d;
84
87
  }
@@ -89,7 +92,8 @@ function arr2(a, d = [0, 0]) {
89
92
  * @param d 默认值 `[t, r, b, l]`
90
93
  * @returns `[t, r, b, l]`
91
94
  */
92
- function arr4(a, d = [0, 0, 0, 0]) {
95
+ function arr4(a) {
96
+ var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0, 0];
93
97
  if (Array.isArray(a) && a.length >= 4) return [num(a[0], d[0]), num(a[1], d[1]), num(a[2], d[2]), num(a[3], d[3])];
94
98
  return d;
95
99
  }
@@ -99,7 +103,8 @@ function arr4(a, d = [0, 0, 0, 0]) {
99
103
  * @param d 默认值 `[h, s, l]`
100
104
  * @returns `[h, s, l]`
101
105
  */
102
- function arr3(a, d = [0, 0, 0]) {
106
+ function arr3(a) {
107
+ var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0];
103
108
  if (Array.isArray(a) && a.length >= 3) return [num(a[0], d[0]), num(a[1], d[1]), num(a[2], d[2])];
104
109
  return d;
105
110
  }
@@ -1 +1 @@
1
- {"version":3,"names":["clampAlign","v","parseWeight","parseStyle","num","n","d","Number","isNaN","color","c","length","sanitizeUrl","u","replace","trim","arr2","a","Array","isArray","arr4","arr3","rep","setStyles","el","styles","Object","assign","style"],"sources":["../../../../src/business/Poi/panel/utils.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-11-28 10:40:08\n * @LastEditors: 周志国\n * @LastEditTime: 2025-12-01 15:44:23\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Poi/panel/utils.ts\n */\n/**\n * 将任意对齐值规范化为 'left' | 'center' | 'right'。\n * @param v 任意字符串\n * @returns 'left' | 'center' | 'right'\n */\nfunction clampAlign(v) {\n if (v === 'center') return 'center'\n if (v === 'right') return 'right'\n return 'left'\n}\n\n/**\n * 将任意字重值规范化为 'normal' 或 'bold'。\n * @param v 任意字符串\n * @returns 'normal' | 'bold'\n */\nfunction parseWeight(v) {\n if (v === 'bold') return 'bold'\n return 'normal'\n}\n\n/**\n * 将任意字体风格规范化为 'normal' 或 'italic'。\n * @param v 任意字符串\n * @returns 'normal' | 'italic'\n */\nfunction parseStyle(v) {\n if (v === 'italic') return 'italic'\n return 'normal'\n}\n\n/**\n * 将输入转为数字;若无效则回退到默认值。\n * @param n 任意值\n * @param d 默认值\n * @returns 有效数字\n */\nfunction num(n, d = 0) {\n if (typeof n === 'number' && !Number.isNaN(n)) return n\n return d\n}\n\n/**\n * 返回有效的颜色字符串;若无效则回退到默认值。\n * @param c 任意值\n * @param d 默认颜色,默认为 `#ffffff`\n * @returns 颜色字符串\n */\nfunction color(c, d = '#ffffff') {\n if (typeof c === 'string' && c.length) return c\n return d\n}\n\n/**\n * 清理 URL 字符串,去除反引号并修剪空白。\n * @param u 任意值\n * @returns 清理后的 URL 字符串(无效时返回空串)\n */\nfunction sanitizeUrl(u: any): string {\n if (typeof u !== 'string') return ''\n // 去掉意外的反引号并修剪空白\n return u.replace(/`/g, '').trim()\n}\n\n/**\n * 解析长度至少为 2 的数组,缺省回退到默认值。\n * @param a 任意数组\n * @param d 默认值 `[x, y]`\n * @returns `[x, y]`\n */\nfunction arr2(a, d = [0, 0]) {\n if (Array.isArray(a) && a.length >= 2) return [num(a[0], d[0]), num(a[1], d[1])]\n return d\n}\n\n/**\n * 解析长度至少为 4 的数组,缺省回退到默认值。\n * @param a 任意数组\n * @param d 默认值 `[t, r, b, l]`\n * @returns `[t, r, b, l]`\n */\nfunction arr4(a, d = [0, 0, 0, 0]) {\n if (Array.isArray(a) && a.length >= 4) return [num(a[0], d[0]), num(a[1], d[1]), num(a[2], d[2]), num(a[3], d[3])]\n return d\n}\n/**\n * 解析长度至少为 3 的数组,缺省回退到默认值。\n * @param a 任意数组\n * @param d 默认值 `[h, s, l]`\n * @returns `[h, s, l]`\n */\nfunction arr3(a, d = [0, 0, 0]) {\n if (Array.isArray(a) && a.length >= 3) return [num(a[0], d[0]), num(a[1], d[1]), num(a[2], d[2])]\n return d\n}\n\n/**\n * 规范化九宫格边框的平铺模式。\n * @param v 'repeat' | 'round' | 其他\n * @returns 'repeat' | 'round' | 'stretch'\n */\nfunction rep(v) {\n if (v === 'repeat' || v === 'round') return v\n return 'stretch'\n}\n\n/**\n * 批量应用内联样式到元素。\n * @param el 目标元素\n * @param styles 样式键值对\n */\nfunction setStyles(el: HTMLElement, styles: Record<string, string>) {\n Object.assign(el.style, styles)\n}\nexport { clampAlign, parseWeight, parseStyle, num, color, sanitizeUrl, arr2, arr3, arr4, rep, setStyles }\n"],"mappings":"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"}
1
+ {"version":3,"names":["clampAlign","v","parseWeight","parseStyle","num","n","d","arguments","length","undefined","Number","isNaN","color","c","sanitizeUrl","u","replace","trim","arr2","a","Array","isArray","arr4","arr3","rep","setStyles","el","styles","Object","assign","style"],"sources":["../../../../src/business/Poi/panel/utils.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-11-28 10:40:08\n * @LastEditors: 周志国\n * @LastEditTime: 2025-12-01 15:44:23\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Poi/panel/utils.ts\n */\n/**\n * 将任意对齐值规范化为 'left' | 'center' | 'right'。\n * @param v 任意字符串\n * @returns 'left' | 'center' | 'right'\n */\nfunction clampAlign(v) {\n if (v === 'center') return 'center'\n if (v === 'right') return 'right'\n return 'left'\n}\n\n/**\n * 将任意字重值规范化为 'normal' 或 'bold'。\n * @param v 任意字符串\n * @returns 'normal' | 'bold'\n */\nfunction parseWeight(v) {\n if (v === 'bold') return 'bold'\n return 'normal'\n}\n\n/**\n * 将任意字体风格规范化为 'normal' 或 'italic'。\n * @param v 任意字符串\n * @returns 'normal' | 'italic'\n */\nfunction parseStyle(v) {\n if (v === 'italic') return 'italic'\n return 'normal'\n}\n\n/**\n * 将输入转为数字;若无效则回退到默认值。\n * @param n 任意值\n * @param d 默认值\n * @returns 有效数字\n */\nfunction num(n, d = 0) {\n if (typeof n === 'number' && !Number.isNaN(n)) return n\n return d\n}\n\n/**\n * 返回有效的颜色字符串;若无效则回退到默认值。\n * @param c 任意值\n * @param d 默认颜色,默认为 `#ffffff`\n * @returns 颜色字符串\n */\nfunction color(c, d = '#ffffff') {\n if (typeof c === 'string' && c.length) return c\n return d\n}\n\n/**\n * 清理 URL 字符串,去除反引号并修剪空白。\n * @param u 任意值\n * @returns 清理后的 URL 字符串(无效时返回空串)\n */\nfunction sanitizeUrl(u: any): string {\n if (typeof u !== 'string') return ''\n // 去掉意外的反引号并修剪空白\n return u.replace(/`/g, '').trim()\n}\n\n/**\n * 解析长度至少为 2 的数组,缺省回退到默认值。\n * @param a 任意数组\n * @param d 默认值 `[x, y]`\n * @returns `[x, y]`\n */\nfunction arr2(a, d = [0, 0]) {\n if (Array.isArray(a) && a.length >= 2) return [num(a[0], d[0]), num(a[1], d[1])]\n return d\n}\n\n/**\n * 解析长度至少为 4 的数组,缺省回退到默认值。\n * @param a 任意数组\n * @param d 默认值 `[t, r, b, l]`\n * @returns `[t, r, b, l]`\n */\nfunction arr4(a, d = [0, 0, 0, 0]) {\n if (Array.isArray(a) && a.length >= 4) return [num(a[0], d[0]), num(a[1], d[1]), num(a[2], d[2]), num(a[3], d[3])]\n return d\n}\n/**\n * 解析长度至少为 3 的数组,缺省回退到默认值。\n * @param a 任意数组\n * @param d 默认值 `[h, s, l]`\n * @returns `[h, s, l]`\n */\nfunction arr3(a, d = [0, 0, 0]) {\n if (Array.isArray(a) && a.length >= 3) return [num(a[0], d[0]), num(a[1], d[1]), num(a[2], d[2])]\n return d\n}\n\n/**\n * 规范化九宫格边框的平铺模式。\n * @param v 'repeat' | 'round' | 其他\n * @returns 'repeat' | 'round' | 'stretch'\n */\nfunction rep(v) {\n if (v === 'repeat' || v === 'round') return v\n return 'stretch'\n}\n\n/**\n * 批量应用内联样式到元素。\n * @param el 目标元素\n * @param styles 样式键值对\n */\nfunction setStyles(el: HTMLElement, styles: Record<string, string>) {\n Object.assign(el.style, styles)\n}\nexport { clampAlign, parseWeight, parseStyle, num, color, sanitizeUrl, arr2, arr3, arr4, rep, setStyles }\n"],"mappings":"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"}
@@ -1,81 +1,117 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
1
3
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
2
4
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
9
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
10
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
12
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
3
15
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
18
  import { Clock, Color, Mesh, NormalBlending, PlaneGeometry, ShaderMaterial, use } from '@anov/3d-core';
7
19
  import CircleShader from "../shader/doubleCircle";
8
20
  import ParticleMesh from '.';
9
- class DoubleCircleMesh extends ParticleMesh {
10
- get radius() {
11
- return this._radius;
21
+ var DoubleCircleMesh = /*#__PURE__*/function (_ParticleMesh) {
22
+ _inherits(DoubleCircleMesh, _ParticleMesh);
23
+ var _super = _createSuper(DoubleCircleMesh);
24
+ function DoubleCircleMesh() {
25
+ var _this;
26
+ var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27
+ _classCallCheck(this, DoubleCircleMesh);
28
+ _this = _super.call(this);
29
+ _defineProperty(_assertThisInitialized(_this), "_material", void 0);
30
+ _defineProperty(_assertThisInitialized(_this), "_radius", void 0);
31
+ _defineProperty(_assertThisInitialized(_this), "_color", void 0);
32
+ var _option$radius = option.radius,
33
+ radius = _option$radius === void 0 ? 0.5 : _option$radius,
34
+ _option$color = option.color,
35
+ color = _option$color === void 0 ? '0xFFFFFF' : _option$color,
36
+ _option$visible = option.visible,
37
+ visible = _option$visible === void 0 ? true : _option$visible;
38
+ _this._radius = radius;
39
+ _this._color = color;
40
+ _this.visible = visible;
41
+ _this.init();
42
+ return _this;
12
43
  }
13
- set radius(value) {
14
- if (this._radius === value) return;
15
- this._radius = value;
16
- // 更新Mesh几何体大小
17
- if (this._mesh) {
18
- // 替换现有几何体
19
- this._mesh.geometry.dispose(); // 释放旧几何体
20
- this._mesh.geometry = new PlaneGeometry(value * 4, value * 4);
44
+ _createClass(DoubleCircleMesh, [{
45
+ key: "radius",
46
+ get: function get() {
47
+ return this._radius;
48
+ },
49
+ set: function set(value) {
50
+ if (this._radius === value) return;
51
+ this._radius = value;
52
+ // 更新Mesh几何体大小
53
+ if (this._mesh) {
54
+ // 替换现有几何体
55
+ this._mesh.geometry.dispose(); // 释放旧几何体
56
+ this._mesh.geometry = new PlaneGeometry(value * 4, value * 4);
57
+ }
21
58
  }
22
- }
23
- get color() {
24
- return this._color;
25
- }
26
- set color(newValue) {
27
- if (this._color === newValue) return;
28
- this._color = newValue;
29
- this._material.uniforms.color.value = new Color(this._color);
30
- }
31
- constructor(option = {}) {
32
- super();
33
- _defineProperty(this, "_material", void 0);
34
- _defineProperty(this, "_radius", void 0);
35
- _defineProperty(this, "_color", void 0);
36
- const {
37
- radius = 0.5,
38
- color = '0xFFFFFF',
39
- visible = true
40
- } = option;
41
- this._radius = radius;
42
- this._color = color;
43
- this.visible = visible;
44
- this.init();
45
- }
46
- init() {
47
- var _this = this;
48
- return _asyncToGenerator(function* () {
49
- const {
50
- uniforms: defaultUniforms,
51
- vertexShader,
52
- fragmentShader
53
- } = CircleShader;
54
- const uniforms = structuredClone(defaultUniforms);
55
- uniforms.color.value = new Color(_this.color);
56
- _this._material = new ShaderMaterial({
57
- uniforms,
58
- vertexShader,
59
- fragmentShader,
60
- side: 2,
61
- transparent: true,
62
- depthWrite: false,
63
- depthTest: true,
64
- blending: NormalBlending,
65
- // 明确混合模式
66
- polygonOffset: false,
67
- // 解决深度冲突
68
- polygonOffsetFactor: -1
69
- });
70
- _this._mesh = new Mesh(new PlaneGeometry(_this.radius * 4, _this.radius * 4), _this._material);
71
- _this._mesh.rotation.x = Math.PI / 2;
72
- _this.add(_this._mesh);
73
- const clock = new Clock();
74
- use.useframe(() => {
75
- _this._material.uniforms.iTime.value = clock.getElapsedTime() * 0.5;
76
- });
77
- })();
78
- }
79
- }
59
+ }, {
60
+ key: "color",
61
+ get: function get() {
62
+ return this._color;
63
+ },
64
+ set: function set(newValue) {
65
+ if (this._color === newValue) return;
66
+ this._color = newValue;
67
+ this._material.uniforms.color.value = new Color(this._color);
68
+ }
69
+ }, {
70
+ key: "init",
71
+ value: function () {
72
+ var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
73
+ var _this2 = this;
74
+ var defaultUniforms, vertexShader, fragmentShader, uniforms, clock;
75
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
76
+ while (1) switch (_context.prev = _context.next) {
77
+ case 0:
78
+ defaultUniforms = CircleShader.uniforms, vertexShader = CircleShader.vertexShader, fragmentShader = CircleShader.fragmentShader;
79
+ uniforms = structuredClone(defaultUniforms);
80
+ uniforms.color.value = new Color(this.color);
81
+ this._material = new ShaderMaterial({
82
+ uniforms: uniforms,
83
+ vertexShader: vertexShader,
84
+ fragmentShader: fragmentShader,
85
+ side: 2,
86
+ transparent: true,
87
+ depthWrite: false,
88
+ depthTest: true,
89
+ blending: NormalBlending,
90
+ // 明确混合模式
91
+ polygonOffset: false,
92
+ // 解决深度冲突
93
+ polygonOffsetFactor: -1
94
+ });
95
+ this._mesh = new Mesh(new PlaneGeometry(this.radius * 4, this.radius * 4), this._material);
96
+ this._mesh.rotation.x = Math.PI / 2;
97
+ this.add(this._mesh);
98
+ clock = new Clock();
99
+ use.useframe(function () {
100
+ _this2._material.uniforms.iTime.value = clock.getElapsedTime() * 0.5;
101
+ });
102
+ case 9:
103
+ case "end":
104
+ return _context.stop();
105
+ }
106
+ }, _callee, this);
107
+ }));
108
+ function init() {
109
+ return _init.apply(this, arguments);
110
+ }
111
+ return init;
112
+ }()
113
+ }]);
114
+ return DoubleCircleMesh;
115
+ }(ParticleMesh);
80
116
  export default DoubleCircleMesh;
81
117
  //# sourceMappingURL=DoubleCircle.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Clock","Color","Mesh","NormalBlending","PlaneGeometry","ShaderMaterial","use","CircleShader","ParticleMesh","DoubleCircleMesh","radius","_radius","value","_mesh","geometry","dispose","color","_color","newValue","_material","uniforms","constructor","option","_defineProperty","visible","init","_this","_asyncToGenerator","defaultUniforms","vertexShader","fragmentShader","structuredClone","side","transparent","depthWrite","depthTest","blending","polygonOffset","polygonOffsetFactor","rotation","x","Math","PI","add","clock","useframe","iTime","getElapsedTime"],"sources":["../../../../src/business/Poi/particle/DoubleCircle.ts"],"sourcesContent":["import { Clock, Color, Mesh, NormalBlending, PlaneGeometry, ShaderMaterial, use } from '@anov/3d-core'\nimport type { ParticleOption } from '../types'\nimport CircleShader from '../shader/doubleCircle'\nimport ParticleMesh from '.'\n\nclass DoubleCircleMesh extends ParticleMesh {\n private _material: ShaderMaterial\n private _radius: number\n private _color: string\n\n public get radius(): number {\n return this._radius\n }\n\n public set radius(value: number) {\n if (this._radius === value)\n return\n this._radius = value\n // 更新Mesh几何体大小\n if (this._mesh) {\n // 替换现有几何体\n this._mesh.geometry.dispose() // 释放旧几何体\n this._mesh.geometry = new PlaneGeometry(value * 4, value * 4)\n }\n }\n\n public get color(): string {\n return this._color\n }\n\n public set color(newValue: string) {\n if (this._color === newValue)\n return\n this._color = newValue\n this._material.uniforms.color.value = new Color(this._color)\n }\n\n constructor(option: ParticleOption = {}) {\n super()\n const { radius = 0.5, color = '0xFFFFFF', visible = true } = option\n this._radius = radius\n this._color = color\n this.visible = visible\n this.init()\n }\n\n private async init() {\n const { uniforms: defaultUniforms, vertexShader, fragmentShader } = CircleShader\n const uniforms = structuredClone(defaultUniforms)\n uniforms.color.value = new Color(this.color)\n this._material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n side: 2,\n transparent: true,\n depthWrite: false,\n depthTest: true,\n blending: NormalBlending, // 明确混合模式\n polygonOffset: false, // 解决深度冲突\n polygonOffsetFactor: -1,\n })\n\n this._mesh = new Mesh(new PlaneGeometry(this.radius * 4, this.radius * 4), this._material)\n this._mesh.rotation.x = Math.PI / 2\n\n this.add(this._mesh)\n\n const clock = new Clock()\n use.useframe(() => {\n this._material.uniforms.iTime.value = clock.getElapsedTime() * 0.5\n })\n }\n}\n\nexport default DoubleCircleMesh"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","Clock","Color","Mesh","NormalBlending","PlaneGeometry","ShaderMaterial","use","CircleShader","ParticleMesh","DoubleCircleMesh","_ParticleMesh","_super","_this","option","_option$radius","radius","_option$color","color","_option$visible","visible","_radius","_color","init","get","set","_mesh","geometry","dispose","newValue","_material","uniforms","_init","_callee","_this2","defaultUniforms","vertexShader","fragmentShader","clock","_callee$","_context","structuredClone","side","transparent","depthWrite","depthTest","blending","polygonOffset","polygonOffsetFactor","rotation","x","Math","PI","add","useframe","iTime","getElapsedTime"],"sources":["../../../../src/business/Poi/particle/DoubleCircle.ts"],"sourcesContent":["import { Clock, Color, Mesh, NormalBlending, PlaneGeometry, ShaderMaterial, use } from '@anov/3d-core'\nimport type { ParticleOption } from '../types'\nimport CircleShader from '../shader/doubleCircle'\nimport ParticleMesh from '.'\n\nclass DoubleCircleMesh extends ParticleMesh {\n private _material: ShaderMaterial\n private _radius: number\n private _color: string\n\n public get radius(): number {\n return this._radius\n }\n\n public set radius(value: number) {\n if (this._radius === value)\n return\n this._radius = value\n // 更新Mesh几何体大小\n if (this._mesh) {\n // 替换现有几何体\n this._mesh.geometry.dispose() // 释放旧几何体\n this._mesh.geometry = new PlaneGeometry(value * 4, value * 4)\n }\n }\n\n public get color(): string {\n return this._color\n }\n\n public set color(newValue: string) {\n if (this._color === newValue)\n return\n this._color = newValue\n this._material.uniforms.color.value = new Color(this._color)\n }\n\n constructor(option: ParticleOption = {}) {\n super()\n const { radius = 0.5, color = '0xFFFFFF', visible = true } = option\n this._radius = radius\n this._color = color\n this.visible = visible\n this.init()\n }\n\n private async init() {\n const { uniforms: defaultUniforms, vertexShader, fragmentShader } = CircleShader\n const uniforms = structuredClone(defaultUniforms)\n uniforms.color.value = new Color(this.color)\n this._material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n side: 2,\n transparent: true,\n depthWrite: false,\n depthTest: true,\n blending: NormalBlending, // 明确混合模式\n polygonOffset: false, // 解决深度冲突\n polygonOffsetFactor: -1,\n })\n\n this._mesh = new Mesh(new PlaneGeometry(this.radius * 4, this.radius * 4), this._material)\n this._mesh.rotation.x = Math.PI / 2\n\n this.add(this._mesh)\n\n const clock = new Clock()\n use.useframe(() => {\n this._material.uniforms.iTime.value = clock.getElapsedTime() * 0.5\n })\n }\n}\n\nexport default DoubleCircleMesh"],"mappings":"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"}