@anov/3d-ability 0.0.139 → 0.0.141

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 (265) hide show
  1. package/dist/business/Animation/motion/index.js +35 -56
  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 +146 -187
  5. package/dist/business/Area/Fence/FenceBase.js.map +1 -1
  6. package/dist/business/Area/Fence/fence_base_01.js +120 -112
  7. package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
  8. package/dist/business/Area/Fence/fence_feeting_01.js +218 -130
  9. package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
  10. package/dist/business/Area/Fence/fence_roll_01.js +140 -130
  11. package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
  12. package/dist/business/Area/FillArea/FillAreaBase.js +87 -126
  13. package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
  14. package/dist/business/Area/FillArea/fillArea_face_01.js +72 -98
  15. package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
  16. package/dist/business/Area/FillArea/fillArea_line_01.js +66 -94
  17. package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
  18. package/dist/business/Area/index.js +267 -483
  19. package/dist/business/Area/index.js.map +1 -1
  20. package/dist/business/Area/tool.js +14 -26
  21. package/dist/business/Area/tool.js.map +1 -1
  22. package/dist/business/Base/ObjectLayer.js +21 -46
  23. package/dist/business/Base/ObjectLayer.js.map +1 -1
  24. package/dist/business/Batch/index.js +189 -234
  25. package/dist/business/Batch/index.js.map +1 -1
  26. package/dist/business/Box/index.js +52 -81
  27. package/dist/business/Box/index.js.map +1 -1
  28. package/dist/business/Cylinder/index.js +51 -79
  29. package/dist/business/Cylinder/index.js.map +1 -1
  30. package/dist/business/Flyline/bubble/CircleBubble.js +1 -9
  31. package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
  32. package/dist/business/Flyline/bubble/index.js +7 -21
  33. package/dist/business/Flyline/bubble/index.js.map +1 -1
  34. package/dist/business/Flyline/index.js +96 -162
  35. package/dist/business/Flyline/index.js.map +1 -1
  36. package/dist/business/Flyline/line/ArcLine.js +208 -291
  37. package/dist/business/Flyline/line/ArcLine.js.map +1 -1
  38. package/dist/business/Flyline/line/index.js +8 -22
  39. package/dist/business/Flyline/line/index.js.map +1 -1
  40. package/dist/business/HeatMap/HeatMap.js +380 -467
  41. package/dist/business/HeatMap/HeatMap.js.map +1 -1
  42. package/dist/business/HeatMap/core.js +405 -525
  43. package/dist/business/HeatMap/core.js.map +1 -1
  44. package/dist/business/HeatMap/shader.js +69 -3
  45. package/dist/business/HeatMap/shader.js.map +1 -1
  46. package/dist/business/InfoPanel/index.js +201 -242
  47. package/dist/business/InfoPanel/index.js.map +1 -1
  48. package/dist/business/Line/index.js +55 -88
  49. package/dist/business/Line/index.js.map +1 -1
  50. package/dist/business/Mark/KeyframeAnimation.js +145 -176
  51. package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
  52. package/dist/business/Mark/index.js +196 -294
  53. package/dist/business/Mark/index.js.map +1 -1
  54. package/dist/business/Mark/shader/tanhao.js +36 -3
  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 +377 -551
  58. package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
  59. package/dist/business/MaterialSwitch/inject.js +92 -58
  60. package/dist/business/MaterialSwitch/inject.js.map +1 -1
  61. package/dist/business/MaterialSwitch/shader/finalFade.js +74 -2
  62. package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
  63. package/dist/business/MaterialSwitch/shader/ground.js +95 -16
  64. package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
  65. package/dist/business/MaterialSwitch/shader/groundBase64.js +9 -3
  66. package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
  67. package/dist/business/MaterialSwitch/shader/realFade.js +48 -9
  68. package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
  69. package/dist/business/Plane/index.js +51 -78
  70. package/dist/business/Plane/index.js.map +1 -1
  71. package/dist/business/Poi/index.d.ts +5 -0
  72. package/dist/business/Poi/index.js +256 -295
  73. package/dist/business/Poi/index.js.map +1 -1
  74. package/dist/business/Poi/link/Cylinder.js +56 -89
  75. package/dist/business/Poi/link/Cylinder.js.map +1 -1
  76. package/dist/business/Poi/link/Pyramid.js +104 -165
  77. package/dist/business/Poi/link/Pyramid.js.map +1 -1
  78. package/dist/business/Poi/link/index.d.ts +1 -1
  79. package/dist/business/Poi/link/index.js +54 -114
  80. package/dist/business/Poi/link/index.js.map +1 -1
  81. package/dist/business/Poi/panel/index.d.ts +124 -0
  82. package/dist/business/Poi/panel/index.js +474 -0
  83. package/dist/business/Poi/panel/index.js.map +1 -0
  84. package/dist/business/Poi/panel/interfaces.d.ts +67 -0
  85. package/dist/business/Poi/panel/interfaces.js +2 -0
  86. package/dist/business/Poi/panel/interfaces.js.map +1 -0
  87. package/dist/business/Poi/panel/utils.d.ts +72 -0
  88. package/dist/business/Poi/panel/utils.js +126 -0
  89. package/dist/business/Poi/panel/utils.js.map +1 -0
  90. package/dist/business/Poi/particle/DoubleCircle.js +71 -107
  91. package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
  92. package/dist/business/Poi/particle/DynamicCircle.js +75 -111
  93. package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
  94. package/dist/business/Poi/particle/SingleCircle.js +62 -98
  95. package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
  96. package/dist/business/Poi/particle/index.js +49 -117
  97. package/dist/business/Poi/particle/index.js.map +1 -1
  98. package/dist/business/Poi/shader/circle.js +31 -3
  99. package/dist/business/Poi/shader/circle.js.map +1 -1
  100. package/dist/business/Poi/shader/cylinder.js +37 -3
  101. package/dist/business/Poi/shader/cylinder.js.map +1 -1
  102. package/dist/business/Poi/shader/doubleCircle.js +55 -3
  103. package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
  104. package/dist/business/Poi/shader/dynamicCircle.js +67 -3
  105. package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
  106. package/dist/business/Poi/title/Border.js +7 -27
  107. package/dist/business/Poi/title/Border.js.map +1 -1
  108. package/dist/business/Poi/title/Ellipse.js +7 -27
  109. package/dist/business/Poi/title/Ellipse.js.map +1 -1
  110. package/dist/business/Poi/title/index.js +208 -292
  111. package/dist/business/Poi/title/index.js.map +1 -1
  112. package/dist/business/Poi/tools.js +22 -19
  113. package/dist/business/Poi/tools.js.map +1 -1
  114. package/dist/business/Poi/types.d.ts +3 -0
  115. package/dist/business/Poi/types.js.map +1 -1
  116. package/dist/business/Sphere/index.js +47 -72
  117. package/dist/business/Sphere/index.js.map +1 -1
  118. package/dist/business/Spline/index.js +190 -245
  119. package/dist/business/Spline/index.js.map +1 -1
  120. package/dist/business/SplitBuilding/index.js +327 -536
  121. package/dist/business/SplitBuilding/index.js.map +1 -1
  122. package/dist/business/SplitBuilding/type.js +2 -2
  123. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +218 -275
  124. package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
  125. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +132 -177
  126. package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
  127. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +51 -1
  128. package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
  129. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +6 -1
  130. package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
  131. package/dist/business/TrafficComponents/base.js +32 -55
  132. package/dist/business/TrafficComponents/base.js.map +1 -1
  133. package/dist/business/TrafficComponents/utils.js +25 -24
  134. package/dist/business/TrafficComponents/utils.js.map +1 -1
  135. package/dist/business/Utils/Curve.js +40 -56
  136. package/dist/business/Utils/Curve.js.map +1 -1
  137. package/dist/business/Utils/constant.js +1 -1
  138. package/dist/business/Utils/constant.js.map +1 -1
  139. package/dist/business/Utils/defineProps.js +13 -14
  140. package/dist/business/Utils/defineProps.js.map +1 -1
  141. package/dist/business/Utils/round-curve.js +127 -153
  142. package/dist/business/Utils/round-curve.js.map +1 -1
  143. package/dist/business/VideoPanel/index.js +258 -319
  144. package/dist/business/VideoPanel/index.js.map +1 -1
  145. package/dist/business/Water/index.js +78 -108
  146. package/dist/business/Water/index.js.map +1 -1
  147. package/dist/business/Water/types.js +1 -1
  148. package/dist/business/Water/types.js.map +1 -1
  149. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +383 -449
  150. package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
  151. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +107 -142
  152. package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
  153. package/dist/core/Controls/FirstViewControl/index.js +84 -96
  154. package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
  155. package/dist/core/Controls/ThirdViewControl/action/input.js +77 -98
  156. package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
  157. package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
  158. package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
  159. package/dist/core/Controls/ThirdViewControl/index.js +19 -28
  160. package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
  161. package/dist/core/Controls/ThirdViewControl/player/animation.js +126 -155
  162. package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
  163. package/dist/core/Controls/ThirdViewControl/player/camera.js +47 -63
  164. package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
  165. package/dist/core/Controls/ThirdViewControl/player/control.js +39 -49
  166. package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
  167. package/dist/core/Controls/ThirdViewControl/player.js +66 -91
  168. package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
  169. package/dist/core/Controls/base.js +14 -30
  170. package/dist/core/Controls/base.js.map +1 -1
  171. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +92 -131
  172. package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
  173. package/dist/core/Debug/PerformanceInfo/Performance.js +22 -47
  174. package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
  175. package/dist/core/Light/PointLight/PointLightExt.js +4 -21
  176. package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
  177. package/dist/core/Material/FinirMaterial/FinirMaterial.js +37 -57
  178. package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
  179. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +116 -153
  180. package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
  181. package/dist/core/Material/PristineGridMaterial/shader/fragment.js +95 -1
  182. package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
  183. package/dist/core/Material/PristineGridMaterial/shader/vertex.js +26 -1
  184. package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
  185. package/dist/core/Material/SurfaceMaterial/index.js +76 -172
  186. package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
  187. package/dist/core/Material/decorators.js +6 -11
  188. package/dist/core/Material/decorators.js.map +1 -1
  189. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +16 -12
  190. package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
  191. package/dist/core/PostEffects/addBrightnessContrastPass.js +17 -13
  192. package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
  193. package/dist/core/PostEffects/bloomPass.js +17 -10
  194. package/dist/core/PostEffects/bloomPass.js.map +1 -1
  195. package/dist/core/PostEffects/bloomSelect.js +60 -43
  196. package/dist/core/PostEffects/bloomSelect.js.map +1 -1
  197. package/dist/core/PostEffects/colorifyPass.js +17 -13
  198. package/dist/core/PostEffects/colorifyPass.js.map +1 -1
  199. package/dist/core/PostEffects/index.js +28 -22
  200. package/dist/core/PostEffects/index.js.map +1 -1
  201. package/dist/core/PostEffects/outlinePass.js +37 -50
  202. package/dist/core/PostEffects/outlinePass.js.map +1 -1
  203. package/dist/core/PostEffects/postprocessing.js +14 -12
  204. package/dist/core/PostEffects/postprocessing.js.map +1 -1
  205. package/dist/core/PostEffects/saoPass.js +15 -10
  206. package/dist/core/PostEffects/saoPass.js.map +1 -1
  207. package/dist/core/PostEffects/shader/colorify.js +22 -3
  208. package/dist/core/PostEffects/shader/colorify.js.map +1 -1
  209. package/dist/core/PostEffects/shader/gammaCorrectionShader.js +27 -3
  210. package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
  211. package/dist/core/PostEffects/shader/mapping.js +66 -3
  212. package/dist/core/PostEffects/shader/mapping.js.map +1 -1
  213. package/dist/core/PostEffects/shader/thermalMaging.js +28 -3
  214. package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
  215. package/dist/core/SceneEffect/grow/grow.js +85 -101
  216. package/dist/core/SceneEffect/grow/grow.js.map +1 -1
  217. package/dist/core/SceneEffect/grow/style_down.js +60 -77
  218. package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
  219. package/dist/core/SceneEffect/grow/style_up.js +64 -81
  220. package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
  221. package/dist/core/SceneEffect/grow/type.js +2 -2
  222. package/dist/core/SceneEffect/grow/type.js.map +1 -1
  223. package/dist/core/WeatherSystem/DynamicWeatherSystem.js +51 -76
  224. package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
  225. package/dist/core/WeatherSystem/hdr/index.js +69 -105
  226. package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
  227. package/dist/core/WeatherSystem/index.js +77 -124
  228. package/dist/core/WeatherSystem/index.js.map +1 -1
  229. package/dist/core/WeatherSystem/objects/fog/index.js +52 -80
  230. package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
  231. package/dist/core/WeatherSystem/objects/rain/index.js +72 -84
  232. package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
  233. package/dist/core/WeatherSystem/objects/rain/lineRain.js +88 -118
  234. package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
  235. package/dist/core/WeatherSystem/objects/rain/plane.js +116 -146
  236. package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
  237. package/dist/core/WeatherSystem/objects/rain/point.js +100 -148
  238. package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
  239. package/dist/core/WeatherSystem/objects/sky/cloud.js +71 -104
  240. package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
  241. package/dist/core/WeatherSystem/objects/sky/index.js +66 -84
  242. package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
  243. package/dist/core/WeatherSystem/objects/sky/outline.js +25 -45
  244. package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
  245. package/dist/core/WeatherSystem/shaders/cloud.js +74 -3
  246. package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
  247. package/dist/core/WeatherSystem/shaders/fog.js +103 -3
  248. package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
  249. package/dist/core/WeatherSystem/shaders/rain.js +206 -7
  250. package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
  251. package/dist/core/WeatherSystem/shaders/sky.js +87 -3
  252. package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
  253. package/dist/core/WeatherSystem/sky/index.js +104 -135
  254. package/dist/core/WeatherSystem/sky/index.js.map +1 -1
  255. package/dist/core/WeatherSystem/utils/constant.js +44 -38
  256. package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
  257. package/dist/core/WeatherSystem/utils/math.js +18 -25
  258. package/dist/core/WeatherSystem/utils/math.js.map +1 -1
  259. package/dist/core/WeatherSystem/utils/type.js +1 -1
  260. package/dist/core/WeatherSystem/utils/type.js.map +1 -1
  261. package/dist/core/WeatherSystem/weather/index.js +96 -141
  262. package/dist/core/WeatherSystem/weather/index.js.map +1 -1
  263. package/dist/utils/index.js +1 -1
  264. package/dist/utils/index.js.map +1 -1
  265. package/package.json +3 -3
