@anov/3d-ability 0.0.140 → 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 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","obj","_toPrimitive","String","toPrimitive","Number","Box3","Group","Vector3","use","_","ObjectLayer","lookAtOnYAxis","StrategyManage","LinkStrategy","ParticleStrategy","TitleStrategy","DEFAULT_OPTION","style","facingCamera","autoScale","text","visible","fontSize","color","fontWeight","offset","bgUrl","uri","model","particle","STYLE_DATA","poi_border_01","poi_ellipse_01","MAX_DISTANCE","Poi","_ObjectLayer","_super","option","_this","param","mergeWith","cloneDeep","arrayMergeCustomizer","_style","_text","_model","_particle","_autoScale","_facingCamera","init","get","_mesh","set","newValue","destroy","_disposeCallbacks","remove","_init","_callee2","_this$text","_this2","_this$_linkMesh","group","_STYLE_DATA$this$styl","titleStyle","linkStyle","particleStyle","strategies","loadTasks","_callee2$","_context2","_titleMesh","strategy","config","condition","_linkMesh","_particleMesh","entries","_ref","_ref2","map","_ref4","_callee","_ref3","_ref5","_ref5$","ClassRef","_callee$","_context","ready","add","_x","all","calculateLayout","setupBoundingBox","updateWorldMatrix","setupAnimation","createProxy","addEventListeners","_this$_linkMesh2","_this$_linkMesh3","_this$_particleMesh","titleSize","getBoxSize","height","linkSize","baseY","linkHeight","linkVSpace","vspace","position","setY","mesh","_Box3$setFromObject","setFromObject","max","min","width","x","box","size","center","getSize","getCenter","bottomCenter","z","children","sub","updateViewDirection","_use$useScene","useScene","camera","updateScale","_use$useScene2","distance","distanceTo","scale","_this3","_scene$orbitControls","updateTransform","scene","callback","orbitControls","addEventListener","_scene$orbitControls2","removeEventListener"],"sources":["../../../src/business/Poi/index.ts"],"sourcesContent":["import type { Mesh, Object3D } from '@anov/3d-core'\nimport { Box3, Group, Vector3, use } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport { lookAtOnYAxis } from './tools'\nimport type { IPoi, ModelOption, Option, ParticleOption, TextOption } from './types'\nimport { StrategyManage as LinkStrategy } from './link'\nimport { StrategyManage as ParticleStrategy } from './particle'\nimport { StrategyManage as TitleStrategy } from './title'\n\nconst DEFAULT_OPTION = {\n style: 'poi_border_01',\n facingCamera: true,\n autoScale: true,\n text: {\n visible: true,\n value: '标题文字',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n offset: [0, 0],\n bgUrl: '',\n uri: '',\n },\n model: {\n visible: true,\n uri: '',\n color: '#2C8AFF',\n },\n particle: {\n visible: true,\n uri: '',\n color: '#FFFFFF',\n },\n}\n\nconst STYLE_DATA = {\n poi_border_01: ['border', 'pyramid', 'circle'],\n poi_ellipse_01: ['ellipse', 'cylinder', 'circle'],\n}\n\nconst MAX_DISTANCE = 500\n\nclass Poi extends ObjectLayer implements IPoi {\n private _mesh!: Group\n private _titleMesh: Mesh & any\n private _linkMesh: Mesh | Group & any\n private _particleMesh: Mesh & any\n private _disposeCallbacks: Function[] = []\n\n private _style: string\n private _autoScale: boolean\n private _facingCamera: boolean\n private _text: TextOption\n private _model: ModelOption\n private _particle: ParticleOption\n type = 'Group'\n\n constructor(option: Option) {\n super()\n\n const param = _.mergeWith(\n _.cloneDeep(DEFAULT_OPTION),\n option,\n this.arrayMergeCustomizer,\n )\n const { style, text, model, particle, autoScale, facingCamera } = param\n this._style = style\n this._text = text\n this._model = model\n this._particle = particle\n this._autoScale = autoScale\n this._facingCamera = facingCamera\n this.init()\n }\n\n get mesh() {\n return this._mesh\n }\n\n get style(): string {\n return this._style\n }\n\n get autoScale(): boolean {\n return this._autoScale\n }\n\n set autoScale(newValue: boolean) {\n this._autoScale = newValue\n }\n\n get facingCamera(): boolean {\n return this._facingCamera\n }\n\n set facingCamera(newValue: boolean) {\n this._facingCamera = newValue\n }\n\n get text(): TextOption {\n return this._text\n }\n\n get model(): ModelOption {\n return this._model\n }\n\n get particle(): ParticleOption {\n return this._particle\n }\n\n // 销毁\n destroy() {\n this._disposeCallbacks.forEach(fn => fn())\n this._disposeCallbacks = []\n this.remove(this._mesh)\n }\n\n private async init() {\n const group = new Group()\n const [titleStyle, linkStyle, particleStyle] = STYLE_DATA[this.style]\n\n // 仅加载需要的资源\n const strategies = {\n _titleMesh: { strategy: TitleStrategy[titleStyle], config: this.text, condition: this.text?.visible !== false },\n _linkMesh: { strategy: LinkStrategy[linkStyle], config: this.model, condition: !this.model || this.model.visible !== false },\n _particleMesh: { strategy: ParticleStrategy[particleStyle], config: this.particle, condition: !this.particle || this.particle.visible !== false },\n }\n\n // 过滤掉不需要加载的组件,并发加载\n const loadTasks = Object.entries(strategies)\n .filter(([, { condition }]) => condition)\n .map(async ([key, { strategy, config }]) => {\n if (!strategy)\n return\n const ClassRef = await strategy()\n this[key] = new ClassRef({ ...config })\n await this[key].ready\n group.add(this[key])\n })\n\n // 等待所有组件加载完成\n await Promise.all(loadTasks)\n\n this._mesh = group\n // 布局计算\n this.calculateLayout()\n // 边界盒处理\n this.setupBoundingBox(group)\n // 统一更新矩阵\n group.updateWorldMatrix(true, true)\n // 动画和事件\n this._linkMesh?.setupAnimation()\n this.add(group)\n\n // 代理\n this._text = this.createProxy(this._text, this._titleMesh)\n this._model = this.createProxy(this._model, this._linkMesh)\n this._particle = this.createProxy(this._particle, this._particleMesh)\n\n this.addEventListeners()\n }\n\n /** 布局计算 */\n private calculateLayout() {\n const titleSize = this._titleMesh ? this.getBoxSize(this._titleMesh) : { height: 0 }\n const linkSize = this._linkMesh ? this.getBoxSize(this._linkMesh) : { height: 0 }\n\n // 计算基础 Y 轴偏移\n let baseY = -titleSize.height / 2\n const linkHeight = linkSize.height\n const linkVSpace = this._linkMesh?.vspace?.[0] || 0\n\n baseY -= linkVSpace\n this._linkMesh?.position.setY(baseY - linkHeight / 2)\n this._particleMesh?.position.setY(baseY - linkHeight)\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 private setupBoundingBox(mesh: Object3D) {\n // 计算Group的边界盒\n const box = new Box3().setFromObject(mesh)\n const size = new Vector3()\n const center = new Vector3()\n box.getSize(size)\n box.getCenter(center)\n\n // 计算底部中心位置\n const bottomCenter = new Vector3(center.x, box.min.y, center.z)\n // 平移所有Mesh,使底部中心对齐到控制点\n mesh.children.forEach((mesh) => {\n mesh.position.sub(bottomCenter)\n })\n }\n\n private updateViewDirection() {\n const { camera } = use.useScene()\n // camera && this._mesh.quaternion.copy(camera.quaternion)\n // this._mesh.rotation.y = camera.rotation.y\n\n lookAtOnYAxis(this._mesh, camera.position)\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n private updateScale() {\n const { camera } = use.useScene()\n // Make the signboard face the camera\n // this._mesh.lookAt(camera.position);\n // 计算相机和物体之间的距离\n const distance = camera?.position.distanceTo(this._mesh.position)\n if (distance >= MAX_DISTANCE)\n return\n const scale = distance / 20 || 1\n this._mesh.scale.set(scale, scale, scale)\n }\n\n private addEventListeners() {\n const updateTransform = () => {\n this._facingCamera !== false && this.updateViewDirection()\n this._autoScale === true && this.updateScale()\n }\n\n const scene = use.useScene()\n const callback = () => updateTransform()\n updateTransform()\n scene.orbitControls?.addEventListener('change', callback)\n this._disposeCallbacks.push(() => {\n scene.orbitControls?.removeEventListener('change', callback)\n })\n }\n}\n\nexport { Poi }"],"mappings":"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"}
1
+ {"version":3,"names":["Box3","Group","Vector3","use","_","ObjectLayer","lookAtOnYAxis","StrategyManage","LinkStrategy","ParticleStrategy","TitleStrategy","InfoPanel","DEFAULT_OPTION","style","facingCamera","autoScale","text","visible","value","fontSize","color","fontWeight","offset","bgUrl","uri","model","particle","STYLE_DATA","poi_border_01","poi_ellipse_01","MAX_DISTANCE","Poi","constructor","option","_defineProperty","param","mergeWith","cloneDeep","arrayMergeCustomizer","content","_style","_text","_model","_particle","_autoScale","_facingCamera","_content","init","initCard","mesh","_mesh","newValue","destroy","_disposeCallbacks","forEach","fn","remove","_this","_asyncToGenerator","_this$text","_this$_linkMesh","group","titleStyle","linkStyle","particleStyle","strategies","_titleMesh","strategy","config","condition","_linkMesh","_particleMesh","loadTasks","Object","entries","filter","map","_ref","key","ClassRef","_objectSpread","ready","add","_x","apply","arguments","Promise","all","calculateLayout","setupBoundingBox","updateWorldMatrix","setupAnimation","createProxy","addEventListeners","panel","_panel","_this$_linkMesh2","_this$_linkMesh3","_this$_particleMesh","titleSize","getBoxSize","height","linkSize","baseY","linkHeight","linkVSpace","vspace","position","setY","max","min","setFromObject","width","x","y","box","size","center","getSize","getCenter","bottomCenter","z","children","sub","updateViewDirection","camera","useScene","updateScale","distance","distanceTo","scale","set","_scene$orbitControls","updateTransform","updateFacing","updateDynamicScale","scene","callback","orbitControls","addEventListener","push","_scene$orbitControls2","removeEventListener","cancelFrame","useframe"],"sources":["../../../src/business/Poi/index.ts"],"sourcesContent":["import { Mesh, Object3D } from '@anov/3d-core'\nimport { Box3, Group, Vector3, use } from '@anov/3d-core'\nimport _ from 'lodash'\nimport ObjectLayer from '../Base/ObjectLayer'\nimport { lookAtOnYAxis } from './tools'\nimport type { IPoi, ModelOption, Option, ParticleOption, TextOption } from './types'\nimport { StrategyManage as LinkStrategy } from './link'\nimport { StrategyManage as ParticleStrategy } from './particle'\nimport { StrategyManage as TitleStrategy } from './title'\nimport InfoPanel from './panel'\n\n\n\nconst DEFAULT_OPTION = {\n style: 'poi_border_01',\n facingCamera: true,\n autoScale: true,\n text: {\n visible: true,\n value: '标题文字',\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n offset: [0, 0],\n bgUrl: '',\n uri: '',\n },\n model: {\n visible: true,\n uri: '',\n color: '#2C8AFF',\n },\n particle: {\n visible: true,\n uri: '',\n color: '#FFFFFF',\n },\n}\n\nconst STYLE_DATA = {\n poi_border_01: ['border', 'pyramid', 'circle'],\n poi_ellipse_01: ['ellipse', 'cylinder', 'circle'],\n}\n\nconst MAX_DISTANCE = 500\n\nclass Poi extends ObjectLayer implements IPoi {\n private _mesh!: Group\n private _titleMesh: Mesh & any\n private _linkMesh: Mesh | Group & any\n private _particleMesh: Mesh & any\n private _panel?: InfoPanel\n private _disposeCallbacks: Function[] = []\n\n private _style: string\n private _autoScale: boolean\n private _facingCamera: boolean\n private _text: TextOption\n private _model: ModelOption\n private _particle: ParticleOption\n private _content: TextOption\n type = 'Group'\n\n constructor(option: Option) {\n super()\n\n const param = _.mergeWith(\n _.cloneDeep(DEFAULT_OPTION),\n option,\n this.arrayMergeCustomizer,\n )\n const { style, text, model, particle, autoScale, facingCamera, content } = param\n this._style = style\n this._text = text\n this._model = model\n this._particle = particle\n this._autoScale = autoScale\n this._facingCamera = facingCamera\n this._content = content\n switch (this.style) {\n case 'poi_border_01':\n case 'poi_ellipse_01':\n case 'poi_custom':\n this.init()\n break\n case 'poi_card_01':\n this.initCard(param)\n break\n }\n\n }\n\n get content(): TextOption {\n return this._content\n }\n\n get mesh() {\n return this._mesh\n }\n\n get style(): string {\n return this._style\n }\n\n get autoScale(): boolean {\n return this._autoScale\n }\n\n set autoScale(newValue: boolean) {\n this._autoScale = newValue\n }\n\n get facingCamera(): boolean {\n return this._facingCamera\n }\n\n set facingCamera(newValue: boolean) {\n this._facingCamera = newValue\n }\n\n get text(): TextOption {\n return this._text\n }\n\n get model(): ModelOption {\n return this._model\n }\n\n get particle(): ParticleOption {\n return this._particle\n }\n\n // 销毁\n destroy() {\n this._disposeCallbacks.forEach(fn => fn())\n this._disposeCallbacks = []\n this.remove(this._mesh)\n }\n\n private async init() {\n const group = new Group()\n const [titleStyle, linkStyle, particleStyle] = STYLE_DATA[this.style]\n\n // 仅加载需要的资源\n const strategies = {\n _titleMesh: { strategy: TitleStrategy[titleStyle], config: this.text, condition: this.text?.visible !== false },\n _linkMesh: { strategy: LinkStrategy[linkStyle], config: this.model, condition: !this.model || this.model.visible !== false },\n _particleMesh: { strategy: ParticleStrategy[particleStyle], config: this.particle, condition: !this.particle || this.particle.visible !== false },\n }\n\n // 过滤掉不需要加载的组件,并发加载\n const loadTasks = Object.entries(strategies)\n .filter(([, { condition }]) => condition)\n .map(async ([key, { strategy, config }]) => {\n if (!strategy)\n return\n const ClassRef = await strategy()\n this[key] = new ClassRef({ ...config })\n await this[key].ready\n group.add(this[key])\n })\n\n // 等待所有组件加载完成\n await Promise.all(loadTasks)\n\n this._mesh = group\n // 布局计算\n this.calculateLayout()\n // 边界盒处理\n this.setupBoundingBox(group)\n // 统一更新矩阵\n group.updateWorldMatrix(true, true)\n // 动画和事件\n this._linkMesh?.setupAnimation()\n this.add(group)\n\n // 代理\n this._text = this.createProxy(this._text, this._titleMesh)\n this._model = this.createProxy(this._model, this._linkMesh)\n this._particle = this.createProxy(this._particle, this._particleMesh)\n\n this.addEventListeners()\n }\n /** 初始化卡片样式 */\n private initCard(param) {\n const group = new Group()\n this._mesh = group\n const panel = new InfoPanel(param)\n this._panel = panel\n group.add(panel)\n // CSS3D 信息面板默认不随距离缩放,保持屏幕像素尺寸稳定\n this._autoScale = false\n this.add(group)\n this.addEventListeners()\n }\n /** 布局计算 */\n private calculateLayout() {\n const titleSize = this._titleMesh ? this.getBoxSize(this._titleMesh) : { height: 0 }\n const linkSize = this._linkMesh ? this.getBoxSize(this._linkMesh) : { height: 0 }\n\n // 计算基础 Y 轴偏移\n let baseY = -titleSize.height / 2\n const linkHeight = linkSize.height\n const linkVSpace = this._linkMesh?.vspace?.[0] || 0\n\n baseY -= linkVSpace\n this._linkMesh?.position.setY(baseY - linkHeight / 2)\n this._particleMesh?.position.setY(baseY - linkHeight)\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 private setupBoundingBox(mesh: Object3D) {\n // 计算Group的边界盒\n const box = new Box3().setFromObject(mesh)\n const size = new Vector3()\n const center = new Vector3()\n box.getSize(size)\n box.getCenter(center)\n\n // 计算底部中心位置\n const bottomCenter = new Vector3(center.x, box.min.y, center.z)\n // 平移所有Mesh,使底部中心对齐到控制点\n mesh.children.forEach((mesh) => {\n mesh.position.sub(bottomCenter)\n })\n }\n\n private updateViewDirection() {\n const { camera } = use.useScene()\n // camera && this._mesh.quaternion.copy(camera.quaternion)\n // this._mesh.rotation.y = camera.rotation.y\n\n lookAtOnYAxis(this._mesh, camera.position)\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n private updateScale() {\n const { camera } = use.useScene()\n // Make the signboard face the camera\n // this._mesh.lookAt(camera.position);\n // 计算相机和物体之间的距离\n const distance = camera?.position.distanceTo(this._mesh.position)\n if (distance >= MAX_DISTANCE)\n return\n const scale = distance / 20 || 1\n this._mesh.scale.set(scale, scale, scale)\n }\n\n private addEventListeners() {\n const updateTransform = () => {\n const { camera } = use.useScene()\n // 普通 POI:依旧使用面向相机和距离缩放\n this._facingCamera !== false && this.updateViewDirection()\n this._autoScale === true && this.updateScale()\n // CSS3D 面板:使用动态像素→米缩放,并处理面板面向相机\n if (this._panel && camera) {\n this._panel.updateFacing(camera)\n this._panel.updateDynamicScale(camera)\n }\n }\n\n const scene = use.useScene()\n const callback = () => updateTransform()\n updateTransform()\n scene.orbitControls?.addEventListener('change', callback)\n this._disposeCallbacks.push(() => {\n scene.orbitControls?.removeEventListener('change', callback)\n })\n\n // 每帧跟随更新,确保场景缩放/组变换也能驱动面板更新\n const cancelFrame = use.useframe(() => {\n updateTransform()\n })\n this._disposeCallbacks.push(() => cancelFrame())\n }\n}\n\nexport { Poi }\n"],"mappings":"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"}
@@ -1,98 +1,65 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
2
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
9
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
10
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
12
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
15
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; }
16
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
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); }
18
6
  import { Color, CylinderGeometry, Mesh, ShaderMaterial, use } from '@anov/3d-core';
