@anov/3d 0.0.136 → 0.0.139

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 (206) hide show
  1. package/dist/anov3d.js +10 -10
  2. package/dist/anov3d.js.map +1 -1
  3. package/dist/applicationApi.js +17 -9
  4. package/dist/applicationApi.js.map +1 -1
  5. package/dist/factory/3d.js +6 -7
  6. package/dist/factory/3d.js.map +1 -1
  7. package/dist/factory/globalControl.js +3 -3
  8. package/dist/factory/globalControl.js.map +1 -1
  9. package/dist/factory/unit/CameraPoi.js +5 -6
  10. package/dist/factory/unit/CameraPoi.js.map +1 -1
  11. package/dist/factory/unit/areaBoundingBox.js +3 -3
  12. package/dist/factory/unit/areaBoundingBox.js.map +1 -1
  13. package/dist/factory/unit/circle.js +4 -4
  14. package/dist/factory/unit/circle.js.map +1 -1
  15. package/dist/factory/unit/cylinder.js +5 -5
  16. package/dist/factory/unit/cylinder.js.map +1 -1
  17. package/dist/factory/unit/districtLine.js +4 -4
  18. package/dist/factory/unit/districtLine.js.map +1 -1
  19. package/dist/factory/unit/glsl/heat/frag.js.map +1 -1
  20. package/dist/factory/unit/glsl/heat/ver.js.map +1 -1
  21. package/dist/factory/unit/glsl/highway/fragmentShader.js.map +1 -1
  22. package/dist/factory/unit/glsl/highway/fragmentShader2.js.map +1 -1
  23. package/dist/factory/unit/glsl/highway/vertexShader.js.map +1 -1
  24. package/dist/factory/unit/handle.js +3 -3
  25. package/dist/factory/unit/handle.js.map +1 -1
  26. package/dist/factory/unit/index.js +13 -14
  27. package/dist/factory/unit/index.js.map +1 -1
  28. package/dist/factory/unit/inspection/InspectionObject.js +4 -4
  29. package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
  30. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js +3 -3
  31. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js.map +1 -1
  32. package/dist/factory/unit/inspection/index.js +6 -8
  33. package/dist/factory/unit/inspection/index.js.map +1 -1
  34. package/dist/factory/unit/inspection/lineData.js.map +1 -1
  35. package/dist/factory/unit/inspection/map.js +3 -3
  36. package/dist/factory/unit/inspection/map.js.map +1 -1
  37. package/dist/factory/unit/inspection/tubeGeometry.js +3 -3
  38. package/dist/factory/unit/inspection/tubeGeometry.js.map +1 -1
  39. package/dist/factory/unit/layer/rise.js.map +1 -1
  40. package/dist/factory/unit/line.js +3 -3
  41. package/dist/factory/unit/line.js.map +1 -1
  42. package/dist/factory/unit/poi.js +5 -5
  43. package/dist/factory/unit/poi.js.map +1 -1
  44. package/dist/factory/unit/region.js +3 -3
  45. package/dist/factory/unit/region.js.map +1 -1
  46. package/dist/factory/unit/slice.js +3 -3
  47. package/dist/factory/unit/slice.js.map +1 -1
  48. package/dist/factory/unit/wall.js +3 -3
  49. package/dist/factory/unit/wall.js.map +1 -1
  50. package/dist/factory/utils/areaBoundingBox.js.map +1 -1
  51. package/dist/factory/utils/constant.js +6 -6
  52. package/dist/factory/utils/constant.js.map +1 -1
  53. package/dist/factory/utils/finirMaterial.js +0 -1
  54. package/dist/factory/utils/finirMaterial.js.map +1 -1
  55. package/dist/factory/utils/fontMesh.js +3 -3
  56. package/dist/factory/utils/fontMesh.js.map +1 -1
  57. package/dist/factory/utils/ground.js.map +1 -1
  58. package/dist/factory/utils/index.js.map +1 -1
  59. package/dist/factory/utils/observe.js +1 -1
  60. package/dist/factory/utils/observe.js.map +1 -1
  61. package/dist/factory/utils/switchMaterial.js.map +1 -1
  62. package/dist/hooksManager.js +1 -1
  63. package/dist/hooksManager.js.map +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/messageStatus.js +3 -3
  66. package/dist/messageStatus.js.map +1 -1
  67. package/dist/module/camera/index.js +3 -3
  68. package/dist/module/camera/index.js.map +1 -1
  69. package/dist/module/develop/index.js +3 -3
  70. package/dist/module/develop/index.js.map +1 -1
  71. package/dist/module/entity/baseEntity.js +146 -0
  72. package/dist/module/entity/baseEntity.js.map +1 -0
  73. package/dist/module/entity/dispose.js.map +1 -1
  74. package/dist/module/entity/hybridList.js +3 -3
  75. package/dist/module/entity/hybridList.js.map +1 -1
  76. package/dist/module/entity/index.js +149 -150
  77. package/dist/module/entity/index.js.map +1 -1
  78. package/dist/module/entity/model/index.js +116 -0
  79. package/dist/module/entity/model/index.js.map +1 -0
  80. package/dist/module/entity/model/load/loadGlb.js +19 -0
  81. package/dist/module/entity/model/load/loadGlb.js.map +1 -0
  82. package/dist/module/entity/model/load.js +47 -0
  83. package/dist/module/entity/model/load.js.map +1 -0
  84. package/dist/module/entity/poi/index.js +22 -43
  85. package/dist/module/entity/poi/index.js.map +1 -1
  86. package/dist/module/entity/poi/style/base.js +104 -0
  87. package/dist/module/entity/poi/style/base.js.map +1 -0
  88. package/dist/module/entity/poi/style/index.js +67 -0
  89. package/dist/module/entity/poi/style/index.js.map +1 -0
  90. package/dist/module/entity/poi/style/title_01.js +62 -0
  91. package/dist/module/entity/poi/style/title_01.js.map +1 -0
  92. package/dist/module/entity/poi/style/title_pin_01.js +68 -0
  93. package/dist/module/entity/poi/style/title_pin_01.js.map +1 -0
  94. package/dist/module/entity/poi/style/title_pin_02.js +70 -0
  95. package/dist/module/entity/poi/style/title_pin_02.js.map +1 -0
  96. package/dist/module/entity/poi/type.js.map +1 -1
  97. package/dist/module/entity/spline/index.js +29 -0
  98. package/dist/module/entity/spline/index.js.map +1 -0
  99. package/dist/module/entity/spline/resource.js +2 -0
  100. package/dist/module/entity/spline/resource.js.map +1 -0
  101. package/dist/module/entity/spline/style/index.js +47 -0
  102. package/dist/module/entity/spline/style/index.js.map +1 -0
  103. package/dist/module/entity/spline/style/line_01.js +67 -0
  104. package/dist/module/entity/spline/style/line_01.js.map +1 -0
  105. package/dist/module/entity/spline/style/line_texture_01.js +85 -0
  106. package/dist/module/entity/spline/style/line_texture_01.js.map +1 -0
  107. package/dist/module/entity/spline/type.js +2 -0
  108. package/dist/module/entity/spline/type.js.map +1 -0
  109. package/dist/module/entity/strategy.js +45 -2
  110. package/dist/module/entity/strategy.js.map +1 -1
  111. package/dist/module/entity/type.js +2 -0
  112. package/dist/module/entity/type.js.map +1 -0
  113. package/dist/module/entity/utils.js +15 -1
  114. package/dist/module/entity/utils.js.map +1 -1
  115. package/dist/module/environment/index.js +6 -6
  116. package/dist/module/environment/index.js.map +1 -1
  117. package/dist/module/environment/season/index.js +6 -8
  118. package/dist/module/environment/season/index.js.map +1 -1
  119. package/dist/module/environment/time/index.js.map +1 -1
  120. package/dist/module/eventBus/index.js +3 -3
  121. package/dist/module/eventBus/index.js.map +1 -1
  122. package/dist/module/model/index.js +6 -6
  123. package/dist/module/model/index.js.map +1 -1
  124. package/dist/module/scene/index.js +3 -3
  125. package/dist/module/scene/index.js.map +1 -1
  126. package/dist/sdkEntry.js +3 -3
  127. package/dist/sdkEntry.js.map +1 -1
  128. package/dist/utils/abstract.js +3 -3
  129. package/dist/utils/abstract.js.map +1 -1
  130. package/dist/utils/index.js +1 -1
  131. package/dist/utils/index.js.map +1 -1
  132. package/dist/utils/messageFn.js +8 -8
  133. package/dist/utils/messageFn.js.map +1 -1
  134. package/package.json +5 -4
  135. package/dist/anov3d.d.ts +0 -27
  136. package/dist/applicationApi.d.ts +0 -68
  137. package/dist/factory/3d.d.ts +0 -72
  138. package/dist/factory/globalControl.d.ts +0 -7
  139. package/dist/factory/globalData.d.ts +0 -1
  140. package/dist/factory/regionData.d.ts +0 -36
  141. package/dist/factory/type.d.ts +0 -10
  142. package/dist/factory/unit/CameraPoi.d.ts +0 -66
  143. package/dist/factory/unit/areaBoundingBox.d.ts +0 -7
  144. package/dist/factory/unit/circle.d.ts +0 -22
  145. package/dist/factory/unit/cylinder.d.ts +0 -24
  146. package/dist/factory/unit/districtLine.d.ts +0 -22
  147. package/dist/factory/unit/glsl/heat/frag.d.ts +0 -2
  148. package/dist/factory/unit/glsl/heat/ver.d.ts +0 -2
  149. package/dist/factory/unit/glsl/highway/fragmentShader.d.ts +0 -2
  150. package/dist/factory/unit/glsl/highway/fragmentShader2.d.ts +0 -2
  151. package/dist/factory/unit/glsl/highway/vertexShader.d.ts +0 -2
  152. package/dist/factory/unit/handle.d.ts +0 -42
  153. package/dist/factory/unit/index.d.ts +0 -9
  154. package/dist/factory/unit/inspection/InspectionObject.d.ts +0 -49
  155. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.d.ts +0 -6
  156. package/dist/factory/unit/inspection/index.d.ts +0 -52
  157. package/dist/factory/unit/inspection/lineData.d.ts +0 -26
  158. package/dist/factory/unit/inspection/map.d.ts +0 -11
  159. package/dist/factory/unit/inspection/tubeGeometry.d.ts +0 -16
  160. package/dist/factory/unit/layer/rise.d.ts +0 -6
  161. package/dist/factory/unit/line.d.ts +0 -13
  162. package/dist/factory/unit/poi.d.ts +0 -21
  163. package/dist/factory/unit/region.d.ts +0 -12
  164. package/dist/factory/unit/slice.d.ts +0 -12
  165. package/dist/factory/unit/wall.d.ts +0 -16
  166. package/dist/factory/utils/areaBoundingBox.d.ts +0 -14
  167. package/dist/factory/utils/constant.d.ts +0 -12
  168. package/dist/factory/utils/finirMaterial.d.ts +0 -4
  169. package/dist/factory/utils/fontMesh.d.ts +0 -10
  170. package/dist/factory/utils/ground.d.ts +0 -40
  171. package/dist/factory/utils/index.d.ts +0 -2
  172. package/dist/factory/utils/observe.d.ts +0 -3
  173. package/dist/factory/utils/switchMaterial.d.ts +0 -17
  174. package/dist/hooksManager.d.ts +0 -2
  175. package/dist/index.d.ts +0 -18
  176. package/dist/messageStatus.d.ts +0 -52
  177. package/dist/module/camera/index.d.ts +0 -74
  178. package/dist/module/develop/index.d.ts +0 -19
  179. package/dist/module/entity/dispose.d.ts +0 -6
  180. package/dist/module/entity/hybridList.d.ts +0 -11
  181. package/dist/module/entity/index.d.ts +0 -68
  182. package/dist/module/entity/poi/constant.d.ts +0 -48
  183. package/dist/module/entity/poi/constant.js +0 -54
  184. package/dist/module/entity/poi/constant.js.map +0 -1
  185. package/dist/module/entity/poi/index.d.ts +0 -13
  186. package/dist/module/entity/poi/label.d.ts +0 -9
  187. package/dist/module/entity/poi/label.js +0 -46
  188. package/dist/module/entity/poi/label.js.map +0 -1
  189. package/dist/module/entity/poi/resource.d.ts +0 -4
  190. package/dist/module/entity/poi/title.d.ts +0 -77
  191. package/dist/module/entity/poi/title.js +0 -265
  192. package/dist/module/entity/poi/title.js.map +0 -1
  193. package/dist/module/entity/poi/type.d.ts +0 -88
  194. package/dist/module/entity/strategy.d.ts +0 -3
  195. package/dist/module/entity/utils.d.ts +0 -4
  196. package/dist/module/environment/index.d.ts +0 -50
  197. package/dist/module/environment/season/index.d.ts +0 -22
  198. package/dist/module/environment/time/index.d.ts +0 -10
  199. package/dist/module/environment/weather/type.d.ts +0 -15
  200. package/dist/module/eventBus/index.d.ts +0 -27
  201. package/dist/module/model/index.d.ts +0 -15
  202. package/dist/module/scene/index.d.ts +0 -16
  203. package/dist/sdkEntry.d.ts +0 -5
  204. package/dist/utils/abstract.d.ts +0 -6
  205. package/dist/utils/index.d.ts +0 -30
  206. package/dist/utils/messageFn.d.ts +0 -19