@@ -1,26 +1,8 @@
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
1
  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; }
3
2
  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 _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
5
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
- 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); } }
13
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
14
- 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); }
15
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
- 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); }; }
17
- 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); }
18
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
19
- 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; } }
20
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
21
3
  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; }
22
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
23
- 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); }
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); }
24
6
  /*
25
7
  * @Descripttion:
26
8
  * @version:
@@ -33,78 +15,63 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
33
15
  */
34
16
  import ObjectLayer from "../Base/ObjectLayer";
35
17
  import { Vector3, BufferGeometry, LineDashedMaterial, LineBasicMaterial, Line as ThreeLine } from '@anov/3d-core';
36
- export var Line = /*#__PURE__*/function (_ObjectLayer) {
37
- _inherits(Line, _ObjectLayer);
38
- var _super = _createSuper(Line);
39
- function Line(options) {
40
- var _this;
41
- _classCallCheck(this, Line);
42
- _this = _super.call(this);
43
- _defineProperty(_assertThisInitialized(_this), "line", void 0);
44
- _this.line = _this.createLine(options);
45
- _this.add(_this.line); // 挂载到 ObjectLayer 中
46
- return _this;
18
+ export class Line extends ObjectLayer {
19
+ constructor(options) {
20
+ super();
21
+ _defineProperty(this, "line", void 0);
22
+ this.line = this.createLine(options);
23
+ this.add(this.line); // 挂载到 ObjectLayer 中
24
+ }
25
+ createLine(options) {
26
+ const {
27
+ points,
28
+ dashed = false,
29
+ material = {}
30
+ } = options;
31
+ const vecPoints = points.map(p => Array.isArray(p) ? new Vector3(...p) : p);
32
+ const geometry = new BufferGeometry().setFromPoints(vecPoints);
33
+ // 默认参数
34
+ const defaultBasic = {
35
+ color: 0xffffff,
36
+ linewidth: 1,
37
+ linecap: 'round',
38
+ linejoin: 'round',
39
+ opacity: 1,
40
+ transparent: false,
41
+ visible: true,
42
+ depthTest: true,
43
+ depthWrite: true
44
+ };
45
+ const defaultDashed = _objectSpread(_objectSpread({}, defaultBasic), {}, {
46
+ scale: 1,
47
+ dashSize: 3,
48
+ gapSize: 1
49
+ });
50
+ const mat = dashed ? new LineDashedMaterial(_objectSpread(_objectSpread({}, defaultDashed), material)) : new LineBasicMaterial(_objectSpread(_objectSpread({}, defaultBasic), material));
51
+ const line = new ThreeLine(geometry, mat);
52
+ if (dashed) line.computeLineDistances();
53
+ return line;
47
54
  }
48
- _createClass(Line, [{
49
- key: "createLine",
50
- value: function createLine(options) {
51
- var points = options.points,
52
- _options$dashed = options.dashed,
53
- dashed = _options$dashed === void 0 ? false : _options$dashed,
54
- _options$material = options.material,
55
- material = _options$material === void 0 ? {} : _options$material;
56
- var vecPoints = points.map(function (p) {
57
- return Array.isArray(p) ? _construct(Vector3, _toConsumableArray(p)) : p;
58
- });
59
- var geometry = new BufferGeometry().setFromPoints(vecPoints);
60
- // 默认参数
61
- var defaultBasic = {
62
- color: 0xffffff,
63
- linewidth: 1,
64
- linecap: 'round',
65
- linejoin: 'round',
66
- opacity: 1,
67
- transparent: false,
68
- visible: true,
69
- depthTest: true,
70
- depthWrite: true
71
- };
72
- var defaultDashed = _objectSpread(_objectSpread({}, defaultBasic), {}, {
73
- scale: 1,
74
- dashSize: 3,
75
- gapSize: 1
76
- });
77
- var mat = dashed ? new LineDashedMaterial(_objectSpread(_objectSpread({}, defaultDashed), material)) : new LineBasicMaterial(_objectSpread(_objectSpread({}, defaultBasic), material));
78
- var line = new ThreeLine(geometry, mat);
79
- if (dashed) line.computeLineDistances();
80
- return line;
81
- }
82
-
83
- /** 更新线条 */
84
- }, {
85
- key: "updateLine",
86
- value: function updateLine(options) {
87
- if (this.line) {
88
- this.remove(this.line);
89
- this.line.geometry.dispose();
90
- this.line.material.dispose();
91
- }
92
- this.line = this.createLine(options);
93
- this.add(this.line);
94
- }
95
55
 
96
- /** 销毁释放资源 */
97
- }, {
98
- key: "destroy",
99
- value: function destroy() {
100
- if (!this.line) return;
56
+ /** 更新线条 */
57
+ updateLine(options) {
58
+ if (this.line) {
101
59
  this.remove(this.line);
102
60
  this.line.geometry.dispose();
103
61
  this.line.material.dispose();
104
- // @ts-ignore
105
- this.line = null;
106
62
  }
107
- }]);
108
- return Line;
109
- }(ObjectLayer);
63
+ this.line = this.createLine(options);
64
+ this.add(this.line);
65
+ }
66
+
67
+ /** 销毁释放资源 */
68
+ destroy() {
69
+ if (!this.line) return;
70
+ this.remove(this.line);
71
+ this.line.geometry.dispose();
72
+ this.line.material.dispose();
73
+ // @ts-ignore
74
+ this.line = null;
75
+ }
76
+ }
110
77
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ObjectLayer","Vector3","BufferGeometry","LineDashedMaterial","LineBasicMaterial","Line","ThreeLine","_ObjectLayer","_inherits","_super","_createSuper","options","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","line","createLine","add","_createClass","key","value","points","_options$dashed","dashed","_options$material","material","vecPoints","map","p","Array","isArray","_construct","_toConsumableArray","geometry","setFromPoints","defaultBasic","color","linewidth","linecap","linejoin","opacity","transparent","visible","depthTest","depthWrite","defaultDashed","_objectSpread","scale","dashSize","gapSize","mat","computeLineDistances","updateLine","remove","dispose","destroy"],"sources":["../../../src/business/Line/index.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-09-08 16:09:35\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-08 17:02:11\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Line/index.ts\n */\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { options } from './types'\nimport { ILine } from './interface'\nimport type { Line as TLine } from '@anov/3d-core'\nimport {\n Vector3,\n BufferGeometry,\n LineDashedMaterial,\n LineDashedMaterialParameters,\n LineBasicMaterial,\n LineBasicMaterialParameters,\n Line as ThreeLine\n} from '@anov/3d-core'\n\nexport class Line extends ObjectLayer implements ILine {\n private line: TLine\n\n constructor(options: options) {\n super()\n this.line = this.createLine(options)\n this.add(this.line) // 挂载到 ObjectLayer 中\n }\n\n public createLine(options: options): TLine {\n const { points, dashed = false, material = {} } = options\n const vecPoints = points.map(p =>\n Array.isArray(p) ? new Vector3(...p) : p\n )\n const geometry = new BufferGeometry().setFromPoints(vecPoints)\n // 默认参数\n const defaultBasic: LineBasicMaterialParameters = {\n color: 0xffffff,\n linewidth: 1,\n linecap: 'round',\n linejoin: 'round',\n opacity: 1,\n transparent: false,\n visible: true,\n depthTest: true,\n depthWrite: true\n }\n\n const defaultDashed: LineDashedMaterialParameters = {\n ...defaultBasic,\n scale: 1,\n dashSize: 3,\n gapSize: 1\n }\n\n const mat = dashed\n ? new LineDashedMaterial({ ...defaultDashed, ...material })\n : new LineBasicMaterial({ ...defaultBasic, ...material })\n\n const line = new ThreeLine(geometry, mat)\n\n if (dashed) line.computeLineDistances()\n\n return line\n }\n\n /** 更新线条 */\n public updateLine(options: options) {\n if (this.line) {\n this.remove(this.line)\n this.line.geometry.dispose()\n ; (this.line.material as any).dispose()\n }\n this.line = this.createLine(options)\n this.add(this.line)\n }\n\n /** 销毁释放资源 */\n public destroy() {\n if (!this.line) return\n this.remove(this.line)\n this.line.geometry.dispose()\n ; (this.line.material as any).dispose()\n // @ts-ignore\n this.line = null\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ObjectLayer","Vector3","BufferGeometry","LineDashedMaterial","LineBasicMaterial","Line","ThreeLine","constructor","options","_defineProperty","line","createLine","add","points","dashed","material","vecPoints","map","p","Array","isArray","geometry","setFromPoints","defaultBasic","color","linewidth","linecap","linejoin","opacity","transparent","visible","depthTest","depthWrite","defaultDashed","_objectSpread","scale","dashSize","gapSize","mat","computeLineDistances","updateLine","remove","dispose","destroy"],"sources":["../../../src/business/Line/index.ts"],"sourcesContent":["/*\n * @Descripttion: \n * @version: \n * @Author: 周志国\n * @Date: 2025-09-08 16:09:35\n * @LastEditors: 周志国\n * @LastEditTime: 2025-09-08 17:02:11\n * @changeLog: \n * @FilePath: /anov-3d-webgl/packages/anov-3d-ability/src/business/Line/index.ts\n */\nimport ObjectLayer from '../Base/ObjectLayer'\nimport type { options } from './types'\nimport { ILine } from './interface'\nimport type { Line as TLine } from '@anov/3d-core'\nimport {\n Vector3,\n BufferGeometry,\n LineDashedMaterial,\n LineDashedMaterialParameters,\n LineBasicMaterial,\n LineBasicMaterialParameters,\n Line as ThreeLine\n} from '@anov/3d-core'\n\nexport class Line extends ObjectLayer implements ILine {\n private line: TLine\n\n constructor(options: options) {\n super()\n this.line = this.createLine(options)\n this.add(this.line) // 挂载到 ObjectLayer 中\n }\n\n public createLine(options: options): TLine {\n const { points, dashed = false, material = {} } = options\n const vecPoints = points.map(p =>\n Array.isArray(p) ? new Vector3(...p) : p\n )\n const geometry = new BufferGeometry().setFromPoints(vecPoints)\n // 默认参数\n const defaultBasic: LineBasicMaterialParameters = {\n color: 0xffffff,\n linewidth: 1,\n linecap: 'round',\n linejoin: 'round',\n opacity: 1,\n transparent: false,\n visible: true,\n depthTest: true,\n depthWrite: true\n }\n\n const defaultDashed: LineDashedMaterialParameters = {\n ...defaultBasic,\n scale: 1,\n dashSize: 3,\n gapSize: 1\n }\n\n const mat = dashed\n ? new LineDashedMaterial({ ...defaultDashed, ...material })\n : new LineBasicMaterial({ ...defaultBasic, ...material })\n\n const line = new ThreeLine(geometry, mat)\n\n if (dashed) line.computeLineDistances()\n\n return line\n }\n\n /** 更新线条 */\n public updateLine(options: options) {\n if (this.line) {\n this.remove(this.line)\n this.line.geometry.dispose()\n ; (this.line.material as any).dispose()\n }\n this.line = this.createLine(options)\n this.add(this.line)\n }\n\n /** 销毁释放资源 */\n public destroy() {\n if (!this.line) return\n this.remove(this.line)\n this.line.geometry.dispose()\n ; (this.line.material as any).dispose()\n // @ts-ignore\n this.line = null\n }\n}\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,WAAW;AAIlB,SACEC,OAAO,EACPC,cAAc,EACdC,kBAAkB,EAElBC,iBAAiB,EAEjBC,IAAI,IAAIC,SAAS,QACZ,eAAe;AAEtB,OAAQ,MAAMD,IAAI,SAASL,WAAW,CAAkB;EAGtDO,WAAWA,CAACC,OAAgB,EAAE;IAC5B,KAAK,CAAC,CAAC;IAAAC,eAAA;IACP,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,UAAU,CAACH,OAAO,CAAC;IACpC,IAAI,CAACI,GAAG,CAAC,IAAI,CAACF,IAAI,CAAC,EAAC;EACtB;EAEOC,UAAUA,CAACH,OAAgB,EAAS;IACzC,MAAM;MAAEK,MAAM;MAAEC,MAAM,GAAG,KAAK;MAAEC,QAAQ,GAAG,CAAC;IAAE,CAAC,GAAGP,OAAO;IACzD,MAAMQ,SAAS,GAAGH,MAAM,CAACI,GAAG,CAACC,CAAC,IAC5BC,KAAK,CAACC,OAAO,CAACF,CAAC,CAAC,GAAG,IAAIjB,OAAO,CAAC,GAAGiB,CAAC,CAAC,GAAGA,CACzC,CAAC;IACD,MAAMG,QAAQ,GAAG,IAAInB,cAAc,CAAC,CAAC,CAACoB,aAAa,CAACN,SAAS,CAAC;IAC9D;IACA,MAAMO,YAAyC,GAAG;MAChDC,KAAK,EAAE,QAAQ;MACfC,SAAS,EAAE,CAAC;MACZC,OAAO,EAAE,OAAO;MAChBC,QAAQ,EAAE,OAAO;MACjBC,OAAO,EAAE,CAAC;MACVC,WAAW,EAAE,KAAK;MAClBC,OAAO,EAAE,IAAI;MACbC,SAAS,EAAE,IAAI;MACfC,UAAU,EAAE;IACd,CAAC;IAED,MAAMC,aAA2C,GAAAC,aAAA,CAAAA,aAAA,KAC5CX,YAAY;MACfY,KAAK,EAAE,CAAC;MACRC,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE;IAAC,EACX;IAED,MAAMC,GAAG,GAAGxB,MAAM,GACd,IAAIX,kBAAkB,CAAA+B,aAAA,CAAAA,aAAA,KAAMD,aAAa,GAAKlB,QAAQ,CAAE,CAAC,GACzD,IAAIX,iBAAiB,CAAA8B,aAAA,CAAAA,aAAA,KAAMX,YAAY,GAAKR,QAAQ,CAAE,CAAC;IAE3D,MAAML,IAAI,GAAG,IAAIJ,SAAS,CAACe,QAAQ,EAAEiB,GAAG,CAAC;IAEzC,IAAIxB,MAAM,EAAEJ,IAAI,CAAC6B,oBAAoB,CAAC,CAAC;IAEvC,OAAO7B,IAAI;EACb;;EAEA;EACO8B,UAAUA,CAAChC,OAAgB,EAAE;IAClC,IAAI,IAAI,CAACE,IAAI,EAAE;MACb,IAAI,CAAC+B,MAAM,CAAC,IAAI,CAAC/B,IAAI,CAAC;MACtB,IAAI,CAACA,IAAI,CAACW,QAAQ,CAACqB,OAAO,CAAC,CAAC;MACvB,IAAI,CAAChC,IAAI,CAACK,QAAQ,CAAS2B,OAAO,CAAC,CAAC;IAC3C;IACA,IAAI,CAAChC,IAAI,GAAG,IAAI,CAACC,UAAU,CAACH,OAAO,CAAC;IACpC,IAAI,CAACI,GAAG,CAAC,IAAI,CAACF,IAAI,CAAC;EACrB;;EAEA;EACOiC,OAAOA,CAAA,EAAG;IACf,IAAI,CAAC,IAAI,CAACjC,IAAI,EAAE;IAChB,IAAI,CAAC+B,MAAM,CAAC,IAAI,CAAC/B,IAAI,CAAC;IACtB,IAAI,CAACA,IAAI,CAACW,QAAQ,CAACqB,OAAO,CAAC,CAAC;IACvB,IAAI,CAAChC,IAAI,CAACK,QAAQ,CAAS2B,OAAO,CAAC,CAAC;IACzC;IACA,IAAI,CAAChC,IAAI,GAAG,IAAI;EAClB;AACF"}
@@ -1,10 +1,6 @@
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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
- 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); } }
4
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
1
  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; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
- 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); }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
+ 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); }
8
4
  import { AnimationClip, AnimationMixer, Box3, LoopRepeat, NumberKeyframeTrack, VectorKeyframeTrack } from '@anov/3d-core';