19
7
  import CylinderShader from "../shader/cylinder";
20
8
  import LinkMesh from '.';
21
- var CylinderMesh = /*#__PURE__*/function (_LinkMesh) {
22
- _inherits(CylinderMesh, _LinkMesh);
23
- var _super = _createSuper(CylinderMesh);
24
- function CylinderMesh(option) {
25
- var _this;
26
- _classCallCheck(this, CylinderMesh);
27
- _this = _super.call(this);
28
- _defineProperty(_assertThisInitialized(_this), "_color", void 0);
29
- _defineProperty(_assertThisInitialized(_this), "_material", void 0);
30
- var color = option.color;
31
- _this._color = color;
32
- _this._readyPromise = _this.init();
33
- return _this;
9
+ class CylinderMesh extends LinkMesh {
10
+ get color() {
11
+ return this._color;
34
12
  }
35
- _createClass(CylinderMesh, [{
36
- key: "color",
37
- get: function get() {
38
- return this._color;
39
- },
40
- set: function set(newValue) {
41
- if (this._color === newValue) return;
42
- this._color = newValue;
43
- this._material.uniforms.color.value = new Color(this._color);
44
- }
45
- }, {
46
- key: "dispose",
47
- value: function dispose() {
48
- this.remove(this._mesh);
49
- }
50
- }, {
51
- key: "init",
52
- value: function () {
53
- var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
54
- return _regeneratorRuntime().wrap(function _callee$(_context) {
55
- while (1) switch (_context.prev = _context.next) {
56
- case 0:
57
- this._mesh = this.getCylinder();
58
- this.add(this._mesh);
59
- return _context.abrupt("return", true);
60
- case 3:
61
- case "end":
62
- return _context.stop();
63
- }
64
- }, _callee, this);
65
- }));
66
- function init() {
67
- return _init.apply(this, arguments);
68
- }
69
- return init;
70
- }() // 场景初始化部分同上,这里主要展示Shader部分
71
- }, {
72
- key: "getCylinder",
73
- value: function getCylinder() {
74
- var _this2 = this;
75
- var radius = 0.01;
76
- var height = 1.5;
77
- var segments = 32;
78
- var geometry = new CylinderGeometry(radius, radius, height, segments);
79
- var uniforms = CylinderShader.uniforms,
80
- vertexShader = CylinderShader.vertexShader,
81
- fragmentShader = CylinderShader.fragmentShader;
82
- this._material = new ShaderMaterial({
83
- uniforms: uniforms,
84
- vertexShader: vertexShader,
85
- fragmentShader: fragmentShader
86
- });
87
- var mesh = new Mesh(geometry, this._material);
88
- use.useframe(function () {
89
- _this2._material.uniforms.uTime.value = performance.now() / 1000;
90
- });
91
- // mesh.rotation.order = 'YXZ' // 设置旋转顺序
92
- return mesh;
93
- }
94
- }]);
95
- return CylinderMesh;
96
- }(LinkMesh);
13
+ set color(newValue) {
14
+ if (this._color === newValue) return;
15
+ this._color = newValue;
16
+ this._material.uniforms.color.value = new Color(this._color);
17
+ }
18
+ constructor(option) {
19
+ super();
20
+ _defineProperty(this, "_color", void 0);
21
+ _defineProperty(this, "_material", void 0);
22
+ const {
23
+ color
24
+ } = option;
25
+ this._color = color;
26
+ this._readyPromise = this.init();
27
+ }
28
+ dispose() {
29
+ this.remove(this._mesh);
30
+ }
31
+ init() {
32
+ var _this = this;
33
+ return _asyncToGenerator(function* () {
34
+ _this._mesh = _this.getCylinder();
35
+ _this.add(_this._mesh);
36
+ return true;
37
+ })();
38
+ }
39
+
40
+ // 场景初始化部分同上,这里主要展示Shader部分
41
+ getCylinder() {
42
+ const radius = 0.01;
43
+ const height = 1.5;
44
+ const segments = 32;
45
+ const geometry = new CylinderGeometry(radius, radius, height, segments);
46
+ const {
47
+ uniforms,
48
+ vertexShader,
49
+ fragmentShader
50
+ } = CylinderShader;
51
+ this._material = new ShaderMaterial({
52
+ uniforms,
53
+ vertexShader,
54
+ fragmentShader
55
+ });
56
+ const mesh = new Mesh(geometry, this._material);
57
+ use.useframe(() => {
58
+ this._material.uniforms.uTime.value = performance.now() / 1000;
59
+ });
60
+ // mesh.rotation.order = 'YXZ' // 设置旋转顺序
61
+ return mesh;
62
+ }
63
+ }
97
64
  export default CylinderMesh;
