@anov/3d-ability 0.0.28 → 0.0.29

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 (199) hide show
  1. package/dist/camera/index.d.ts +1 -1
  2. package/dist/camera/index.js +3 -3
  3. package/dist/camera/index.js.map +1 -1
  4. package/dist/common/IconStyle.d.ts +4 -4
  5. package/dist/common/IconStyle.js +3 -3
  6. package/dist/common/IconStyle.js.map +1 -1
  7. package/dist/common/ImageStyle.d.ts +3 -3
  8. package/dist/common/ImageStyle.js +3 -3
  9. package/dist/common/ImageStyle.js.map +1 -1
  10. package/dist/common/LabelStyle.d.ts +5 -5
  11. package/dist/common/LabelStyle.js +3 -3
  12. package/dist/common/LabelStyle.js.map +1 -1
  13. package/dist/common/component.d.ts +3 -2
  14. package/dist/common/component.js +8 -6
  15. package/dist/common/component.js.map +1 -1
  16. package/dist/common/constant.d.ts +9 -3
  17. package/dist/common/constant.js +5 -4
  18. package/dist/common/constant.js.map +1 -1
  19. package/dist/controls/base.js +3 -3
  20. package/dist/controls/base.js.map +1 -1
  21. package/dist/controls/src/FirstViewControl.js +3 -3
  22. package/dist/controls/src/FirstViewControl.js.map +1 -1
  23. package/dist/controls/src/ThirdViewControl/action/input.js +3 -3
  24. package/dist/controls/src/ThirdViewControl/action/input.js.map +1 -1
  25. package/dist/controls/src/ThirdViewControl/index.js +3 -3
  26. package/dist/controls/src/ThirdViewControl/index.js.map +1 -1
  27. package/dist/controls/src/ThirdViewControl/player/animation.d.ts +2 -2
  28. package/dist/controls/src/ThirdViewControl/player/animation.js +4 -4
  29. package/dist/controls/src/ThirdViewControl/player/animation.js.map +1 -1
  30. package/dist/controls/src/ThirdViewControl/player/camera.js +3 -3
  31. package/dist/controls/src/ThirdViewControl/player/camera.js.map +1 -1
  32. package/dist/controls/src/ThirdViewControl/player/control.js +3 -3
  33. package/dist/controls/src/ThirdViewControl/player/control.js.map +1 -1
  34. package/dist/controls/src/ThirdViewControl/player.js +6 -6
  35. package/dist/controls/src/ThirdViewControl/player.js.map +1 -1
  36. package/dist/controls/src/ThirdViewControl/type.d.ts +1 -1
  37. package/dist/environment/rain.d.ts +1 -1
  38. package/dist/environment/rain.js.map +1 -1
  39. package/dist/environment/rainShader/index.js +3 -3
  40. package/dist/environment/rainShader/index.js.map +1 -1
  41. package/dist/environment/rainShader/shader.d.ts +2 -2
  42. package/dist/environment/shaderCloud/cloudMaterial.d.ts +1 -1
  43. package/dist/environment/shaderCloud/cloudMaterial.js +3 -3
  44. package/dist/environment/shaderCloud/cloudMaterial.js.map +1 -1
  45. package/dist/environment/shaderCloud/index.js.map +1 -1
  46. package/dist/environment/showShader/index.js +3 -3
  47. package/dist/environment/showShader/index.js.map +1 -1
  48. package/dist/environment/showShader/shader.d.ts +2 -2
  49. package/dist/environment/sky/index.js +1 -1
  50. package/dist/environment/sky/index.js.map +1 -1
  51. package/dist/environment/skyBox/index.d.ts +1 -1
  52. package/dist/environment/skyBox/index.js +13 -14
  53. package/dist/environment/skyBox/index.js.map +1 -1
  54. package/dist/environment/skyv2/config.d.ts +2 -2
  55. package/dist/environment/skyv2/config.js.map +1 -1
  56. package/dist/environment/skyv2/index.js +4 -4
  57. package/dist/environment/skyv2/index.js.map +1 -1
  58. package/dist/environment/snow.d.ts +1 -1
  59. package/dist/environment/snow.js.map +1 -1
  60. package/dist/environment/sun/index.d.ts +4 -1
  61. package/dist/environment/sun/index.js.map +1 -1
  62. package/dist/environment/utils/points.d.ts +1 -1
  63. package/dist/environment/utils/points.js +3 -3
  64. package/dist/environment/utils/points.js.map +1 -1
  65. package/dist/environment/volumetricCloud/cloudMaterial.js.map +1 -1
  66. package/dist/environment/volumetricCloud/inex.js +3 -3
  67. package/dist/environment/volumetricCloud/inex.js.map +1 -1
  68. package/dist/heatmap/index.js +4 -4
  69. package/dist/heatmap/index.js.map +1 -1
  70. package/dist/helper/view/index.d.ts +2 -2
  71. package/dist/helper/view/index.js +4 -5
  72. package/dist/helper/view/index.js.map +1 -1
  73. package/dist/helper/view/utils.js +1 -1
  74. package/dist/helper/view/utils.js.map +1 -1
  75. package/dist/index.d.ts +3 -2
  76. package/dist/index.js +3 -2
  77. package/dist/index.js.map +1 -1
  78. package/dist/line/curve.d.ts +2 -2
  79. package/dist/line/curve.js +3 -3
  80. package/dist/line/curve.js.map +1 -1
  81. package/dist/line/index.d.ts +16 -0
  82. package/dist/line/index.js +62 -1
  83. package/dist/line/index.js.map +1 -1
  84. package/dist/line/round-curve.d.ts +1 -1
  85. package/dist/line/round-curve.js +5 -5
  86. package/dist/line/round-curve.js.map +1 -1
  87. package/dist/material/fakeGlowMaterial/index.js +3 -3
  88. package/dist/material/fakeGlowMaterial/index.js.map +1 -1
  89. package/dist/material/finirMaterialMaterial/index.d.ts +1 -1
  90. package/dist/material/finirMaterialMaterial/index.js +3 -3
  91. package/dist/material/finirMaterialMaterial/index.js.map +1 -1
  92. package/dist/material/pristineGridMaterial/index.d.ts +1 -1
  93. package/dist/material/pristineGridMaterial/index.js +3 -3
  94. package/dist/material/pristineGridMaterial/index.js.map +1 -1
  95. package/dist/poi/Poi.d.ts +10 -6
  96. package/dist/poi/Poi.js +52 -35
  97. package/dist/poi/Poi.js.map +1 -1
  98. package/dist/poi/{2D → disable/2D}/index.js +5 -6
  99. package/dist/poi/disable/2D/index.js.map +1 -0
  100. package/dist/poi/{3D → disable/3D}/index.js +6 -6
  101. package/dist/poi/disable/3D/index.js.map +1 -0
  102. package/dist/poi/{3D → disable/3D}/index1.d.ts +3 -3
  103. package/dist/poi/{3D → disable/3D}/index1.js +7 -6
  104. package/dist/poi/disable/3D/index1.js.map +1 -0
  105. package/dist/poi/disable/3D/type.js +6 -0
  106. package/dist/poi/disable/3D/type.js.map +1 -0
  107. package/dist/poi/{Base.js → disable/Base.js} +3 -3
  108. package/dist/poi/disable/Base.js.map +1 -0
  109. package/dist/poi/{Sprite → disable/Sprite}/index.js +6 -6
  110. package/dist/poi/disable/Sprite/index.js.map +1 -0
  111. package/dist/poi/disable/Sprite/index2.js +188 -0
  112. package/dist/poi/disable/Sprite/index2.js.map +1 -0
  113. package/dist/poi/disable/utils/canvas.js +68 -0
  114. package/dist/poi/disable/utils/canvas.js.map +1 -0
  115. package/dist/poi/{utils → disable/utils}/element.js +5 -6
  116. package/dist/poi/disable/utils/element.js.map +1 -0
  117. package/dist/poi/{utils → disable/utils}/type.d.ts +3 -3
  118. package/dist/poi/{utils → disable/utils}/type.js +3 -3
  119. package/dist/poi/disable/utils/type.js.map +1 -0
  120. package/dist/poi/index.d.ts +6 -5
  121. package/dist/poi/index.js +6 -5
  122. package/dist/poi/index.js.map +1 -1
  123. package/dist/poi/plane/index.d.ts +21 -0
  124. package/dist/poi/plane/index.js +127 -0
  125. package/dist/poi/plane/index.js.map +1 -0
  126. package/dist/postEffects/addACESFilmicToneMappingPass.js.map +1 -1
  127. package/dist/postEffects/addBrightnessContrastPass.js.map +1 -1
  128. package/dist/postEffects/bloomPass.d.ts +1 -1
  129. package/dist/postEffects/bloomPass.js.map +1 -1
  130. package/dist/postEffects/bloomSelect.d.ts +1 -1
  131. package/dist/postEffects/bloomSelect.js.map +1 -1
  132. package/dist/postEffects/colorifyPass.js.map +1 -1
  133. package/dist/postEffects/index.d.ts +1 -1
  134. package/dist/postEffects/index.js.map +1 -1
  135. package/dist/postEffects/outlinePass.d.ts +1 -1
  136. package/dist/postEffects/outlinePass.js +5 -5
  137. package/dist/postEffects/outlinePass.js.map +1 -1
  138. package/dist/postEffects/postprocessing.js.map +1 -1
  139. package/dist/postEffects/saoPass.js.map +1 -1
  140. package/dist/postEffects/shader/colorify.d.ts +1 -1
  141. package/dist/postEffects/shader/gammaCorrectionShader.d.ts +1 -1
  142. package/dist/postEffects/shader/mapping.d.ts +1 -1
  143. package/dist/postEffects/shader/thermalMaging.d.ts +1 -1
  144. package/dist/scene/grow/grow.js +3 -4
  145. package/dist/scene/grow/grow.js.map +1 -1
  146. package/dist/scene/grow/style_down.js +3 -3
  147. package/dist/scene/grow/style_down.js.map +1 -1
  148. package/dist/scene/grow/style_up.js +3 -3
  149. package/dist/scene/grow/style_up.js.map +1 -1
  150. package/dist/scene/grow/type.js +5 -5
  151. package/dist/scene/grow/type.js.map +1 -1
  152. package/dist/utils/index.d.ts +1 -1
  153. package/dist/utils/index.js.map +1 -1
  154. package/dist/weather/index.js +12 -11
  155. package/dist/weather/index.js.map +1 -1
  156. package/dist/weather/objects/CloudMesh.js +5 -5
  157. package/dist/weather/objects/CloudMesh.js.map +1 -1
  158. package/dist/weather/objects/Fog2DMesh.js +5 -5
  159. package/dist/weather/objects/Fog2DMesh.js.map +1 -1
  160. package/dist/weather/objects/RainMesh.js +5 -5
  161. package/dist/weather/objects/RainMesh.js.map +1 -1
  162. package/dist/weather/objects/SkyMesh.js +3 -3
  163. package/dist/weather/objects/SkyMesh.js.map +1 -1
  164. package/dist/weather/objects/SnowMesh.js +4 -4
  165. package/dist/weather/objects/SnowMesh.js.map +1 -1
  166. package/dist/weather/shaders/RainPlane.d.ts +2 -2
  167. package/dist/weather/shaders/cloud.d.ts +2 -2
  168. package/dist/weather/shaders/snow.d.ts +2 -2
  169. package/dist/weather/utils/constant.d.ts +1 -1
  170. package/dist/weather/utils/constant.js +9 -10
  171. package/dist/weather/utils/constant.js.map +1 -1
  172. package/dist/widget/icon.js +3 -3
  173. package/dist/widget/icon.js.map +1 -1
  174. package/dist/widget/image.js +3 -3
  175. package/dist/widget/image.js.map +1 -1
  176. package/dist/widget/label.js +5 -5
  177. package/dist/widget/label.js.map +1 -1
  178. package/package.json +2 -3
  179. package/dist/poi/2D/index.js.map +0 -1
  180. package/dist/poi/3D/index.js.map +0 -1
  181. package/dist/poi/3D/index1.js.map +0 -1
  182. package/dist/poi/3D/type.js +0 -6
  183. package/dist/poi/3D/type.js.map +0 -1
  184. package/dist/poi/Base.js.map +0 -1
  185. package/dist/poi/Sprite/index.js.map +0 -1
  186. package/dist/poi/Sprite/index2.js +0 -184
  187. package/dist/poi/Sprite/index2.js.map +0 -1
  188. package/dist/poi/utils/canvas.js +0 -68
  189. package/dist/poi/utils/canvas.js.map +0 -1
  190. package/dist/poi/utils/element.js.map +0 -1
  191. package/dist/poi/utils/type.js.map +0 -1
  192. /package/dist/poi/{2D → disable/2D}/index.d.ts +0 -0
  193. /package/dist/poi/{3D → disable/3D}/index.d.ts +0 -0
  194. /package/dist/poi/{3D → disable/3D}/type.d.ts +0 -0
  195. /package/dist/poi/{Base.d.ts → disable/Base.d.ts} +0 -0
  196. /package/dist/poi/{Sprite → disable/Sprite}/index.d.ts +0 -0
  197. /package/dist/poi/{Sprite → disable/Sprite}/index2.d.ts +0 -0
  198. /package/dist/poi/{utils → disable/utils}/canvas.d.ts +0 -0
  199. /package/dist/poi/{utils → disable/utils}/element.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Color","Layers","MeshBasicMaterial","ShaderMaterial","SpriteMaterial","Vector2","lib","use","utils","EffectComposer","RenderPass","UnrealBloomPass","ShaderPass","GammaCorrectionShader","CopyShader","FXAAShader","storeManagement","createBloomSelectedTool","highParams","useScene","scene","camera","renderer","strength","radius","threshold","composer","get","Error","isNeedRender","BLOOM_SCENE","bloomLayer","set","renderScene","bloomPass","window","innerWidth","innerHeight","bloomComposer","renderToScreen","addPass","effectCopy","effectFXAA","uniforms","resolution","value","mixPass","baseTexture","bloomTexture","renderTarget2","texture","vertexShader","fragmentShader","defines","needsSwap","gammaCorrectionShader","materials","darkMaterial","color","cleanBloomBefore","useframeAfter","old","background","clone","traverse","obj","visible","type","material","map","transparent","opacity","depthTest","uuid","isMesh","test","layers","render","bloomSelected","object3dArray","forEach","object3d","enable","child","clean"],"sources":["../../src/postEffects/bloomSelect.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, Layers, MeshBasicMaterial, ShaderMaterial, SpriteMaterial, Vector2, lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass, UnrealBloomPass, ShaderPass, GammaCorrectionShader, CopyShader, FXAAShader } = lib\nconst { storeManagement } = utils\n\ntype HighParams = {\n strength?: number\n radius?: number\n threshold?: number\n}\n\n/**\n * @file createBloomSelectedTool\n * todo 待优化\n */\n\n/**\n * createBloomSelectedTool\n * @param highParams\n * @returns\n */\nconst createBloomSelectedTool = (highParams?: HighParams) => {\n const { scene, camera, renderer } = use.useScene()\n const { strength = 1.5, radius = 0.4, threshold = 0.85 } = highParams || {}\n\n const composer = storeManagement.get('composer') as lib.EffectComposer\n\n if (!scene || !camera || !renderer)\n throw new Error('scene or camera is not defined,')\n\n // @ts-ignore\n composer.isNeedRender = false\n\n const BLOOM_SCENE = 1\n const bloomLayer = new Layers()\n\n bloomLayer.set(BLOOM_SCENE)\n\n const renderScene = new RenderPass(scene, camera)\n const bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold)\n\n const bloomComposer = new EffectComposer(renderer)\n\n bloomComposer.renderToScreen = false\n bloomComposer.addPass(renderScene)\n bloomComposer.addPass(bloomPass)\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const effectFXAA = new ShaderPass(FXAAShader)\n effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n\n const mixPass = new ShaderPass(\n new ShaderMaterial({\n uniforms: {\n baseTexture: { value: null },\n bloomTexture: { value: bloomComposer.renderTarget2.texture },\n },\n vertexShader: `\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n `,\n fragmentShader: `\n uniform sampler2D baseTexture;\n uniform sampler2D bloomTexture;\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n }\n `,\n defines: {},\n }), 'baseTexture',\n )\n mixPass.needsSwap = true\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n composer.addPass(renderScene)\n composer.addPass(mixPass)\n composer.addPass(gammaCorrectionShader)\n composer.addPass(effectCopy)\n\n const materials = {} as any\n const darkMaterial = new MeshBasicMaterial({ color: 'black' })\n\n /**\n * 性能消耗太大了\n */\n const cleanBloomBefore = use.useframeAfter(() => {\n const old = scene.background?.clone() ?? null\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (obj.type === 'SpritePoi') {\n if (obj.material && obj.material.map) {\n obj.material = new SpriteMaterial({ map: obj.material.map, transparent: true, opacity: obj.material.opacity, depthTest: obj.material.depthTest })\n materials[obj.uuid] = obj.material\n obj.material = new SpriteMaterial({ color: 'black' })\n }\n }\n\n if (scene.background)\n scene.background = new Color('#000')\n\n if (obj.isMesh && bloomLayer.test(obj.layers) === false) {\n materials[obj.uuid] = obj.material\n obj.material = darkMaterial\n }\n })\n\n bloomComposer.render()\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (materials[obj.uuid]) {\n obj.material = materials[obj.uuid]\n delete materials[obj.uuid]\n }\n })\n\n if (old)\n scene.background = old\n\n composer.render()\n })\n\n const bloomSelected = (object3dArray: Object3D[]) => {\n object3dArray.forEach((object3d) => {\n if (object3d.type === 'Mesh') {\n object3d.layers.enable(BLOOM_SCENE)\n }\n\n else if (object3d.type === 'Group') {\n object3d.traverse((child) => {\n if (child.type === 'Mesh')\n child.layers.enable(BLOOM_SCENE)\n })\n }\n })\n }\n\n return {\n bloomSelected,\n clean: () => {\n cleanBloomBefore()\n\n // @ts-ignore\n composer.isNeedRender = true\n },\n }\n}\n\nexport default createBloomSelectedTool"],"mappings":"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"}
1
+ {"version":3,"names":["Color","Layers","MeshBasicMaterial","ShaderMaterial","SpriteMaterial","Vector2","lib","use","utils","EffectComposer","RenderPass","UnrealBloomPass","ShaderPass","GammaCorrectionShader","CopyShader","FXAAShader","storeManagement","createBloomSelectedTool","highParams","_use$useScene","useScene","scene","camera","renderer","_ref","_ref$strength","strength","_ref$radius","radius","_ref$threshold","threshold","composer","get","Error","isNeedRender","BLOOM_SCENE","bloomLayer","set","renderScene","bloomPass","window","innerWidth","innerHeight","bloomComposer","renderToScreen","addPass","effectCopy","effectFXAA","uniforms","resolution","value","mixPass","baseTexture","bloomTexture","renderTarget2","texture","vertexShader","fragmentShader","defines","needsSwap","gammaCorrectionShader","materials","darkMaterial","color","cleanBloomBefore","useframeAfter","_scene$background$clo","_scene$background","old","background","clone","traverse","obj","visible","type","material","map","transparent","opacity","depthTest","uuid","isMesh","test","layers","render","bloomSelected","object3dArray","forEach","object3d","enable","child","clean"],"sources":["../../src/postEffects/bloomSelect.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, Layers, MeshBasicMaterial, ShaderMaterial, SpriteMaterial, Vector2, lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass, UnrealBloomPass, ShaderPass, GammaCorrectionShader, CopyShader, FXAAShader } = lib\nconst { storeManagement } = utils\n\ntype HighParams = {\n strength?: number\n radius?: number\n threshold?: number\n}\n\n/**\n * @file createBloomSelectedTool\n * todo 待优化\n */\n\n/**\n * createBloomSelectedTool\n * @param highParams\n * @returns\n */\nconst createBloomSelectedTool = (highParams?: HighParams) => {\n const { scene, camera, renderer } = use.useScene()\n const { strength = 1.5, radius = 0.4, threshold = 0.85 } = highParams || {}\n\n const composer = storeManagement.get('composer') as lib.EffectComposer\n\n if (!scene || !camera || !renderer)\n throw new Error('scene or camera is not defined,')\n\n // @ts-ignore\n composer.isNeedRender = false\n\n const BLOOM_SCENE = 1\n const bloomLayer = new Layers()\n\n bloomLayer.set(BLOOM_SCENE)\n\n const renderScene = new RenderPass(scene, camera)\n const bloomPass = new UnrealBloomPass(new Vector2(window.innerWidth, window.innerHeight), strength, radius, threshold)\n\n const bloomComposer = new EffectComposer(renderer)\n\n bloomComposer.renderToScreen = false\n bloomComposer.addPass(renderScene)\n bloomComposer.addPass(bloomPass)\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const effectFXAA = new ShaderPass(FXAAShader)\n effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n\n const mixPass = new ShaderPass(\n new ShaderMaterial({\n uniforms: {\n baseTexture: { value: null },\n bloomTexture: { value: bloomComposer.renderTarget2.texture },\n },\n vertexShader: `\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}\n `,\n fragmentShader: `\n uniform sampler2D baseTexture;\n uniform sampler2D bloomTexture;\n varying vec2 vUv;\n\n void main() {\n gl_FragColor = ( texture2D( baseTexture, vUv ) + vec4( 1.0 ) * texture2D( bloomTexture, vUv ) );\n }\n `,\n defines: {},\n }), 'baseTexture',\n )\n mixPass.needsSwap = true\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n composer.addPass(renderScene)\n composer.addPass(mixPass)\n composer.addPass(gammaCorrectionShader)\n composer.addPass(effectCopy)\n\n const materials = {} as any\n const darkMaterial = new MeshBasicMaterial({ color: 'black' })\n\n /**\n * 性能消耗太大了\n */\n const cleanBloomBefore = use.useframeAfter(() => {\n const old = scene.background?.clone() ?? null\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (obj.type === 'SpritePoi') {\n if (obj.material && obj.material.map) {\n obj.material = new SpriteMaterial({ map: obj.material.map, transparent: true, opacity: obj.material.opacity, depthTest: obj.material.depthTest })\n materials[obj.uuid] = obj.material\n obj.material = new SpriteMaterial({ color: 'black' })\n }\n }\n\n if (scene.background)\n scene.background = new Color('#000')\n\n if (obj.isMesh && bloomLayer.test(obj.layers) === false) {\n materials[obj.uuid] = obj.material\n obj.material = darkMaterial\n }\n })\n\n bloomComposer.render()\n\n scene.traverse((obj: any) => {\n if (!obj.visible)\n return\n\n if (materials[obj.uuid]) {\n obj.material = materials[obj.uuid]\n delete materials[obj.uuid]\n }\n })\n\n if (old)\n scene.background = old\n\n composer.render()\n })\n\n const bloomSelected = (object3dArray: Object3D[]) => {\n object3dArray.forEach((object3d) => {\n if (object3d.type === 'Mesh') {\n object3d.layers.enable(BLOOM_SCENE)\n }\n\n else if (object3d.type === 'Group') {\n object3d.traverse((child) => {\n if (child.type === 'Mesh')\n child.layers.enable(BLOOM_SCENE)\n })\n }\n })\n }\n\n return {\n bloomSelected,\n clean: () => {\n cleanBloomBefore()\n\n // @ts-ignore\n composer.isNeedRender = true\n },\n }\n}\n\nexport default createBloomSelectedTool"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","ColorifyShader","storeManagement","CopyShader","ShaderPass","addColorifyPass","color","alpha","useScene","scene","camera","composer","get","Error","effectCopy","renderToScreen","colorify","enabled","uniforms","value","addPass","clean","removePass","setColor"],"sources":["../../src/postEffects/colorifyPass.ts"],"sourcesContent":["import type { Color } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\nimport ColorifyShader from './shader/colorify'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass } = lib\n\nconst addColorifyPass = (color: Color, alpha = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const colorify = new ShaderPass(ColorifyShader)\n colorify.enabled = true\n\n colorify.uniforms.color.value = color\n colorify.uniforms.alpha.value = alpha\n\n composer.addPass(colorify)\n composer.addPass(effectCopy)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(colorify)\n },\n setColor: (color: Color) => {\n colorify.uniforms.color.value = color\n },\n }\n}\n\nexport default addColorifyPass"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAC/C,OAAOC,cAAc;AAErB,IAAQC,eAAe,GAAKF,KAAK,CAAzBE,eAAe;AACvB,IAAQC,UAAU,GAAiBL,GAAG,CAA9BK,UAAU;EAAEC,UAAU,GAAKN,GAAG,CAAlBM,UAAU;AAE9B,IAAMC,eAAe,GAAG,SAAlBA,eAAe,CAAIC,KAAY,EAAkB;EAAA,IAAhBC,KAAK,uEAAG,GAAG;EAChD,oBAA0BR,GAAG,CAACS,QAAQ,EAAE;IAAhCC,KAAK,iBAALA,KAAK;IAAEC,MAAM,iBAANA,MAAM;EACrB,IAAMC,QAAQ,GAAGT,eAAe,CAACU,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,UAAU,GAAG,IAAIV,UAAU,CAACD,UAAU,CAAC;EAC7CW,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhC,IAAMC,QAAQ,GAAG,IAAIZ,UAAU,CAACH,cAAc,CAAC;EAC/Ce,QAAQ,CAACC,OAAO,GAAG,IAAI;EAEvBD,QAAQ,CAACE,QAAQ,CAACZ,KAAK,CAACa,KAAK,GAAGb,KAAK;EACrCU,QAAQ,CAACE,QAAQ,CAACX,KAAK,CAACY,KAAK,GAAGZ,KAAK;EAErCI,QAAQ,CAACS,OAAO,CAACJ,QAAQ,CAAC;EAC1BL,QAAQ,CAACS,OAAO,CAACN,UAAU,CAAC;EAE5B,OAAO;IACLO,KAAK,EAAE,iBAAM;MACXV,QAAQ,CAACW,UAAU,CAACR,UAAU,CAAC;MAC/BH,QAAQ,CAACW,UAAU,CAACN,QAAQ,CAAC;IAC/B,CAAC;IACDO,QAAQ,EAAE,kBAACjB,KAAY,EAAK;MAC1BU,QAAQ,CAACE,QAAQ,CAACZ,KAAK,CAACa,KAAK,GAAGb,KAAK;IACvC;EACF,CAAC;AACH,CAAC;AAED,eAAeD,eAAe"}
1
+ {"version":3,"names":["lib","use","utils","ColorifyShader","storeManagement","CopyShader","ShaderPass","addColorifyPass","color","alpha","arguments","length","undefined","_use$useScene","useScene","scene","camera","composer","get","Error","effectCopy","renderToScreen","colorify","enabled","uniforms","value","addPass","clean","removePass","setColor"],"sources":["../../src/postEffects/colorifyPass.ts"],"sourcesContent":["import type { Color } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\nimport ColorifyShader from './shader/colorify'\n\nconst { storeManagement } = utils\nconst { CopyShader, ShaderPass } = lib\n\nconst addColorifyPass = (color: Color, alpha = 0.5) => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const effectCopy = new ShaderPass(CopyShader)\n effectCopy.renderToScreen = true\n\n const colorify = new ShaderPass(ColorifyShader)\n colorify.enabled = true\n\n colorify.uniforms.color.value = color\n colorify.uniforms.alpha.value = alpha\n\n composer.addPass(colorify)\n composer.addPass(effectCopy)\n\n return {\n clean: () => {\n composer.removePass(effectCopy)\n composer.removePass(colorify)\n },\n setColor: (color: Color) => {\n colorify.uniforms.color.value = color\n },\n }\n}\n\nexport default addColorifyPass"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAC/C,OAAOC,cAAc;AAErB,IAAQC,eAAe,GAAKF,KAAK,CAAzBE,eAAe;AACvB,IAAQC,UAAU,GAAiBL,GAAG,CAA9BK,UAAU;EAAEC,UAAU,GAAKN,GAAG,CAAlBM,UAAU;AAE9B,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAY,EAAkB;EAAA,IAAhBC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAChD,IAAAG,aAAA,GAA0BZ,GAAG,CAACa,QAAQ,CAAC,CAAC;IAAhCC,KAAK,GAAAF,aAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,aAAA,CAANG,MAAM;EACrB,IAAMC,QAAQ,GAAGb,eAAe,CAACc,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,UAAU,GAAG,IAAId,UAAU,CAACD,UAAU,CAAC;EAC7Ce,UAAU,CAACC,cAAc,GAAG,IAAI;EAEhC,IAAMC,QAAQ,GAAG,IAAIhB,UAAU,CAACH,cAAc,CAAC;EAC/CmB,QAAQ,CAACC,OAAO,GAAG,IAAI;EAEvBD,QAAQ,CAACE,QAAQ,CAAChB,KAAK,CAACiB,KAAK,GAAGjB,KAAK;EACrCc,QAAQ,CAACE,QAAQ,CAACf,KAAK,CAACgB,KAAK,GAAGhB,KAAK;EAErCQ,QAAQ,CAACS,OAAO,CAACJ,QAAQ,CAAC;EAC1BL,QAAQ,CAACS,OAAO,CAACN,UAAU,CAAC;EAE5B,OAAO;IACLO,KAAK,EAAE,SAAAA,MAAA,EAAM;MACXV,QAAQ,CAACW,UAAU,CAACR,UAAU,CAAC;MAC/BH,QAAQ,CAACW,UAAU,CAACN,QAAQ,CAAC;IAC/B,CAAC;IACDO,QAAQ,EAAE,SAAAA,SAACrB,KAAY,EAAK;MAC1Bc,QAAQ,CAACE,QAAQ,CAAChB,KAAK,CAACiB,KAAK,GAAGjB,KAAK;IACvC;EACF,CAAC;AACH,CAAC;AAED,eAAeD,eAAe"}
@@ -1,6 +1,6 @@
1
1
  import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core';
2
2
  import { lib } from '@anov/3d-core';
3
- declare type InitPostEffectsOptions = {
3
+ type InitPostEffectsOptions = {
4
4
  type: 'main' | 'sub';
5
5
  beforehooks?: () => void;
6
6
  afterhooks?: () => void;
@@ -1 +1 @@
1
- {"version":3,"names":["lib","use","utils","EffectComposer","RenderPass","storeManagement","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","type","beforehooks","afterhooks","renderToScreen","composer","renderPass","func","set","addPass","isNeedRender","cleanEffectsframe","render","delete"],"sources":["../../src/postEffects/index.ts"],"sourcesContent":["import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass } = lib\nconst { storeManagement } = utils\nconst { useSubComposerFrame, useComposerFrame } = use\n\ntype InitPostEffectsOptions = {\n type: 'main' | 'sub'\n beforehooks?: () => void\n afterhooks?: () => void\n renderToScreen?: boolean\n}\n\nlet clean: () => void\n\n/**\n * init post effects\n * @param scene\n * @param renderer\n * @param camera\n * @param beforehooks composer render before hook\n * @param afterhooks composer render after hook\n * @returns\n */\nexport const initPostEffects = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n options?: InitPostEffectsOptions,\n) => {\n const { type, beforehooks, afterhooks, renderToScreen = true } = options || { type: 'main' }\n const composer = new EffectComposer(renderer)\n const renderPass = new RenderPass(scene, camera)\n const func = type === 'main' ? useComposerFrame : useSubComposerFrame\n\n clean && clean()\n\n storeManagement.set('composer', composer)\n storeManagement.set('renderPass', renderPass)\n\n composer.addPass(renderPass)\n composer.renderToScreen = renderToScreen\n\n // @ts-ignore\n composer.isNeedRender = true\n\n const cleanEffectsframe = func (() => {\n beforehooks && beforehooks()\n // @ts-ignore\n composer.isNeedRender && composer.render()\n afterhooks && afterhooks()\n })\n\n clean = () => {\n storeManagement.delete('composer')\n storeManagement.delete('renderPass')\n\n cleanEffectsframe()\n }\n\n return {\n composer,\n clean,\n }\n}"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,IAAQC,cAAc,GAAiBH,GAAG,CAAlCG,cAAc;EAAEC,UAAU,GAAKJ,GAAG,CAAlBI,UAAU;AAClC,IAAQC,eAAe,GAAKH,KAAK,CAAzBG,eAAe;AACvB,IAAQC,mBAAmB,GAAuBL,GAAG,CAA7CK,mBAAmB;EAAEC,gBAAgB,GAAKN,GAAG,CAAxBM,gBAAgB;AAS7C,IAAIC,KAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAe,CAC1BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACdC,OAAgC,EAC7B;EACH,WAAiEA,OAAO,IAAI;MAAEC,IAAI,EAAE;IAAO,CAAC;IAApFA,IAAI,QAAJA,IAAI;IAAEC,WAAW,QAAXA,WAAW;IAAEC,UAAU,QAAVA,UAAU;IAAA,2BAAEC,cAAc;IAAdA,cAAc,oCAAG,IAAI;EAC5D,IAAMC,QAAQ,GAAG,IAAIf,cAAc,CAACQ,QAAQ,CAAC;EAC7C,IAAMQ,UAAU,GAAG,IAAIf,UAAU,CAACM,KAAK,EAAEE,MAAM,CAAC;EAChD,IAAMQ,IAAI,GAAGN,IAAI,KAAK,MAAM,GAAGP,gBAAgB,GAAGD,mBAAmB;EAErEE,KAAK,IAAIA,KAAK,EAAE;EAEhBH,eAAe,CAACgB,GAAG,CAAC,UAAU,EAAEH,QAAQ,CAAC;EACzCb,eAAe,CAACgB,GAAG,CAAC,YAAY,EAAEF,UAAU,CAAC;EAE7CD,QAAQ,CAACI,OAAO,CAACH,UAAU,CAAC;EAC5BD,QAAQ,CAACD,cAAc,GAAGA,cAAc;;EAExC;EACAC,QAAQ,CAACK,YAAY,GAAG,IAAI;EAE5B,IAAMC,iBAAiB,GAAGJ,IAAI,CAAE,YAAM;IACpCL,WAAW,IAAIA,WAAW,EAAE;IAC5B;IACAG,QAAQ,CAACK,YAAY,IAAIL,QAAQ,CAACO,MAAM,EAAE;IAC1CT,UAAU,IAAIA,UAAU,EAAE;EAC5B,CAAC,CAAC;EAEFR,KAAK,GAAG,iBAAM;IACZH,eAAe,CAACqB,MAAM,CAAC,UAAU,CAAC;IAClCrB,eAAe,CAACqB,MAAM,CAAC,YAAY,CAAC;IAEpCF,iBAAiB,EAAE;EACrB,CAAC;EAED,OAAO;IACLN,QAAQ,EAARA,QAAQ;IACRV,KAAK,EAALA;EACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"names":["lib","use","utils","EffectComposer","RenderPass","storeManagement","useSubComposerFrame","useComposerFrame","clean","initPostEffects","scene","renderer","camera","options","_ref","type","beforehooks","afterhooks","_ref$renderToScreen","renderToScreen","composer","renderPass","func","set","addPass","isNeedRender","cleanEffectsframe","render","delete"],"sources":["../../src/postEffects/index.ts"],"sourcesContent":["import type { Camera, Scene, WebGLRenderer } from '@anov/3d-core'\nimport { lib, use, utils } from '@anov/3d-core'\n\nconst { EffectComposer, RenderPass } = lib\nconst { storeManagement } = utils\nconst { useSubComposerFrame, useComposerFrame } = use\n\ntype InitPostEffectsOptions = {\n type: 'main' | 'sub'\n beforehooks?: () => void\n afterhooks?: () => void\n renderToScreen?: boolean\n}\n\nlet clean: () => void\n\n/**\n * init post effects\n * @param scene\n * @param renderer\n * @param camera\n * @param beforehooks composer render before hook\n * @param afterhooks composer render after hook\n * @returns\n */\nexport const initPostEffects = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n options?: InitPostEffectsOptions,\n) => {\n const { type, beforehooks, afterhooks, renderToScreen = true } = options || { type: 'main' }\n const composer = new EffectComposer(renderer)\n const renderPass = new RenderPass(scene, camera)\n const func = type === 'main' ? useComposerFrame : useSubComposerFrame\n\n clean && clean()\n\n storeManagement.set('composer', composer)\n storeManagement.set('renderPass', renderPass)\n\n composer.addPass(renderPass)\n composer.renderToScreen = renderToScreen\n\n // @ts-ignore\n composer.isNeedRender = true\n\n const cleanEffectsframe = func (() => {\n beforehooks && beforehooks()\n // @ts-ignore\n composer.isNeedRender && composer.render()\n afterhooks && afterhooks()\n })\n\n clean = () => {\n storeManagement.delete('composer')\n storeManagement.delete('renderPass')\n\n cleanEffectsframe()\n }\n\n return {\n composer,\n clean,\n }\n}"],"mappings":"AACA,SAASA,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE/C,IAAQC,cAAc,GAAiBH,GAAG,CAAlCG,cAAc;EAAEC,UAAU,GAAKJ,GAAG,CAAlBI,UAAU;AAClC,IAAQC,eAAe,GAAKH,KAAK,CAAzBG,eAAe;AACvB,IAAQC,mBAAmB,GAAuBL,GAAG,CAA7CK,mBAAmB;EAAEC,gBAAgB,GAAKN,GAAG,CAAxBM,gBAAgB;AAS7C,IAAIC,KAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACdC,OAAgC,EAC7B;EACH,IAAAC,IAAA,GAAiED,OAAO,IAAI;MAAEE,IAAI,EAAE;IAAO,CAAC;IAApFA,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IAAEC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IAAAC,mBAAA,GAAAJ,IAAA,CAAEK,cAAc;IAAdA,cAAc,GAAAD,mBAAA,cAAG,IAAI,GAAAA,mBAAA;EAC5D,IAAME,QAAQ,GAAG,IAAIjB,cAAc,CAACQ,QAAQ,CAAC;EAC7C,IAAMU,UAAU,GAAG,IAAIjB,UAAU,CAACM,KAAK,EAAEE,MAAM,CAAC;EAChD,IAAMU,IAAI,GAAGP,IAAI,KAAK,MAAM,GAAGR,gBAAgB,GAAGD,mBAAmB;EAErEE,KAAK,IAAIA,KAAK,CAAC,CAAC;EAEhBH,eAAe,CAACkB,GAAG,CAAC,UAAU,EAAEH,QAAQ,CAAC;EACzCf,eAAe,CAACkB,GAAG,CAAC,YAAY,EAAEF,UAAU,CAAC;EAE7CD,QAAQ,CAACI,OAAO,CAACH,UAAU,CAAC;EAC5BD,QAAQ,CAACD,cAAc,GAAGA,cAAc;;EAExC;EACAC,QAAQ,CAACK,YAAY,GAAG,IAAI;EAE5B,IAAMC,iBAAiB,GAAGJ,IAAI,CAAE,YAAM;IACpCN,WAAW,IAAIA,WAAW,CAAC,CAAC;IAC5B;IACAI,QAAQ,CAACK,YAAY,IAAIL,QAAQ,CAACO,MAAM,CAAC,CAAC;IAC1CV,UAAU,IAAIA,UAAU,CAAC,CAAC;EAC5B,CAAC,CAAC;EAEFT,KAAK,GAAG,SAAAA,MAAA,EAAM;IACZH,eAAe,CAACuB,MAAM,CAAC,UAAU,CAAC;IAClCvB,eAAe,CAACuB,MAAM,CAAC,YAAY,CAAC;IAEpCF,iBAAiB,CAAC,CAAC;EACrB,CAAC;EAED,OAAO;IACLN,QAAQ,EAARA,QAAQ;IACRZ,KAAK,EAALA;EACF,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { Object3D } from '@anov/3d-core';
2
- declare type HighParamsType = {
2
+ type HighParamsType = {
3
3
  edgeStrength?: number;
4
4
  edgeGlow?: number;
5
5
  edgeThickness?: number;
@@ -1,9 +1,9 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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 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
+ 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
4
  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; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ 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); }
7
7
  import { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core';
8
8
  var storeManagement = utils.storeManagement;
9
9
  var ShaderPass = lib.ShaderPass,
@@ -1 +1 @@
1
- {"version":3,"names":["OutlinePassExtend","Vector2","lib","use","utils","storeManagement","ShaderPass","FXAAShader","GammaCorrectionShader","useScene","createHighSelectedTool","highParams","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","lastHighParams","scene","camera","composer","get","Error","outlinePass","window","innerWidth","innerHeight","pulsePeriod","set","addPass","gammaCorrectionShader","object3dArray","selectedObjects"],"sources":["../../src/postEffects/outlinePass.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core'\n\ntype HighParamsType = {\n edgeStrength?: number // 边缘强度\n edgeGlow?: number // 缓缓接近\n edgeThickness?: number // 边缘厚度\n pulsePeriod?: number // 脉冲周期\n visibleEdgeColor?: string // 可见边缘颜色\n hiddenEdgeColor?: string // 隐藏边缘颜色\n}\n\nconst { storeManagement } = utils\nconst { ShaderPass, FXAAShader, GammaCorrectionShader } = lib\nconst { useScene } = use\n\n/**\n *\n * @param highParams\n * @returns\n */\nconst createHighSelectedTool = (highParams?: HighParamsType) => {\n const baseHighParams = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: 'red',\n hiddenEdgeColor: 'red',\n }\n\n const lastHighParams = {\n ...baseHighParams,\n ...highParams,\n }\n\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n outlinePass.edgeStrength = lastHighParams.edgeStrength\n outlinePass.edgeGlow = lastHighParams.edgeGlow\n outlinePass.edgeThickness = lastHighParams.edgeThickness\n lastHighParams.pulsePeriod && (outlinePass.pulsePeriod = lastHighParams.pulsePeriod)\n outlinePass.visibleEdgeColor.set(lastHighParams.visibleEdgeColor)\n\n composer.addPass(outlinePass)\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n if (!storeManagement.get<boolean>('__&&__gammaCorrectionShader')) {\n composer.addPass(gammaCorrectionShader)\n storeManagement.set('__&&__gammaCorrectionShader', true)\n }\n\n // todo bugfix\n // const effectFXAA = new ShaderPass(FXAAShader)\n // effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n // effectFXAA.renderToScreen = true\n // composer.addPass(effectFXAA)\n\n return (object3dArray: Object3D[]) => {\n outlinePass.selectedObjects = object3dArray\n }\n}\n\nexport default createHighSelectedTool\n"],"mappings":";;;;;;AACA,SAASA,iBAAiB,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAW3E,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,UAAU,GAAwCJ,GAAG,CAArDI,UAAU;EAAEC,UAAU,GAA4BL,GAAG,CAAzCK,UAAU;EAAEC,qBAAqB,GAAKN,GAAG,CAA7BM,qBAAqB;AACrD,IAAQC,QAAQ,GAAKN,GAAG,CAAhBM,QAAQ;;AAEhB;AACA;AACA;AACA;AACA;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsB,CAAIC,UAA2B,EAAK;EAC9D,IAAMC,cAAc,GAAG;IACrBC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE,CAAC;IACXC,aAAa,EAAE,CAAC;IAChBC,gBAAgB,EAAE,KAAK;IACvBC,eAAe,EAAE;EACnB,CAAC;EAED,IAAMC,cAAc,mCACfN,cAAc,GACdD,UAAU,CACd;EAED,gBAA0BF,QAAQ,EAAE;IAA5BU,KAAK,aAALA,KAAK;IAAEC,MAAM,aAANA,MAAM;EACrB,IAAMC,QAAQ,GAAGhB,eAAe,CAACiB,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,WAAW,GAAG,IAAIxB,iBAAiB,CAAC,IAAIC,OAAO,CAACwB,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAER,KAAK,EAAEC,MAAM,CAAC;EAE5GI,WAAW,CAACX,YAAY,GAAGK,cAAc,CAACL,YAAY;EACtDW,WAAW,CAACV,QAAQ,GAAGI,cAAc,CAACJ,QAAQ;EAC9CU,WAAW,CAACT,aAAa,GAAGG,cAAc,CAACH,aAAa;EACxDG,cAAc,CAACU,WAAW,KAAKJ,WAAW,CAACI,WAAW,GAAGV,cAAc,CAACU,WAAW,CAAC;EACpFJ,WAAW,CAACR,gBAAgB,CAACa,GAAG,CAACX,cAAc,CAACF,gBAAgB,CAAC;EAEjEK,QAAQ,CAACS,OAAO,CAACN,WAAW,CAAC;EAE7B,IAAMO,qBAAqB,GAAG,IAAIzB,UAAU,CAACE,qBAAqB,CAAC;EAEnE,IAAI,CAACH,eAAe,CAACiB,GAAG,CAAU,6BAA6B,CAAC,EAAE;IAChED,QAAQ,CAACS,OAAO,CAACC,qBAAqB,CAAC;IACvC1B,eAAe,CAACwB,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACA;EACA;EACA;EACA;;EAEA,OAAO,UAACG,aAAyB,EAAK;IACpCR,WAAW,CAACS,eAAe,GAAGD,aAAa;EAC7C,CAAC;AACH,CAAC;AAED,eAAetB,sBAAsB"}
1
+ {"version":3,"names":["OutlinePassExtend","Vector2","lib","use","utils","storeManagement","ShaderPass","FXAAShader","GammaCorrectionShader","useScene","createHighSelectedTool","highParams","baseHighParams","edgeStrength","edgeGlow","edgeThickness","visibleEdgeColor","hiddenEdgeColor","lastHighParams","_objectSpread","_useScene","scene","camera","composer","get","Error","outlinePass","window","innerWidth","innerHeight","pulsePeriod","set","addPass","gammaCorrectionShader","object3dArray","selectedObjects"],"sources":["../../src/postEffects/outlinePass.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { OutlinePassExtend, Vector2, lib, use, utils } from '@anov/3d-core'\n\ntype HighParamsType = {\n edgeStrength?: number // 边缘强度\n edgeGlow?: number // 缓缓接近\n edgeThickness?: number // 边缘厚度\n pulsePeriod?: number // 脉冲周期\n visibleEdgeColor?: string // 可见边缘颜色\n hiddenEdgeColor?: string // 隐藏边缘颜色\n}\n\nconst { storeManagement } = utils\nconst { ShaderPass, FXAAShader, GammaCorrectionShader } = lib\nconst { useScene } = use\n\n/**\n *\n * @param highParams\n * @returns\n */\nconst createHighSelectedTool = (highParams?: HighParamsType) => {\n const baseHighParams = {\n edgeStrength: 10,\n edgeGlow: 1,\n edgeThickness: 3,\n visibleEdgeColor: 'red',\n hiddenEdgeColor: 'red',\n }\n\n const lastHighParams = {\n ...baseHighParams,\n ...highParams,\n }\n\n const { scene, camera } = useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const outlinePass = new OutlinePassExtend(new Vector2(window.innerWidth, window.innerHeight), scene, camera)\n\n outlinePass.edgeStrength = lastHighParams.edgeStrength\n outlinePass.edgeGlow = lastHighParams.edgeGlow\n outlinePass.edgeThickness = lastHighParams.edgeThickness\n lastHighParams.pulsePeriod && (outlinePass.pulsePeriod = lastHighParams.pulsePeriod)\n outlinePass.visibleEdgeColor.set(lastHighParams.visibleEdgeColor)\n\n composer.addPass(outlinePass)\n\n const gammaCorrectionShader = new ShaderPass(GammaCorrectionShader)\n\n if (!storeManagement.get<boolean>('__&&__gammaCorrectionShader')) {\n composer.addPass(gammaCorrectionShader)\n storeManagement.set('__&&__gammaCorrectionShader', true)\n }\n\n // todo bugfix\n // const effectFXAA = new ShaderPass(FXAAShader)\n // effectFXAA.uniforms.resolution.value.set(1 / window.innerWidth, 1 / window.innerHeight)\n // effectFXAA.renderToScreen = true\n // composer.addPass(effectFXAA)\n\n return (object3dArray: Object3D[]) => {\n outlinePass.selectedObjects = object3dArray\n }\n}\n\nexport default createHighSelectedTool\n"],"mappings":";;;;;;AACA,SAASA,iBAAiB,EAAEC,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAW3E,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,UAAU,GAAwCJ,GAAG,CAArDI,UAAU;EAAEC,UAAU,GAA4BL,GAAG,CAAzCK,UAAU;EAAEC,qBAAqB,GAAKN,GAAG,CAA7BM,qBAAqB;AACrD,IAAQC,QAAQ,GAAKN,GAAG,CAAhBM,QAAQ;;AAEhB;AACA;AACA;AACA;AACA;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,UAA2B,EAAK;EAC9D,IAAMC,cAAc,GAAG;IACrBC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE,CAAC;IACXC,aAAa,EAAE,CAAC;IAChBC,gBAAgB,EAAE,KAAK;IACvBC,eAAe,EAAE;EACnB,CAAC;EAED,IAAMC,cAAc,GAAAC,aAAA,CAAAA,aAAA,KACfP,cAAc,GACdD,UAAU,CACd;EAED,IAAAS,SAAA,GAA0BX,QAAQ,CAAC,CAAC;IAA5BY,KAAK,GAAAD,SAAA,CAALC,KAAK;IAAEC,MAAM,GAAAF,SAAA,CAANE,MAAM;EACrB,IAAMC,QAAQ,GAAGlB,eAAe,CAACmB,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,WAAW,GAAG,IAAI1B,iBAAiB,CAAC,IAAIC,OAAO,CAAC0B,MAAM,CAACC,UAAU,EAAED,MAAM,CAACE,WAAW,CAAC,EAAER,KAAK,EAAEC,MAAM,CAAC;EAE5GI,WAAW,CAACb,YAAY,GAAGK,cAAc,CAACL,YAAY;EACtDa,WAAW,CAACZ,QAAQ,GAAGI,cAAc,CAACJ,QAAQ;EAC9CY,WAAW,CAACX,aAAa,GAAGG,cAAc,CAACH,aAAa;EACxDG,cAAc,CAACY,WAAW,KAAKJ,WAAW,CAACI,WAAW,GAAGZ,cAAc,CAACY,WAAW,CAAC;EACpFJ,WAAW,CAACV,gBAAgB,CAACe,GAAG,CAACb,cAAc,CAACF,gBAAgB,CAAC;EAEjEO,QAAQ,CAACS,OAAO,CAACN,WAAW,CAAC;EAE7B,IAAMO,qBAAqB,GAAG,IAAI3B,UAAU,CAACE,qBAAqB,CAAC;EAEnE,IAAI,CAACH,eAAe,CAACmB,GAAG,CAAU,6BAA6B,CAAC,EAAE;IAChED,QAAQ,CAACS,OAAO,CAACC,qBAAqB,CAAC;IACvC5B,eAAe,CAAC0B,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACA;EACA;EACA;EACA;;EAEA,OAAO,UAACG,aAAyB,EAAK;IACpCR,WAAW,CAACS,eAAe,GAAGD,aAAa;EAC7C,CAAC;AACH,CAAC;AAED,eAAexB,sBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"names":["use","BlendFunction","DepthDownsamplingPass","EdgeDetectionMode","EffectComposer","EffectPass","NormalPass","PredicationMode","RenderPass","SMAAEffect","SMAAPreset","SSAOEffect","TextureEffect","useComposerFrame","initPostEffectsV2","scene","renderer","camera","composer","addPass","normalPass","depthDownsamplingPass","normalBuffer","texture","resolutionScale","normalDepthBuffer","smaaEffect","preset","MEDIUM","edgeDetectionMode","COLOR","predicationMode","DEPTH","edgeDetectionMaterial","setEdgeDetectionThreshold","ssaoEffect","blendFunction","MULTIPLY","distanceScaling","depthAwareUpsampling","samples","rings","distanceThreshold","distanceFalloff","rangeThreshold","rangeFalloff","luminanceInfluence","minRadiusScale","radius","intensity","bias","fade","color","textureEffect","SKIP","effectPass","render"],"sources":["../../src/postEffects/postprocessing.ts"],"sourcesContent":["import { type Camera, type Scene, type WebGLRenderer, use } from '@anov/3d-core'\nimport { BlendFunction, DepthDownsamplingPass, EdgeDetectionMode, EffectComposer, EffectPass, NormalPass, PredicationMode, RenderPass, SMAAEffect, SMAAPreset, SSAOEffect, TextureEffect } from 'postprocessing'\n\nconst { useComposerFrame } = use\n\nexport const initPostEffectsV2 = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n) => {\n const composer = new EffectComposer(renderer)\n composer.addPass(new RenderPass(scene, camera))\n\n const normalPass = new NormalPass(scene, camera)\n const depthDownsamplingPass = new DepthDownsamplingPass({\n normalBuffer: normalPass.texture,\n resolutionScale: 0.5,\n })\n\n const normalDepthBuffer = depthDownsamplingPass.texture\n\n const smaaEffect = new SMAAEffect({\n preset: SMAAPreset.MEDIUM,\n edgeDetectionMode: EdgeDetectionMode.COLOR,\n predicationMode: PredicationMode.DEPTH,\n })\n\n smaaEffect.edgeDetectionMaterial.setEdgeDetectionThreshold(0.01)\n\n const ssaoEffect = new SSAOEffect(camera, normalPass.texture, {\n blendFunction: BlendFunction.MULTIPLY,\n distanceScaling: true,\n depthAwareUpsampling: true,\n normalDepthBuffer,\n samples: 9,\n rings: 7,\n distanceThreshold: 0.02, // Render up to a distance of ~20 world units\n distanceFalloff: 0.0025, // with an additional ~2.5 units of falloff.\n rangeThreshold: 0.0003, // Occlusion proximity of ~0.3 world units\n rangeFalloff: 0.0001, // with ~0.1 units of falloff.\n luminanceInfluence: 0.7,\n minRadiusScale: 0.33,\n radius: 0.1,\n intensity: 1.33,\n bias: 0.025,\n fade: 0.01,\n color: null,\n resolutionScale: 0.5,\n })\n\n const textureEffect = new TextureEffect({\n blendFunction: BlendFunction.SKIP,\n texture: depthDownsamplingPass.texture,\n })\n\n const effectPass = new EffectPass(camera, smaaEffect, ssaoEffect, textureEffect)\n\n composer.addPass(normalPass)\n composer.addPass(depthDownsamplingPass)\n composer.addPass(effectPass)\n\n useComposerFrame(() => {\n composer.render()\n })\n}"],"mappings":"AAAA,SAAsDA,GAAG,QAAQ,eAAe;AAChF,SAASC,aAAa,EAAEC,qBAAqB,EAAEC,iBAAiB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAAEC,aAAa,QAAQ,gBAAgB;AAEhN,IAAQC,gBAAgB,GAAKb,GAAG,CAAxBa,gBAAgB;AAExB,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiB,CAC5BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACX;EACH,IAAMC,QAAQ,GAAG,IAAId,cAAc,CAACY,QAAQ,CAAC;EAC7CE,QAAQ,CAACC,OAAO,CAAC,IAAIX,UAAU,CAACO,KAAK,EAAEE,MAAM,CAAC,CAAC;EAE/C,IAAMG,UAAU,GAAG,IAAId,UAAU,CAACS,KAAK,EAAEE,MAAM,CAAC;EAChD,IAAMI,qBAAqB,GAAG,IAAInB,qBAAqB,CAAC;IACtDoB,YAAY,EAAEF,UAAU,CAACG,OAAO;IAChCC,eAAe,EAAE;EACnB,CAAC,CAAC;EAEF,IAAMC,iBAAiB,GAAGJ,qBAAqB,CAACE,OAAO;EAEvD,IAAMG,UAAU,GAAG,IAAIjB,UAAU,CAAC;IAChCkB,MAAM,EAAEjB,UAAU,CAACkB,MAAM;IACzBC,iBAAiB,EAAE1B,iBAAiB,CAAC2B,KAAK;IAC1CC,eAAe,EAAExB,eAAe,CAACyB;EACnC,CAAC,CAAC;EAEFN,UAAU,CAACO,qBAAqB,CAACC,yBAAyB,CAAC,IAAI,CAAC;EAEhE,IAAMC,UAAU,GAAG,IAAIxB,UAAU,CAACM,MAAM,EAAEG,UAAU,CAACG,OAAO,EAAE;IAC5Da,aAAa,EAAEnC,aAAa,CAACoC,QAAQ;IACrCC,eAAe,EAAE,IAAI;IACrBC,oBAAoB,EAAE,IAAI;IAC1Bd,iBAAiB,EAAjBA,iBAAiB;IACjBe,OAAO,EAAE,CAAC;IACVC,KAAK,EAAE,CAAC;IACRC,iBAAiB,EAAE,IAAI;IAAE;IACzBC,eAAe,EAAE,MAAM;IAAE;IACzBC,cAAc,EAAE,MAAM;IAAE;IACxBC,YAAY,EAAE,MAAM;IAAE;IACtBC,kBAAkB,EAAE,GAAG;IACvBC,cAAc,EAAE,IAAI;IACpBC,MAAM,EAAE,GAAG;IACXC,SAAS,EAAE,IAAI;IACfC,IAAI,EAAE,KAAK;IACXC,IAAI,EAAE,IAAI;IACVC,KAAK,EAAE,IAAI;IACX5B,eAAe,EAAE;EACnB,CAAC,CAAC;EAEF,IAAM6B,aAAa,GAAG,IAAIzC,aAAa,CAAC;IACtCwB,aAAa,EAAEnC,aAAa,CAACqD,IAAI;IACjC/B,OAAO,EAAEF,qBAAqB,CAACE;EACjC,CAAC,CAAC;EAEF,IAAMgC,UAAU,GAAG,IAAIlD,UAAU,CAACY,MAAM,EAAES,UAAU,EAAES,UAAU,EAAEkB,aAAa,CAAC;EAEhFnC,QAAQ,CAACC,OAAO,CAACC,UAAU,CAAC;EAC5BF,QAAQ,CAACC,OAAO,CAACE,qBAAqB,CAAC;EACvCH,QAAQ,CAACC,OAAO,CAACoC,UAAU,CAAC;EAE5B1C,gBAAgB,CAAC,YAAM;IACrBK,QAAQ,CAACsC,MAAM,EAAE;EACnB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"names":["use","BlendFunction","DepthDownsamplingPass","EdgeDetectionMode","EffectComposer","EffectPass","NormalPass","PredicationMode","RenderPass","SMAAEffect","SMAAPreset","SSAOEffect","TextureEffect","useComposerFrame","initPostEffectsV2","scene","renderer","camera","composer","addPass","normalPass","depthDownsamplingPass","normalBuffer","texture","resolutionScale","normalDepthBuffer","smaaEffect","preset","MEDIUM","edgeDetectionMode","COLOR","predicationMode","DEPTH","edgeDetectionMaterial","setEdgeDetectionThreshold","ssaoEffect","blendFunction","MULTIPLY","distanceScaling","depthAwareUpsampling","samples","rings","distanceThreshold","distanceFalloff","rangeThreshold","rangeFalloff","luminanceInfluence","minRadiusScale","radius","intensity","bias","fade","color","textureEffect","SKIP","effectPass","render"],"sources":["../../src/postEffects/postprocessing.ts"],"sourcesContent":["import { type Camera, type Scene, type WebGLRenderer, use } from '@anov/3d-core'\nimport { BlendFunction, DepthDownsamplingPass, EdgeDetectionMode, EffectComposer, EffectPass, NormalPass, PredicationMode, RenderPass, SMAAEffect, SMAAPreset, SSAOEffect, TextureEffect } from 'postprocessing'\n\nconst { useComposerFrame } = use\n\nexport const initPostEffectsV2 = (\n scene: Scene,\n renderer: WebGLRenderer,\n camera: Camera,\n) => {\n const composer = new EffectComposer(renderer)\n composer.addPass(new RenderPass(scene, camera))\n\n const normalPass = new NormalPass(scene, camera)\n const depthDownsamplingPass = new DepthDownsamplingPass({\n normalBuffer: normalPass.texture,\n resolutionScale: 0.5,\n })\n\n const normalDepthBuffer = depthDownsamplingPass.texture\n\n const smaaEffect = new SMAAEffect({\n preset: SMAAPreset.MEDIUM,\n edgeDetectionMode: EdgeDetectionMode.COLOR,\n predicationMode: PredicationMode.DEPTH,\n })\n\n smaaEffect.edgeDetectionMaterial.setEdgeDetectionThreshold(0.01)\n\n const ssaoEffect = new SSAOEffect(camera, normalPass.texture, {\n blendFunction: BlendFunction.MULTIPLY,\n distanceScaling: true,\n depthAwareUpsampling: true,\n normalDepthBuffer,\n samples: 9,\n rings: 7,\n distanceThreshold: 0.02, // Render up to a distance of ~20 world units\n distanceFalloff: 0.0025, // with an additional ~2.5 units of falloff.\n rangeThreshold: 0.0003, // Occlusion proximity of ~0.3 world units\n rangeFalloff: 0.0001, // with ~0.1 units of falloff.\n luminanceInfluence: 0.7,\n minRadiusScale: 0.33,\n radius: 0.1,\n intensity: 1.33,\n bias: 0.025,\n fade: 0.01,\n color: null,\n resolutionScale: 0.5,\n })\n\n const textureEffect = new TextureEffect({\n blendFunction: BlendFunction.SKIP,\n texture: depthDownsamplingPass.texture,\n })\n\n const effectPass = new EffectPass(camera, smaaEffect, ssaoEffect, textureEffect)\n\n composer.addPass(normalPass)\n composer.addPass(depthDownsamplingPass)\n composer.addPass(effectPass)\n\n useComposerFrame(() => {\n composer.render()\n })\n}"],"mappings":"AAAA,SAAsDA,GAAG,QAAQ,eAAe;AAChF,SAASC,aAAa,EAAEC,qBAAqB,EAAEC,iBAAiB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAAEC,UAAU,EAAEC,aAAa,QAAQ,gBAAgB;AAEhN,IAAQC,gBAAgB,GAAKb,GAAG,CAAxBa,gBAAgB;AAExB,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAC5BC,KAAY,EACZC,QAAuB,EACvBC,MAAc,EACX;EACH,IAAMC,QAAQ,GAAG,IAAId,cAAc,CAACY,QAAQ,CAAC;EAC7CE,QAAQ,CAACC,OAAO,CAAC,IAAIX,UAAU,CAACO,KAAK,EAAEE,MAAM,CAAC,CAAC;EAE/C,IAAMG,UAAU,GAAG,IAAId,UAAU,CAACS,KAAK,EAAEE,MAAM,CAAC;EAChD,IAAMI,qBAAqB,GAAG,IAAInB,qBAAqB,CAAC;IACtDoB,YAAY,EAAEF,UAAU,CAACG,OAAO;IAChCC,eAAe,EAAE;EACnB,CAAC,CAAC;EAEF,IAAMC,iBAAiB,GAAGJ,qBAAqB,CAACE,OAAO;EAEvD,IAAMG,UAAU,GAAG,IAAIjB,UAAU,CAAC;IAChCkB,MAAM,EAAEjB,UAAU,CAACkB,MAAM;IACzBC,iBAAiB,EAAE1B,iBAAiB,CAAC2B,KAAK;IAC1CC,eAAe,EAAExB,eAAe,CAACyB;EACnC,CAAC,CAAC;EAEFN,UAAU,CAACO,qBAAqB,CAACC,yBAAyB,CAAC,IAAI,CAAC;EAEhE,IAAMC,UAAU,GAAG,IAAIxB,UAAU,CAACM,MAAM,EAAEG,UAAU,CAACG,OAAO,EAAE;IAC5Da,aAAa,EAAEnC,aAAa,CAACoC,QAAQ;IACrCC,eAAe,EAAE,IAAI;IACrBC,oBAAoB,EAAE,IAAI;IAC1Bd,iBAAiB,EAAjBA,iBAAiB;IACjBe,OAAO,EAAE,CAAC;IACVC,KAAK,EAAE,CAAC;IACRC,iBAAiB,EAAE,IAAI;IAAE;IACzBC,eAAe,EAAE,MAAM;IAAE;IACzBC,cAAc,EAAE,MAAM;IAAE;IACxBC,YAAY,EAAE,MAAM;IAAE;IACtBC,kBAAkB,EAAE,GAAG;IACvBC,cAAc,EAAE,IAAI;IACpBC,MAAM,EAAE,GAAG;IACXC,SAAS,EAAE,IAAI;IACfC,IAAI,EAAE,KAAK;IACXC,IAAI,EAAE,IAAI;IACVC,KAAK,EAAE,IAAI;IACX5B,eAAe,EAAE;EACnB,CAAC,CAAC;EAEF,IAAM6B,aAAa,GAAG,IAAIzC,aAAa,CAAC;IACtCwB,aAAa,EAAEnC,aAAa,CAACqD,IAAI;IACjC/B,OAAO,EAAEF,qBAAqB,CAACE;EACjC,CAAC,CAAC;EAEF,IAAMgC,UAAU,GAAG,IAAIlD,UAAU,CAACY,MAAM,EAAES,UAAU,EAAES,UAAU,EAAEkB,aAAa,CAAC;EAEhFnC,QAAQ,CAACC,OAAO,CAACC,UAAU,CAAC;EAC5BF,QAAQ,CAACC,OAAO,CAACE,qBAAqB,CAAC;EACvCH,QAAQ,CAACC,OAAO,CAACoC,UAAU,CAAC;EAE5B1C,gBAAgB,CAAC,YAAM;IACrBK,QAAQ,CAACsC,MAAM,CAAC,CAAC;EACnB,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["OutputPass","lib","use","utils","storeManagement","SAOPass","addSAOPass","useScene","scene","camera","composer","get","Error","saoPass","addPass","outputPass","removePass"],"sources":["../../src/postEffects/saoPass.ts"],"sourcesContent":["import { OutputPass, lib, use, utils } from '@anov/3d-core'\n\nconst { storeManagement } = utils\nconst { SAOPass } = lib\n\n/**\n * add ssao 环境光遮蔽\n * @returns\n */\nconst addSAOPass = () => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const saoPass = new SAOPass(scene, camera)\n composer.addPass(saoPass)\n\n const outputPass = new OutputPass()\n composer.addPass(outputPass)\n\n return () => {\n composer.removePass(saoPass)\n composer.removePass(outputPass)\n }\n}\n\nexport default addSAOPass\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE3D,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,OAAO,GAAKJ,GAAG,CAAfI,OAAO;;AAEf;AACA;AACA;AACA;AACA,IAAMC,UAAU,GAAG,SAAbA,UAAU,GAAS;EACvB,oBAA0BJ,GAAG,CAACK,QAAQ,EAAE;IAAhCC,KAAK,iBAALA,KAAK;IAAEC,MAAM,iBAANA,MAAM;EACrB,IAAMC,QAAQ,GAAGN,eAAe,CAACO,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,OAAO,GAAG,IAAIR,OAAO,CAACG,KAAK,EAAEC,MAAM,CAAC;EAC1CC,QAAQ,CAACI,OAAO,CAACD,OAAO,CAAC;EAEzB,IAAME,UAAU,GAAG,IAAIf,UAAU,EAAE;EACnCU,QAAQ,CAACI,OAAO,CAACC,UAAU,CAAC;EAE5B,OAAO,YAAM;IACXL,QAAQ,CAACM,UAAU,CAACH,OAAO,CAAC;IAC5BH,QAAQ,CAACM,UAAU,CAACD,UAAU,CAAC;EACjC,CAAC;AACH,CAAC;AAED,eAAeT,UAAU"}
1
+ {"version":3,"names":["OutputPass","lib","use","utils","storeManagement","SAOPass","addSAOPass","_use$useScene","useScene","scene","camera","composer","get","Error","saoPass","addPass","outputPass","removePass"],"sources":["../../src/postEffects/saoPass.ts"],"sourcesContent":["import { OutputPass, lib, use, utils } from '@anov/3d-core'\n\nconst { storeManagement } = utils\nconst { SAOPass } = lib\n\n/**\n * add ssao 环境光遮蔽\n * @returns\n */\nconst addSAOPass = () => {\n const { scene, camera } = use.useScene()\n const composer = storeManagement.get('composer') as lib.EffectComposer | undefined\n\n if (!scene || !camera)\n throw new Error('scene or camera is not defined,')\n\n if (!composer)\n throw new Error('composer is not defined, please initPostEffects first')\n\n const saoPass = new SAOPass(scene, camera)\n composer.addPass(saoPass)\n\n const outputPass = new OutputPass()\n composer.addPass(outputPass)\n\n return () => {\n composer.removePass(saoPass)\n composer.removePass(outputPass)\n }\n}\n\nexport default addSAOPass\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE3D,IAAQC,eAAe,GAAKD,KAAK,CAAzBC,eAAe;AACvB,IAAQC,OAAO,GAAKJ,GAAG,CAAfI,OAAO;;AAEf;AACA;AACA;AACA;AACA,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACvB,IAAAC,aAAA,GAA0BL,GAAG,CAACM,QAAQ,CAAC,CAAC;IAAhCC,KAAK,GAAAF,aAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,aAAA,CAANG,MAAM;EACrB,IAAMC,QAAQ,GAAGP,eAAe,CAACQ,GAAG,CAAC,UAAU,CAAmC;EAElF,IAAI,CAACH,KAAK,IAAI,CAACC,MAAM,EACnB,MAAM,IAAIG,KAAK,CAAC,iCAAiC,CAAC;EAEpD,IAAI,CAACF,QAAQ,EACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;EAE1E,IAAMC,OAAO,GAAG,IAAIT,OAAO,CAACI,KAAK,EAAEC,MAAM,CAAC;EAC1CC,QAAQ,CAACI,OAAO,CAACD,OAAO,CAAC;EAEzB,IAAME,UAAU,GAAG,IAAIhB,UAAU,CAAC,CAAC;EACnCW,QAAQ,CAACI,OAAO,CAACC,UAAU,CAAC;EAE5B,OAAO,YAAM;IACXL,QAAQ,CAACM,UAAU,CAACH,OAAO,CAAC;IAC5BH,QAAQ,CAACM,UAAU,CAACD,UAAU,CAAC;EACjC,CAAC;AACH,CAAC;AAED,eAAeV,UAAU"}
@@ -2,7 +2,7 @@ import { Color } from '@anov/3d-core';
2
2
  declare const ColorifyShader: {
3
3
  uniforms: {
4
4
  tDiffuse: {
5
- value: null;
5
+ value: any;
6
6
  };
7
7
  color: {
8
8
  value: Color;
@@ -6,7 +6,7 @@ declare const GammaCorrectionShader: {
6
6
  name: string;
7
7
  uniforms: {
8
8
  tDiffuse: {
9
- value: null;
9
+ value: any;
10
10
  };
11
11
  };
12
12
  vertexShader: string;
@@ -7,7 +7,7 @@ declare const ACESFilmicToneMappingShader: {
7
7
  name: string;
8
8
  uniforms: {
9
9
  tDiffuse: {
10
- value: null;
10
+ value: any;
11
11
  };
12
12
  exposure: {
13
13
  value: number;
@@ -2,7 +2,7 @@ import { Vector2, Vector3 } from '@anov/3d-core';
2
2
  declare const thermalMagingShader: {
3
3
  uniforms: {
4
4
  tDiffuse: {
5
- value: null;
5
+ value: any;
6
6
  };
7
7
  iResolution: {
8
8
  value: Vector2;
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
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
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
5
  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(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
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); }
8
8
  import { Box3, Object3D, Vector3, use } from '@anov/3d-core';
9
9
  import { EEaseType, ESceneGrowType } from "./type";
10
10
  import { GrowStyleDown, GrowStyleUp } from "./growStyle";
@@ -77,7 +77,6 @@ export var Grow = /*#__PURE__*/function () {
77
77
  // 可选,初始化UP/DOWN起始旋转角度,默认true
78
78
  isScale: true // 可选,初始化UP/DOWN起始缩放大小,默认true
79
79
  };
80
-
81
80
  Object.assign(this.option, opt);
82
81
  // ------- 1.初始化目标对象 --------
83
82
  this.objs.length = 0;
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","Object3D","Vector3","use","EEaseType","ESceneGrowType","GrowStyleDown","GrowStyleUp","Grow","opt","objs","option","growStyle","init","callback","onGrowInStart","getTimeLine","eventCallback","onGrowInCompleted","in","onGrowOutStart","onGrowOutCompleted","out","tag","type","Up","time","gapTime","ease","SineInOut","center","scale","distance","isRotate","isScale","Object","assign","length","useScene","scene","traverseVisible","object","push","userData","Array","isArray","includes","boundingBox","i","expandByObject","getCenter","Down","onGrowInitCompleted"],"sources":["../../../src/scene/grow/grow.ts"],"sourcesContent":["import { Box3, Object3D, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\nimport { EEaseType, ESceneGrowType } from './type'\nimport { GrowStyleDown, GrowStyleUp } from './growStyle'\n\n// 生长动画对象\nexport class Grow {\n private objs: Array<Object3D>\n private option: GrowOption\n private growStyle: IGrowStyle\n\n constructor(opt?: GrowOption) {\n this.objs = []\n this.option = {}\n // @ts-ignore\n this.growStyle = null\n this.init(opt || {})\n }\n\n // 生长\n in(callback: () => void) {\n // 入场事件\n this.option.onGrowInStart && this.option.onGrowInStart()\n\n this.growStyle.getTimeLine().eventCallback('onComplete', () => {\n this.option.onGrowInCompleted && this.option.onGrowInCompleted()\n callback && callback()\n })\n\n this.growStyle.in()\n }\n\n // 消退\n out(callback: () => void) {\n // 出场事件\n this.option.onGrowOutStart && this.option.onGrowOutStart()\n\n this.growStyle.getTimeLine().eventCallback('onReverseComplete', () => {\n this.option.onGrowOutCompleted && this.option.onGrowOutCompleted()\n\n callback && callback()\n })\n\n this.growStyle.out()\n }\n\n // 初始化\n init(opt: GrowOption) {\n this.option = {\n tag: '*', // 可选,进场对象Tag, 默认 \"*\" 所有可见MESH对象,\n type: ESceneGrowType.Up, // 可选,进场动画类型,默认 ESceneGrowType.Up向上生长\n time: 0.5, // 可选,单对象进场时间,默认0.5秒\n gapTime: 0.2, // 可选,多个对象之间间隔事件,默认0.2秒\n ease: EEaseType.SineInOut, // 可选,默认缓入缓出\n center: null, // 可选,生长中心位置,默认包围盒中心点\n scale: 1, // 可选,倍速,默认为1。\n distance: 1000, // 可选,初始化UP/DOWN起始距离,默认1000\n isRotate: true, // 可选,初始化UP/DOWN起始旋转角度,默认true\n isScale: true, // 可选,初始化UP/DOWN起始缩放大小,默认true\n }\n Object.assign(this.option, opt)\n // ------- 1.初始化目标对象 --------\n this.objs.length = 0\n // 获取所有对象\n if (this.option.tag === '*') {\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D)\n this.objs.push(object)\n })\n }\n else { // 获取指定tag对象\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D && object.userData.tag && Array.isArray(object.userData.tag) && object.userData.tag.includes(this.option.tag))\n this.objs.push(object)\n })\n }\n\n // ------- 2.中心点 ------------\n if (!this.option.center) {\n const boundingBox = new Box3()\n\n // 将每个物体的边界框扩展到包围盒中\n for (let i = 0; i < this.objs.length; i++) {\n const object = this.objs[i]\n boundingBox.expandByObject(object)\n }\n // 计算包围盒的中心点\n const center = new Vector3()\n this.option.center = boundingBox.getCenter(center)\n }\n\n // ------- 2.初始化目标对象 生长前状态 --------\n switch (this.option.type) {\n case ESceneGrowType.Up:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n case ESceneGrowType.Down:\n this.growStyle = new GrowStyleDown(this.objs, this.option)\n break\n default:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n }\n this.growStyle.init()\n this.option.onGrowInitCompleted && this.option.onGrowInitCompleted()\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Box3","Object3D","Vector3","use","EEaseType","ESceneGrowType","GrowStyleDown","GrowStyleUp","Grow","opt","_classCallCheck","_defineProperty","objs","option","growStyle","init","_createClass","key","value","_in","callback","_this","onGrowInStart","getTimeLine","eventCallback","onGrowInCompleted","in","out","_this2","onGrowOutStart","onGrowOutCompleted","_this3","tag","type","Up","time","gapTime","ease","SineInOut","center","scale","distance","isRotate","isScale","Object","assign","length","useScene","scene","traverseVisible","object","push","userData","Array","isArray","includes","boundingBox","i","expandByObject","getCenter","Down","onGrowInitCompleted"],"sources":["../../../src/scene/grow/grow.ts"],"sourcesContent":["import { Box3, Object3D, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\nimport { EEaseType, ESceneGrowType } from './type'\nimport { GrowStyleDown, GrowStyleUp } from './growStyle'\n\n// 生长动画对象\nexport class Grow {\n private objs: Array<Object3D>\n private option: GrowOption\n private growStyle: IGrowStyle\n\n constructor(opt?: GrowOption) {\n this.objs = []\n this.option = {}\n // @ts-ignore\n this.growStyle = null\n this.init(opt || {})\n }\n\n // 生长\n in(callback: () => void) {\n // 入场事件\n this.option.onGrowInStart && this.option.onGrowInStart()\n\n this.growStyle.getTimeLine().eventCallback('onComplete', () => {\n this.option.onGrowInCompleted && this.option.onGrowInCompleted()\n callback && callback()\n })\n\n this.growStyle.in()\n }\n\n // 消退\n out(callback: () => void) {\n // 出场事件\n this.option.onGrowOutStart && this.option.onGrowOutStart()\n\n this.growStyle.getTimeLine().eventCallback('onReverseComplete', () => {\n this.option.onGrowOutCompleted && this.option.onGrowOutCompleted()\n\n callback && callback()\n })\n\n this.growStyle.out()\n }\n\n // 初始化\n init(opt: GrowOption) {\n this.option = {\n tag: '*', // 可选,进场对象Tag, 默认 \"*\" 所有可见MESH对象,\n type: ESceneGrowType.Up, // 可选,进场动画类型,默认 ESceneGrowType.Up向上生长\n time: 0.5, // 可选,单对象进场时间,默认0.5秒\n gapTime: 0.2, // 可选,多个对象之间间隔事件,默认0.2秒\n ease: EEaseType.SineInOut, // 可选,默认缓入缓出\n center: null, // 可选,生长中心位置,默认包围盒中心点\n scale: 1, // 可选,倍速,默认为1。\n distance: 1000, // 可选,初始化UP/DOWN起始距离,默认1000\n isRotate: true, // 可选,初始化UP/DOWN起始旋转角度,默认true\n isScale: true, // 可选,初始化UP/DOWN起始缩放大小,默认true\n }\n Object.assign(this.option, opt)\n // ------- 1.初始化目标对象 --------\n this.objs.length = 0\n // 获取所有对象\n if (this.option.tag === '*') {\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D)\n this.objs.push(object)\n })\n }\n else { // 获取指定tag对象\n use.useScene().scene!.traverseVisible((object) => {\n if (object instanceof Object3D && object.userData.tag && Array.isArray(object.userData.tag) && object.userData.tag.includes(this.option.tag))\n this.objs.push(object)\n })\n }\n\n // ------- 2.中心点 ------------\n if (!this.option.center) {\n const boundingBox = new Box3()\n\n // 将每个物体的边界框扩展到包围盒中\n for (let i = 0; i < this.objs.length; i++) {\n const object = this.objs[i]\n boundingBox.expandByObject(object)\n }\n // 计算包围盒的中心点\n const center = new Vector3()\n this.option.center = boundingBox.getCenter(center)\n }\n\n // ------- 2.初始化目标对象 生长前状态 --------\n switch (this.option.type) {\n case ESceneGrowType.Up:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n case ESceneGrowType.Down:\n this.growStyle = new GrowStyleDown(this.objs, this.option)\n break\n default:\n this.growStyle = new GrowStyleUp(this.objs, this.option)\n break\n }\n this.growStyle.init()\n this.option.onGrowInitCompleted && this.option.onGrowInitCompleted()\n }\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
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
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
5
  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(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
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); }
8
8
  import { MathUtils, Vector3, gsap } from '@anov/3d-core';
9
9
  // 向下掉落
10
10
  export var GrowStyleDown = /*#__PURE__*/function () {
@@ -1 +1 @@
1
- {"version":3,"names":["MathUtils","Vector3","gsap","GrowStyleDown","objs","opt","_objs","_opt","_tl","maxDistance","timeline","max","gapTime","time","Array","isArray","center","fromArray","map","obj","distance","Math","abs","position","distanceTo","userData","growDistance","growY","y","growDelay","lerp","isRotate","rotateY","degToRad","isScale","scale","set","x","z","clear","add","to","duration","ease","delay","rotation","play","timeScale","reverse"],"sources":["../../../src/scene/grow/style_down.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { MathUtils, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\n\n// 向下掉落\nexport class GrowStyleDown implements IGrowStyle {\n private _objs: Array<Object3D>\n private _opt: GrowOption\n private _tl: gsap.core.Timeline\n private maxDistance: number\n\n constructor(objs: Array<Object3D>, opt: GrowOption) {\n this._objs = objs\n this._opt = opt\n this._tl = null// gsap.timeline()\n this.maxDistance = 0\n }\n\n // 对象初始化\n init(): void {\n this._tl = gsap.timeline()\n\n const max = this._opt.gapTime + this._opt.time\n // 统一为Vector3\n if (Array.isArray(this._opt.center))\n this._opt.center = new Vector3().fromArray(this._opt.center as number[])\n // 找到对象最远距离\n this._objs.map((obj) => {\n const distance = Math.abs(obj.position.distanceTo(this._opt.center as Vector3))\n obj.userData.growDistance = distance\n obj.userData.growY = obj.position.y\n if (distance > this.maxDistance)\n this.maxDistance = distance\n })\n\n this._objs.map((obj) => {\n // 计算排序延迟\n obj.userData.growDelay = MathUtils.lerp(0, max, obj.userData.growDistance / this.maxDistance)\n // 距离\n obj.position.y += this._opt.distance\n // 旋转\n this._opt.isRotate && obj.rotateY(MathUtils.degToRad(270))\n // 缩放\n this._opt.isScale && obj.scale.set(obj.scale.x * 0.1, obj.scale.y * 0.1, obj.scale.z * 0.1)\n })\n }\n\n in(): void {\n this._tl.clear()\n\n this._objs.map((obj) => {\n this._tl.add(gsap.to(obj.position, { y: obj.position.y - this._opt.distance, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isRotate)\n this._tl.add(gsap.to(obj.rotation, { y: 0, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isScale)\n this._tl.add(gsap.to(obj.scale, { x: 1, y: 1, z: 1, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n })\n this._tl.play(0, false)\n }\n\n out(): void {\n this._tl.timeScale(this._opt.scale).reverse()\n }\n\n getTimeLine(): gsap.core.Timeline {\n return this._tl\n }\n}"],"mappings":"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"}
1
+ {"version":3,"names":["MathUtils","Vector3","gsap","GrowStyleDown","objs","opt","_classCallCheck","_defineProperty","_objs","_opt","_tl","maxDistance","_createClass","key","value","init","_this","timeline","max","gapTime","time","Array","isArray","center","fromArray","map","obj","distance","Math","abs","position","distanceTo","userData","growDistance","growY","y","growDelay","lerp","isRotate","rotateY","degToRad","isScale","scale","set","x","z","_in","_this2","clear","add","to","duration","ease","delay","rotation","play","out","timeScale","reverse","getTimeLine"],"sources":["../../../src/scene/grow/style_down.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { MathUtils, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\n\n// 向下掉落\nexport class GrowStyleDown implements IGrowStyle {\n private _objs: Array<Object3D>\n private _opt: GrowOption\n private _tl: gsap.core.Timeline\n private maxDistance: number\n\n constructor(objs: Array<Object3D>, opt: GrowOption) {\n this._objs = objs\n this._opt = opt\n this._tl = null// gsap.timeline()\n this.maxDistance = 0\n }\n\n // 对象初始化\n init(): void {\n this._tl = gsap.timeline()\n\n const max = this._opt.gapTime + this._opt.time\n // 统一为Vector3\n if (Array.isArray(this._opt.center))\n this._opt.center = new Vector3().fromArray(this._opt.center as number[])\n // 找到对象最远距离\n this._objs.map((obj) => {\n const distance = Math.abs(obj.position.distanceTo(this._opt.center as Vector3))\n obj.userData.growDistance = distance\n obj.userData.growY = obj.position.y\n if (distance > this.maxDistance)\n this.maxDistance = distance\n })\n\n this._objs.map((obj) => {\n // 计算排序延迟\n obj.userData.growDelay = MathUtils.lerp(0, max, obj.userData.growDistance / this.maxDistance)\n // 距离\n obj.position.y += this._opt.distance\n // 旋转\n this._opt.isRotate && obj.rotateY(MathUtils.degToRad(270))\n // 缩放\n this._opt.isScale && obj.scale.set(obj.scale.x * 0.1, obj.scale.y * 0.1, obj.scale.z * 0.1)\n })\n }\n\n in(): void {\n this._tl.clear()\n\n this._objs.map((obj) => {\n this._tl.add(gsap.to(obj.position, { y: obj.position.y - this._opt.distance, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isRotate)\n this._tl.add(gsap.to(obj.rotation, { y: 0, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n if (this._opt.isScale)\n this._tl.add(gsap.to(obj.scale, { x: 1, y: 1, z: 1, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n })\n this._tl.play(0, false)\n }\n\n out(): void {\n this._tl.timeScale(this._opt.scale).reverse()\n }\n\n getTimeLine(): gsap.core.Timeline {\n return this._tl\n }\n}"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
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
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
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
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
5
  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(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
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); }
8
8
  import { MathUtils, Vector3, gsap } from '@anov/3d-core';
9
9
  // 向上生长
10
10
  export var GrowStyleUp = /*#__PURE__*/function () {
@@ -1 +1 @@
1
- {"version":3,"names":["MathUtils","Vector3","gsap","GrowStyleUp","objs","opt","_objs","_opt","_tl","maxDistance","timeline","max","gapTime","time","Array","isArray","center","fromArray","map","obj","distance","Math","abs","position","distanceTo","userData","growDistance","growY","y","growDelay","lerp","isRotate","rotateY","degToRad","isScale","scale","set","x","z","clear","add","to","duration","ease","delay","rotation","play","timeScale","reverse"],"sources":["../../../src/scene/grow/style_up.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { MathUtils, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\n\n// 向上生长\nexport class GrowStyleUp implements IGrowStyle {\n private _objs: Array<Object3D>\n private _opt: GrowOption\n private _tl: gsap.core.Timeline\n private maxDistance: number\n\n constructor(objs: Array<Object3D>, opt: GrowOption) {\n this._objs = objs\n this._opt = opt\n this._tl = null // gsap.timeline()\n this.maxDistance = 0\n }\n\n // 对象初始化\n init(): void {\n this._tl = gsap.timeline()\n\n const max = this._opt.gapTime + this._opt.time\n // 统一为Vector3\n if (Array.isArray(this._opt.center))\n this._opt.center = new Vector3().fromArray(this._opt.center as number[])\n // 找到对象最远距离\n this._objs.map((obj) => {\n const distance = Math.abs(obj.position.distanceTo(this._opt.center as Vector3))\n obj.userData.growDistance = distance\n obj.userData.growY = obj.position.y\n if (distance > this.maxDistance)\n this.maxDistance = distance\n })\n\n this._objs.map((obj) => {\n // 计算排序延迟\n obj.userData.growDelay = MathUtils.lerp(0, max, obj.userData.growDistance / this.maxDistance)\n // 距离\n obj.position.y -= this._opt.distance\n // 旋转\n this._opt.isRotate && obj.rotateY(MathUtils.degToRad(270))\n // 缩放\n this._opt.isScale && obj.scale.set(obj.scale.x * 0.1, obj.scale.y * 0.1, obj.scale.z * 0.1)\n })\n }\n\n in(): void {\n this._tl.clear()\n // this._tl = gsap.timeline({ onComplete: this._opt.onGrowInCompleted, onReverseComplete: this._opt.onGrowOutCompleted })\n this._objs.map((obj) => {\n // 距离1\n this._tl.add(gsap.to(obj.position, { y: obj.position.y + this._opt.distance, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n // 旋转\n if (this._opt.isRotate)\n this._tl.add(gsap.to(obj.rotation, { y: 0, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n // 缩放\n if (this._opt.isScale)\n this._tl.add(gsap.to(obj.scale, { x: 1, y: 1, z: 1, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n })\n this._tl.play(0, false)\n }\n\n out(): void {\n this._tl.timeScale(this._opt.scale).reverse()\n }\n\n getTimeLine(): gsap.core.Timeline {\n return this._tl\n }\n}"],"mappings":"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"}
1
+ {"version":3,"names":["MathUtils","Vector3","gsap","GrowStyleUp","objs","opt","_classCallCheck","_defineProperty","_objs","_opt","_tl","maxDistance","_createClass","key","value","init","_this","timeline","max","gapTime","time","Array","isArray","center","fromArray","map","obj","distance","Math","abs","position","distanceTo","userData","growDistance","growY","y","growDelay","lerp","isRotate","rotateY","degToRad","isScale","scale","set","x","z","_in","_this2","clear","add","to","duration","ease","delay","rotation","play","out","timeScale","reverse","getTimeLine"],"sources":["../../../src/scene/grow/style_up.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { MathUtils, Vector3, gsap, use } from '@anov/3d-core'\nimport type { GrowOption, IGrowStyle } from './type'\n\n// 向上生长\nexport class GrowStyleUp implements IGrowStyle {\n private _objs: Array<Object3D>\n private _opt: GrowOption\n private _tl: gsap.core.Timeline\n private maxDistance: number\n\n constructor(objs: Array<Object3D>, opt: GrowOption) {\n this._objs = objs\n this._opt = opt\n this._tl = null // gsap.timeline()\n this.maxDistance = 0\n }\n\n // 对象初始化\n init(): void {\n this._tl = gsap.timeline()\n\n const max = this._opt.gapTime + this._opt.time\n // 统一为Vector3\n if (Array.isArray(this._opt.center))\n this._opt.center = new Vector3().fromArray(this._opt.center as number[])\n // 找到对象最远距离\n this._objs.map((obj) => {\n const distance = Math.abs(obj.position.distanceTo(this._opt.center as Vector3))\n obj.userData.growDistance = distance\n obj.userData.growY = obj.position.y\n if (distance > this.maxDistance)\n this.maxDistance = distance\n })\n\n this._objs.map((obj) => {\n // 计算排序延迟\n obj.userData.growDelay = MathUtils.lerp(0, max, obj.userData.growDistance / this.maxDistance)\n // 距离\n obj.position.y -= this._opt.distance\n // 旋转\n this._opt.isRotate && obj.rotateY(MathUtils.degToRad(270))\n // 缩放\n this._opt.isScale && obj.scale.set(obj.scale.x * 0.1, obj.scale.y * 0.1, obj.scale.z * 0.1)\n })\n }\n\n in(): void {\n this._tl.clear()\n // this._tl = gsap.timeline({ onComplete: this._opt.onGrowInCompleted, onReverseComplete: this._opt.onGrowOutCompleted })\n this._objs.map((obj) => {\n // 距离1\n this._tl.add(gsap.to(obj.position, { y: obj.position.y + this._opt.distance, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n // 旋转\n if (this._opt.isRotate)\n this._tl.add(gsap.to(obj.rotation, { y: 0, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n // 缩放\n if (this._opt.isScale)\n this._tl.add(gsap.to(obj.scale, { x: 1, y: 1, z: 1, duration: this._opt.time, ease: this._opt.ease, delay: obj.userData.growDelay }), 0)\n })\n this._tl.play(0, false)\n }\n\n out(): void {\n this._tl.timeScale(this._opt.scale).reverse()\n }\n\n getTimeLine(): gsap.core.Timeline {\n return this._tl\n }\n}"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  // 生长动画类型
2
- export var ESceneGrowType;
3
-
4
- // 动画ease类型
5
- (function (ESceneGrowType) {
2
+ export var ESceneGrowType = /*#__PURE__*/function (ESceneGrowType) {
6
3
  ESceneGrowType[ESceneGrowType["Up"] = 0] = "Up";
7
4
  ESceneGrowType[ESceneGrowType["Down"] = 1] = "Down";
8
- })(ESceneGrowType || (ESceneGrowType = {}));
5
+ return ESceneGrowType;
6
+ }({});
7
+
8
+ // 动画ease类型
9
9
  export var EEaseType = {
10
10
  Linear: 'none',
11
11
  // 均速
@@ -1 +1 @@
1
- {"version":3,"names":["ESceneGrowType","EEaseType","Linear","SineIn","SineOut","SineInOut","BackIn","BackOut","BackInOut","BounceIn","BounceOut","BounceInOut","ExpoIn","ExpoOut","ExpoInOut","ElasticIn","ElasticOut","ElasticInOut"],"sources":["../../../src/scene/grow/type.ts"],"sourcesContent":["import type { Vector3, gsap } from '@anov/3d-core'\n\nexport interface IGrowStyle {\n init(): void\n in(): void\n out(): void\n getTimeLine(): gsap.core.Timeline\n}\n\nexport interface GrowOption {\n tag?: string // 可选,进场对象Tag, 默认 \"*\" 所有对象,\n type?: ESceneGrowType // 可选,进场动画类型,默认 ESceneGrowType.Up向上生长\n time?: number // 可选,单对象进场时间,默认0.5秒\n gapTime?: number // 可选,多个对象之间间隔事件,默认0.2秒\n ease?: string // 可选,默认缓入缓出\n center?: Vector3 | Array<number> | null // 可选,生长中心位置,默认[0,0,0]\n scale?: number // 可选,出场倍数,是进场时间的几倍,默认为1, 注意:进场无效。\n distance?: number // 可选,初始化UP/DOWN起始距离,默认1000\n isRotate?: boolean // 可选,初始化UP/DOWN起始旋转角度,默认270\n isScale?: boolean // 可选,初始化UP/DOWN起始缩放大小,默认0.1\n onGrowInitCompleted?(): void // 可选,初始化\n onGrowInStart?(): void // 可选,生长开始回调\n onGrowInCompleted?(): void // 可选,生长完成回调\n onGrowOutStart?(): void // 可选,消失开始回调\n onGrowOutCompleted?(): void // 可选,消失完成回调\n}\n\n// 生长动画类型\nexport enum ESceneGrowType {\n Up,\n Down,\n}\n\n// 动画ease类型\nexport const EEaseType = {\n Linear: 'none', // 均速\n SineIn: 'sine.in', // 缓入\n SineOut: 'sine.out', // 缓出\n SineInOut: 'sine.inOut', // 缓入缓出\n BackIn: 'back.in(1.7)', // 回退入\n BackOut: 'back.out(1.7)', // 回退出\n BackInOut: 'back.inOut(1.7)', // 回退入回退出\n BounceIn: 'bounce.in', // 硬弹跳入,步伐越来越大,类似三级跳远,\n BounceOut: 'bounce.out', // 硬弹跳出,步伐越来越小,类似乒乓球掉落到停止\n BounceInOut: 'bounce.inOut', // 弹跳入弹跳出\n ExpoIn: 'expo.in', // 缓入, 类似SineIn * 4倍效果\n ExpoOut: 'expo.out', // 缓出, 类似SineOut * 4倍效果\n ExpoInOut: 'expo.inOut', // 缓入缓出, 类似SineInOut * 4倍效果\n ElasticIn: 'elastic.in(1,0.3)', // 弹入,软回弹,类似橡胶\n ElasticOut: 'elastic.out(1,0.3)', // 弹出,软回弹,类似橡胶\n ElasticInOut: 'elastic.inOut(1,0.3)', // 弹入弹出,软回弹,类似橡胶\n}"],"mappings":"AA2BA;AACA,WAAYA,cAAc;;AAK1B;AAAA,WALYA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;AAAA,GAAdA,cAAc,KAAdA,cAAc;AAM1B,OAAO,IAAMC,SAAS,GAAG;EACvBC,MAAM,EAAE,MAAM;EAAE;EAChBC,MAAM,EAAE,SAAS;EAAE;EACnBC,OAAO,EAAE,UAAU;EAAE;EACrBC,SAAS,EAAE,YAAY;EAAE;EACzBC,MAAM,EAAE,cAAc;EAAE;EACxBC,OAAO,EAAE,eAAe;EAAE;EAC1BC,SAAS,EAAE,iBAAiB;EAAE;EAC9BC,QAAQ,EAAE,WAAW;EAAE;EACvBC,SAAS,EAAE,YAAY;EAAE;EACzBC,WAAW,EAAE,cAAc;EAAE;EAC7BC,MAAM,EAAE,SAAS;EAAE;EACnBC,OAAO,EAAE,UAAU;EAAE;EACrBC,SAAS,EAAE,YAAY;EAAE;EACzBC,SAAS,EAAE,mBAAmB;EAAE;EAChCC,UAAU,EAAE,oBAAoB;EAAE;EAClCC,YAAY,EAAE,sBAAsB,CAAE;AACxC,CAAC"}
1
+ {"version":3,"names":["ESceneGrowType","EEaseType","Linear","SineIn","SineOut","SineInOut","BackIn","BackOut","BackInOut","BounceIn","BounceOut","BounceInOut","ExpoIn","ExpoOut","ExpoInOut","ElasticIn","ElasticOut","ElasticInOut"],"sources":["../../../src/scene/grow/type.ts"],"sourcesContent":["import type { Vector3, gsap } from '@anov/3d-core'\n\nexport interface IGrowStyle {\n init(): void\n in(): void\n out(): void\n getTimeLine(): gsap.core.Timeline\n}\n\nexport interface GrowOption {\n tag?: string // 可选,进场对象Tag, 默认 \"*\" 所有对象,\n type?: ESceneGrowType // 可选,进场动画类型,默认 ESceneGrowType.Up向上生长\n time?: number // 可选,单对象进场时间,默认0.5秒\n gapTime?: number // 可选,多个对象之间间隔事件,默认0.2秒\n ease?: string // 可选,默认缓入缓出\n center?: Vector3 | Array<number> | null // 可选,生长中心位置,默认[0,0,0]\n scale?: number // 可选,出场倍数,是进场时间的几倍,默认为1, 注意:进场无效。\n distance?: number // 可选,初始化UP/DOWN起始距离,默认1000\n isRotate?: boolean // 可选,初始化UP/DOWN起始旋转角度,默认270\n isScale?: boolean // 可选,初始化UP/DOWN起始缩放大小,默认0.1\n onGrowInitCompleted?(): void // 可选,初始化\n onGrowInStart?(): void // 可选,生长开始回调\n onGrowInCompleted?(): void // 可选,生长完成回调\n onGrowOutStart?(): void // 可选,消失开始回调\n onGrowOutCompleted?(): void // 可选,消失完成回调\n}\n\n// 生长动画类型\nexport enum ESceneGrowType {\n Up,\n Down,\n}\n\n// 动画ease类型\nexport const EEaseType = {\n Linear: 'none', // 均速\n SineIn: 'sine.in', // 缓入\n SineOut: 'sine.out', // 缓出\n SineInOut: 'sine.inOut', // 缓入缓出\n BackIn: 'back.in(1.7)', // 回退入\n BackOut: 'back.out(1.7)', // 回退出\n BackInOut: 'back.inOut(1.7)', // 回退入回退出\n BounceIn: 'bounce.in', // 硬弹跳入,步伐越来越大,类似三级跳远,\n BounceOut: 'bounce.out', // 硬弹跳出,步伐越来越小,类似乒乓球掉落到停止\n BounceInOut: 'bounce.inOut', // 弹跳入弹跳出\n ExpoIn: 'expo.in', // 缓入, 类似SineIn * 4倍效果\n ExpoOut: 'expo.out', // 缓出, 类似SineOut * 4倍效果\n ExpoInOut: 'expo.inOut', // 缓入缓出, 类似SineInOut * 4倍效果\n ElasticIn: 'elastic.in(1,0.3)', // 弹入,软回弹,类似橡胶\n ElasticOut: 'elastic.out(1,0.3)', // 弹出,软回弹,类似橡胶\n ElasticInOut: 'elastic.inOut(1,0.3)', // 弹入弹出,软回弹,类似橡胶\n}"],"mappings":"AA2BA;AACA,WAAYA,cAAc,0BAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;;AAK1B;AACA,OAAO,IAAMC,SAAS,GAAG;EACvBC,MAAM,EAAE,MAAM;EAAE;EAChBC,MAAM,EAAE,SAAS;EAAE;EACnBC,OAAO,EAAE,UAAU;EAAE;EACrBC,SAAS,EAAE,YAAY;EAAE;EACzBC,MAAM,EAAE,cAAc;EAAE;EACxBC,OAAO,EAAE,eAAe;EAAE;EAC1BC,SAAS,EAAE,iBAAiB;EAAE;EAC9BC,QAAQ,EAAE,WAAW;EAAE;EACvBC,SAAS,EAAE,YAAY;EAAE;EACzBC,WAAW,EAAE,cAAc;EAAE;EAC7BC,MAAM,EAAE,SAAS;EAAE;EACnBC,OAAO,EAAE,UAAU;EAAE;EACrBC,SAAS,EAAE,YAAY;EAAE;EACzBC,SAAS,EAAE,mBAAmB;EAAE;EAChCC,UAAU,EAAE,oBAAoB;EAAE;EAClCC,YAAY,EAAE,sBAAsB,CAAE;AACxC,CAAC"}
@@ -1 +1 @@
1
- export declare const getLastValue: <T>(optsValue: T | null | undefined, value: T) => T;
1
+ export declare const getLastValue: <T>(optsValue: T, value: T) => T;
@@ -1 +1 @@
1
- {"version":3,"names":["getLastValue","optsValue","value"],"sources":["../../src/utils/index.ts"],"sourcesContent":["export const getLastValue = <T>(optsValue: T | undefined | null, value: T): T => {\n return optsValue ?? value\n}"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG,SAAfA,YAAY,CAAOC,SAA+B,EAAEC,KAAQ,EAAQ;EAC/E,OAAOD,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIC,KAAK;AAC3B,CAAC"}
1
+ {"version":3,"names":["getLastValue","optsValue","value"],"sources":["../../src/utils/index.ts"],"sourcesContent":["export const getLastValue = <T>(optsValue: T | undefined | null, value: T): T => {\n return optsValue ?? value\n}"],"mappings":"AAAA,OAAO,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAOC,SAA+B,EAAEC,KAAQ,EAAQ;EAC/E,OAAOD,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIC,KAAK;AAC3B,CAAC"}