9
5
 
10
6
  // 动画类型
@@ -15,9 +11,8 @@ var EMarkAnimationType = /*#__PURE__*/function (EMarkAnimationType) {
15
11
  EMarkAnimationType["Flash"] = "flash";
16
12
  return EMarkAnimationType;
17
13
  }(EMarkAnimationType || {}); // 闪烁
18
- var KeyframeAnimation = /*#__PURE__*/function () {
19
- function KeyframeAnimation(target, options) {
20
- _classCallCheck(this, KeyframeAnimation);
14
+ class KeyframeAnimation {
15
+ constructor(target, options) {
21
16
  _defineProperty(this, "_target", void 0);
22
17
  _defineProperty(this, "_duration", void 0);
23
18
  _defineProperty(this, "_type", void 0);
@@ -26,11 +21,11 @@ var KeyframeAnimation = /*#__PURE__*/function () {
26
21
  _defineProperty(this, "_animations", new Map());
27
22
  _defineProperty(this, "_animationClips", new Map());
28
23
  this._target = target;
29
- var type = options.type,
30
- _options$duration = options.duration,
31
- duration = _options$duration === void 0 ? 1 : _options$duration,
32
- _options$enable = options.enable,
33
- enable = _options$enable === void 0 ? true : _options$enable;
24
+ const {
25
+ type,
26
+ duration = 1,
27
+ enable = true
28
+ } = options;
34
29
  this._type = type;
35
30
  this._duration = duration;
36
31
  this._enable = enable;
@@ -41,179 +36,153 @@ var KeyframeAnimation = /*#__PURE__*/function () {
41
36
  /**
42
37
  * 获取动画混合器
43
38
  */
44
- _createClass(KeyframeAnimation, [{
45
- key: "mixer",
46
- get: function get() {
47
- return this._mixer;
48
- }
49
- }, {
50
- key: "duration",
51
- get: function get() {
52
- return this._duration;
53
- },
54
- set: function set(value) {
55
- if (this._duration === value) return;
56
- this._duration = value;
57
- this.reset();
58
- this.setupAnimations();
59
- }
60
- }, {
61
- key: "type",
62
- get: function get() {
63
- return this._type;
64
- },
65
- set: function set(value) {
66
- this._type = value;
67
- this.reset();
68
- this.setupAnimations();
69
- }
70
- }, {
71
- key: "enable",
72
- get: function get() {
73
- return this._enable;
74
- }
75
-
76
- /**
77
- * 重置所有动画
78
- */
79
- }, {
80
- key: "reset",
81
- value: function reset() {
82
- var _this = this;
83
- this._mixer.stopAllAction();
84
- this._animationClips.forEach(function (clip) {
85
- _this._mixer.uncacheClip(clip);
86
- });
87
- this._animations.clear();
88
- this._animationClips.clear();
89
- }
39
+ get mixer() {
40
+ return this._mixer;
41
+ }
42
+ get duration() {
43
+ return this._duration;
44
+ }
45
+ set duration(value) {
46
+ if (this._duration === value) return;
47
+ this._duration = value;
48
+ this.reset();
49
+ this.setupAnimations();
50
+ }
51
+ get type() {
52
+ return this._type;
53
+ }
54
+ set type(value) {
55
+ this._type = value;
56
+ this.reset();
57
+ this.setupAnimations();
58
+ }
59
+ get enable() {
60
+ return this._enable;
61
+ }
90
62
 
91
- /**
92
- * 设置动画
93
- */
94
- }, {
95
- key: "setupAnimations",
96
- value: function setupAnimations() {
97
- var _this$_target,
98
- _this2 = this;
99
- if (!this.enable) return;
100
- var types = Array.isArray(this.type) ? this.type : [this.type];
63
+ /**
64
+ * 重置所有动画
65
+ */
66
+ reset() {
67
+ this._mixer.stopAllAction();
68
+ this._animationClips.forEach(clip => {
69
+ this._mixer.uncacheClip(clip);
70
+ });
71
+ this._animations.clear();
72
+ this._animationClips.clear();
73
+ }
101
74
 
102
- // 获取Mesh的高度、位置
103
- var _this$getBoxSize = this.getBoxSize(this._target),
104
- height = _this$getBoxSize.height;
105
- var positionY = (_this$_target = this._target) === null || _this$_target === void 0 ? void 0 : _this$_target.position.y;
106
- types.forEach(function (type) {
107
- var tracks = _this2.createKeyframeTracks(type, _this2._duration, {
108
- position: positionY,
109
- height: height / 2
110
- });
111
- var animationClip = new AnimationClip("".concat(type), _this2.duration, tracks);
112
- _this2._animationClips.set(type, animationClip);
113
- var action = _this2._mixer.clipAction(animationClip);
75
+ /**
76
+ * 设置动画
77
+ */
78
+ setupAnimations() {
79
+ var _this$_target;
80
+ if (!this.enable) return;
81
+ const types = Array.isArray(this.type) ? this.type : [this.type];
114
82
 
115
- // 配置动画Action
116
- action.setLoop(LoopRepeat, Infinity).clampWhenFinished = true;
117
- _this2._animations.set(type, action);
83
+ // 获取Mesh的高度、位置
84
+ const {
85
+ height
86
+ } = this.getBoxSize(this._target);
87
+ const positionY = (_this$_target = this._target) === null || _this$_target === void 0 ? void 0 : _this$_target.position.y;
88
+ types.forEach(type => {
89
+ const tracks = this.createKeyframeTracks(type, this._duration, {
90
+ position: positionY,
91
+ height: height / 2
118
92
  });
119
- }
120
- }, {
121
- key: "getBoxSize",
122
- value: function getBoxSize(mesh) {
123
- // mesh.updateWorldMatrix(true, true)
124
- var _Box3$setFromObject = new Box3().setFromObject(mesh),
125
- max = _Box3$setFromObject.max,
126
- min = _Box3$setFromObject.min;
127
- return {
128
- width: max.x - min.x,
129
- height: max.y - min.y
130
- };
131
- }
93
+ const animationClip = new AnimationClip(`${type}`, this.duration, tracks);
94
+ this._animationClips.set(type, animationClip);
95
+ const action = this._mixer.clipAction(animationClip);
132
96
 
133
- /**
134
- * 创建关键帧轨道
135
- */
136
- }, {
137
- key: "createKeyframeTracks",
138
- value: function createKeyframeTracks(type, duration, trackParams) {
139
- var tracks = [];
140
- switch (type) {
141
- case EMarkAnimationType.Bounce:
142
- // eslint-disable-next-line no-case-declarations
143
- var _trackParams$position = trackParams.position,
144
- position = _trackParams$position === void 0 ? 0 : _trackParams$position,
145
- _trackParams$height = trackParams.height,
146
- height = _trackParams$height === void 0 ? 0 : _trackParams$height;
147
- tracks.push(new VectorKeyframeTrack('.position', [0, duration / 2, duration], [0, position, 0, 0, position + height, 0, 0, position, 0]));
148
- break;
149
- case EMarkAnimationType.Pulse:
150
- tracks.push(new VectorKeyframeTrack('.scale', [0, duration / 2, duration], [1, 1, 1, 1.2, 1.2, 1.2, 1, 1, 1]));
151
- break;
152
- case EMarkAnimationType.Rotate:
153
- tracks.push(new NumberKeyframeTrack('.rotation[y]', [0, duration], [0, Math.PI * 2]));
154
- break;
155
- case EMarkAnimationType.Flash:
156
- tracks.push(new NumberKeyframeTrack('.material.opacity', [0, duration / 2, duration], [1, 0.2, 1]));
157
- break;
158
- default:
159
- console.error("animation type ".concat(type, " does not exist"));
160
- break;
161
- }
162
- return tracks;
163
- }
97
+ // 配置动画Action
98
+ action.setLoop(LoopRepeat, Infinity).clampWhenFinished = true;
99
+ this._animations.set(type, action);
100
+ });
101
+ }
102
+ getBoxSize(mesh) {
103
+ // mesh.updateWorldMatrix(true, true)
104
+ const {
105
+ max,
106
+ min
107
+ } = new Box3().setFromObject(mesh);
108
+ return {
109
+ width: max.x - min.x,
110
+ height: max.y - min.y
111
+ };
112
+ }
164
113
 
165
- /**
166
- * 更新动画
167
- */
168
- }, {
169
- key: "update",
170
- value: function update(delta) {
171
- if (this._mixer) this._mixer.update(delta);
114
+ /**
115
+ * 创建关键帧轨道
116
+ */
117
+ createKeyframeTracks(type, duration, trackParams) {
118
+ const tracks = [];
119
+ switch (type) {
120
+ case EMarkAnimationType.Bounce:
121
+ // eslint-disable-next-line no-case-declarations
122
+ const {
123
+ position = 0,
124
+ height = 0
125
+ } = trackParams;
126
+ tracks.push(new VectorKeyframeTrack('.position', [0, duration / 2, duration], [0, position, 0, 0, position + height, 0, 0, position, 0]));
127
+ break;
128
+ case EMarkAnimationType.Pulse:
129
+ tracks.push(new VectorKeyframeTrack('.scale', [0, duration / 2, duration], [1, 1, 1, 1.2, 1.2, 1.2, 1, 1, 1]));
130
+ break;
131
+ case EMarkAnimationType.Rotate:
132
+ tracks.push(new NumberKeyframeTrack('.rotation[y]', [0, duration], [0, Math.PI * 2]));
133
+ break;
134
+ case EMarkAnimationType.Flash:
135
+ tracks.push(new NumberKeyframeTrack('.material.opacity', [0, duration / 2, duration], [1, 0.2, 1]));
136
+ break;
137
+ default:
138
+ console.error(`animation type ${type} does not exist`);
139
+ break;
172
140
  }
141
+ return tracks;
142
+ }
173
143
 
174
- /**
175
- * 播放动画
176
- */
177
- }, {
178
- key: "play",
179
- value: function play(type) {
180
- if (type) {
181
- var animation = this._animations.get(type);
182
- if (animation) animation.reset().play();
183
- } else {
184
- this._animations.forEach(function (animation) {
185
- animation.reset().play();
186
- });
187
- }
188
- }
144
+ /**
145
+ * 更新动画
146
+ */
147
+ update(delta) {
148
+ if (this._mixer) this._mixer.update(delta);
149
+ }
189
150
 
190
- /**
191
- * 停止动画
192
- */
193
- }, {
194
- key: "stop",
195
- value: function stop(type) {
196
- if (type) {
197
- var animation = this._animations.get(type);
198
- animation === null || animation === void 0 || animation.stop();
199
- } else {
200
- this._animations.forEach(function (animation) {
201
- animation.stop();
202
- });
203
- }
151
+ /**
152
+ * 播放动画
153
+ */
154
+ play(type) {
155
+ if (type) {
156
+ const animation = this._animations.get(type);
157
+ if (animation) animation.reset().play();
158
+ } else {
159
+ this._animations.forEach(animation => {
160
+ animation.reset().play();
161
+ });
204
162
  }
163
+ }
205
164
 
206
- /**
207
- * 销毁资源
208
- */
209
- }, {
210
- key: "destroy",
211
- value: function destroy() {
212
- this.reset();
213
- this._mixer = null;
165
+ /**
166
+ * 停止动画
167
+ */
168
+ stop(type) {
169
+ if (type) {
170
+ const animation = this._animations.get(type);
171
+ animation === null || animation === void 0 || animation.stop();
172
+ } else {
173
+ this._animations.forEach(animation => {
174
+ animation.stop();
175
+ });
214
176
  }
215
- }]);
216
- return KeyframeAnimation;
217
- }();
177
+ }
178
+
179
+ /**
180
+ * 销毁资源
181
+ */
182
+ destroy() {
183
+ this.reset();
184
+ this._mixer = null;
185
+ }
186
+ }
218
187
  export { KeyframeAnimation, EMarkAnimationType };
219
188
  //# sourceMappingURL=KeyframeAnimation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AnimationClip","AnimationMixer","Box3","LoopRepeat","NumberKeyframeTrack","VectorKeyframeTrack","EMarkAnimationType","KeyframeAnimation","target","options","_classCallCheck","_defineProperty","Map","_target","type","_options$duration","duration","_options$enable","enable","_type","_duration","_enable","_mixer","setupAnimations","_createClass","key","get","set","value","reset","_this","stopAllAction","_animationClips","forEach","clip","uncacheClip","_animations","clear","_this$_target","_this2","types","Array","isArray","_this$getBoxSize","getBoxSize","height","positionY","position","y","tracks","createKeyframeTracks","animationClip","concat","action","clipAction","setLoop","Infinity","clampWhenFinished","mesh","_Box3$setFromObject","setFromObject","max","min","width","x","trackParams","Bounce","_trackParams$position","_trackParams$height","push","Pulse","Rotate","Math","PI","Flash","console","error","update","delta","play","animation","stop","destroy"],"sources":["../../../src/business/Mark/KeyframeAnimation.ts"],"sourcesContent":["import type {\n AnimationAction,\n Group,\n KeyframeTrack,\n} from '@anov/3d-core'\nimport {\n AnimationClip,\n AnimationMixer,\n Box3,\n LoopRepeat,\n NumberKeyframeTrack,\n VectorKeyframeTrack,\n} from '@anov/3d-core'\n\n// 动画类型\nenum EMarkAnimationType {\n Bounce = 'bounce', // 上下弹跳\n Pulse = 'pulse', // 缩放\n Rotate = 'rotate', // 旋转\n Flash = 'flash', // 闪烁\n}\n\ninterface AnimationOption {\n enable: boolean\n type: EMarkAnimationType | EMarkAnimationType[]\n duration: number\n}\n\nclass KeyframeAnimation {\n private _target: Group\n\n private _duration: number\n private _type: EMarkAnimationType | EMarkAnimationType[]\n private _enable: boolean\n private _mixer: AnimationMixer\n private _animations: Map<EMarkAnimationType, AnimationAction> = new Map()\n private _animationClips: Map<EMarkAnimationType, AnimationClip> = new Map()\n\n constructor(target: Group, options: AnimationOption) {\n this._target = target\n const { type, duration = 1, enable = true } = options\n this._type = type\n this._duration = duration\n this._enable = enable\n this._mixer = new AnimationMixer(target)\n\n this.setupAnimations()\n }\n\n /**\n * 获取动画混合器\n */\n public get mixer(): AnimationMixer {\n return this._mixer\n }\n\n public get duration(): number {\n return this._duration\n }\n\n public set duration(value: number) {\n if (this._duration === value)\n return\n this._duration = value\n this.reset()\n this.setupAnimations()\n }\n\n public get type() {\n return this._type\n }\n\n public set type(value: EMarkAnimationType | EMarkAnimationType[]) {\n this._type = value\n this.reset()\n this.setupAnimations()\n }\n\n public get enable(): boolean {\n return this._enable\n }\n\n /**\n * 重置所有动画\n */\n public reset(): void {\n this._mixer.stopAllAction()\n\n this._animationClips.forEach((clip) => {\n this._mixer.uncacheClip(clip)\n })\n\n this._animations.clear()\n this._animationClips.clear()\n }\n\n /**\n * 设置动画\n */\n private setupAnimations(): void {\n if (!this.enable)\n return\n\n const types = Array.isArray(this.type)\n ? this.type\n : [this.type]\n\n // 获取Mesh的高度、位置\n const { height } = this.getBoxSize(this._target)\n const positionY = this._target?.position.y\n\n types.forEach((type) => {\n const tracks = this.createKeyframeTracks(type, this._duration, { position: positionY, height: height / 2 })\n\n const animationClip = new AnimationClip(\n `${type}`,\n this.duration,\n tracks,\n )\n\n this._animationClips.set(type, animationClip)\n const action = this._mixer.clipAction(animationClip)\n\n // 配置动画Action\n action\n .setLoop(LoopRepeat, Infinity)\n .clampWhenFinished = true\n\n this._animations.set(type, action)\n })\n }\n\n private getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n /**\n * 创建关键帧轨道\n */\n private createKeyframeTracks(\n type: EMarkAnimationType,\n duration: number,\n trackParams: { height: number; position: number },\n ): KeyframeTrack[] {\n const tracks: KeyframeTrack[] = []\n\n switch (type) {\n case EMarkAnimationType.Bounce:\n // eslint-disable-next-line no-case-declarations\n const { position = 0, height = 0 } = trackParams\n tracks.push(\n new VectorKeyframeTrack(\n '.position',\n [0, duration / 2, duration],\n [0, position, 0, 0, position + height, 0, 0, position, 0],\n ),\n )\n break\n\n case EMarkAnimationType.Pulse:\n tracks.push(\n new VectorKeyframeTrack(\n '.scale',\n [0, duration / 2, duration],\n [1, 1, 1, 1.2, 1.2, 1.2, 1, 1, 1],\n ),\n )\n break\n\n case EMarkAnimationType.Rotate:\n tracks.push(\n new NumberKeyframeTrack(\n '.rotation[y]',\n [0, duration],\n [0, Math.PI * 2],\n ),\n )\n break\n\n case EMarkAnimationType.Flash:\n tracks.push(\n new NumberKeyframeTrack(\n '.material.opacity',\n [0, duration / 2, duration],\n [1, 0.2, 1],\n ),\n )\n break\n\n default:\n console.error(`animation type ${type} does not exist`)\n break\n }\n\n return tracks\n }\n\n /**\n * 更新动画\n */\n public update(delta: number): void {\n if (this._mixer)\n this._mixer.update(delta)\n }\n\n /**\n * 播放动画\n */\n public play(type?: EMarkAnimationType): void {\n if (type) {\n const animation = this._animations.get(type)\n if (animation)\n animation.reset().play()\n }\n else {\n this._animations.forEach((animation) => {\n animation.reset().play()\n })\n }\n }\n\n /**\n * 停止动画\n */\n public stop(type?: EMarkAnimationType): void {\n if (type) {\n const animation = this._animations.get(type)\n animation?.stop()\n }\n else {\n this._animations.forEach((animation) => {\n animation.stop()\n })\n }\n }\n\n /**\n * 销毁资源\n */\n public destroy(): void {\n this.reset()\n this._mixer = null\n }\n}\n\nexport { KeyframeAnimation, EMarkAnimationType, AnimationOption }"],"mappings":"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"}
1
+ {"version":3,"names":["AnimationClip","AnimationMixer","Box3","LoopRepeat","NumberKeyframeTrack","VectorKeyframeTrack","EMarkAnimationType","KeyframeAnimation","constructor","target","options","_defineProperty","Map","_target","type","duration","enable","_type","_duration","_enable","_mixer","setupAnimations","mixer","value","reset","stopAllAction","_animationClips","forEach","clip","uncacheClip","_animations","clear","_this$_target","types","Array","isArray","height","getBoxSize","positionY","position","y","tracks","createKeyframeTracks","animationClip","set","action","clipAction","setLoop","Infinity","clampWhenFinished","mesh","max","min","setFromObject","width","x","trackParams","Bounce","push","Pulse","Rotate","Math","PI","Flash","console","error","update","delta","play","animation","get","stop","destroy"],"sources":["../../../src/business/Mark/KeyframeAnimation.ts"],"sourcesContent":["import type {\n AnimationAction,\n Group,\n KeyframeTrack,\n} from '@anov/3d-core'\nimport {\n AnimationClip,\n AnimationMixer,\n Box3,\n LoopRepeat,\n NumberKeyframeTrack,\n VectorKeyframeTrack,\n} from '@anov/3d-core'\n\n// 动画类型\nenum EMarkAnimationType {\n Bounce = 'bounce', // 上下弹跳\n Pulse = 'pulse', // 缩放\n Rotate = 'rotate', // 旋转\n Flash = 'flash', // 闪烁\n}\n\ninterface AnimationOption {\n enable: boolean\n type: EMarkAnimationType | EMarkAnimationType[]\n duration: number\n}\n\nclass KeyframeAnimation {\n private _target: Group\n\n private _duration: number\n private _type: EMarkAnimationType | EMarkAnimationType[]\n private _enable: boolean\n private _mixer: AnimationMixer\n private _animations: Map<EMarkAnimationType, AnimationAction> = new Map()\n private _animationClips: Map<EMarkAnimationType, AnimationClip> = new Map()\n\n constructor(target: Group, options: AnimationOption) {\n this._target = target\n const { type, duration = 1, enable = true } = options\n this._type = type\n this._duration = duration\n this._enable = enable\n this._mixer = new AnimationMixer(target)\n\n this.setupAnimations()\n }\n\n /**\n * 获取动画混合器\n */\n public get mixer(): AnimationMixer {\n return this._mixer\n }\n\n public get duration(): number {\n return this._duration\n }\n\n public set duration(value: number) {\n if (this._duration === value)\n return\n this._duration = value\n this.reset()\n this.setupAnimations()\n }\n\n public get type() {\n return this._type\n }\n\n public set type(value: EMarkAnimationType | EMarkAnimationType[]) {\n this._type = value\n this.reset()\n this.setupAnimations()\n }\n\n public get enable(): boolean {\n return this._enable\n }\n\n /**\n * 重置所有动画\n */\n public reset(): void {\n this._mixer.stopAllAction()\n\n this._animationClips.forEach((clip) => {\n this._mixer.uncacheClip(clip)\n })\n\n this._animations.clear()\n this._animationClips.clear()\n }\n\n /**\n * 设置动画\n */\n private setupAnimations(): void {\n if (!this.enable)\n return\n\n const types = Array.isArray(this.type)\n ? this.type\n : [this.type]\n\n // 获取Mesh的高度、位置\n const { height } = this.getBoxSize(this._target)\n const positionY = this._target?.position.y\n\n types.forEach((type) => {\n const tracks = this.createKeyframeTracks(type, this._duration, { position: positionY, height: height / 2 })\n\n const animationClip = new AnimationClip(\n `${type}`,\n this.duration,\n tracks,\n )\n\n this._animationClips.set(type, animationClip)\n const action = this._mixer.clipAction(animationClip)\n\n // 配置动画Action\n action\n .setLoop(LoopRepeat, Infinity)\n .clampWhenFinished = true\n\n this._animations.set(type, action)\n })\n }\n\n private getBoxSize(mesh) {\n // mesh.updateWorldMatrix(true, true)\n const { max, min } = new Box3().setFromObject(mesh)\n return { width: max.x - min.x, height: max.y - min.y }\n }\n\n /**\n * 创建关键帧轨道\n */\n private createKeyframeTracks(\n type: EMarkAnimationType,\n duration: number,\n trackParams: { height: number; position: number },\n ): KeyframeTrack[] {\n const tracks: KeyframeTrack[] = []\n\n switch (type) {\n case EMarkAnimationType.Bounce:\n // eslint-disable-next-line no-case-declarations\n const { position = 0, height = 0 } = trackParams\n tracks.push(\n new VectorKeyframeTrack(\n '.position',\n [0, duration / 2, duration],\n [0, position, 0, 0, position + height, 0, 0, position, 0],\n ),\n )\n break\n\n case EMarkAnimationType.Pulse:\n tracks.push(\n new VectorKeyframeTrack(\n '.scale',\n [0, duration / 2, duration],\n [1, 1, 1, 1.2, 1.2, 1.2, 1, 1, 1],\n ),\n )\n break\n\n case EMarkAnimationType.Rotate:\n tracks.push(\n new NumberKeyframeTrack(\n '.rotation[y]',\n [0, duration],\n [0, Math.PI * 2],\n ),\n )\n break\n\n case EMarkAnimationType.Flash:\n tracks.push(\n new NumberKeyframeTrack(\n '.material.opacity',\n [0, duration / 2, duration],\n [1, 0.2, 1],\n ),\n )\n break\n\n default:\n console.error(`animation type ${type} does not exist`)\n break\n }\n\n return tracks\n }\n\n /**\n * 更新动画\n */\n public update(delta: number): void {\n if (this._mixer)\n this._mixer.update(delta)\n }\n\n /**\n * 播放动画\n */\n public play(type?: EMarkAnimationType): void {\n if (type) {\n const animation = this._animations.get(type)\n if (animation)\n animation.reset().play()\n }\n else {\n this._animations.forEach((animation) => {\n animation.reset().play()\n })\n }\n }\n\n /**\n * 停止动画\n */\n public stop(type?: EMarkAnimationType): void {\n if (type) {\n const animation = this._animations.get(type)\n animation?.stop()\n }\n else {\n this._animations.forEach((animation) => {\n animation.stop()\n })\n }\n }\n\n /**\n * 销毁资源\n */\n public destroy(): void {\n this.reset()\n this._mixer = null\n }\n}\n\nexport { KeyframeAnimation, EMarkAnimationType, AnimationOption }"],"mappings":"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"}