98
65
  //# sourceMappingURL=Cylinder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","Color","CylinderGeometry","Mesh","ShaderMaterial","use","CylinderShader","LinkMesh","CylinderMesh","_LinkMesh","_super","option","_this","color","_color","_readyPromise","init","get","set","newValue","_material","uniforms","dispose","remove","_mesh","_init","_callee","_callee$","_context","getCylinder","add","_this2","radius","height","segments","geometry","vertexShader","fragmentShader","mesh","useframe","uTime","performance","now"],"sources":["../../../../src/business/Poi/link/Cylinder.ts"],"sourcesContent":["import { Color, CylinderGeometry, Mesh, ShaderMaterial, use } from '@anov/3d-core'\nimport type { ModelOption as LinkOption } from '../types'\nimport CylinderShader from '../shader/cylinder'\nimport LinkMesh from '.'\n\nclass CylinderMesh extends LinkMesh {\n private _color: string\n private _material: ShaderMaterial\n\n public get color(): string {\n return this._color\n }\n\n public set color(newValue: string) {\n if (this._color === newValue)\n return\n this._color = newValue\n this._material.uniforms.color.value = new Color(this._color)\n }\n\n constructor(option: LinkOption) {\n super()\n const { color } = option\n this._color = color\n this._readyPromise = this.init()\n }\n\n dispose() {\n this.remove(this._mesh)\n }\n\n private async init() {\n this._mesh = this.getCylinder()\n this.add(this._mesh)\n return true\n }\n\n // 场景初始化部分同上,这里主要展示Shader部分\n private getCylinder() {\n const radius = 0.01\n const height = 1.5\n const segments = 32\n\n const geometry = new CylinderGeometry(radius, radius, height, segments)\n\n const { uniforms, vertexShader, fragmentShader } = CylinderShader\n this._material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n })\n\n const mesh = new Mesh(geometry, this._material)\n use.useframe(() => {\n this._material.uniforms.uTime.value = performance.now() / 1000\n })\n // mesh.rotation.order = 'YXZ' // 设置旋转顺序\n return mesh\n }\n}\n\nexport default CylinderMesh"],"mappings":"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"}
