@anov/3d-ability 0.0.141 → 0.0.143

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.js +114 -54
  78. package/dist/business/Poi/link/index.js.map +1 -1
  79. package/dist/business/Poi/panel/index.js +373 -315
  80. package/dist/business/Poi/panel/index.js.map +1 -1
  81. package/dist/business/Poi/panel/utils.js +10 -5
  82. package/dist/business/Poi/panel/utils.js.map +1 -1
  83. package/dist/business/Poi/particle/DoubleCircle.js +107 -71
  84. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  85. package/dist/business/Poi/particle/DynamicCircle.js +111 -75
  86. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  87. package/dist/business/Poi/particle/SingleCircle.js +98 -62
  88. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  89. package/dist/business/Poi/particle/index.js +117 -49
  90. package/dist/business/Poi/particle/index.js.map +1 -1
  91. package/dist/business/Poi/shader/circle.js +3 -31
  92. package/dist/business/Poi/shader/circle.js.map +1 -1
  93. package/dist/business/Poi/shader/cylinder.js +3 -37
  94. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  95. package/dist/business/Poi/shader/doubleCircle.js +3 -55
  96. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  97. package/dist/business/Poi/shader/dynamicCircle.js +3 -67
  98. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  99. package/dist/business/Poi/title/Border.js +27 -7
  100. package/dist/business/Poi/title/Border.js.map +1 -1
  101. package/dist/business/Poi/title/Ellipse.js +27 -7
  102. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  103. package/dist/business/Poi/title/index.js +292 -208
  104. package/dist/business/Poi/title/index.js.map +1 -1
  105. package/dist/business/Poi/tools.js +17 -18
  106. package/dist/business/Poi/tools.js.map +1 -1
  107. package/dist/business/Sphere/index.js +72 -47
  108. package/dist/business/Sphere/index.js.map +1 -1
  109. package/dist/business/Spline/index.js +245 -190
  110. package/dist/business/Spline/index.js.map +1 -1
  111. package/dist/business/SplitBuilding/index.js +536 -327
  112. package/dist/business/SplitBuilding/index.js.map +1 -1
  113. package/dist/business/SplitBuilding/type.js +2 -2
  114. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
  115. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  116. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
  117. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  118. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
  119. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  120. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
  121. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  122. package/dist/business/TrafficComponents/base.js +55 -32
  123. package/dist/business/TrafficComponents/base.js.map +1 -1
  124. package/dist/business/TrafficComponents/utils.d.ts +1 -1
  125. package/dist/business/TrafficComponents/utils.js +25 -26
  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":["ObjectLayer","_","Group","Vector3","createLabel","DEFAULT_OPTION","position","width","height","bgColor","borderRadius","closeable","padding","volume","src","autoplay","controls","loop","muted","poster","videoHeight","VideoPanel","constructor","option","_defineProperty","params","mergeWith","cloneDeep","title","_title","_width","_height","_bgColor","_position","bgUrl","_bgUrl","className","_className","customStyle","_customStyle","_borderRadius","_padding","_closeable","_autoplay","_controls","_loop","_muted","_poster","_volume","_src","_videoHeight","videoWidth","_videoWidth","onClose","_onClose","Object","assign","_videoElement","createVideoDom","_group","visible","init","createBox","_this$_title","bgDom","createBgDom","videoContainer","document","createElement","value","headerDom","createHeaderDom","appendChild","bgObject","set","center","add","applyPosition","style","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","display","_this$_title2","alignItems","justifyContent","titleDom","flex","textContent","_this$_title3","titleValue","titleStyle","_objectWithoutProperties","_excluded","_this$_title4","_this$_title5","closeDom","cursor","fontSize","color","pointerEvents","onclick","close","videoDom","objectFit","offset","Array","isArray","x","y","z","open","update","undefined","play","pause","setVolume","Math","max","min","seek","time","currentTime","toggleMute","duration","isPlaying","paused","ended","destroy","clear","remove","children","forEach","child","element","parentNode","removeChild","load"],"sources":["../../../src/business/VideoPanel/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 ObjectLayer from \"../Base/ObjectLayer\";\nimport _ from 'lodash'\nimport { Group, Vector3, createLabel, CSS2DRenderer} from '@anov/3d-core'\nimport type {Option, TitleOption} from './type'\nimport { IPanel } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closeable: true,\n padding: '10px',\n volume: 0.5,\n src: '',\n autoplay: false,\n controls: false,\n loop: false,\n muted: false,\n poster: '',\n videoHeight: 150\n}\n\nclass VideoPanel extends ObjectLayer implements IPanel{\n private _title: TitleOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\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\n private _videoElement: HTMLVideoElement;\n private _src: string;\n private _autoplay: boolean;\n private _controls: boolean;\n private _loop: boolean;\n private _muted: boolean;\n private _poster?: string;\n private _volume: number;\n private _videoHeight: number;\n private _videoWidth: number;\n\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 width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closeable: _closeable,\n autoplay: _autoplay,\n controls: _controls,\n loop: _loop,\n muted: _muted,\n poster: _poster,\n volume: _volume,\n src: _src,\n videoHeight: _videoHeight,\n videoWidth: _videoWidth,\n onClose: _onClose\n } = params;\n\n Object.assign(this, {\n _videoWidth, _videoHeight, _title, _autoplay, _loop, _muted, _volume, _poster, _controls, _src, _width, _height, _bgColor, _position,\n _bgUrl, _className, _customStyle, _borderRadius, _padding,_closeable, _onClose\n });\n \n this._videoElement = this.createVideoDom();\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 private createBox(){\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() //创建容器盒子\n const videoContainer = document.createElement('div');\n \n if(this._title?.value || this._closeable){\n const headerDom = this.createHeaderDom() //创建头部盒子\n bgDom.appendChild(headerDom)\n }\n videoContainer.appendChild(this._videoElement)\n bgDom.appendChild(videoContainer)\n\n const bgObject = createLabel(bgDom);\n bgObject.position.set(0, 0, 0);\n bgObject.center.set(0.5, 0.5);\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 display: 'flex',\n \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 = 'video-panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n headerDom.style.justifyContent = 'flex-end'\n if(this._title?.value) {\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 // 创建关闭按钮\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 \n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n private createVideoDom(){\n \n const videoDom = document.createElement('video');\n videoDom.style.width = this._videoWidth ? `${this._videoWidth}px` : '100%';\n videoDom.style.height = this._videoHeight ? `${this._videoHeight}px` : '100%';\n videoDom.style.objectFit = 'cover';\n videoDom.src = this._src;\n videoDom.autoplay = this._autoplay;\n videoDom.controls = this._controls;\n videoDom.loop = this._loop;\n videoDom.muted = this._muted;\n videoDom.volume = this._volume;\n\n if(this._poster) videoDom.poster = this._poster;\n return videoDom;\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 if (option.src) {\n this._src = option.src;\n this._videoElement.src = option.src;\n }\n if (option.autoplay !== undefined) this._autoplay = option.autoplay;\n if (option.controls !== undefined) this._videoElement.controls = option.controls;\n if (option.loop !== undefined) this._videoElement.loop = option.loop;\n if (option.muted !== undefined) this._videoElement.muted = option.muted;\n if (option.volume !== undefined) this._videoElement.volume = option.volume;\n if (option.poster) this._videoElement.poster = option.poster;\n }\n\n // 视频控制方法\n public play(): void {\n this._videoElement.play();\n }\n\n public pause(): void {\n this._videoElement.pause();\n }\n\n public setVolume(volume: number): void {\n this._videoElement.volume = Math.max(0, Math.min(1, volume));\n }\n\n public seek(time: number): void {\n this._videoElement.currentTime = time;\n }\n\n public toggleMute(): void {\n this._videoElement.muted = !this._videoElement.muted;\n }\n\n public get duration(): number {\n return this._videoElement.duration;\n }\n\n public get currentTime(): number {\n return this._videoElement.currentTime;\n }\n\n public get isPlaying(): boolean {\n return !this._videoElement.paused && !this._videoElement.ended;\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 this._videoElement.pause();\n this._videoElement.src = '';\n this._videoElement.load(); // 清理视频资源\n }\n}\n\nexport {VideoPanel}"],"mappings":"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"}