@@ -1 +1 @@
1
- {"version":3,"names":["Color","RepeatWrapping","ShaderChunk","ShaderMaterial","TextureLoader","Vector4","resourcePath","resourcePath2","usePath","_Texture","load","_Texture2","_Texture3","wrapS","wrapT","repeat","set","uniforms","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","_Time","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","material","transparent"],"sources":["../../../src/factory/utils/ground.ts"],"sourcesContent":["import { Color, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, Vector4 } from '@anov/3d-core'\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\nconst usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nconst _Texture = new TextureLoader().load(`${usePath}demo03.jpg`)\nconst _Texture2 = new TextureLoader().load(`${usePath}demo04.jpg`)\nconst _Texture3 = new TextureLoader().load(`${usePath}test04.jpg`)\n\n_Texture.wrapS = RepeatWrapping\n_Texture.wrapT = RepeatWrapping\n\n_Texture2.wrapS = RepeatWrapping\n_Texture2.wrapT = RepeatWrapping\n\n_Texture3.wrapS = RepeatWrapping\n_Texture3.wrapT = RepeatWrapping\n\n_Texture.repeat.set(5000, 5000)\n_Texture2.repeat.set(10, 10)\n_Texture3.repeat.set(5000, 5000)\n\nexport const uniforms = {\n _Texture: { value: _Texture },\n _Texture_ST: { value: new Vector4() },\n _Color: { value: new Vector4(new Color('#096ddb').r, new Color('#096ddb').g, new Color('#096ddb').b, 0.5) },\n _ColorS: { value: 1 },\n _TextureMask: { value: _Texture2 },\n _TexturePlane: { value: _Texture3 },\n _MaskUV: { value: 1 },\n _ColorMask: { value: new Vector4(new Color('#fff').r, new Color('#fff').g, new Color('#fff').b, 1) },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n _Time: { value: 1.0 },\n}\n\nconst vertexShader = /* glsl */`\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition1.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n //uniform vec4 _Texture_ST;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n //uniform vec4 _Speed;\n //uniform float _OP;\n uniform float _Time; \n varying vec2 vUv;\n varying vec3 vPosition;\n\n\n\n void main() {\n vec4 _ColorMask_ =vec4(0.,0.6,1.,1.);\n\n vec3 temp_cast_0 = vec3(0.2);\n vec4 o = vec4(temp_cast_0, 1.0);\n vec2 uv_Texture = vUv * 10.0;\n vec4 tex2DNode1 = texture2D(_Texture, uv_Texture);\n vec4 tex2DNode2 = texture2D(_TexturePlane, uv_Texture);\n vec2 temp_cast_1 = vec2(_MaskUV)* 3.0;\n vec2 uv_TexCoord7 = vUv * temp_cast_1;\n vec2 panner6 = (vec2(_Time,_Time)+ uv_TexCoord7);\n o.rgb = ((tex2DNode2*0.1)+(_Color * tex2DNode1.r * _ColorS) + (_ColorMask_ * (tex2DNode1.r * texture2D(_TextureMask, panner6).r) * _ColorMaskS*10.)).rgb;\n //o.a = _OP;\n gl_FragColor = o;\n gl_FragColor.a = 1.0;\n \n if(vPosition.x>-550.0 && vPosition.x<550.0 && vPosition.z>-300.0 && vPosition.z<270.0){\n gl_FragColor.a = 0.0;\n }else{\n gl_FragColor.a = .85;\n }\n\n ${ShaderChunk.logdepthbuf_fragment}\n }\n`\n\nexport const material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\n})"],"mappings":"AAAA,SAASA,KAAK,EAAEC,cAAc,EAAEC,WAAW,EAAEC,cAAc,EAAEC,aAAa,EAAEC,OAAO,QAAQ,eAAe;AAE1G,IAAMC,YAAY,GAAG,IAAI;AACzB,IAAMC,aAAa,GAAG,+DAA+D;AACrF,IAAMC,OAAO,GAAG,QAA4BF,YAAY,GAAGC,aAAa;AAExE,IAAME,QAAQ,GAAG,IAAIL,aAAa,EAAE,CAACM,IAAI,WAAIF,OAAO,gBAAa;AACjE,IAAMG,SAAS,GAAG,IAAIP,aAAa,EAAE,CAACM,IAAI,WAAIF,OAAO,gBAAa;AAClE,IAAMI,SAAS,GAAG,IAAIR,aAAa,EAAE,CAACM,IAAI,WAAIF,OAAO,gBAAa;AAElEC,QAAQ,CAACI,KAAK,GAAGZ,cAAc;AAC/BQ,QAAQ,CAACK,KAAK,GAAGb,cAAc;AAE/BU,SAAS,CAACE,KAAK,GAAGZ,cAAc;AAChCU,SAAS,CAACG,KAAK,GAAGb,cAAc;AAEhCW,SAAS,CAACC,KAAK,GAAGZ,cAAc;AAChCW,SAAS,CAACE,KAAK,GAAGb,cAAc;AAEhCQ,QAAQ,CAACM,MAAM,CAACC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/BL,SAAS,CAACI,MAAM,CAACC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;AAC5BJ,SAAS,CAACG,MAAM,CAACC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAEhC,OAAO,IAAMC,QAAQ,GAAG;EACtBR,QAAQ,EAAE;IAAES,KAAK,EAAET;EAAS,CAAC;EAC7BU,WAAW,EAAE;IAAED,KAAK,EAAE,IAAIb,OAAO;EAAG,CAAC;EACrCe,MAAM,EAAE;IAAEF,KAAK,EAAE,IAAIb,OAAO,CAAC,IAAIL,KAAK,CAAC,SAAS,CAAC,CAACqB,CAAC,EAAE,IAAIrB,KAAK,CAAC,SAAS,CAAC,CAACsB,CAAC,EAAE,IAAItB,KAAK,CAAC,SAAS,CAAC,CAACuB,CAAC,EAAE,GAAG;EAAE,CAAC;EAC3GC,OAAO,EAAE;IAAEN,KAAK,EAAE;EAAE,CAAC;EACrBO,YAAY,EAAE;IAAEP,KAAK,EAAEP;EAAU,CAAC;EAClCe,aAAa,EAAE;IAAER,KAAK,EAAEN;EAAU,CAAC;EACnCe,OAAO,EAAE;IAAET,KAAK,EAAE;EAAE,CAAC;EACrBU,UAAU,EAAE;IAAEV,KAAK,EAAE,IAAIb,OAAO,CAAC,IAAIL,KAAK,CAAC,MAAM,CAAC,CAACqB,CAAC,EAAE,IAAIrB,KAAK,CAAC,MAAM,CAAC,CAACsB,CAAC,EAAE,IAAItB,KAAK,CAAC,MAAM,CAAC,CAACuB,CAAC,EAAE,CAAC;EAAE,CAAC;EACpGM,WAAW,EAAE;IAAEX,KAAK,EAAE;EAAE,CAAC;EACzBY,MAAM,EAAE;IAAEZ,KAAK,EAAE,IAAIb,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;EAAE,CAAC;EAC9C0B,GAAG,EAAE;IAAEb,KAAK,EAAE;EAAI,CAAC;EACnBc,KAAK,EAAE;IAAEd,KAAK,EAAE;EAAI;AACtB,CAAC;AAED,IAAMe,YAAY,GAAG,sBACnB/B,WAAW,CAACgC,uBAAuB,yWAY3BhC,WAAW,CAACiC,kBAAkB,cAEvC;;AAED;AACA,IAAMC,cAAc,GAAG,wBACnBlC,WAAW,CAACmC,yBAAyB,gjDAyC/BnC,WAAW,CAACoC,oBAAoB,cAEzC;AAED,OAAO,IAAMC,QAAQ,GAAG,IAAIpC,cAAc,CAAC;EACzCc,QAAQ,EAARA,QAAQ;EACRgB,YAAY,EAAZA,YAAY;EACZG,cAAc,EAAdA,cAAc;EACdI,WAAW,EAAE;AACf,CAAC,CAAC"}
1
+ {"version":3,"names":["Color","RepeatWrapping","ShaderChunk","ShaderMaterial","TextureLoader","Vector4","resourcePath","resourcePath2","usePath","_Texture","load","concat","_Texture2","_Texture3","wrapS","wrapT","repeat","set","uniforms","value","_Texture_ST","_Color","r","g","b","_ColorS","_TextureMask","_TexturePlane","_MaskUV","_ColorMask","_ColorMaskS","_Speed","_OP","_Time","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment","material","transparent"],"sources":["../../../src/factory/utils/ground.ts"],"sourcesContent":["import { Color, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, Vector4 } from '@anov/3d-core'\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\nconst usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nconst _Texture = new TextureLoader().load(`${usePath}demo03.jpg`)\nconst _Texture2 = new TextureLoader().load(`${usePath}demo04.jpg`)\nconst _Texture3 = new TextureLoader().load(`${usePath}test04.jpg`)\n\n_Texture.wrapS = RepeatWrapping\n_Texture.wrapT = RepeatWrapping\n\n_Texture2.wrapS = RepeatWrapping\n_Texture2.wrapT = RepeatWrapping\n\n_Texture3.wrapS = RepeatWrapping\n_Texture3.wrapT = RepeatWrapping\n\n_Texture.repeat.set(5000, 5000)\n_Texture2.repeat.set(10, 10)\n_Texture3.repeat.set(5000, 5000)\n\nexport const uniforms = {\n _Texture: { value: _Texture },\n _Texture_ST: { value: new Vector4() },\n _Color: { value: new Vector4(new Color('#096ddb').r, new Color('#096ddb').g, new Color('#096ddb').b, 0.5) },\n _ColorS: { value: 1 },\n _TextureMask: { value: _Texture2 },\n _TexturePlane: { value: _Texture3 },\n _MaskUV: { value: 1 },\n _ColorMask: { value: new Vector4(new Color('#fff').r, new Color('#fff').g, new Color('#fff').b, 1) },\n _ColorMaskS: { value: 1 },\n _Speed: { value: new Vector4(0.0, 0.2, 0, 0) },\n _OP: { value: 1.0 },\n _Time: { value: 1.0 },\n}\n\nconst vertexShader = /* glsl */`\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\n varying vec2 vUv;\n varying vec3 vPosition;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);\n vPosition = worldPosition1.xyz;\n ${ShaderChunk.logdepthbuf_vertex}\n }\n`\n\n// Fragment shader\nconst fragmentShader = /* glsl */`\n ${ShaderChunk.logdepthbuf_pars_fragment} \n\n uniform sampler2D _Texture;\n uniform sampler2D _TexturePlane;\n //uniform vec4 _Texture_ST;\n uniform vec4 _Color;\n uniform float _ColorS;\n uniform sampler2D _TextureMask;\n uniform float _MaskUV;\n uniform vec4 _ColorMask;\n uniform float _ColorMaskS;\n //uniform vec4 _Speed;\n //uniform float _OP;\n uniform float _Time; \n varying vec2 vUv;\n varying vec3 vPosition;\n\n\n\n void main() {\n vec4 _ColorMask_ =vec4(0.,0.6,1.,1.);\n\n vec3 temp_cast_0 = vec3(0.2);\n vec4 o = vec4(temp_cast_0, 1.0);\n vec2 uv_Texture = vUv * 10.0;\n vec4 tex2DNode1 = texture2D(_Texture, uv_Texture);\n vec4 tex2DNode2 = texture2D(_TexturePlane, uv_Texture);\n vec2 temp_cast_1 = vec2(_MaskUV)* 3.0;\n vec2 uv_TexCoord7 = vUv * temp_cast_1;\n vec2 panner6 = (vec2(_Time,_Time)+ uv_TexCoord7);\n o.rgb = ((tex2DNode2*0.1)+(_Color * tex2DNode1.r * _ColorS) + (_ColorMask_ * (tex2DNode1.r * texture2D(_TextureMask, panner6).r) * _ColorMaskS*10.)).rgb;\n //o.a = _OP;\n gl_FragColor = o;\n gl_FragColor.a = 1.0;\n \n if(vPosition.x>-550.0 && vPosition.x<550.0 && vPosition.z>-300.0 && vPosition.z<270.0){\n gl_FragColor.a = 0.0;\n }else{\n gl_FragColor.a = .85;\n }\n\n ${ShaderChunk.logdepthbuf_fragment}\n }\n`\n\nexport const material = new ShaderMaterial({\n uniforms,\n vertexShader,\n fragmentShader,\n transparent: true,\n})"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["Vector3","debounce","fn","delay","timer","args","clearTimeout","setTimeout","apply","lookAtOnYAxis","mesh","targetPosition","direction","subVectors","position","y","normalize","rotationY","Math","atan2","z","x","PI","rotation"],"sources":["../../../src/factory/utils/index.ts"],"sourcesContent":["import { Vector3 } from '@anov/3d-core'\n\nexport const debounce = (fn: Function, delay = 20) => {\n let timer: number\n\n return function (this: any, ...args: any[]) {\n clearTimeout(timer)\n\n timer = setTimeout(() => {\n fn.apply(this, args)\n }, delay) as unknown as number\n }\n}\n\nexport const lookAtOnYAxis = (mesh, targetPosition) => {\n const direction = new Vector3().subVectors(targetPosition, mesh.position)\n direction.y = 0\n direction.normalize()\n\n let rotationY = Math.atan2(-direction.z, direction.x)\n\n rotationY -= Math.PI / 2\n\n mesh.rotation.y = rotationY + Math.PI\n}"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AAEvC,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,CAAIC,EAAY,EAAiB;EAAA,IAAfC,KAAK,uEAAG,EAAE;EAC/C,IAAIC,KAAa;EAEjB,OAAO,YAAqC;IAAA;IAAA,kCAAbC,IAAI;MAAJA,IAAI;IAAA;IACjCC,YAAY,CAACF,KAAK,CAAC;IAEnBA,KAAK,GAAGG,UAAU,CAAC,YAAM;MACvBL,EAAE,CAACM,KAAK,CAAC,KAAI,EAAEH,IAAI,CAAC;IACtB,CAAC,EAAEF,KAAK,CAAsB;EAChC,CAAC;AACH,CAAC;AAED,OAAO,IAAMM,aAAa,GAAG,SAAhBA,aAAa,CAAIC,IAAI,EAAEC,cAAc,EAAK;EACrD,IAAMC,SAAS,GAAG,IAAIZ,OAAO,EAAE,CAACa,UAAU,CAACF,cAAc,EAAED,IAAI,CAACI,QAAQ,CAAC;EACzEF,SAAS,CAACG,CAAC,GAAG,CAAC;EACfH,SAAS,CAACI,SAAS,EAAE;EAErB,IAAIC,SAAS,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACP,SAAS,CAACQ,CAAC,EAAER,SAAS,CAACS,CAAC,CAAC;EAErDJ,SAAS,IAAIC,IAAI,CAACI,EAAE,GAAG,CAAC;EAExBZ,IAAI,CAACa,QAAQ,CAACR,CAAC,GAAGE,SAAS,GAAGC,IAAI,CAACI,EAAE;AACvC,CAAC"}
1
+ {"version":3,"names":["Vector3","debounce","fn","delay","arguments","length","undefined","timer","_this","_len","args","Array","_key","clearTimeout","setTimeout","apply","lookAtOnYAxis","mesh","targetPosition","direction","subVectors","position","y","normalize","rotationY","Math","atan2","z","x","PI","rotation"],"sources":["../../../src/factory/utils/index.ts"],"sourcesContent":["import { Vector3 } from '@anov/3d-core'\n\nexport const debounce = (fn: Function, delay = 20) => {\n let timer: number\n\n return function (this: any, ...args: any[]) {\n clearTimeout(timer)\n\n timer = setTimeout(() => {\n fn.apply(this, args)\n }, delay) as unknown as number\n }\n}\n\nexport const lookAtOnYAxis = (mesh, targetPosition) => {\n const direction = new Vector3().subVectors(targetPosition, mesh.position)\n direction.y = 0\n direction.normalize()\n\n let rotationY = Math.atan2(-direction.z, direction.x)\n\n rotationY -= Math.PI / 2\n\n mesh.rotation.y = rotationY + Math.PI\n}"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AAEvC,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,EAAY,EAAiB;EAAA,IAAfC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC/C,IAAIG,KAAa;EAEjB,OAAO,YAAqC;IAAA,IAAAC,KAAA;IAAA,SAAAC,IAAA,GAAAL,SAAA,CAAAC,MAAA,EAAbK,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAR,SAAA,CAAAQ,IAAA;IAAA;IACjCC,YAAY,CAACN,KAAK,CAAC;IAEnBA,KAAK,GAAGO,UAAU,CAAC,YAAM;MACvBZ,EAAE,CAACa,KAAK,CAACP,KAAI,EAAEE,IAAI,CAAC;IACtB,CAAC,EAAEP,KAAK,CAAsB;EAChC,CAAC;AACH,CAAC;AAED,OAAO,IAAMa,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAI,EAAEC,cAAc,EAAK;EACrD,IAAMC,SAAS,GAAG,IAAInB,OAAO,CAAC,CAAC,CAACoB,UAAU,CAACF,cAAc,EAAED,IAAI,CAACI,QAAQ,CAAC;EACzEF,SAAS,CAACG,CAAC,GAAG,CAAC;EACfH,SAAS,CAACI,SAAS,CAAC,CAAC;EAErB,IAAIC,SAAS,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACP,SAAS,CAACQ,CAAC,EAAER,SAAS,CAACS,CAAC,CAAC;EAErDJ,SAAS,IAAIC,IAAI,CAACI,EAAE,GAAG,CAAC;EAExBZ,IAAI,CAACa,QAAQ,CAACR,CAAC,GAAGE,SAAS,GAAGC,IAAI,CAACI,EAAE;AACvC,CAAC"}
@@ -4,7 +4,7 @@ function onResize(entities) {
4
4
  entities.forEach(function (entity) {
5
5
  var _elementListeners$get;
6
6
  var target = entity.target;
7
- (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) {
7
+ (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {
8
8
  return listener(target);
9
9
  });
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"names":["ResizeObserver","elementListeners","Map","onResize","entities","forEach","entity","target","get","listener","resizeObserver","observe","element","callback","has","set","Set","add","unobserve","delete"],"sources":["../../../src/factory/utils/observe.ts"],"sourcesContent":["import ResizeObserver from 'resize-observer-polyfill'\n\nexport type ResizeListener = (element: Element) => void\n\nconst elementListeners = new Map<Element, Set<ResizeListener>>()\n\nfunction onResize(entities: ResizeObserverEntry[]) {\n entities.forEach((entity) => {\n const { target } = entity\n elementListeners.get(target)?.forEach(listener => listener(target))\n })\n}\n\nconst resizeObserver = new ResizeObserver(onResize)\n\nexport function observe(element: Element, callback: ResizeListener) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set())\n resizeObserver.observe(element)\n }\n\n elementListeners.get(element)!.add(callback)\n}\n\nexport function unobserve(element: Element, callback: ResizeListener) {\n if (elementListeners.has(element))\n elementListeners.get(element)!.delete(callback)\n}"],"mappings":"AAAA,OAAOA,cAAc,MAAM,0BAA0B;AAIrD,IAAMC,gBAAgB,GAAG,IAAIC,GAAG,EAAgC;AAEhE,SAASC,QAAQ,CAACC,QAA+B,EAAE;EACjDA,QAAQ,CAACC,OAAO,CAAC,UAACC,MAAM,EAAK;IAAA;IAC3B,IAAQC,MAAM,GAAKD,MAAM,CAAjBC,MAAM;IACd,yBAAAN,gBAAgB,CAACO,GAAG,CAACD,MAAM,CAAC,0DAA5B,sBAA8BF,OAAO,CAAC,UAAAI,QAAQ;MAAA,OAAIA,QAAQ,CAACF,MAAM,CAAC;IAAA,EAAC;EACrE,CAAC,CAAC;AACJ;AAEA,IAAMG,cAAc,GAAG,IAAIV,cAAc,CAACG,QAAQ,CAAC;AAEnD,OAAO,SAASQ,OAAO,CAACC,OAAgB,EAAEC,QAAwB,EAAE;EAClE,IAAI,CAACZ,gBAAgB,CAACa,GAAG,CAACF,OAAO,CAAC,EAAE;IAClCX,gBAAgB,CAACc,GAAG,CAACH,OAAO,EAAE,IAAII,GAAG,EAAE,CAAC;IACxCN,cAAc,CAACC,OAAO,CAACC,OAAO,CAAC;EACjC;EAEAX,gBAAgB,CAACO,GAAG,CAACI,OAAO,CAAC,CAAEK,GAAG,CAACJ,QAAQ,CAAC;AAC9C;AAEA,OAAO,SAASK,SAAS,CAACN,OAAgB,EAAEC,QAAwB,EAAE;EACpE,IAAIZ,gBAAgB,CAACa,GAAG,CAACF,OAAO,CAAC,EAC/BX,gBAAgB,CAACO,GAAG,CAACI,OAAO,CAAC,CAAEO,MAAM,CAACN,QAAQ,CAAC;AACnD"}
1
+ {"version":3,"names":["ResizeObserver","elementListeners","Map","onResize","entities","forEach","entity","_elementListeners$get","target","get","listener","resizeObserver","observe","element","callback","has","set","Set","add","unobserve","delete"],"sources":["../../../src/factory/utils/observe.ts"],"sourcesContent":["import ResizeObserver from 'resize-observer-polyfill'\n\nexport type ResizeListener = (element: Element) => void\n\nconst elementListeners = new Map<Element, Set<ResizeListener>>()\n\nfunction onResize(entities: ResizeObserverEntry[]) {\n entities.forEach((entity) => {\n const { target } = entity\n elementListeners.get(target)?.forEach(listener => listener(target))\n })\n}\n\nconst resizeObserver = new ResizeObserver(onResize)\n\nexport function observe(element: Element, callback: ResizeListener) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set())\n resizeObserver.observe(element)\n }\n\n elementListeners.get(element)!.add(callback)\n}\n\nexport function unobserve(element: Element, callback: ResizeListener) {\n if (elementListeners.has(element))\n elementListeners.get(element)!.delete(callback)\n}"],"mappings":"AAAA,OAAOA,cAAc,MAAM,0BAA0B;AAIrD,IAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAA+B,CAAC;AAEhE,SAASC,QAAQA,CAACC,QAA+B,EAAE;EACjDA,QAAQ,CAACC,OAAO,CAAC,UAACC,MAAM,EAAK;IAAA,IAAAC,qBAAA;IAC3B,IAAQC,MAAM,GAAKF,MAAM,CAAjBE,MAAM;IACd,CAAAD,qBAAA,GAAAN,gBAAgB,CAACQ,GAAG,CAACD,MAAM,CAAC,cAAAD,qBAAA,eAA5BA,qBAAA,CAA8BF,OAAO,CAAC,UAAAK,QAAQ;MAAA,OAAIA,QAAQ,CAACF,MAAM,CAAC;IAAA,EAAC;EACrE,CAAC,CAAC;AACJ;AAEA,IAAMG,cAAc,GAAG,IAAIX,cAAc,CAACG,QAAQ,CAAC;AAEnD,OAAO,SAASS,OAAOA,CAACC,OAAgB,EAAEC,QAAwB,EAAE;EAClE,IAAI,CAACb,gBAAgB,CAACc,GAAG,CAACF,OAAO,CAAC,EAAE;IAClCZ,gBAAgB,CAACe,GAAG,CAACH,OAAO,EAAE,IAAII,GAAG,CAAC,CAAC,CAAC;IACxCN,cAAc,CAACC,OAAO,CAACC,OAAO,CAAC;EACjC;EAEAZ,gBAAgB,CAACQ,GAAG,CAACI,OAAO,CAAC,CAAEK,GAAG,CAACJ,QAAQ,CAAC;AAC9C;AAEA,OAAO,SAASK,SAASA,CAACN,OAAgB,EAAEC,QAAwB,EAAE;EACpE,IAAIb,gBAAgB,CAACc,GAAG,CAACF,OAAO,CAAC,EAC/BZ,gBAAgB,CAACQ,GAAG,CAACI,OAAO,CAAC,CAAEO,MAAM,CAACN,QAAQ,CAAC;AACnD"}
@@ -1 +1 @@
1
- {"version":3,"names":["Vector3","use","switchMaterial","mesh","material","options","lastMaterial","clone","currentMaterial","speed","start","end","transparent","oldShader","onBeforeCompile","shader","uniforms","time","value","min_length","vertexShader","replace","join","fragmentShader","cancellation","useframe","worldPosition","getWorldPosition","x","depthWrite","callback","setTimeout","switchMaterialV2","center","y","z","distanceTo","requestAnimationFrame"],"sources":["../../../src/factory/utils/switchMaterial.ts"],"sourcesContent":["import type { Material, Object3D, Shader } from '@anov/3d-core'\nimport { Vector3, use } from '@anov/3d-core'\n\ntype SwitchMaterialOptions = {\n speed?: number\n start?: number\n end?: number\n callback?: () => void\n}\n\nconst switchMaterial = (mesh: Object3D & { material: Material }, material: Material, options?: SwitchMaterialOptions) => {\n const lastMaterial = mesh.material.clone()\n const currentMaterial = mesh.material.clone()\n\n const { speed = 10, start = 0, end = 100 } = options || {}\n\n currentMaterial.transparent = true\n\n let oldShader: Shader\n\n currentMaterial.onBeforeCompile = (shader) => {\n oldShader = shader\n shader.uniforms.time = { value: 0.0 }\n shader.uniforms.min_length = { value: start }\n shader.uniforms.speed = { value: 1.0 }\n shader.vertexShader = shader.vertexShader.replace(\n 'void main() {',\n [\n 'varying vec4 v_position;',\n 'varying vec3 vWorldPosition; ',\n 'void main() {',\n ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);',\n ' vWorldPosition = worldPosition1.xyz;',\n ' v_position = vec4(position, 1.0); ',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace('void main() {',\n `\n varying vec4 v_position;\n uniform float time;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n `)\n\n shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n float median = min_length + time * speed;\n if(vWorldPosition.x < median) {\n gl_FragColor.a = 0.0;\n }\n `)\n }\n\n mesh.material = currentMaterial\n\n const cancellation = use.useframe(() => {\n if (oldShader) {\n oldShader.uniforms.time.value += speed\n\n const worldPosition = new Vector3()\n\n mesh.getWorldPosition(worldPosition)\n\n if (worldPosition.x < start + oldShader.uniforms.time.value)\n currentMaterial.depthWrite = false\n\n if (oldShader.uniforms.time.value > end) {\n options?.callback && options.callback()\n\n setTimeout(() => {\n mesh.material = lastMaterial\n oldShader.uniforms.time.value = 0\n }, 100)\n\n cancellation()\n }\n }\n })\n}\n\n/**\n * todo 代码合并\n * @param mesh\n * @param material\n * @param options\n */\nconst switchMaterialV2 = (mesh: Object3D & { material: Material }, material: Material, options?: SwitchMaterialOptions) => {\n const lastMaterial = mesh.material.clone()\n const currentMaterial = mesh.material.clone()\n\n const { speed = 10, start = 0, end = 100 } = options || {}\n\n currentMaterial.transparent = true\n\n let oldShader: Shader\n\n currentMaterial.onBeforeCompile = (shader) => {\n oldShader = shader\n shader.uniforms.time = { value: 0.0 }\n shader.uniforms.min_length = { value: 0 }\n shader.uniforms.speed = { value: 1.0 }\n shader.uniforms.center = { value: { x: 0, y: 0, z: 0 } }\n shader.vertexShader = shader.vertexShader.replace(\n 'void main() {',\n [\n 'varying vec4 v_position;',\n 'varying vec3 vWorldPosition; ',\n 'void main() {',\n ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);',\n ' vWorldPosition = worldPosition1.xyz;',\n ' v_position = vec4(position, 1.0); ',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace('void main() {',\n `\n varying vec4 v_position;\n uniform float time;\n uniform float center;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n `)\n\n shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n float median = min_length + time * speed;\n\n if(distance(vec3(vWorldPosition.x,0,vWorldPosition.z), vec3(0,0,0)) < median) {\n gl_FragColor.a = 0.0;\n }\n `)\n }\n\n mesh.material = currentMaterial\n\n const cancellation = use.useframe(() => {\n if (oldShader) {\n oldShader.uniforms.time.value += speed\n\n const worldPosition = new Vector3()\n\n mesh.getWorldPosition(worldPosition)\n\n worldPosition.distanceTo(new Vector3(0, 0, 0))\n\n if (worldPosition.distanceTo(new Vector3(0, 0, 0)) < oldShader.uniforms.time.value)\n currentMaterial.depthWrite = false\n\n if (oldShader.uniforms.time.value > end) {\n requestAnimationFrame(() => {\n options?.callback && options.callback()\n\n requestAnimationFrame(() => {\n mesh.material = lastMaterial\n oldShader.uniforms.time.value = 0\n })\n })\n\n cancellation()\n }\n }\n })\n}\n\nexport default switchMaterialV2"],"mappings":"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"}
1
+ {"version":3,"names":["Vector3","use","switchMaterial","mesh","material","options","lastMaterial","clone","currentMaterial","_ref","_ref$speed","speed","_ref$start","start","_ref$end","end","transparent","oldShader","onBeforeCompile","shader","uniforms","time","value","min_length","vertexShader","replace","join","fragmentShader","cancellation","useframe","worldPosition","getWorldPosition","x","depthWrite","callback","setTimeout","switchMaterialV2","_ref2","_ref2$speed","_ref2$start","_ref2$end","center","y","z","distanceTo","requestAnimationFrame"],"sources":["../../../src/factory/utils/switchMaterial.ts"],"sourcesContent":["import type { Material, Object3D, Shader } from '@anov/3d-core'\nimport { Vector3, use } from '@anov/3d-core'\n\ntype SwitchMaterialOptions = {\n speed?: number\n start?: number\n end?: number\n callback?: () => void\n}\n\nconst switchMaterial = (mesh: Object3D & { material: Material }, material: Material, options?: SwitchMaterialOptions) => {\n const lastMaterial = mesh.material.clone()\n const currentMaterial = mesh.material.clone()\n\n const { speed = 10, start = 0, end = 100 } = options || {}\n\n currentMaterial.transparent = true\n\n let oldShader: Shader\n\n currentMaterial.onBeforeCompile = (shader) => {\n oldShader = shader\n shader.uniforms.time = { value: 0.0 }\n shader.uniforms.min_length = { value: start }\n shader.uniforms.speed = { value: 1.0 }\n shader.vertexShader = shader.vertexShader.replace(\n 'void main() {',\n [\n 'varying vec4 v_position;',\n 'varying vec3 vWorldPosition; ',\n 'void main() {',\n ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);',\n ' vWorldPosition = worldPosition1.xyz;',\n ' v_position = vec4(position, 1.0); ',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace('void main() {',\n `\n varying vec4 v_position;\n uniform float time;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n `)\n\n shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n float median = min_length + time * speed;\n if(vWorldPosition.x < median) {\n gl_FragColor.a = 0.0;\n }\n `)\n }\n\n mesh.material = currentMaterial\n\n const cancellation = use.useframe(() => {\n if (oldShader) {\n oldShader.uniforms.time.value += speed\n\n const worldPosition = new Vector3()\n\n mesh.getWorldPosition(worldPosition)\n\n if (worldPosition.x < start + oldShader.uniforms.time.value)\n currentMaterial.depthWrite = false\n\n if (oldShader.uniforms.time.value > end) {\n options?.callback && options.callback()\n\n setTimeout(() => {\n mesh.material = lastMaterial\n oldShader.uniforms.time.value = 0\n }, 100)\n\n cancellation()\n }\n }\n })\n}\n\n/**\n * todo 代码合并\n * @param mesh\n * @param material\n * @param options\n */\nconst switchMaterialV2 = (mesh: Object3D & { material: Material }, material: Material, options?: SwitchMaterialOptions) => {\n const lastMaterial = mesh.material.clone()\n const currentMaterial = mesh.material.clone()\n\n const { speed = 10, start = 0, end = 100 } = options || {}\n\n currentMaterial.transparent = true\n\n let oldShader: Shader\n\n currentMaterial.onBeforeCompile = (shader) => {\n oldShader = shader\n shader.uniforms.time = { value: 0.0 }\n shader.uniforms.min_length = { value: 0 }\n shader.uniforms.speed = { value: 1.0 }\n shader.uniforms.center = { value: { x: 0, y: 0, z: 0 } }\n shader.vertexShader = shader.vertexShader.replace(\n 'void main() {',\n [\n 'varying vec4 v_position;',\n 'varying vec3 vWorldPosition; ',\n 'void main() {',\n ' vec4 worldPosition1 = modelMatrix * vec4(position, 1.0);',\n ' vWorldPosition = worldPosition1.xyz;',\n ' v_position = vec4(position, 1.0); ',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace('void main() {',\n `\n varying vec4 v_position;\n uniform float time;\n uniform float center;\n uniform float min_length;\n uniform float speed;\n varying vec3 vWorldPosition;\n void main() {\n `)\n\n shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>',\n `\n #include <dithering_fragment>\n float median = min_length + time * speed;\n\n if(distance(vec3(vWorldPosition.x,0,vWorldPosition.z), vec3(0,0,0)) < median) {\n gl_FragColor.a = 0.0;\n }\n `)\n }\n\n mesh.material = currentMaterial\n\n const cancellation = use.useframe(() => {\n if (oldShader) {\n oldShader.uniforms.time.value += speed\n\n const worldPosition = new Vector3()\n\n mesh.getWorldPosition(worldPosition)\n\n worldPosition.distanceTo(new Vector3(0, 0, 0))\n\n if (worldPosition.distanceTo(new Vector3(0, 0, 0)) < oldShader.uniforms.time.value)\n currentMaterial.depthWrite = false\n\n if (oldShader.uniforms.time.value > end) {\n requestAnimationFrame(() => {\n options?.callback && options.callback()\n\n requestAnimationFrame(() => {\n mesh.material = lastMaterial\n oldShader.uniforms.time.value = 0\n })\n })\n\n cancellation()\n }\n }\n })\n}\n\nexport default switchMaterialV2"],"mappings":"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"}
@@ -15,7 +15,7 @@ var registerHooks = function registerHooks() {
15
15
  utils.emitter.on('message', function (res) {
16
16
  var _utils$storeManagemen;
17
17
  // @ts-ignore
18
- (_utils$storeManagemen = utils.storeManagement.get('message')) === null || _utils$storeManagemen === void 0 ? void 0 : _utils$storeManagemen(res);
18
+ (_utils$storeManagemen = utils.storeManagement.get('message')) === null || _utils$storeManagemen === void 0 || _utils$storeManagemen(res);
19
19
  });
20
20
  };
21
21
  export default registerHooks;
@@ -1 +1 @@
1
- {"version":3,"names":["utils","registerHooks","emitter","on","scene","res","eventBus","storeManagement","get","eventMap","name","emit"],"sources":["../src/hooksManager.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport type EventBus from './module/eventBus'\n\nconst registerHooks = () => {\n // 应用级别\n utils.emitter.on('scene-completed', (scene) => {\n // console.log('场景编译完成', scene)\n })\n\n // 事件\n utils.emitter.on('event', (res: any) => {\n const eventBus = utils.storeManagement.get<EventBus | undefined>('event-bus')\n\n if (eventBus && eventBus.eventMap.get(res.name))\n utils.emitter.emit('message', res)\n })\n\n // 应用sdk\n utils.emitter.on('message', (res) => {\n // @ts-ignore\n utils.storeManagement.get('message')?.(res)\n })\n}\n\nexport default registerHooks\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,eAAe;AAGrC,IAAMC,aAAa,GAAG,SAAhBA,aAAa,GAAS;EAC1B;EACAD,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,iBAAiB,EAAE,UAACC,KAAK,EAAK;IAC7C;EAAA,CACD,CAAC;;EAEF;EACAJ,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,OAAO,EAAE,UAACE,GAAQ,EAAK;IACtC,IAAMC,QAAQ,GAAGN,KAAK,CAACO,eAAe,CAACC,GAAG,CAAuB,WAAW,CAAC;IAE7E,IAAIF,QAAQ,IAAIA,QAAQ,CAACG,QAAQ,CAACD,GAAG,CAACH,GAAG,CAACK,IAAI,CAAC,EAC7CV,KAAK,CAACE,OAAO,CAACS,IAAI,CAAC,SAAS,EAAEN,GAAG,CAAC;EACtC,CAAC,CAAC;;EAEF;EACAL,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,SAAS,EAAE,UAACE,GAAG,EAAK;IAAA;IACnC;IACA,yBAAAL,KAAK,CAACO,eAAe,CAACC,GAAG,CAAC,SAAS,CAAC,0DAApC,sBAAuCH,GAAG,CAAC;EAC7C,CAAC,CAAC;AACJ,CAAC;AAED,eAAeJ,aAAa"}
1
+ {"version":3,"names":["utils","registerHooks","emitter","on","scene","res","eventBus","storeManagement","get","eventMap","name","emit","_utils$storeManagemen"],"sources":["../src/hooksManager.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport type EventBus from './module/eventBus'\n\nconst registerHooks = () => {\n // 应用级别\n utils.emitter.on('scene-completed', (scene) => {\n // console.log('场景编译完成', scene)\n })\n\n // 事件\n utils.emitter.on('event', (res: any) => {\n const eventBus = utils.storeManagement.get<EventBus | undefined>('event-bus')\n\n if (eventBus && eventBus.eventMap.get(res.name))\n utils.emitter.emit('message', res)\n })\n\n // 应用sdk\n utils.emitter.on('message', (res) => {\n // @ts-ignore\n utils.storeManagement.get('message')?.(res)\n })\n}\n\nexport default registerHooks\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,eAAe;AAGrC,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAA,EAAS;EAC1B;EACAD,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,iBAAiB,EAAE,UAACC,KAAK,EAAK;IAC7C;EAAA,CACD,CAAC;;EAEF;EACAJ,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,OAAO,EAAE,UAACE,GAAQ,EAAK;IACtC,IAAMC,QAAQ,GAAGN,KAAK,CAACO,eAAe,CAACC,GAAG,CAAuB,WAAW,CAAC;IAE7E,IAAIF,QAAQ,IAAIA,QAAQ,CAACG,QAAQ,CAACD,GAAG,CAACH,GAAG,CAACK,IAAI,CAAC,EAC7CV,KAAK,CAACE,OAAO,CAACS,IAAI,CAAC,SAAS,EAAEN,GAAG,CAAC;EACtC,CAAC,CAAC;;EAEF;EACAL,KAAK,CAACE,OAAO,CAACC,EAAE,CAAC,SAAS,EAAE,UAACE,GAAG,EAAK;IAAA,IAAAO,qBAAA;IACnC;IACA,CAAAA,qBAAA,GAAAZ,KAAK,CAACO,eAAe,CAACC,GAAG,CAAC,SAAS,CAAC,cAAAI,qBAAA,eAApCA,qBAAA,CAAuCP,GAAG,CAAC;EAC7C,CAAC,CAAC;AACJ,CAAC;AAED,eAAeJ,aAAa"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["packageJSON","registerHooks","Anov3D","defaultCameraParams","fov","near","far","position","x","y","z","lookAt","console","log","version","createInstance"],"sources":["../src/index.ts"],"sourcesContent":["import packageJSON from '../package.json'\nimport registerHooks from './hooksManager'\nimport Anov3D from './sdkEntry'\n\nexport const defaultCameraParams = {\n fov: 45,\n near: 0.1,\n far: 1000000,\n position: { x: 0, y: 100, z: 200 },\n lookAt: { x: 0, y: 0, z: 0 },\n}\n\nregisterHooks()\n\nconsole.log('Anov3D', packageJSON.version)\n\nexport { createInstance } from './applicationApi'\nexport default Anov3D\n"],"mappings":"AAAA,OAAOA,WAAW;AAClB,OAAOC,aAAa;AACpB,OAAOC,MAAM;AAEb,OAAO,IAAMC,mBAAmB,GAAG;EACjCC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,OAAO;EACZC,QAAQ,EAAE;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,GAAG;IAAEC,CAAC,EAAE;EAAI,CAAC;EAClCC,MAAM,EAAE;IAAEH,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE;AAC7B,CAAC;AAEDT,aAAa,EAAE;AAEfW,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEb,WAAW,CAACc,OAAO,CAAC;AAE1C,SAASC,cAAc;AACvB,eAAeb,MAAM"}
1
+ {"version":3,"names":["packageJSON","registerHooks","Anov3D","defaultCameraParams","fov","near","far","position","x","y","z","lookAt","console","log","version","createInstance"],"sources":["../src/index.ts"],"sourcesContent":["import packageJSON from '../package.json'\nimport registerHooks from './hooksManager'\nimport Anov3D from './sdkEntry'\n\nexport const defaultCameraParams = {\n fov: 45,\n near: 0.1,\n far: 1000000,\n position: { x: 0, y: 100, z: 200 },\n lookAt: { x: 0, y: 0, z: 0 },\n}\n\nregisterHooks()\n\nconsole.log('Anov3D', packageJSON.version)\n\nexport { createInstance } from './applicationApi'\nexport default Anov3D\n"],"mappings":"AAAA,OAAOA,WAAW;AAClB,OAAOC,aAAa;AACpB,OAAOC,MAAM;AAEb,OAAO,IAAMC,mBAAmB,GAAG;EACjCC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE,GAAG;EACTC,GAAG,EAAE,OAAO;EACZC,QAAQ,EAAE;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,GAAG;IAAEC,CAAC,EAAE;EAAI,CAAC;EAClCC,MAAM,EAAE;IAAEH,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE;AAC7B,CAAC;AAEDT,aAAa,CAAC,CAAC;AAEfW,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEb,WAAW,CAACc,OAAO,CAAC;AAE1C,SAASC,cAAc;AACvB,eAAeb,MAAM"}
@@ -36,8 +36,7 @@ export var messageStatus = {
36
36
  msg: '事件处理失败'
37
37
  }
38
38
  };
39
- export var EMessageStatus;
40
- (function (EMessageStatus) {
39
+ export var EMessageStatus = /*#__PURE__*/function (EMessageStatus) {
41
40
  EMessageStatus[EMessageStatus["Success"] = 200] = "Success";
42
41
  EMessageStatus[EMessageStatus["SerializeFailed"] = 500] = "SerializeFailed";
43
42
  EMessageStatus[EMessageStatus["NameNotFound"] = 400] = "NameNotFound";
@@ -47,7 +46,8 @@ export var EMessageStatus;
47
46
  EMessageStatus[EMessageStatus["EventNotRegister"] = 400] = "EventNotRegister";
48
47
  EMessageStatus[EMessageStatus["ModuleNotRegister"] = 404] = "ModuleNotRegister";
49
48
  EMessageStatus[EMessageStatus["EventHandleFailed"] = 422] = "EventHandleFailed";
50
- })(EMessageStatus || (EMessageStatus = {}));
49
+ return EMessageStatus;
50
+ }({});
51
51
  export var codeMessageMap = {
52
52
  200: '成功响应'
53
53
  };
@@ -1 +1 @@
1
- {"version":3,"names":["messageStatus","Success","code","msg","SerializeFailed","NameNotFound","IDNotFound","ParamsNotFound","MissingKeyField","EventNotRegister","ModuleNotRegister","EventHandleFailed","EMessageStatus","codeMessageMap"],"sources":["../src/messageStatus.ts"],"sourcesContent":["export const messageStatus = {\n Success: {\n code: 200,\n msg: '成功响应',\n },\n SerializeFailed: {\n code: 500,\n msg: '序列化失败',\n },\n NameNotFound: {\n code: 400,\n msg: '未传入事件名称',\n },\n IDNotFound: {\n code: 400,\n msg: '未传入事件ID',\n },\n ParamsNotFound: {\n code: 400,\n msg: '事件参数错误',\n },\n MissingKeyField: {\n code: 400,\n msg: '缺少必选字段',\n },\n EventNotRegister: {\n code: 400,\n msg: '事件未注册',\n },\n ModuleNotRegister: {\n code: 404,\n msg: '模块未注册',\n },\n EventHandleFailed: {\n code: 422,\n msg: '事件处理失败',\n },\n}\n\nexport enum EMessageStatus {\n Success = 200,\n SerializeFailed = 500,\n NameNotFound = 400,\n IDNotFound = 400,\n ParamsNotFound = 400,\n MissingKeyField = 400,\n EventNotRegister = 400,\n ModuleNotRegister = 404,\n EventHandleFailed = 422,\n}\n\nexport const codeMessageMap = {\n 200: '成功响应',\n}"],"mappings":"AAAA,OAAO,IAAMA,aAAa,GAAG;EAC3BC,OAAO,EAAE;IACPC,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDC,eAAe,EAAE;IACfF,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDE,YAAY,EAAE;IACZH,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDG,UAAU,EAAE;IACVJ,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDI,cAAc,EAAE;IACdL,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDK,eAAe,EAAE;IACfN,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDM,gBAAgB,EAAE;IAChBP,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDO,iBAAiB,EAAE;IACjBR,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDQ,iBAAiB,EAAE;IACjBT,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP;AACF,CAAC;AAED,WAAYS,cAAc;AAUzB,WAVWA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;AAAA,GAAdA,cAAc,KAAdA,cAAc;AAY1B,OAAO,IAAMC,cAAc,GAAG;EAC5B,GAAG,EAAE;AACP,CAAC"}
1
+ {"version":3,"names":["messageStatus","Success","code","msg","SerializeFailed","NameNotFound","IDNotFound","ParamsNotFound","MissingKeyField","EventNotRegister","ModuleNotRegister","EventHandleFailed","EMessageStatus","codeMessageMap"],"sources":["../src/messageStatus.ts"],"sourcesContent":["export const messageStatus = {\n Success: {\n code: 200,\n msg: '成功响应',\n },\n SerializeFailed: {\n code: 500,\n msg: '序列化失败',\n },\n NameNotFound: {\n code: 400,\n msg: '未传入事件名称',\n },\n IDNotFound: {\n code: 400,\n msg: '未传入事件ID',\n },\n ParamsNotFound: {\n code: 400,\n msg: '事件参数错误',\n },\n MissingKeyField: {\n code: 400,\n msg: '缺少必选字段',\n },\n EventNotRegister: {\n code: 400,\n msg: '事件未注册',\n },\n ModuleNotRegister: {\n code: 404,\n msg: '模块未注册',\n },\n EventHandleFailed: {\n code: 422,\n msg: '事件处理失败',\n },\n}\n\nexport enum EMessageStatus {\n Success = 200,\n SerializeFailed = 500,\n NameNotFound = 400,\n IDNotFound = 400,\n ParamsNotFound = 400,\n MissingKeyField = 400,\n EventNotRegister = 400,\n ModuleNotRegister = 404,\n EventHandleFailed = 422,\n}\n\nexport const codeMessageMap = {\n 200: '成功响应',\n}"],"mappings":"AAAA,OAAO,IAAMA,aAAa,GAAG;EAC3BC,OAAO,EAAE;IACPC,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDC,eAAe,EAAE;IACfF,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDE,YAAY,EAAE;IACZH,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDG,UAAU,EAAE;IACVJ,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDI,cAAc,EAAE;IACdL,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDK,eAAe,EAAE;IACfN,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDM,gBAAgB,EAAE;IAChBP,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDO,iBAAiB,EAAE;IACjBR,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP,CAAC;EACDQ,iBAAiB,EAAE;IACjBT,IAAI,EAAE,GAAG;IACTC,GAAG,EAAE;EACP;AACF,CAAC;AAED,WAAYS,cAAc,0BAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAY1B,OAAO,IAAMC,cAAc,GAAG;EAC5B,GAAG,EAAE;AACP,CAAC"}
@@ -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, MathUtils, Vector3 } from '@anov/3d-core';
9
9
  import * as TWEEN from '@tweenjs/tween.js';
10
10
  import { MessageType, sendToMessage } from "../../utils/messageFn";
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","MathUtils","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","app","isTrigger","camera","sceneControl","controls","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","addEventListener","isTransitionPeriod","lookat","messageType","Event","messageName","status","Success","toArray","params","Promise","res","duration","moveOptions","onUpdate","onComplate","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, Vector3 } from '@anov/3d-core'\nimport * as TWEEN from '@tweenjs/tween.js'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport type { BaseModule } from '../../utils/abstract'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Anov3D from '../../sdkEntry'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera implements BaseModule {\n app: Anov3D\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(app: Anov3D) {\n this.app = app\n this.isTrigger = false\n this.camera = app.sceneControl.camera!\n this.controls = app.sceneControl.controls!\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod && !this.isTrigger) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n }\n\n // if (this.isTransitionPeriod)\n // this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage({\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
1
+ {"version":3,"names":["Box3","MathUtils","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","app","_classCallCheck","_defineProperty","isTrigger","camera","sceneControl","controls","handleChanged","_createClass","key","value","caclCurrentPos","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","caclSingleCoordinate","prevTarget","prevPosition","lastTarget","_this","addEventListener","isTransitionPeriod","lookat","messageType","Event","messageName","status","Success","toArray","focus","params","_this2","Promise","res","duration","moveOptions","_ref","_params$isTrigger","onUpdate","_ref2","_params$isTrigger2","onComplate","_params$duration","userInput","Array","isArray","_this2$caclCurrentPos","moveCameraTo","fromArray","set","_this3","_","_params$isTrigger3","_ref3","_ref4","_params$isTrigger4","_params$duration2","get","x","y","z","_this4","arguments","undefined","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","_ref5","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, Vector3 } from '@anov/3d-core'\nimport * as TWEEN from '@tweenjs/tween.js'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport type { BaseModule } from '../../utils/abstract'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Anov3D from '../../sdkEntry'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera implements BaseModule {\n app: Anov3D\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(app: Anov3D) {\n this.app = app\n this.isTrigger = false\n this.camera = app.sceneControl.camera!\n this.controls = app.sceneControl.controls!\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod && !this.isTrigger) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n }\n\n // if (this.isTransitionPeriod)\n // this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage({\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"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 { getSceneInfo } from "../../utils/index";
9
9
  var Develop = /*#__PURE__*/function () {
10
10
  function Develop(app) {
@@ -1 +1 @@
1
- {"version":3,"names":["getSceneInfo","Develop","app","scene","sceneControl","objects","vertices","triangles","memory","performance","total","objectsCount","trianglesCount","verticesCount","drawCall","renderer","info","render","calls","memorySize","usedJSHeapSize","toFixed","current"],"sources":["../../../src/module/develop/index.ts"],"sourcesContent":["import type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\nimport { getSceneInfo } from '../../utils/index'\n\nclass Develop implements BaseModule {\n app: Anov3D\n\n constructor(app: Anov3D) {\n this.app = app\n }\n\n getInfo() {\n const scene = this.app.sceneControl\n const {\n objects,\n vertices,\n triangles,\n } = getSceneInfo(scene.scene!)\n\n // @ts-ignore\n const memory = performance.memory as any\n\n return {\n total: {\n objectsCount: objects,\n trianglesCount: triangles,\n verticesCount: vertices,\n drawCall: scene.renderer!.info.render.calls,\n memorySize: ~~((memory.usedJSHeapSize / (1024 * 1024)).toFixed(2)),\n },\n current: {\n trianglesCount: scene.renderer!.info.render.triangles,\n },\n }\n }\n}\n\nexport default Develop"],"mappings":";;;;;;;AAEA,SAASA,YAAY;AAA2B,IAE1CC,OAAO;EAGX,iBAAYC,GAAW,EAAE;IAAA;IAAA;IACvB,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAAC;IAAA;IAAA,OAED,mBAAU;MACR,IAAMC,KAAK,GAAG,IAAI,CAACD,GAAG,CAACE,YAAY;MACnC,oBAIIJ,YAAY,CAACG,KAAK,CAACA,KAAK,CAAE;QAH5BE,OAAO,iBAAPA,OAAO;QACPC,QAAQ,iBAARA,QAAQ;QACRC,SAAS,iBAATA,SAAS;;MAGX;MACA,IAAMC,MAAM,GAAGC,WAAW,CAACD,MAAa;MAExC,OAAO;QACLE,KAAK,EAAE;UACLC,YAAY,EAAEN,OAAO;UACrBO,cAAc,EAAEL,SAAS;UACzBM,aAAa,EAAEP,QAAQ;UACvBQ,QAAQ,EAAEX,KAAK,CAACY,QAAQ,CAAEC,IAAI,CAACC,MAAM,CAACC,KAAK;UAC3CC,UAAU,EAAE,CAAC,CAAE,CAACX,MAAM,CAACY,cAAc,IAAI,IAAI,GAAG,IAAI,CAAC,EAAEC,OAAO,CAAC,CAAC;QAClE,CAAC;QACDC,OAAO,EAAE;UACPV,cAAc,EAAET,KAAK,CAACY,QAAQ,CAAEC,IAAI,CAACC,MAAM,CAACV;QAC9C;MACF,CAAC;IACH;EAAC;EAAA;AAAA;AAGH,eAAeN,OAAO"}
1
+ {"version":3,"names":["getSceneInfo","Develop","app","_classCallCheck","_defineProperty","_createClass","key","value","getInfo","scene","sceneControl","_getSceneInfo","objects","vertices","triangles","memory","performance","total","objectsCount","trianglesCount","verticesCount","drawCall","renderer","info","render","calls","memorySize","usedJSHeapSize","toFixed","current"],"sources":["../../../src/module/develop/index.ts"],"sourcesContent":["import type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\nimport { getSceneInfo } from '../../utils/index'\n\nclass Develop implements BaseModule {\n app: Anov3D\n\n constructor(app: Anov3D) {\n this.app = app\n }\n\n getInfo() {\n const scene = this.app.sceneControl\n const {\n objects,\n vertices,\n triangles,\n } = getSceneInfo(scene.scene!)\n\n // @ts-ignore\n const memory = performance.memory as any\n\n return {\n total: {\n objectsCount: objects,\n trianglesCount: triangles,\n verticesCount: vertices,\n drawCall: scene.renderer!.info.render.calls,\n memorySize: ~~((memory.usedJSHeapSize / (1024 * 1024)).toFixed(2)),\n },\n current: {\n trianglesCount: scene.renderer!.info.render.triangles,\n },\n }\n }\n}\n\nexport default Develop"],"mappings":";;;;;;;AAEA,SAASA,YAAY;AAA2B,IAE1CC,OAAO;EAGX,SAAAA,QAAYC,GAAW,EAAE;IAAAC,eAAA,OAAAF,OAAA;IAAAG,eAAA;IACvB,IAAI,CAACF,GAAG,GAAGA,GAAG;EAChB;EAACG,YAAA,CAAAJ,OAAA;IAAAK,GAAA;IAAAC,KAAA,EAED,SAAAC,QAAA,EAAU;MACR,IAAMC,KAAK,GAAG,IAAI,CAACP,GAAG,CAACQ,YAAY;MACnC,IAAAC,aAAA,GAIIX,YAAY,CAACS,KAAK,CAACA,KAAM,CAAC;QAH5BG,OAAO,GAAAD,aAAA,CAAPC,OAAO;QACPC,QAAQ,GAAAF,aAAA,CAARE,QAAQ;QACRC,SAAS,GAAAH,aAAA,CAATG,SAAS;;MAGX;MACA,IAAMC,MAAM,GAAGC,WAAW,CAACD,MAAa;MAExC,OAAO;QACLE,KAAK,EAAE;UACLC,YAAY,EAAEN,OAAO;UACrBO,cAAc,EAAEL,SAAS;UACzBM,aAAa,EAAEP,QAAQ;UACvBQ,QAAQ,EAAEZ,KAAK,CAACa,QAAQ,CAAEC,IAAI,CAACC,MAAM,CAACC,KAAK;UAC3CC,UAAU,EAAE,CAAC,CAAE,CAACX,MAAM,CAACY,cAAc,IAAI,IAAI,GAAG,IAAI,CAAC,EAAEC,OAAO,CAAC,CAAC;QAClE,CAAC;QACDC,OAAO,EAAE;UACPV,cAAc,EAAEV,KAAK,CAACa,QAAQ,CAAEC,IAAI,CAACC,MAAM,CAACV;QAC9C;MACF,CAAC;IACH;EAAC;EAAA,OAAAb,OAAA;AAAA;AAGH,eAAeA,OAAO"}
@@ -0,0 +1,146 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
+ function _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; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ 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); }
11
+ import { use } from '@anov/3d-core';
12
+ var BaseEntity = /*#__PURE__*/function () {
13
+ function BaseEntity() {
14
+ _classCallCheck(this, BaseEntity);
15
+ _defineProperty(this, "strategyManage", void 0);
16
+ _defineProperty(this, "catchStrategy", new Map());
17
+ }
18
+ _createClass(BaseEntity, [{
19
+ key: "registerStrategy",
20
+ value: function () {
21
+ var _registerStrategy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(style) {
22
+ var strategyClass, strategyInstance;
23
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
24
+ while (1) switch (_context.prev = _context.next) {
25
+ case 0:
26
+ if (this.catchStrategy.has(style)) {
27
+ _context.next = 10;
28
+ break;
29
+ }
30
+ strategyClass = this.strategyManage[style];
31
+ if (!strategyClass) {
32
+ _context.next = 9;
33
+ break;
34
+ }
35
+ _context.next = 5;
36
+ return strategyClass();
37
+ case 5:
38
+ strategyInstance = _context.sent;
39
+ // eslint-disable-next-line new-cap
40
+ this.catchStrategy.set(style, new strategyInstance());
41
+ _context.next = 10;
42
+ break;
43
+ case 9:
44
+ throw new Error("Strategy for style ".concat(style, " not found"));
45
+ case 10:
46
+ return _context.abrupt("return", this.catchStrategy.get(style));
47
+ case 11:
48
+ case "end":
49
+ return _context.stop();
50
+ }
51
+ }, _callee, this);
52
+ }));
53
+ function registerStrategy(_x) {
54
+ return _registerStrategy.apply(this, arguments);
55
+ }
56
+ return registerStrategy;
57
+ }()
58
+ }, {
59
+ key: "create",
60
+ value: function () {
61
+ var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(json) {
62
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
63
+ while (1) switch (_context2.prev = _context2.next) {
64
+ case 0:
65
+ _context2.next = 2;
66
+ return this.applyStrategy('create', json);
67
+ case 2:
68
+ return _context2.abrupt("return", _context2.sent);
69
+ case 3:
70
+ case "end":
71
+ return _context2.stop();
72
+ }
73
+ }, _callee2, this);
74
+ }));
75
+ function create(_x2) {
76
+ return _create.apply(this, arguments);
77
+ }
78
+ return create;
79
+ }()
80
+ }, {
81
+ key: "update",
82
+ value: function () {
83
+ var _update = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(mesh, json) {
84
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
85
+ while (1) switch (_context3.prev = _context3.next) {
86
+ case 0:
87
+ _context3.next = 2;
88
+ return this.applyStrategy('update', json, mesh);
89
+ case 2:
90
+ return _context3.abrupt("return", _context3.sent);
91
+ case 3:
92
+ case "end":
93
+ return _context3.stop();
94
+ }
95
+ }, _callee3, this);
96
+ }));
97
+ function update(_x3, _x4) {
98
+ return _update.apply(this, arguments);
99
+ }
100
+ return update;
101
+ }()
102
+ }, {
103
+ key: "applyStrategy",
104
+ value: function () {
105
+ var _applyStrategy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(method, json, updateMesh) {
106
+ var strategy, mesh;
107
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
108
+ while (1) switch (_context4.prev = _context4.next) {
109
+ case 0:
110
+ _context4.next = 2;
111
+ return this.registerStrategy(json.style);
112
+ case 2:
113
+ strategy = _context4.sent;
114
+ _context4.next = 5;
115
+ return strategy[method](json, updateMesh);
116
+ case 5:
117
+ mesh = _context4.sent;
118
+ this.addToScene(mesh, json);
119
+ return _context4.abrupt("return", mesh);
120
+ case 8:
121
+ case "end":
122
+ return _context4.stop();
123
+ }
124
+ }, _callee4, this);
125
+ }));
126
+ function applyStrategy(_x5, _x6, _x7) {
127
+ return _applyStrategy.apply(this, arguments);
128
+ }
129
+ return applyStrategy;
130
+ }()
131
+ }, {
132
+ key: "addToScene",
133
+ value: function addToScene(mesh, json) {
134
+ var scale = json.scale,
135
+ position = json.position,
136
+ visible = json.visible;
137
+ if (scale) mesh.scale.fromArray(scale);
138
+ if (position) mesh.position.fromArray(position);
139
+ if (visible !== undefined) mesh.visible = visible;
140
+ use.useScene().scene.add(mesh);
141
+ }
142
+ }]);
143
+ return BaseEntity;
144
+ }();
145
+ export default BaseEntity;
146
+ //# sourceMappingURL=baseEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","use","BaseEntity","Map","_registerStrategy","_callee","style","strategyClass","strategyInstance","_callee$","_context","catchStrategy","has","strategyManage","set","concat","get","registerStrategy","_x","_create","_callee2","json","_callee2$","_context2","applyStrategy","_x2","_update","_callee3","mesh","_callee3$","_context3","update","_x3","_x4","_applyStrategy","_callee4","updateMesh","strategy","_callee4$","_context4","addToScene","_x5","_x6","_x7","scale","position","visible","fromArray","useScene","scene","add"],"sources":["../../../src/module/entity/baseEntity.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport type { Option } from './type'\n\nclass BaseEntity {\n strategyManage: any\n catchStrategy: Map<string, any> = new Map()\n\n private async registerStrategy(style) {\n if (!this.catchStrategy.has(style)) {\n const strategyClass = this.strategyManage[style]\n if (strategyClass) {\n const strategyInstance = await strategyClass()\n // eslint-disable-next-line new-cap\n this.catchStrategy.set(style, new strategyInstance())\n }\n else {\n throw new Error(`Strategy for style ${style} not found`)\n }\n }\n return this.catchStrategy.get(style)\n }\n\n async create(json: Option) {\n return await this.applyStrategy('create', json)\n }\n\n async update(mesh: Object3D, json: Option) {\n return await this.applyStrategy('update', json, mesh)\n }\n\n private async applyStrategy(method: 'create' | 'update', json: Option, updateMesh?: Object3D) {\n const strategy = await this.registerStrategy(json.style)\n const mesh = await strategy[method](json, updateMesh)\n this.addToScene(mesh, json)\n return mesh\n }\n\n private addToScene(mesh: Object3D, json: Option) {\n const { scale, position, visible } = json\n if (scale)\n mesh.scale.fromArray(scale)\n if (position)\n mesh.position.fromArray(position)\n if (visible !== undefined)\n mesh.visible = visible\n use.useScene().scene.add(mesh)\n }\n}\n\nexport default BaseEntity"],"mappings":";+CACA,qJAAAA,mBAAA,YAAAA,oBAAA,WAAAC,CAAA,SAAAC,CAAA,EAAAD,CAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,EAAAC,CAAA,GAAAH,CAAA,CAAAI,cAAA,EAAAC,CAAA,GAAAJ,MAAA,CAAAK,cAAA,cAAAP,CAAA,EAAAD,CAAA,EAAAE,CAAA,IAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,CAAAO,KAAA,KAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,CAAA,GAAAF,CAAA,CAAAG,QAAA,kBAAAC,CAAA,GAAAJ,CAAA,CAAAK,aAAA,uBAAAC,CAAA,GAAAN,CAAA,CAAAO,WAAA,8BAAAC,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAC,MAAA,CAAAK,cAAA,CAAAP,CAAA,EAAAD,CAAA,IAAAS,KAAA,EAAAP,CAAA,EAAAiB,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAApB,CAAA,CAAAD,CAAA,WAAAkB,MAAA,mBAAAjB,CAAA,IAAAiB,MAAA,YAAAA,OAAAjB,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAD,CAAA,CAAAD,CAAA,IAAAE,CAAA,gBAAAoB,KAAArB,CAAA,EAAAD,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAK,CAAA,GAAAV,CAAA,IAAAA,CAAA,CAAAI,SAAA,YAAAmB,SAAA,GAAAvB,CAAA,GAAAuB,SAAA,EAAAX,CAAA,GAAAT,MAAA,CAAAqB,MAAA,CAAAd,CAAA,CAAAN,SAAA,GAAAU,CAAA,OAAAW,OAAA,CAAApB,CAAA,gBAAAE,CAAA,CAAAK,CAAA,eAAAH,KAAA,EAAAiB,gBAAA,CAAAzB,CAAA,EAAAC,CAAA,EAAAY,CAAA,MAAAF,CAAA,aAAAe,SAAA1B,CAAA,EAAAD,CAAA,EAAAE,CAAA,mBAAA0B,IAAA,YAAAC,GAAA,EAAA5B,CAAA,CAAA6B,IAAA,CAAA9B,CAAA,EAAAE,CAAA,cAAAD,CAAA,aAAA2B,IAAA,WAAAC,GAAA,EAAA5B,CAAA,QAAAD,CAAA,CAAAsB,IAAA,GAAAA,IAAA,MAAAS,CAAA,qBAAAC,CAAA,qBAAAC,CAAA,gBAAAC,CAAA,gBAAAC,CAAA,gBAAAZ,UAAA,cAAAa,kBAAA,cAAAC,2BAAA,SAAAC,CAAA,OAAApB,MAAA,CAAAoB,CAAA,EAAA1B,CAAA,qCAAA2B,CAAA,GAAApC,MAAA,CAAAqC,cAAA,EAAAC,CAAA,GAAAF,CAAA,IAAAA,CAAA,CAAAA,CAAA,CAAAG,MAAA,QAAAD,CAAA,IAAAA,CAAA,KAAAvC,CAAA,IAAAG,CAAA,CAAAyB,IAAA,CAAAW,CAAA,EAAA7B,CAAA,MAAA0B,CAAA,GAAAG,CAAA,OAAAE,CAAA,GAAAN,0BAAA,CAAAjC,SAAA,GAAAmB,SAAA,CAAAnB,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAc,CAAA,YAAAM,sBAAA3C,CAAA,gCAAA4C,OAAA,WAAA7C,CAAA,IAAAkB,MAAA,CAAAjB,CAAA,EAAAD,CAAA,YAAAC,CAAA,gBAAA6C,OAAA,CAAA9C,CAAA,EAAAC,CAAA,sBAAA8C,cAAA9C,CAAA,EAAAD,CAAA,aAAAgD,OAAA9C,CAAA,EAAAK,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAE,CAAA,GAAAa,QAAA,CAAA1B,CAAA,CAAAC,CAAA,GAAAD,CAAA,EAAAM,CAAA,mBAAAO,CAAA,CAAAc,IAAA,QAAAZ,CAAA,GAAAF,CAAA,CAAAe,GAAA,EAAAE,CAAA,GAAAf,CAAA,CAAAP,KAAA,SAAAsB,CAAA,gBAAAkB,OAAA,CAAAlB,CAAA,KAAA1B,CAAA,CAAAyB,IAAA,CAAAC,CAAA,eAAA/B,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,CAAAoB,OAAA,EAAAC,IAAA,WAAAnD,CAAA,IAAA+C,MAAA,SAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,gBAAAX,CAAA,IAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,QAAAZ,CAAA,CAAAkD,OAAA,CAAAnB,CAAA,EAAAqB,IAAA,WAAAnD,CAAA,IAAAe,CAAA,CAAAP,KAAA,GAAAR,CAAA,EAAAS,CAAA,CAAAM,CAAA,gBAAAf,CAAA,WAAA+C,MAAA,UAAA/C,CAAA,EAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,CAAAE,CAAA,CAAAe,GAAA,SAAA3B,CAAA,EAAAK,CAAA,oBAAAE,KAAA,WAAAA,MAAAR,CAAA,EAAAI,CAAA,aAAAgD,2BAAA,eAAArD,CAAA,WAAAA,CAAA,EAAAE,CAAA,IAAA8C,MAAA,CAAA/C,CAAA,EAAAI,CAAA,EAAAL,CAAA,EAAAE,CAAA,gBAAAA,CAAA,GAAAA,CAAA,GAAAA,CAAA,CAAAkD,IAAA,CAAAC,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAA3B,iBAAA1B,CAAA,EAAAE,CAAA,EAAAG,CAAA,QAAAE,CAAA,GAAAwB,CAAA,mBAAArB,CAAA,EAAAE,CAAA,QAAAL,CAAA,KAAA0B,CAAA,YAAAqB,KAAA,sCAAA/C,CAAA,KAAA2B,CAAA,oBAAAxB,CAAA,QAAAE,CAAA,WAAAH,KAAA,EAAAR,CAAA,EAAAsD,IAAA,eAAAlD,CAAA,CAAAmD,MAAA,GAAA9C,CAAA,EAAAL,CAAA,CAAAwB,GAAA,GAAAjB,CAAA,UAAAE,CAAA,GAAAT,CAAA,CAAAoD,QAAA,MAAA3C,CAAA,QAAAE,CAAA,GAAA0C,mBAAA,CAAA5C,CAAA,EAAAT,CAAA,OAAAW,CAAA,QAAAA,CAAA,KAAAmB,CAAA,mBAAAnB,CAAA,qBAAAX,CAAA,CAAAmD,MAAA,EAAAnD,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAuD,KAAA,GAAAvD,CAAA,CAAAwB,GAAA,sBAAAxB,CAAA,CAAAmD,MAAA,QAAAjD,CAAA,KAAAwB,CAAA,QAAAxB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAwB,GAAA,EAAAxB,CAAA,CAAAwD,iBAAA,CAAAxD,CAAA,CAAAwB,GAAA,uBAAAxB,CAAA,CAAAmD,MAAA,IAAAnD,CAAA,CAAAyD,MAAA,WAAAzD,CAAA,CAAAwB,GAAA,GAAAtB,CAAA,GAAA0B,CAAA,MAAAK,CAAA,GAAAX,QAAA,CAAA3B,CAAA,EAAAE,CAAA,EAAAG,CAAA,oBAAAiC,CAAA,CAAAV,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAkD,IAAA,GAAArB,CAAA,GAAAF,CAAA,EAAAM,CAAA,CAAAT,GAAA,KAAAM,CAAA,qBAAA1B,KAAA,EAAA6B,CAAA,CAAAT,GAAA,EAAA0B,IAAA,EAAAlD,CAAA,CAAAkD,IAAA,kBAAAjB,CAAA,CAAAV,IAAA,KAAArB,CAAA,GAAA2B,CAAA,EAAA7B,CAAA,CAAAmD,MAAA,YAAAnD,CAAA,CAAAwB,GAAA,GAAAS,CAAA,CAAAT,GAAA,mBAAA6B,oBAAA1D,CAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAH,CAAA,CAAAsD,MAAA,EAAAjD,CAAA,GAAAP,CAAA,CAAAa,QAAA,CAAAR,CAAA,OAAAE,CAAA,KAAAN,CAAA,SAAAC,CAAA,CAAAuD,QAAA,qBAAApD,CAAA,IAAAL,CAAA,CAAAa,QAAA,CAAAkD,MAAA,KAAA7D,CAAA,CAAAsD,MAAA,aAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,EAAAyD,mBAAA,CAAA1D,CAAA,EAAAE,CAAA,eAAAA,CAAA,CAAAsD,MAAA,kBAAAnD,CAAA,KAAAH,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,uCAAA3D,CAAA,iBAAA8B,CAAA,MAAAzB,CAAA,GAAAiB,QAAA,CAAApB,CAAA,EAAAP,CAAA,CAAAa,QAAA,EAAAX,CAAA,CAAA2B,GAAA,mBAAAnB,CAAA,CAAAkB,IAAA,SAAA1B,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,GAAAnB,CAAA,CAAAmB,GAAA,EAAA3B,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,MAAAvB,CAAA,GAAAF,CAAA,CAAAmB,GAAA,SAAAjB,CAAA,GAAAA,CAAA,CAAA2C,IAAA,IAAArD,CAAA,CAAAF,CAAA,CAAAiE,UAAA,IAAArD,CAAA,CAAAH,KAAA,EAAAP,CAAA,CAAAgE,IAAA,GAAAlE,CAAA,CAAAmE,OAAA,eAAAjE,CAAA,CAAAsD,MAAA,KAAAtD,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,GAAAC,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,IAAAvB,CAAA,IAAAV,CAAA,CAAAsD,MAAA,YAAAtD,CAAA,CAAA2B,GAAA,OAAAmC,SAAA,sCAAA9D,CAAA,CAAAuD,QAAA,SAAAtB,CAAA,cAAAiC,aAAAnE,CAAA,QAAAD,CAAA,KAAAqE,MAAA,EAAApE,CAAA,YAAAA,CAAA,KAAAD,CAAA,CAAAsE,QAAA,GAAArE,CAAA,WAAAA,CAAA,KAAAD,CAAA,CAAAuE,UAAA,GAAAtE,CAAA,KAAAD,CAAA,CAAAwE,QAAA,GAAAvE,CAAA,WAAAwE,UAAA,CAAAC,IAAA,CAAA1E,CAAA,cAAA2E,cAAA1E,CAAA,QAAAD,CAAA,GAAAC,CAAA,CAAA2E,UAAA,QAAA5E,CAAA,CAAA4B,IAAA,oBAAA5B,CAAA,CAAA6B,GAAA,EAAA5B,CAAA,CAAA2E,UAAA,GAAA5E,CAAA,aAAAyB,QAAAxB,CAAA,SAAAwE,UAAA,MAAAJ,MAAA,aAAApE,CAAA,CAAA4C,OAAA,CAAAuB,YAAA,cAAAS,KAAA,iBAAAnC,OAAA1C,CAAA,QAAAA,CAAA,WAAAA,CAAA,QAAAE,CAAA,GAAAF,CAAA,CAAAY,CAAA,OAAAV,CAAA,SAAAA,CAAA,CAAA4B,IAAA,CAAA9B,CAAA,4BAAAA,CAAA,CAAAkE,IAAA,SAAAlE,CAAA,OAAA8E,KAAA,CAAA9E,CAAA,CAAA+E,MAAA,SAAAxE,CAAA,OAAAG,CAAA,YAAAwD,KAAA,aAAA3D,CAAA,GAAAP,CAAA,CAAA+E,MAAA,OAAA1E,CAAA,CAAAyB,IAAA,CAAA9B,CAAA,EAAAO,CAAA,UAAA2D,IAAA,CAAAzD,KAAA,GAAAT,CAAA,CAAAO,CAAA,GAAA2D,IAAA,CAAAX,IAAA,OAAAW,IAAA,SAAAA,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,YAAAxD,CAAA,CAAAwD,IAAA,GAAAxD,CAAA,gBAAAsD,SAAA,CAAAf,OAAA,CAAAjD,CAAA,kCAAAoC,iBAAA,CAAAhC,SAAA,GAAAiC,0BAAA,EAAA9B,CAAA,CAAAoC,CAAA,mBAAAlC,KAAA,EAAA4B,0BAAA,EAAAjB,YAAA,SAAAb,CAAA,CAAA8B,0BAAA,mBAAA5B,KAAA,EAAA2B,iBAAA,EAAAhB,YAAA,SAAAgB,iBAAA,CAAA4C,WAAA,GAAA9D,MAAA,CAAAmB,0BAAA,EAAArB,CAAA,wBAAAhB,CAAA,CAAAiF,mBAAA,aAAAhF,CAAA,QAAAD,CAAA,wBAAAC,CAAA,IAAAA,CAAA,CAAAiF,WAAA,WAAAlF,CAAA,KAAAA,CAAA,KAAAoC,iBAAA,6BAAApC,CAAA,CAAAgF,WAAA,IAAAhF,CAAA,CAAAmF,IAAA,OAAAnF,CAAA,CAAAoF,IAAA,aAAAnF,CAAA,WAAAE,MAAA,CAAAkF,cAAA,GAAAlF,MAAA,CAAAkF,cAAA,CAAApF,CAAA,EAAAoC,0BAAA,KAAApC,CAAA,CAAAqF,SAAA,GAAAjD,0BAAA,EAAAnB,MAAA,CAAAjB,CAAA,EAAAe,CAAA,yBAAAf,CAAA,CAAAG,SAAA,GAAAD,MAAA,CAAAqB,MAAA,CAAAmB,CAAA,GAAA1C,CAAA,KAAAD,CAAA,CAAAuF,KAAA,aAAAtF,CAAA,aAAAkD,OAAA,EAAAlD,CAAA,OAAA2C,qBAAA,CAAAG,aAAA,CAAA3C,SAAA,GAAAc,MAAA,CAAA6B,aAAA,CAAA3C,SAAA,EAAAU,CAAA,iCAAAd,CAAA,CAAA+C,aAAA,GAAAA,aAAA,EAAA/C,CAAA,CAAAwF,KAAA,aAAAvF,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,EAAAG,CAAA,eAAAA,CAAA,KAAAA,CAAA,GAAA+E,OAAA,OAAA7E,CAAA,OAAAmC,aAAA,CAAAzB,IAAA,CAAArB,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAE,CAAA,GAAAG,CAAA,UAAAV,CAAA,CAAAiF,mBAAA,CAAA/E,CAAA,IAAAU,CAAA,GAAAA,CAAA,CAAAsD,IAAA,GAAAd,IAAA,WAAAnD,CAAA,WAAAA,CAAA,CAAAsD,IAAA,GAAAtD,CAAA,CAAAQ,KAAA,GAAAG,CAAA,CAAAsD,IAAA,WAAAtB,qBAAA,CAAAD,CAAA,GAAAzB,MAAA,CAAAyB,CAAA,EAAA3B,CAAA,gBAAAE,MAAA,CAAAyB,CAAA,EAAA/B,CAAA,iCAAAM,MAAA,CAAAyB,CAAA,6DAAA3C,CAAA,CAAA0F,IAAA,aAAAzF,CAAA,QAAAD,CAAA,GAAAG,MAAA,CAAAF,CAAA,GAAAC,CAAA,gBAAAG,CAAA,IAAAL,CAAA,EAAAE,CAAA,CAAAwE,IAAA,CAAArE,CAAA,UAAAH,CAAA,CAAAyF,OAAA,aAAAzB,KAAA,WAAAhE,CAAA,CAAA6E,MAAA,SAAA9E,CAAA,GAAAC,CAAA,CAAA0F,GAAA,QAAA3F,CAAA,IAAAD,CAAA,SAAAkE,IAAA,CAAAzD,KAAA,GAAAR,CAAA,EAAAiE,IAAA,CAAAX,IAAA,OAAAW,IAAA,WAAAA,IAAA,CAAAX,IAAA,OAAAW,IAAA,QAAAlE,CAAA,CAAA0C,MAAA,GAAAA,MAAA,EAAAjB,OAAA,CAAArB,SAAA,KAAA8E,WAAA,EAAAzD,OAAA,EAAAoD,KAAA,WAAAA,MAAA7E,CAAA,aAAA6F,IAAA,WAAA3B,IAAA,WAAAP,IAAA,QAAAC,KAAA,GAAA3D,CAAA,OAAAsD,IAAA,YAAAE,QAAA,cAAAD,MAAA,gBAAA3B,GAAA,GAAA5B,CAAA,OAAAwE,UAAA,CAAA5B,OAAA,CAAA8B,aAAA,IAAA3E,CAAA,WAAAE,CAAA,kBAAAA,CAAA,CAAA4F,MAAA,OAAAzF,CAAA,CAAAyB,IAAA,OAAA5B,CAAA,MAAA4E,KAAA,EAAA5E,CAAA,CAAA6F,KAAA,cAAA7F,CAAA,IAAAD,CAAA,MAAA+F,IAAA,WAAAA,KAAA,SAAAzC,IAAA,WAAAtD,CAAA,QAAAwE,UAAA,IAAAG,UAAA,kBAAA3E,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,cAAAoE,IAAA,KAAApC,iBAAA,WAAAA,kBAAA7D,CAAA,aAAAuD,IAAA,QAAAvD,CAAA,MAAAE,CAAA,kBAAAgG,OAAA7F,CAAA,EAAAE,CAAA,WAAAK,CAAA,CAAAgB,IAAA,YAAAhB,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAE,CAAA,CAAAgE,IAAA,GAAA7D,CAAA,EAAAE,CAAA,KAAAL,CAAA,CAAAsD,MAAA,WAAAtD,CAAA,CAAA2B,GAAA,GAAA5B,CAAA,KAAAM,CAAA,aAAAA,CAAA,QAAAkE,UAAA,CAAAM,MAAA,MAAAxE,CAAA,SAAAA,CAAA,QAAAG,CAAA,QAAA+D,UAAA,CAAAlE,CAAA,GAAAK,CAAA,GAAAF,CAAA,CAAAkE,UAAA,iBAAAlE,CAAA,CAAA2D,MAAA,SAAA6B,MAAA,aAAAxF,CAAA,CAAA2D,MAAA,SAAAwB,IAAA,QAAA/E,CAAA,GAAAT,CAAA,CAAAyB,IAAA,CAAApB,CAAA,eAAAM,CAAA,GAAAX,CAAA,CAAAyB,IAAA,CAAApB,CAAA,qBAAAI,CAAA,IAAAE,CAAA,aAAA6E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,gBAAAuB,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,cAAAzD,CAAA,aAAA+E,IAAA,GAAAnF,CAAA,CAAA4D,QAAA,SAAA4B,MAAA,CAAAxF,CAAA,CAAA4D,QAAA,qBAAAtD,CAAA,YAAAsC,KAAA,qDAAAuC,IAAA,GAAAnF,CAAA,CAAA6D,UAAA,SAAA2B,MAAA,CAAAxF,CAAA,CAAA6D,UAAA,YAAAT,MAAA,WAAAA,OAAA7D,CAAA,EAAAD,CAAA,aAAAE,CAAA,QAAAuE,UAAA,CAAAM,MAAA,MAAA7E,CAAA,SAAAA,CAAA,QAAAK,CAAA,QAAAkE,UAAA,CAAAvE,CAAA,OAAAK,CAAA,CAAA8D,MAAA,SAAAwB,IAAA,IAAAxF,CAAA,CAAAyB,IAAA,CAAAvB,CAAA,wBAAAsF,IAAA,GAAAtF,CAAA,CAAAgE,UAAA,QAAA7D,CAAA,GAAAH,CAAA,aAAAG,CAAA,iBAAAT,CAAA,mBAAAA,CAAA,KAAAS,CAAA,CAAA2D,MAAA,IAAArE,CAAA,IAAAA,CAAA,IAAAU,CAAA,CAAA6D,UAAA,KAAA7D,CAAA,cAAAE,CAAA,GAAAF,CAAA,GAAAA,CAAA,CAAAkE,UAAA,cAAAhE,CAAA,CAAAgB,IAAA,GAAA3B,CAAA,EAAAW,CAAA,CAAAiB,GAAA,GAAA7B,CAAA,EAAAU,CAAA,SAAA8C,MAAA,gBAAAU,IAAA,GAAAxD,CAAA,CAAA6D,UAAA,EAAApC,CAAA,SAAAgE,QAAA,CAAAvF,CAAA,MAAAuF,QAAA,WAAAA,SAAAlG,CAAA,EAAAD,CAAA,oBAAAC,CAAA,CAAA2B,IAAA,QAAA3B,CAAA,CAAA4B,GAAA,qBAAA5B,CAAA,CAAA2B,IAAA,mBAAA3B,CAAA,CAAA2B,IAAA,QAAAsC,IAAA,GAAAjE,CAAA,CAAA4B,GAAA,gBAAA5B,CAAA,CAAA2B,IAAA,SAAAqE,IAAA,QAAApE,GAAA,GAAA5B,CAAA,CAAA4B,GAAA,OAAA2B,MAAA,kBAAAU,IAAA,yBAAAjE,CAAA,CAAA2B,IAAA,IAAA5B,CAAA,UAAAkE,IAAA,GAAAlE,CAAA,GAAAmC,CAAA,KAAAiE,MAAA,WAAAA,OAAAnG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAqE,UAAA,KAAAtE,CAAA,cAAAkG,QAAA,CAAAjG,CAAA,CAAA0E,UAAA,EAAA1E,CAAA,CAAAsE,QAAA,GAAAG,aAAA,CAAAzE,CAAA,GAAAiC,CAAA,OAAAkE,KAAA,WAAAC,OAAArG,CAAA,aAAAD,CAAA,QAAAyE,UAAA,CAAAM,MAAA,MAAA/E,CAAA,SAAAA,CAAA,QAAAE,CAAA,QAAAuE,UAAA,CAAAzE,CAAA,OAAAE,CAAA,CAAAmE,MAAA,KAAApE,CAAA,QAAAI,CAAA,GAAAH,CAAA,CAAA0E,UAAA,kBAAAvE,CAAA,CAAAuB,IAAA,QAAArB,CAAA,GAAAF,CAAA,CAAAwB,GAAA,EAAA8C,aAAA,CAAAzE,CAAA,YAAAK,CAAA,gBAAA+C,KAAA,8BAAAiD,aAAA,WAAAA,cAAAvG,CAAA,EAAAE,CAAA,EAAAG,CAAA,gBAAAoD,QAAA,KAAA5C,QAAA,EAAA6B,MAAA,CAAA1C,CAAA,GAAAiE,UAAA,EAAA/D,CAAA,EAAAiE,OAAA,EAAA9D,CAAA,oBAAAmD,MAAA,UAAA3B,GAAA,GAAA5B,CAAA,GAAAkC,CAAA,OAAAnC,CAAA;AAAA,SAAAwG,mBAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAhF,GAAA,cAAAiF,IAAA,GAAAL,GAAA,CAAAI,GAAA,EAAAhF,GAAA,OAAApB,KAAA,GAAAqG,IAAA,CAAArG,KAAA,WAAAsG,KAAA,IAAAL,MAAA,CAAAK,KAAA,iBAAAD,IAAA,CAAAvD,IAAA,IAAAL,OAAA,CAAAzC,KAAA,YAAAgF,OAAA,CAAAvC,OAAA,CAAAzC,KAAA,EAAA2C,IAAA,CAAAuD,KAAA,EAAAC,MAAA;AAAA,SAAAI,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAA3B,OAAA,WAAAvC,OAAA,EAAAwD,MAAA,QAAAD,GAAA,GAAAQ,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAR,MAAAlG,KAAA,IAAA+F,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAnG,KAAA,cAAAmG,OAAAU,GAAA,IAAAd,kBAAA,CAAAC,GAAA,EAAAvD,OAAA,EAAAwD,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAU,GAAA,KAAAX,KAAA,CAAAY,SAAA;AAAA,SAAAC,gBAAAC,QAAA,EAAAC,WAAA,UAAAD,QAAA,YAAAC,WAAA,eAAA1D,SAAA;AAAA,SAAA2D,kBAAAC,MAAA,EAAAC,KAAA,aAAAnH,CAAA,MAAAA,CAAA,GAAAmH,KAAA,CAAA9C,MAAA,EAAArE,CAAA,UAAAoH,UAAA,GAAAD,KAAA,CAAAnH,CAAA,GAAAoH,UAAA,CAAA3G,UAAA,GAAA2G,UAAA,CAAA3G,UAAA,WAAA2G,UAAA,CAAA1G,YAAA,wBAAA0G,UAAA,EAAAA,UAAA,CAAAzG,QAAA,SAAAlB,MAAA,CAAAK,cAAA,CAAAoH,MAAA,EAAAG,cAAA,CAAAD,UAAA,CAAAjB,GAAA,GAAAiB,UAAA;AAAA,SAAAE,aAAAN,WAAA,EAAAO,UAAA,EAAAC,WAAA,QAAAD,UAAA,EAAAN,iBAAA,CAAAD,WAAA,CAAAtH,SAAA,EAAA6H,UAAA,OAAAC,WAAA,EAAAP,iBAAA,CAAAD,WAAA,EAAAQ,WAAA,GAAA/H,MAAA,CAAAK,cAAA,CAAAkH,WAAA,iBAAArG,QAAA,mBAAAqG,WAAA;AAAA,SAAAS,gBAAAC,GAAA,EAAAvB,GAAA,EAAApG,KAAA,IAAAoG,GAAA,GAAAkB,cAAA,CAAAlB,GAAA,OAAAA,GAAA,IAAAuB,GAAA,IAAAjI,MAAA,CAAAK,cAAA,CAAA4H,GAAA,EAAAvB,GAAA,IAAApG,KAAA,EAAAA,KAAA,EAAAU,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAA+G,GAAA,CAAAvB,GAAA,IAAApG,KAAA,WAAA2H,GAAA;AAAA,SAAAL,eAAA9H,CAAA,QAAAS,CAAA,GAAA2H,YAAA,CAAApI,CAAA,gCAAAgD,OAAA,CAAAvC,CAAA,IAAAA,CAAA,GAAA4H,MAAA,CAAA5H,CAAA;AAAA,SAAA2H,aAAApI,CAAA,EAAAC,CAAA,oBAAA+C,OAAA,CAAAhD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAU,MAAA,CAAA4H,WAAA,kBAAAvI,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAA8B,IAAA,CAAA7B,CAAA,EAAAC,CAAA,gCAAA+C,OAAA,CAAAvC,CAAA,UAAAA,CAAA,YAAAsD,SAAA,yEAAA9D,CAAA,GAAAoI,MAAA,GAAAE,MAAA,EAAAvI,CAAA;AAAA,SAASwI,GAAG,QAAQ,eAAe;AAAA,IAG7BC,UAAU;EAAA,SAAAA,WAAA;IAAAlB,eAAA,OAAAkB,UAAA;IAAAP,eAAA;IAAAA,eAAA,wBAEoB,IAAIQ,GAAG,CAAC,CAAC;EAAA;EAAAX,YAAA,CAAAU,UAAA;IAAA7B,GAAA;IAAApG,KAAA;MAAA,IAAAmI,iBAAA,GAAA5B,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAE3C,SAAAyD,QAA+BC,KAAK;QAAA,IAAAC,aAAA,EAAAC,gBAAA;QAAA,OAAAjJ,mBAAA,GAAAuB,IAAA,UAAA2H,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAArD,IAAA,GAAAqD,QAAA,CAAAhF,IAAA;YAAA;cAAA,IAC7B,IAAI,CAACiF,aAAa,CAACC,GAAG,CAACN,KAAK,CAAC;gBAAAI,QAAA,CAAAhF,IAAA;gBAAA;cAAA;cAC1B6E,aAAa,GAAG,IAAI,CAACM,cAAc,CAACP,KAAK,CAAC;cAAA,KAC5CC,aAAa;gBAAAG,QAAA,CAAAhF,IAAA;gBAAA;cAAA;cAAAgF,QAAA,CAAAhF,IAAA;cAAA,OACgB6E,aAAa,CAAC,CAAC;YAAA;cAAxCC,gBAAgB,GAAAE,QAAA,CAAAvF,IAAA;cACtB;cACA,IAAI,CAACwF,aAAa,CAACG,GAAG,CAACR,KAAK,EAAE,IAAIE,gBAAgB,CAAC,CAAC,CAAC;cAAAE,QAAA,CAAAhF,IAAA;cAAA;YAAA;cAAA,MAG/C,IAAIZ,KAAK,uBAAAiG,MAAA,CAAuBT,KAAK,eAAY,CAAC;YAAA;cAAA,OAAAI,QAAA,CAAApF,MAAA,WAGrD,IAAI,CAACqF,aAAa,CAACK,GAAG,CAACV,KAAK,CAAC;YAAA;YAAA;cAAA,OAAAI,QAAA,CAAAlD,IAAA;UAAA;QAAA,GAAA6C,OAAA;MAAA,CACrC;MAAA,SAAAY,iBAAAC,EAAA;QAAA,OAAAd,iBAAA,CAAAvB,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAqC,gBAAA;IAAA;EAAA;IAAA5C,GAAA;IAAApG,KAAA;MAAA,IAAAkJ,OAAA,GAAA3C,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAAwE,SAAaC,IAAY;QAAA,OAAA9J,mBAAA,GAAAuB,IAAA,UAAAwI,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlE,IAAA,GAAAkE,SAAA,CAAA7F,IAAA;YAAA;cAAA6F,SAAA,CAAA7F,IAAA;cAAA,OACV,IAAI,CAAC8F,aAAa,CAAC,QAAQ,EAAEH,IAAI,CAAC;YAAA;cAAA,OAAAE,SAAA,CAAAjG,MAAA,WAAAiG,SAAA,CAAApG,IAAA;YAAA;YAAA;cAAA,OAAAoG,SAAA,CAAA/D,IAAA;UAAA;QAAA,GAAA4D,QAAA;MAAA,CAChD;MAAA,SAAApI,OAAAyI,GAAA;QAAA,OAAAN,OAAA,CAAAtC,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA5F,MAAA;IAAA;EAAA;IAAAqF,GAAA;IAAApG,KAAA;MAAA,IAAAyJ,OAAA,GAAAlD,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAA+E,SAAaC,IAAc,EAAEP,IAAY;QAAA,OAAA9J,mBAAA,GAAAuB,IAAA,UAAA+I,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAzE,IAAA,GAAAyE,SAAA,CAAApG,IAAA;YAAA;cAAAoG,SAAA,CAAApG,IAAA;cAAA,OAC1B,IAAI,CAAC8F,aAAa,CAAC,QAAQ,EAAEH,IAAI,EAAEO,IAAI,CAAC;YAAA;cAAA,OAAAE,SAAA,CAAAxG,MAAA,WAAAwG,SAAA,CAAA3G,IAAA;YAAA;YAAA;cAAA,OAAA2G,SAAA,CAAAtE,IAAA;UAAA;QAAA,GAAAmE,QAAA;MAAA,CACtD;MAAA,SAAAI,OAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAP,OAAA,CAAA7C,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAAmD,MAAA;IAAA;EAAA;IAAA1D,GAAA;IAAApG,KAAA;MAAA,IAAAiK,cAAA,GAAA1D,iBAAA,eAAAjH,mBAAA,GAAAqF,IAAA,CAED,SAAAuF,SAA4BnH,MAA2B,EAAEqG,IAAY,EAAEe,UAAqB;QAAA,IAAAC,QAAA,EAAAT,IAAA;QAAA,OAAArK,mBAAA,GAAAuB,IAAA,UAAAwJ,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlF,IAAA,GAAAkF,SAAA,CAAA7G,IAAA;YAAA;cAAA6G,SAAA,CAAA7G,IAAA;cAAA,OACnE,IAAI,CAACuF,gBAAgB,CAACI,IAAI,CAACf,KAAK,CAAC;YAAA;cAAlD+B,QAAQ,GAAAE,SAAA,CAAApH,IAAA;cAAAoH,SAAA,CAAA7G,IAAA;cAAA,OACK2G,QAAQ,CAACrH,MAAM,CAAC,CAACqG,IAAI,EAAEe,UAAU,CAAC;YAAA;cAA/CR,IAAI,GAAAW,SAAA,CAAApH,IAAA;cACV,IAAI,CAACqH,UAAU,CAACZ,IAAI,EAAEP,IAAI,CAAC;cAAA,OAAAkB,SAAA,CAAAjH,MAAA,WACpBsG,IAAI;YAAA;YAAA;cAAA,OAAAW,SAAA,CAAA/E,IAAA;UAAA;QAAA,GAAA2E,QAAA;MAAA,CACZ;MAAA,SAAAX,cAAAiB,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAT,cAAA,CAAArD,KAAA,OAAAD,SAAA;MAAA;MAAA,OAAA4C,aAAA;IAAA;EAAA;IAAAnD,GAAA;IAAApG,KAAA,EAED,SAAAuK,WAAmBZ,IAAc,EAAEP,IAAY,EAAE;MAC/C,IAAQuB,KAAK,GAAwBvB,IAAI,CAAjCuB,KAAK;QAAEC,QAAQ,GAAcxB,IAAI,CAA1BwB,QAAQ;QAAEC,OAAO,GAAKzB,IAAI,CAAhByB,OAAO;MAChC,IAAIF,KAAK,EACPhB,IAAI,CAACgB,KAAK,CAACG,SAAS,CAACH,KAAK,CAAC;MAC7B,IAAIC,QAAQ,EACVjB,IAAI,CAACiB,QAAQ,CAACE,SAAS,CAACF,QAAQ,CAAC;MACnC,IAAIC,OAAO,KAAK/D,SAAS,EACvB6C,IAAI,CAACkB,OAAO,GAAGA,OAAO;MACxB7C,GAAG,CAAC+C,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACC,GAAG,CAACtB,IAAI,CAAC;IAChC;EAAC;EAAA,OAAA1B,UAAA;AAAA;AAGH,eAAeA,UAAU"}