1
+ {"version":3,"names":["Color","CylinderGeometry","Mesh","ShaderMaterial","use","CylinderShader","LinkMesh","CylinderMesh","color","_color","newValue","_material","uniforms","value","constructor","option","_defineProperty","_readyPromise","init","dispose","remove","_mesh","_this","_asyncToGenerator","getCylinder","add","radius","height","segments","geometry","vertexShader","fragmentShader","mesh","useframe","uTime","performance","now"],"sources":["../../../../src/business/Poi/link/Cylinder.ts"],"sourcesContent":["import { Color, CylinderGeometry, Mesh, ShaderMaterial, use } from '@anov/3d-core'\nimport type { ModelOption as LinkOption } from '../types'\nimport CylinderShader from '../shader/cylinder'\nimport LinkMesh from '.'\n\nclass CylinderMesh extends LinkMesh {\n private _color: string\n private _material: ShaderMaterial\n\n public get color(): string {\n return this._color\n }\n\n public set color(newValue: string) {\n if (this._color === newValue)\n return\n this._color = newValue\n this._material.uniforms.color.value = new Color(this._color)\n }\n\n constructor(option: LinkOption) {\n super()\n const { color } = option\n this._color = color\n this._readyPromise = this.init()\n }\n\n dispose() {\n this.remove(this._mesh)\n }\n\n private async init() {\n this._mesh = this.getCylinder()\n this.add(this._mesh)\n return true\n }\n\n // 场景初始化部分同上,这里主要展示Shader部分\n private getCylinder() {\n const radius = 0.01\n const height = 1.5\n const segments = 32\n\n const geometry = new CylinderGeometry(radius, radius, height, segments)\n\n const { uniforms, vertexShader, fragmentShader } = CylinderShader\n this._material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n })\n\n const mesh = new Mesh(geometry, this._material)\n use.useframe(() => {\n this._material.uniforms.uTime.value = performance.now() / 1000\n })\n // mesh.rotation.order = 'YXZ' // 设置旋转顺序\n return mesh\n }\n}\n\nexport default CylinderMesh"],"mappings":";;;;;AAAA,SAASA,KAAK,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,cAAc,EAAEC,GAAG,QAAQ,eAAe;AAElF,OAAOC,cAAc;AACrB,OAAOC,QAAQ,MAAM,GAAG;AAExB,MAAMC,YAAY,SAASD,QAAQ,CAAC;EAIlC,IAAWE,KAAKA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACC,MAAM;EACpB;EAEA,IAAWD,KAAKA,CAACE,QAAgB,EAAE;IACjC,IAAI,IAAI,CAACD,MAAM,KAAKC,QAAQ,EAC1B;IACF,IAAI,CAACD,MAAM,GAAGC,QAAQ;IACtB,IAAI,CAACC,SAAS,CAACC,QAAQ,CAACJ,KAAK,CAACK,KAAK,GAAG,IAAIb,KAAK,CAAC,IAAI,CAACS,MAAM,CAAC;EAC9D;EAEAK,WAAWA,CAACC,MAAkB,EAAE;IAC9B,KAAK,CAAC,CAAC;IAAAC,eAAA;IAAAA,eAAA;IACP,MAAM;MAAER;IAAM,CAAC,GAAGO,MAAM;IACxB,IAAI,CAACN,MAAM,GAAGD,KAAK;IACnB,IAAI,CAACS,aAAa,GAAG,IAAI,CAACC,IAAI,CAAC,CAAC;EAClC;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACC,MAAM,CAAC,IAAI,CAACC,KAAK,CAAC;EACzB;EAEcH,IAAIA,CAAA,EAAG;IAAA,IAAAI,KAAA;IAAA,OAAAC,iBAAA;MACnBD,KAAI,CAACD,KAAK,GAAGC,KAAI,CAACE,WAAW,CAAC,CAAC;MAC/BF,KAAI,CAACG,GAAG,CAACH,KAAI,CAACD,KAAK,CAAC;MACpB,OAAO,IAAI;IAAA;EACb;;EAEA;EACQG,WAAWA,CAAA,EAAG;IACpB,MAAME,MAAM,GAAG,IAAI;IACnB,MAAMC,MAAM,GAAG,GAAG;IAClB,MAAMC,QAAQ,GAAG,EAAE;IAEnB,MAAMC,QAAQ,GAAG,IAAI5B,gBAAgB,CAACyB,MAAM,EAAEA,MAAM,EAAEC,MAAM,EAAEC,QAAQ,CAAC;IAEvE,MAAM;MAAEhB,QAAQ;MAAEkB,YAAY;MAAEC;IAAe,CAAC,GAAG1B,cAAc;IACjE,IAAI,CAACM,SAAS,GAAG,IAAIR,cAAc,CAAC;MAClCS,QAAQ;MACRkB,YAAY;MACZC;IACF,CAAC,CAAC;IAEF,MAAMC,IAAI,GAAG,IAAI9B,IAAI,CAAC2B,QAAQ,EAAE,IAAI,CAAClB,SAAS,CAAC;IAC/CP,GAAG,CAAC6B,QAAQ,CAAC,MAAM;MACjB,IAAI,CAACtB,SAAS,CAACC,QAAQ,CAACsB,KAAK,CAACrB,KAAK,GAAGsB,WAAW,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI;IAChE,CAAC,CAAC;IACF;IACA,OAAOJ,IAAI;EACb;AACF;AAEA,eAAezB,YAAY"}