1
+ {"version":3,"names":["ObjectLayer","_","Group","Vector3","createLabel","DEFAULT_OPTION","position","width","height","bgColor","borderRadius","closeable","padding","volume","src","autoplay","controls","loop","muted","poster","videoHeight","VideoPanel","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","params","mergeWith","cloneDeep","_title","title","_width","_height","_bgColor","_position","_bgUrl","bgUrl","_className","className","_customStyle","customStyle","_borderRadius","_padding","_closeable","_autoplay","_controls","_loop","_muted","_poster","_volume","_src","_videoHeight","_videoWidth","videoWidth","_onClose","onClose","Object","assign","_videoElement","createVideoDom","_group","visible","init","_createClass","key","value","createBox","_this$_title","bgDom","createBgDom","videoContainer","document","createElement","headerDom","createHeaderDom","appendChild","bgObject","set","center","add","applyPosition","style","concat","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","display","_this$_title2","_this2","alignItems","justifyContent","titleDom","flex","textContent","_this$_title3","titleValue","titleStyle","_objectWithoutProperties","_excluded","_this$_title4","_this$_title5","closeDom","cursor","fontSize","color","pointerEvents","onclick","close","videoDom","objectFit","offset","arguments","length","undefined","Array","isArray","_this$_position","_slicedToArray","x","y","z","open","update","play","pause","setVolume","Math","max","min","seek","time","currentTime","toggleMute","get","duration","paused","ended","destroy","clear","remove","children","forEach","child","element","parentNode","removeChild","load"],"sources":["../../../src/business/VideoPanel/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 ObjectLayer from \"../Base/ObjectLayer\";\nimport _ from 'lodash'\nimport { Group, Vector3, createLabel, CSS2DRenderer} from '@anov/3d-core'\nimport type {Option, TitleOption} from './type'\nimport { IPanel } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closeable: true,\n padding: '10px',\n volume: 0.5,\n src: '',\n autoplay: false,\n controls: false,\n loop: false,\n muted: false,\n poster: '',\n videoHeight: 150\n}\n\nclass VideoPanel extends ObjectLayer implements IPanel{\n private _title: TitleOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\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\n private _videoElement: HTMLVideoElement;\n private _src: string;\n private _autoplay: boolean;\n private _controls: boolean;\n private _loop: boolean;\n private _muted: boolean;\n private _poster?: string;\n private _volume: number;\n private _videoHeight: number;\n private _videoWidth: number;\n\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 width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closeable: _closeable,\n autoplay: _autoplay,\n controls: _controls,\n loop: _loop,\n muted: _muted,\n poster: _poster,\n volume: _volume,\n src: _src,\n videoHeight: _videoHeight,\n videoWidth: _videoWidth,\n onClose: _onClose\n } = params;\n\n Object.assign(this, {\n _videoWidth, _videoHeight, _title, _autoplay, _loop, _muted, _volume, _poster, _controls, _src, _width, _height, _bgColor, _position,\n _bgUrl, _className, _customStyle, _borderRadius, _padding,_closeable, _onClose\n });\n \n this._videoElement = this.createVideoDom();\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 private createBox(){\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() //创建容器盒子\n const videoContainer = document.createElement('div');\n \n if(this._title?.value || this._closeable){\n const headerDom = this.createHeaderDom() //创建头部盒子\n bgDom.appendChild(headerDom)\n }\n videoContainer.appendChild(this._videoElement)\n bgDom.appendChild(videoContainer)\n\n const bgObject = createLabel(bgDom);\n bgObject.position.set(0, 0, 0);\n bgObject.center.set(0.5, 0.5);\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 display: 'flex',\n \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 = 'video-panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n headerDom.style.justifyContent = 'flex-end'\n if(this._title?.value) {\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 // 创建关闭按钮\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 \n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n private createVideoDom(){\n \n const videoDom = document.createElement('video');\n videoDom.style.width = this._videoWidth ? `${this._videoWidth}px` : '100%';\n videoDom.style.height = this._videoHeight ? `${this._videoHeight}px` : '100%';\n videoDom.style.objectFit = 'cover';\n videoDom.src = this._src;\n videoDom.autoplay = this._autoplay;\n videoDom.controls = this._controls;\n videoDom.loop = this._loop;\n videoDom.muted = this._muted;\n videoDom.volume = this._volume;\n\n if(this._poster) videoDom.poster = this._poster;\n return videoDom;\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 if (option.src) {\n this._src = option.src;\n this._videoElement.src = option.src;\n }\n if (option.autoplay !== undefined) this._autoplay = option.autoplay;\n if (option.controls !== undefined) this._videoElement.controls = option.controls;\n if (option.loop !== undefined) this._videoElement.loop = option.loop;\n if (option.muted !== undefined) this._videoElement.muted = option.muted;\n if (option.volume !== undefined) this._videoElement.volume = option.volume;\n if (option.poster) this._videoElement.poster = option.poster;\n }\n\n // 视频控制方法\n public play(): void {\n this._videoElement.play();\n }\n\n public pause(): void {\n this._videoElement.pause();\n }\n\n public setVolume(volume: number): void {\n this._videoElement.volume = Math.max(0, Math.min(1, volume));\n }\n\n public seek(time: number): void {\n this._videoElement.currentTime = time;\n }\n\n public toggleMute(): void {\n this._videoElement.muted = !this._videoElement.muted;\n }\n\n public get duration(): number {\n return this._videoElement.duration;\n }\n\n public get currentTime(): number {\n return this._videoElement.currentTime;\n }\n\n public get isPlaying(): boolean {\n return !this._videoElement.paused && !this._videoElement.ended;\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 this._videoElement.pause();\n this._videoElement.src = '';\n this._videoElement.load(); // 清理视频资源\n }\n}\n\nexport {VideoPanel}"],"mappings":"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"}
@@ -1,11 +1,22 @@
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); }
1
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
+ 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); } }
6
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7
+ 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); }
8
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ 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); }; }
10
+ 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); }
11
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
+ 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; } }
13
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
3
14
  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); }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
+ 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
17
  import { DoubleSide, Object3D, PlaneGeometry, RepeatWrapping, TextureLoader, Water as ThreeWater, Vector3, use } from '@anov/3d-core';
7
18
  import { WaterImg } from "./types";
8
- const DEFAULT_OPTION = {
19
+ var DEFAULT_OPTION = {
9
20
  size: 1000,
10
21
  height: 0,
11
22
  waterColor: 0x001E0F,
@@ -15,86 +26,105 @@ const DEFAULT_OPTION = {
15
26
  alpha: 1.0,
16
27
  doubleSided: true // 是否双面渲染
17
28
  };
18
- class Water extends Object3D {
19
- constructor(option) {
20
- super();
21
- _defineProperty(this, "_option", void 0);
22
- _defineProperty(this, "_mesh", void 0);
23
- _defineProperty(this, "_disposeCallback", void 0);
24
- this._option = _objectSpread(_objectSpread({}, DEFAULT_OPTION), option || {});
25
- this.init();
29
+ var Water = /*#__PURE__*/function (_Object3D) {
30
+ _inherits(Water, _Object3D);
31
+ var _super = _createSuper(Water);
32
+ function Water(option) {
33
+ var _this;
34
+ _classCallCheck(this, Water);
35
+ _this = _super.call(this);
36
+ _defineProperty(_assertThisInitialized(_this), "_option", void 0);
37
+ _defineProperty(_assertThisInitialized(_this), "_mesh", void 0);
38
+ _defineProperty(_assertThisInitialized(_this), "_disposeCallback", void 0);
39
+ _this._option = _objectSpread(_objectSpread({}, DEFAULT_OPTION), option || {});
40
+ _this.init();
41
+ return _this;
26
42
  }
27
- init() {
28
- const {
29
- size,
30
- alpha,
31
- height,
32
- sunColor,
33
- waterColor,
34
- distortionScale
35
- } = this._option;
36
- const waterGeometry = new PlaneGeometry(size, size);
37
- const water = new ThreeWater(waterGeometry, {
38
- textureWidth: 512,
39
- textureHeight: 512,
40
- waterNormals: new TextureLoader().load(WaterImg, texture => {
41
- texture.wrapS = texture.wrapT = RepeatWrapping;
42
- }),
43
- alpha,
44
- sunDirection: new Vector3(),
45
- sunColor,
46
- waterColor,
47
- distortionScale
48
- });
49
- water.rotation.x = -Math.PI / 2;
50
- water.name = 'SYS_WATER';
51
- water.material.side = DoubleSide;
52
- water.position.y = height;
53
- this.add(water);
54
- this._mesh = water;
55
- }
56
- setSize(size) {
57
- if (!this._mesh) {
58
- console.warn('Water not created');
59
- return;
43
+ _createClass(Water, [{
44
+ key: "init",
45
+ value: function init() {
46
+ var _this$_option = this._option,
47
+ size = _this$_option.size,
48
+ alpha = _this$_option.alpha,
49
+ height = _this$_option.height,
50
+ sunColor = _this$_option.sunColor,
51
+ waterColor = _this$_option.waterColor,
52
+ distortionScale = _this$_option.distortionScale;
53
+ var waterGeometry = new PlaneGeometry(size, size);
54
+ var water = new ThreeWater(waterGeometry, {
55
+ textureWidth: 512,
56
+ textureHeight: 512,
57
+ waterNormals: new TextureLoader().load(WaterImg, function (texture) {
58
+ texture.wrapS = texture.wrapT = RepeatWrapping;
59
+ }),
60
+ alpha: alpha,
61
+ sunDirection: new Vector3(),
62
+ sunColor: sunColor,
63
+ waterColor: waterColor,
64
+ distortionScale: distortionScale
65
+ });
66
+ water.rotation.x = -Math.PI / 2;
67
+ water.name = 'SYS_WATER';
68
+ water.material.side = DoubleSide;
69
+ water.position.y = height;
70
+ this.add(water);
71
+ this._mesh = water;
72
+ }
73
+ }, {
74
+ key: "setSize",
75
+ value: function setSize(size) {
76
+ if (!this._mesh) {
77
+ console.warn('Water not created');
78
+ return;
79
+ }
80
+ if (this._option.size === size) return;
81
+ this._option.size = size;
82
+ var geometry = new PlaneGeometry(size, size);
83
+ this._mesh.geometry.dispose();
84
+ this._mesh.geometry = geometry;
60
85
  }
61
- if (this._option.size === size) return;
62
- this._option.size = size;
63
- const geometry = new PlaneGeometry(size, size);
64
- this._mesh.geometry.dispose();
65
- this._mesh.geometry = geometry;
66
- }
67
86
 
68
- /**
69
- * 设置当前高度
70
- */
71
- setHeight(height) {
72
- if (!this._mesh) {
73
- console.warn('Water not created');
74
- return;
87
+ /**
88
+ * 设置当前高度
89
+ */
90
+ }, {
91
+ key: "setHeight",
92
+ value: function setHeight(height) {
93
+ if (!this._mesh) {
94
+ console.warn('Water not created');
95
+ return;
96
+ }
97
+ this._mesh.position.y = height;
98
+ this._option.height = height;
75
99
  }
76
- this._mesh.position.y = height;
77
- this._option.height = height;
78
- }
79
100
 
80
- /**
81
- * 获取当前高度
82
- */
83
- getHeight() {
84
- var _this$_mesh$position$, _this$_mesh;
85
- return (_this$_mesh$position$ = (_this$_mesh = this._mesh) === null || _this$_mesh === void 0 ? void 0 : _this$_mesh.position.y) !== null && _this$_mesh$position$ !== void 0 ? _this$_mesh$position$ : 0;
86
- }
87
- update() {
88
- this._disposeCallback = use.useframeAfter(() => {
89
- if (this._mesh) this._mesh.material.uniforms.time.value += 1.0 / 60.0;
90
- });
91
- }
101
+ /**
102
+ * 获取当前高度
103
+ */
104
+ }, {
105
+ key: "getHeight",
106
+ value: function getHeight() {
107
+ var _this$_mesh$position$, _this$_mesh;
108
+ return (_this$_mesh$position$ = (_this$_mesh = this._mesh) === null || _this$_mesh === void 0 ? void 0 : _this$_mesh.position.y) !== null && _this$_mesh$position$ !== void 0 ? _this$_mesh$position$ : 0;
109
+ }
110
+ }, {
111
+ key: "update",
112
+ value: function update() {
113
+ var _this2 = this;
114
+ this._disposeCallback = use.useframeAfter(function () {
115
+ if (_this2._mesh) _this2._mesh.material.uniforms.time.value += 1.0 / 60.0;
116
+ });
117
+ }
92
118
 
93
- // 销毁
94
- destroy() {
95
- this._disposeCallback && this._disposeCallback();
96
- this.remove(this._mesh);
97
- }
98
- }
119
+ // 销毁
120
+ }, {
121
+ key: "destroy",
122
+ value: function destroy() {
123
+ this._disposeCallback && this._disposeCallback();
124
+ this.remove(this._mesh);
125
+ }
126
+ }]);
127
+ return Water;
128
+ }(Object3D);
99
129
  export { Water };
100
130
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DoubleSide","Object3D","PlaneGeometry","RepeatWrapping","TextureLoader","Water","ThreeWater","Vector3","use","WaterImg","DEFAULT_OPTION","size","height","waterColor","fog","sunColor","distortionScale","alpha","doubleSided","constructor","option","_defineProperty","_option","_objectSpread","init","waterGeometry","water","textureWidth","textureHeight","waterNormals","load","texture","wrapS","wrapT","sunDirection","rotation","x","Math","PI","name","material","side","position","y","add","_mesh","setSize","console","warn","geometry","dispose","setHeight","getHeight","_this$_mesh$position$","_this$_mesh","update","_disposeCallback","useframeAfter","uniforms","time","value","destroy","remove"],"sources":["../../../src/business/Water/index.ts"],"sourcesContent":["import { DoubleSide, Object3D, PlaneGeometry, RepeatWrapping, TextureLoader, Water as ThreeWater, Vector3, use } from '@anov/3d-core'\nimport { WaterImg } from './types'\nimport type { IWater } from './types'\n\nexport interface IWaterOption {\n size?: number\n height?: number\n waterColor?: number\n doubleSided?: boolean // 是否双面渲染\n [key: string]: any\n}\n\nconst DEFAULT_OPTION = {\n size: 1000,\n height: 0,\n waterColor: 0x001E0F,\n fog: false,\n sunColor: 0xFFFFFF,\n distortionScale: 1.5,\n alpha: 1.0,\n doubleSided: true, // 是否双面渲染\n}\n\nclass Water extends Object3D implements IWater {\n private _option: IWaterOption\n private _mesh: ThreeWater\n private _disposeCallback: Function | null\n constructor(option: IWaterOption) {\n super()\n this._option = { ...DEFAULT_OPTION, ...(option || {}) }\n this.init()\n }\n\n init() {\n const { size, alpha, height, sunColor, waterColor, distortionScale } = this._option\n const waterGeometry = new PlaneGeometry(size, size)\n const water = new ThreeWater(waterGeometry, {\n textureWidth: 512,\n textureHeight: 512,\n waterNormals: new TextureLoader().load(WaterImg, (texture) => {\n texture.wrapS = texture.wrapT = RepeatWrapping\n }),\n alpha,\n sunDirection: new Vector3(),\n sunColor,\n waterColor,\n distortionScale,\n })\n water.rotation.x = -Math.PI / 2\n water.name = 'SYS_WATER'\n water.material.side = DoubleSide\n water.position.y = height\n\n this.add(water)\n this._mesh = water\n }\n\n setSize(size: number) {\n if (!this._mesh) {\n console.warn('Water not created')\n return\n }\n if (this._option.size === size)\n return\n this._option.size = size\n const geometry = new PlaneGeometry(size, size)\n this._mesh.geometry.dispose()\n this._mesh.geometry = geometry\n }\n\n /**\n * 设置当前高度\n */\n setHeight(height: number): void {\n if (!this._mesh) {\n console.warn('Water not created')\n return\n }\n this._mesh.position.y = height\n this._option.height = height\n }\n\n /**\n * 获取当前高度\n */\n getHeight(): number {\n return this._mesh?.position.y ?? 0\n }\n\n update() {\n this._disposeCallback = use.useframeAfter(() => {\n if (this._mesh)\n this._mesh.material.uniforms.time.value += 1.0 / 60.0\n })\n }\n\n // 销毁\n destroy() {\n this._disposeCallback && this._disposeCallback()\n this.remove(this._mesh)\n }\n}\n\nexport { Water }"],"mappings":";;;;;AAAA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,cAAc,EAAEC,aAAa,EAAEC,KAAK,IAAIC,UAAU,EAAEC,OAAO,EAAEC,GAAG,QAAQ,eAAe;AACrI,SAASC,QAAQ;AAWjB,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,CAAC;EACTC,UAAU,EAAE,QAAQ;EACpBC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,QAAQ;EAClBC,eAAe,EAAE,GAAG;EACpBC,KAAK,EAAE,GAAG;EACVC,WAAW,EAAE,IAAI,CAAE;AACrB,CAAC;AAED,MAAMb,KAAK,SAASJ,QAAQ,CAAmB;EAI7CkB,WAAWA,CAACC,MAAoB,EAAE;IAChC,KAAK,CAAC,CAAC;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACP,IAAI,CAACC,OAAO,GAAAC,aAAA,CAAAA,aAAA,KAAQb,cAAc,GAAMU,MAAM,IAAI,CAAC,CAAC,CAAG;IACvD,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;EAEAA,IAAIA,CAAA,EAAG;IACL,MAAM;MAAEb,IAAI;MAAEM,KAAK;MAAEL,MAAM;MAAEG,QAAQ;MAAEF,UAAU;MAAEG;IAAgB,CAAC,GAAG,IAAI,CAACM,OAAO;IACnF,MAAMG,aAAa,GAAG,IAAIvB,aAAa,CAACS,IAAI,EAAEA,IAAI,CAAC;IACnD,MAAMe,KAAK,GAAG,IAAIpB,UAAU,CAACmB,aAAa,EAAE;MAC1CE,YAAY,EAAE,GAAG;MACjBC,aAAa,EAAE,GAAG;MAClBC,YAAY,EAAE,IAAIzB,aAAa,CAAC,CAAC,CAAC0B,IAAI,CAACrB,QAAQ,EAAGsB,OAAO,IAAK;QAC5DA,OAAO,CAACC,KAAK,GAAGD,OAAO,CAACE,KAAK,GAAG9B,cAAc;MAChD,CAAC,CAAC;MACFc,KAAK;MACLiB,YAAY,EAAE,IAAI3B,OAAO,CAAC,CAAC;MAC3BQ,QAAQ;MACRF,UAAU;MACVG;IACF,CAAC,CAAC;IACFU,KAAK,CAACS,QAAQ,CAACC,CAAC,GAAG,CAACC,IAAI,CAACC,EAAE,GAAG,CAAC;IAC/BZ,KAAK,CAACa,IAAI,GAAG,WAAW;IACxBb,KAAK,CAACc,QAAQ,CAACC,IAAI,GAAGzC,UAAU;IAChC0B,KAAK,CAACgB,QAAQ,CAACC,CAAC,GAAG/B,MAAM;IAEzB,IAAI,CAACgC,GAAG,CAAClB,KAAK,CAAC;IACf,IAAI,CAACmB,KAAK,GAAGnB,KAAK;EACpB;EAEAoB,OAAOA,CAACnC,IAAY,EAAE;IACpB,IAAI,CAAC,IAAI,CAACkC,KAAK,EAAE;MACfE,OAAO,CAACC,IAAI,CAAC,mBAAmB,CAAC;MACjC;IACF;IACA,IAAI,IAAI,CAAC1B,OAAO,CAACX,IAAI,KAAKA,IAAI,EAC5B;IACF,IAAI,CAACW,OAAO,CAACX,IAAI,GAAGA,IAAI;IACxB,MAAMsC,QAAQ,GAAG,IAAI/C,aAAa,CAACS,IAAI,EAAEA,IAAI,CAAC;IAC9C,IAAI,CAACkC,KAAK,CAACI,QAAQ,CAACC,OAAO,CAAC,CAAC;IAC7B,IAAI,CAACL,KAAK,CAACI,QAAQ,GAAGA,QAAQ;EAChC;;EAEA;AACF;AACA;EACEE,SAASA,CAACvC,MAAc,EAAQ;IAC9B,IAAI,CAAC,IAAI,CAACiC,KAAK,EAAE;MACfE,OAAO,CAACC,IAAI,CAAC,mBAAmB,CAAC;MACjC;IACF;IACA,IAAI,CAACH,KAAK,CAACH,QAAQ,CAACC,CAAC,GAAG/B,MAAM;IAC9B,IAAI,CAACU,OAAO,CAACV,MAAM,GAAGA,MAAM;EAC9B;;EAEA;AACF;AACA;EACEwC,SAASA,CAAA,EAAW;IAAA,IAAAC,qBAAA,EAAAC,WAAA;IAClB,QAAAD,qBAAA,IAAAC,WAAA,GAAO,IAAI,CAACT,KAAK,cAAAS,WAAA,uBAAVA,WAAA,CAAYZ,QAAQ,CAACC,CAAC,cAAAU,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EACpC;EAEAE,MAAMA,CAAA,EAAG;IACP,IAAI,CAACC,gBAAgB,GAAGhD,GAAG,CAACiD,aAAa,CAAC,MAAM;MAC9C,IAAI,IAAI,CAACZ,KAAK,EACZ,IAAI,CAACA,KAAK,CAACL,QAAQ,CAACkB,QAAQ,CAACC,IAAI,CAACC,KAAK,IAAI,GAAG,GAAG,IAAI;IACzD,CAAC,CAAC;EACJ;;EAEA;EACAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACL,gBAAgB,IAAI,IAAI,CAACA,gBAAgB,CAAC,CAAC;IAChD,IAAI,CAACM,MAAM,CAAC,IAAI,CAACjB,KAAK,CAAC;EACzB;AACF;AAEA,SAASxC,KAAK"}
1
+ {"version":3,"names":["DoubleSide","Object3D","PlaneGeometry","RepeatWrapping","TextureLoader","Water","ThreeWater","Vector3","use","WaterImg","DEFAULT_OPTION","size","height","waterColor","fog","sunColor","distortionScale","alpha","doubleSided","_Object3D","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","_option","_objectSpread","init","_createClass","key","value","_this$_option","waterGeometry","water","textureWidth","textureHeight","waterNormals","load","texture","wrapS","wrapT","sunDirection","rotation","x","Math","PI","name","material","side","position","y","add","_mesh","setSize","console","warn","geometry","dispose","setHeight","getHeight","_this$_mesh$position$","_this$_mesh","update","_this2","_disposeCallback","useframeAfter","uniforms","time","destroy","remove"],"sources":["../../../src/business/Water/index.ts"],"sourcesContent":["import { DoubleSide, Object3D, PlaneGeometry, RepeatWrapping, TextureLoader, Water as ThreeWater, Vector3, use } from '@anov/3d-core'\nimport { WaterImg } from './types'\nimport type { IWater } from './types'\n\nexport interface IWaterOption {\n size?: number\n height?: number\n waterColor?: number\n doubleSided?: boolean // 是否双面渲染\n [key: string]: any\n}\n\nconst DEFAULT_OPTION = {\n size: 1000,\n height: 0,\n waterColor: 0x001E0F,\n fog: false,\n sunColor: 0xFFFFFF,\n distortionScale: 1.5,\n alpha: 1.0,\n doubleSided: true, // 是否双面渲染\n}\n\nclass Water extends Object3D implements IWater {\n private _option: IWaterOption\n private _mesh: ThreeWater\n private _disposeCallback: Function | null\n constructor(option: IWaterOption) {\n super()\n this._option = { ...DEFAULT_OPTION, ...(option || {}) }\n this.init()\n }\n\n init() {\n const { size, alpha, height, sunColor, waterColor, distortionScale } = this._option\n const waterGeometry = new PlaneGeometry(size, size)\n const water = new ThreeWater(waterGeometry, {\n textureWidth: 512,\n textureHeight: 512,\n waterNormals: new TextureLoader().load(WaterImg, (texture) => {\n texture.wrapS = texture.wrapT = RepeatWrapping\n }),\n alpha,\n sunDirection: new Vector3(),\n sunColor,\n waterColor,\n distortionScale,\n })\n water.rotation.x = -Math.PI / 2\n water.name = 'SYS_WATER'\n water.material.side = DoubleSide\n water.position.y = height\n\n this.add(water)\n this._mesh = water\n }\n\n setSize(size: number) {\n if (!this._mesh) {\n console.warn('Water not created')\n return\n }\n if (this._option.size === size)\n return\n this._option.size = size\n const geometry = new PlaneGeometry(size, size)\n this._mesh.geometry.dispose()\n this._mesh.geometry = geometry\n }\n\n /**\n * 设置当前高度\n */\n setHeight(height: number): void {\n if (!this._mesh) {\n console.warn('Water not created')\n return\n }\n this._mesh.position.y = height\n this._option.height = height\n }\n\n /**\n * 获取当前高度\n */\n getHeight(): number {\n return this._mesh?.position.y ?? 0\n }\n\n update() {\n this._disposeCallback = use.useframeAfter(() => {\n if (this._mesh)\n this._mesh.material.uniforms.time.value += 1.0 / 60.0\n })\n }\n\n // 销毁\n destroy() {\n this._disposeCallback && this._disposeCallback()\n this.remove(this._mesh)\n }\n}\n\nexport { Water }"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,aAAa,EAAEC,cAAc,EAAEC,aAAa,EAAEC,KAAK,IAAIC,UAAU,EAAEC,OAAO,EAAEC,GAAG,QAAQ,eAAe;AACrI,SAASC,QAAQ;AAWjB,IAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,CAAC;EACTC,UAAU,EAAE,QAAQ;EACpBC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,QAAQ;EAClBC,eAAe,EAAE,GAAG;EACpBC,KAAK,EAAE,GAAG;EACVC,WAAW,EAAE,IAAI,CAAE;AACrB,CAAC;AAAA,IAEKb,KAAK,0BAAAc,SAAA;EAAAC,SAAA,CAAAf,KAAA,EAAAc,SAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAjB,KAAA;EAIT,SAAAA,MAAYkB,MAAoB,EAAE;IAAA,IAAAC,KAAA;IAAAC,eAAA,OAAApB,KAAA;IAChCmB,KAAA,GAAAH,MAAA,CAAAK,IAAA;IAAOC,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IAAAG,eAAA,CAAAC,sBAAA,CAAAJ,KAAA;IACPA,KAAA,CAAKK,OAAO,GAAAC,aAAA,CAAAA,aAAA,KAAQpB,cAAc,GAAMa,MAAM,IAAI,CAAC,CAAC,CAAG;IACvDC,KAAA,CAAKO,IAAI,CAAC,CAAC;IAAA,OAAAP,KAAA;EACb;EAACQ,YAAA,CAAA3B,KAAA;IAAA4B,GAAA;IAAAC,KAAA,EAED,SAAAH,KAAA,EAAO;MACL,IAAAI,aAAA,GAAuE,IAAI,CAACN,OAAO;QAA3ElB,IAAI,GAAAwB,aAAA,CAAJxB,IAAI;QAAEM,KAAK,GAAAkB,aAAA,CAALlB,KAAK;QAAEL,MAAM,GAAAuB,aAAA,CAANvB,MAAM;QAAEG,QAAQ,GAAAoB,aAAA,CAARpB,QAAQ;QAAEF,UAAU,GAAAsB,aAAA,CAAVtB,UAAU;QAAEG,eAAe,GAAAmB,aAAA,CAAfnB,eAAe;MAClE,IAAMoB,aAAa,GAAG,IAAIlC,aAAa,CAACS,IAAI,EAAEA,IAAI,CAAC;MACnD,IAAM0B,KAAK,GAAG,IAAI/B,UAAU,CAAC8B,aAAa,EAAE;QAC1CE,YAAY,EAAE,GAAG;QACjBC,aAAa,EAAE,GAAG;QAClBC,YAAY,EAAE,IAAIpC,aAAa,CAAC,CAAC,CAACqC,IAAI,CAAChC,QAAQ,EAAE,UAACiC,OAAO,EAAK;UAC5DA,OAAO,CAACC,KAAK,GAAGD,OAAO,CAACE,KAAK,GAAGzC,cAAc;QAChD,CAAC,CAAC;QACFc,KAAK,EAALA,KAAK;QACL4B,YAAY,EAAE,IAAItC,OAAO,CAAC,CAAC;QAC3BQ,QAAQ,EAARA,QAAQ;QACRF,UAAU,EAAVA,UAAU;QACVG,eAAe,EAAfA;MACF,CAAC,CAAC;MACFqB,KAAK,CAACS,QAAQ,CAACC,CAAC,GAAG,CAACC,IAAI,CAACC,EAAE,GAAG,CAAC;MAC/BZ,KAAK,CAACa,IAAI,GAAG,WAAW;MACxBb,KAAK,CAACc,QAAQ,CAACC,IAAI,GAAGpD,UAAU;MAChCqC,KAAK,CAACgB,QAAQ,CAACC,CAAC,GAAG1C,MAAM;MAEzB,IAAI,CAAC2C,GAAG,CAAClB,KAAK,CAAC;MACf,IAAI,CAACmB,KAAK,GAAGnB,KAAK;IACpB;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAuB,QAAQ9C,IAAY,EAAE;MACpB,IAAI,CAAC,IAAI,CAAC6C,KAAK,EAAE;QACfE,OAAO,CAACC,IAAI,CAAC,mBAAmB,CAAC;QACjC;MACF;MACA,IAAI,IAAI,CAAC9B,OAAO,CAAClB,IAAI,KAAKA,IAAI,EAC5B;MACF,IAAI,CAACkB,OAAO,CAAClB,IAAI,GAAGA,IAAI;MACxB,IAAMiD,QAAQ,GAAG,IAAI1D,aAAa,CAACS,IAAI,EAAEA,IAAI,CAAC;MAC9C,IAAI,CAAC6C,KAAK,CAACI,QAAQ,CAACC,OAAO,CAAC,CAAC;MAC7B,IAAI,CAACL,KAAK,CAACI,QAAQ,GAAGA,QAAQ;IAChC;;IAEA;AACF;AACA;EAFE;IAAA3B,GAAA;IAAAC,KAAA,EAGA,SAAA4B,UAAUlD,MAAc,EAAQ;MAC9B,IAAI,CAAC,IAAI,CAAC4C,KAAK,EAAE;QACfE,OAAO,CAACC,IAAI,CAAC,mBAAmB,CAAC;QACjC;MACF;MACA,IAAI,CAACH,KAAK,CAACH,QAAQ,CAACC,CAAC,GAAG1C,MAAM;MAC9B,IAAI,CAACiB,OAAO,CAACjB,MAAM,GAAGA,MAAM;IAC9B;;IAEA;AACF;AACA;EAFE;IAAAqB,GAAA;IAAAC,KAAA,EAGA,SAAA6B,UAAA,EAAoB;MAAA,IAAAC,qBAAA,EAAAC,WAAA;MAClB,QAAAD,qBAAA,IAAAC,WAAA,GAAO,IAAI,CAACT,KAAK,cAAAS,WAAA,uBAAVA,WAAA,CAAYZ,QAAQ,CAACC,CAAC,cAAAU,qBAAA,cAAAA,qBAAA,GAAI,CAAC;IACpC;EAAC;IAAA/B,GAAA;IAAAC,KAAA,EAED,SAAAgC,OAAA,EAAS;MAAA,IAAAC,MAAA;MACP,IAAI,CAACC,gBAAgB,GAAG5D,GAAG,CAAC6D,aAAa,CAAC,YAAM;QAC9C,IAAIF,MAAI,CAACX,KAAK,EACZW,MAAI,CAACX,KAAK,CAACL,QAAQ,CAACmB,QAAQ,CAACC,IAAI,CAACrC,KAAK,IAAI,GAAG,GAAG,IAAI;MACzD,CAAC,CAAC;IACJ;;IAEA;EAAA;IAAAD,GAAA;IAAAC,KAAA,EACA,SAAAsC,QAAA,EAAU;MACR,IAAI,CAACJ,gBAAgB,IAAI,IAAI,CAACA,gBAAgB,CAAC,CAAC;MAChD,IAAI,CAACK,MAAM,CAAC,IAAI,CAACjB,KAAK,CAAC;IACzB;EAAC;EAAA,OAAAnD,KAAA;AAAA,EA7EiBJ,QAAQ;AAgF5B,SAASI,KAAK"}