@hology/core 0.0.91 → 0.0.93

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 (419) hide show
  1. package/dist/config/project-config.d.ts +1 -0
  2. package/dist/config/project-config.d.ts.map +1 -0
  3. package/dist/config/project-config.js +1 -2
  4. package/dist/controllers/base-game-controller.d.ts +1 -0
  5. package/dist/controllers/base-game-controller.d.ts.map +1 -0
  6. package/dist/controllers/base-game-controller.js +1 -2
  7. package/dist/csm.d.ts +1 -0
  8. package/dist/csm.d.ts.map +1 -0
  9. package/dist/csm.js +1 -2
  10. package/dist/effects/particles/examples.d.ts +1 -0
  11. package/dist/effects/particles/examples.d.ts.map +1 -0
  12. package/dist/effects/particles/examples.js +1 -2
  13. package/dist/effects/particles/particle-system-config.d.ts +1 -0
  14. package/dist/effects/particles/particle-system-config.d.ts.map +1 -0
  15. package/dist/effects/particles/particle-system-config.js +1 -2
  16. package/dist/effects/vfx/behaviours.d.ts +3 -1
  17. package/dist/effects/vfx/behaviours.d.ts.map +1 -0
  18. package/dist/effects/vfx/behaviours.js +1 -2
  19. package/dist/effects/vfx/index.d.ts +1 -0
  20. package/dist/effects/vfx/index.d.ts.map +1 -0
  21. package/dist/effects/vfx/index.js +1 -2
  22. package/dist/effects/vfx/initializsers.d.ts +20 -39
  23. package/dist/effects/vfx/initializsers.d.ts.map +1 -0
  24. package/dist/effects/vfx/initializsers.js +1 -2
  25. package/dist/effects/vfx/rates.d.ts +5 -4
  26. package/dist/effects/vfx/rates.d.ts.map +1 -0
  27. package/dist/effects/vfx/rates.js +1 -2
  28. package/dist/effects/vfx/stretched-sprite.d.ts +1 -0
  29. package/dist/effects/vfx/stretched-sprite.d.ts.map +1 -0
  30. package/dist/effects/vfx/stretched-sprite.js +1 -2
  31. package/dist/effects/vfx/trail-renderer.d.ts +1 -0
  32. package/dist/effects/vfx/trail-renderer.d.ts.map +1 -0
  33. package/dist/effects/vfx/trail-renderer.js +1 -2
  34. package/dist/effects/vfx/vfx-actor.d.ts +3 -1
  35. package/dist/effects/vfx/vfx-actor.d.ts.map +1 -0
  36. package/dist/effects/vfx/vfx-actor.js +1 -2
  37. package/dist/effects/vfx/vfx-asset.d.ts +14 -0
  38. package/dist/effects/vfx/vfx-asset.d.ts.map +1 -0
  39. package/dist/effects/vfx/vfx-asset.js +1 -2
  40. package/dist/effects/vfx/vfx-collision-behaviour.d.ts +19 -0
  41. package/dist/effects/vfx/vfx-collision-behaviour.d.ts.map +1 -0
  42. package/dist/effects/vfx/vfx-collision-behaviour.js +4 -0
  43. package/dist/effects/vfx/vfx-defs.d.ts +33 -19
  44. package/dist/effects/vfx/vfx-defs.d.ts.map +1 -0
  45. package/dist/effects/vfx/vfx-defs.js +1 -2
  46. package/dist/effects/vfx/vfx-materializer.d.ts +11 -3
  47. package/dist/effects/vfx/vfx-materializer.d.ts.map +1 -0
  48. package/dist/effects/vfx/vfx-materializer.js +1 -2
  49. package/dist/effects/vfx/vfx-old-materializer.d.ts +2 -11
  50. package/dist/effects/vfx/vfx-old-materializer.d.ts.map +1 -0
  51. package/dist/effects/vfx/vfx-old-materializer.js +1 -2
  52. package/dist/effects/vfx/vfx-param.d.ts +1 -0
  53. package/dist/effects/vfx/vfx-param.d.ts.map +1 -0
  54. package/dist/effects/vfx/vfx-param.js +1 -2
  55. package/dist/effects/vfx/vfx-renderers.d.ts +3 -1
  56. package/dist/effects/vfx/vfx-renderers.d.ts.map +1 -0
  57. package/dist/effects/vfx/vfx-renderers.js +1 -2
  58. package/dist/effects/vfx/vfx-service.d.ts +1 -0
  59. package/dist/effects/vfx/vfx-service.d.ts.map +1 -0
  60. package/dist/effects/vfx/vfx-service.js +1 -2
  61. package/dist/effects/vfx/zones.d.ts +2 -1
  62. package/dist/effects/vfx/zones.d.ts.map +1 -0
  63. package/dist/effects/vfx/zones.js +1 -2
  64. package/dist/game-component/component-decorators.d.ts +1 -0
  65. package/dist/game-component/component-decorators.d.ts.map +1 -0
  66. package/dist/game-component/component-decorators.js +1 -2
  67. package/dist/game-component/game-component.d.ts +1 -0
  68. package/dist/game-component/game-component.d.ts.map +1 -0
  69. package/dist/game-component/game-component.js +1 -2
  70. package/dist/gameplay/actors/actor.d.ts +1 -0
  71. package/dist/gameplay/actors/actor.d.ts.map +1 -0
  72. package/dist/gameplay/actors/actor.js +1 -2
  73. package/dist/gameplay/actors/builtin/camera-actor.d.ts +1 -0
  74. package/dist/gameplay/actors/builtin/camera-actor.d.ts.map +1 -0
  75. package/dist/gameplay/actors/builtin/camera-actor.js +1 -2
  76. package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts +1 -0
  77. package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts.map +1 -0
  78. package/dist/gameplay/actors/builtin/components/character/character-animation.js +1 -2
  79. package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts +1 -0
  80. package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts.map +1 -0
  81. package/dist/gameplay/actors/builtin/components/character/character-movement copy.js +1 -2
  82. package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts +1 -0
  83. package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts.map +1 -0
  84. package/dist/gameplay/actors/builtin/components/character/character-movement.js +1 -2
  85. package/dist/gameplay/actors/builtin/components/character/modes.d.ts +1 -0
  86. package/dist/gameplay/actors/builtin/components/character/modes.d.ts.map +1 -0
  87. package/dist/gameplay/actors/builtin/components/character/modes.js +1 -2
  88. package/dist/gameplay/actors/builtin/components/mesh-component.d.ts +1 -0
  89. package/dist/gameplay/actors/builtin/components/mesh-component.d.ts.map +1 -0
  90. package/dist/gameplay/actors/builtin/components/mesh-component.js +1 -2
  91. package/dist/gameplay/actors/builtin/components/scene-component.d.ts +1 -0
  92. package/dist/gameplay/actors/builtin/components/scene-component.d.ts.map +1 -0
  93. package/dist/gameplay/actors/builtin/components/scene-component.js +1 -2
  94. package/dist/gameplay/actors/builtin/index.d.ts +1 -0
  95. package/dist/gameplay/actors/builtin/index.d.ts.map +1 -0
  96. package/dist/gameplay/actors/builtin/index.js +1 -2
  97. package/dist/gameplay/actors/builtin/navmesh-actor.d.ts +1 -0
  98. package/dist/gameplay/actors/builtin/navmesh-actor.d.ts.map +1 -0
  99. package/dist/gameplay/actors/builtin/navmesh-actor.js +1 -2
  100. package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts +1 -0
  101. package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts.map +1 -0
  102. package/dist/gameplay/actors/builtin/positional-audio-actor.js +1 -2
  103. package/dist/gameplay/actors/builtin/spawn-point.d.ts +1 -0
  104. package/dist/gameplay/actors/builtin/spawn-point.d.ts.map +1 -0
  105. package/dist/gameplay/actors/builtin/spawn-point.js +1 -2
  106. package/dist/gameplay/actors/builtin/trigger-volume.d.ts +1 -0
  107. package/dist/gameplay/actors/builtin/trigger-volume.d.ts.map +1 -0
  108. package/dist/gameplay/actors/builtin/trigger-volume.js +1 -2
  109. package/dist/gameplay/actors/camera/camera-component.d.ts +1 -0
  110. package/dist/gameplay/actors/camera/camera-component.d.ts.map +1 -0
  111. package/dist/gameplay/actors/camera/camera-component.js +1 -2
  112. package/dist/gameplay/actors/camera/third-person-camera-component.d.ts +1 -0
  113. package/dist/gameplay/actors/camera/third-person-camera-component.d.ts.map +1 -0
  114. package/dist/gameplay/actors/camera/third-person-camera-component.js +1 -2
  115. package/dist/gameplay/actors/component.d.ts +1 -0
  116. package/dist/gameplay/actors/component.d.ts.map +1 -0
  117. package/dist/gameplay/actors/component.js +1 -2
  118. package/dist/gameplay/actors/factory.d.ts +1 -0
  119. package/dist/gameplay/actors/factory.d.ts.map +1 -0
  120. package/dist/gameplay/actors/factory.js +1 -2
  121. package/dist/gameplay/actors/index.d.ts +1 -0
  122. package/dist/gameplay/actors/index.d.ts.map +1 -0
  123. package/dist/gameplay/actors/index.js +1 -2
  124. package/dist/gameplay/actors/internal/component-init.d.ts +1 -0
  125. package/dist/gameplay/actors/internal/component-init.d.ts.map +1 -0
  126. package/dist/gameplay/actors/internal/component-init.js +1 -2
  127. package/dist/gameplay/actors/internal/container-map.d.ts +1 -0
  128. package/dist/gameplay/actors/internal/container-map.d.ts.map +1 -0
  129. package/dist/gameplay/actors/internal/container-map.js +1 -2
  130. package/dist/gameplay/ai/behavior-tree/bt.d.ts +1 -0
  131. package/dist/gameplay/ai/behavior-tree/bt.d.ts.map +1 -0
  132. package/dist/gameplay/ai/behavior-tree/bt.js +1 -2
  133. package/dist/gameplay/ai/behavior-tree/move.d.ts +1 -0
  134. package/dist/gameplay/ai/behavior-tree/move.d.ts.map +1 -0
  135. package/dist/gameplay/ai/behavior-tree/move.js +1 -2
  136. package/dist/gameplay/ai/build-tile.d.ts +2 -1
  137. package/dist/gameplay/ai/build-tile.d.ts.map +1 -0
  138. package/dist/gameplay/ai/build-tile.js +1 -2
  139. package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts +1 -0
  140. package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts.map +1 -0
  141. package/dist/gameplay/ai/dynamic-tiled-navmesh.js +1 -2
  142. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts +1 -0
  143. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts.map +1 -0
  144. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.js +1 -2
  145. package/dist/gameplay/ai/index.d.ts +1 -0
  146. package/dist/gameplay/ai/index.d.ts.map +1 -0
  147. package/dist/gameplay/ai/index.js +1 -2
  148. package/dist/gameplay/ai/navigation.d.ts +1 -0
  149. package/dist/gameplay/ai/navigation.d.ts.map +1 -0
  150. package/dist/gameplay/ai/navigation.js +1 -2
  151. package/dist/gameplay/animation/anim-sm.d.ts +1 -0
  152. package/dist/gameplay/animation/anim-sm.d.ts.map +1 -0
  153. package/dist/gameplay/animation/anim-sm.js +1 -2
  154. package/dist/gameplay/animation/root-motion.d.ts +1 -0
  155. package/dist/gameplay/animation/root-motion.d.ts.map +1 -0
  156. package/dist/gameplay/animation/root-motion.js +1 -2
  157. package/dist/gameplay/env.d.ts +1 -0
  158. package/dist/gameplay/env.d.ts.map +1 -0
  159. package/dist/gameplay/env.js +1 -2
  160. package/dist/gameplay/index.d.ts +1 -0
  161. package/dist/gameplay/index.d.ts.map +1 -0
  162. package/dist/gameplay/index.js +1 -2
  163. package/dist/gameplay/initiate.d.ts +1 -0
  164. package/dist/gameplay/initiate.d.ts.map +1 -0
  165. package/dist/gameplay/initiate.js +1 -2
  166. package/dist/gameplay/inject.d.ts +1 -0
  167. package/dist/gameplay/inject.d.ts.map +1 -0
  168. package/dist/gameplay/inject.js +1 -2
  169. package/dist/gameplay/input/index.d.ts +1 -0
  170. package/dist/gameplay/input/index.d.ts.map +1 -0
  171. package/dist/gameplay/input/index.js +1 -2
  172. package/dist/gameplay/input/input-service.d.ts +1 -0
  173. package/dist/gameplay/input/input-service.d.ts.map +1 -0
  174. package/dist/gameplay/input/input-service.js +1 -2
  175. package/dist/gameplay/input/input.d.ts +1 -0
  176. package/dist/gameplay/input/input.d.ts.map +1 -0
  177. package/dist/gameplay/input/input.js +1 -2
  178. package/dist/gameplay/input/keybind.d.ts +1 -0
  179. package/dist/gameplay/input/keybind.d.ts.map +1 -0
  180. package/dist/gameplay/input/keybind.js +1 -2
  181. package/dist/gameplay/polyfill.d.ts +1 -0
  182. package/dist/gameplay/polyfill.d.ts.map +1 -0
  183. package/dist/gameplay/polyfill.js +1 -2
  184. package/dist/gameplay/services/asset-loader.d.ts +1 -0
  185. package/dist/gameplay/services/asset-loader.d.ts.map +1 -0
  186. package/dist/gameplay/services/asset-loader.js +1 -2
  187. package/dist/gameplay/services/physics/abstract-physics-system.d.ts +1 -0
  188. package/dist/gameplay/services/physics/abstract-physics-system.d.ts.map +1 -0
  189. package/dist/gameplay/services/physics/abstract-physics-system.js +1 -2
  190. package/dist/gameplay/services/physics/collision-contact.d.ts +1 -0
  191. package/dist/gameplay/services/physics/collision-contact.d.ts.map +1 -0
  192. package/dist/gameplay/services/physics/collision-contact.js +1 -2
  193. package/dist/gameplay/services/physics/physics-system.d.ts +1 -0
  194. package/dist/gameplay/services/physics/physics-system.d.ts.map +1 -0
  195. package/dist/gameplay/services/physics/physics-system.js +1 -2
  196. package/dist/gameplay/services/pointer-events.d.ts +1 -0
  197. package/dist/gameplay/services/pointer-events.d.ts.map +1 -0
  198. package/dist/gameplay/services/pointer-events.js +1 -2
  199. package/dist/gameplay/services/render.d.ts +1 -0
  200. package/dist/gameplay/services/render.d.ts.map +1 -0
  201. package/dist/gameplay/services/render.js +1 -2
  202. package/dist/gameplay/services/world.d.ts +1 -0
  203. package/dist/gameplay/services/world.d.ts.map +1 -0
  204. package/dist/gameplay/services/world.js +1 -2
  205. package/dist/index.d.ts +1 -0
  206. package/dist/index.d.ts.map +1 -0
  207. package/dist/index.js +1 -2
  208. package/dist/rendering/shader-override.d.ts +1 -0
  209. package/dist/rendering/shader-override.d.ts.map +1 -0
  210. package/dist/rendering/shader-override.js +1 -2
  211. package/dist/rendering.d.ts +1 -0
  212. package/dist/rendering.d.ts.map +1 -0
  213. package/dist/rendering.js +1 -2
  214. package/dist/scene/asset-resource-loader.d.ts +1 -0
  215. package/dist/scene/asset-resource-loader.d.ts.map +1 -0
  216. package/dist/scene/asset-resource-loader.js +1 -2
  217. package/dist/scene/assets-provider.d.ts +1 -0
  218. package/dist/scene/assets-provider.d.ts.map +1 -0
  219. package/dist/scene/assets-provider.js +1 -2
  220. package/dist/scene/bootstrap.d.ts +1 -0
  221. package/dist/scene/bootstrap.d.ts.map +1 -0
  222. package/dist/scene/bootstrap.js +1 -2
  223. package/dist/scene/collision/collision-shape-import.d.ts +1 -0
  224. package/dist/scene/collision/collision-shape-import.d.ts.map +1 -0
  225. package/dist/scene/collision/collision-shape-import.js +1 -2
  226. package/dist/scene/collision/collision-shape.d.ts +1 -0
  227. package/dist/scene/collision/collision-shape.d.ts.map +1 -0
  228. package/dist/scene/collision/collision-shape.js +1 -2
  229. package/dist/scene/landscape/landscape-manager.d.ts +1 -0
  230. package/dist/scene/landscape/landscape-manager.d.ts.map +1 -0
  231. package/dist/scene/landscape/landscape-manager.js +1 -2
  232. package/dist/scene/landscape/landscape.d.ts +1 -0
  233. package/dist/scene/landscape/landscape.d.ts.map +1 -0
  234. package/dist/scene/landscape/landscape.js +1 -2
  235. package/dist/scene/landscape/utils.d.ts +1 -0
  236. package/dist/scene/landscape/utils.d.ts.map +1 -0
  237. package/dist/scene/landscape/utils.js +1 -2
  238. package/dist/scene/materializer.d.ts +1 -0
  239. package/dist/scene/materializer.d.ts.map +1 -0
  240. package/dist/scene/materializer.js +1 -2
  241. package/dist/scene/materials/grass-foliage.d.ts +1 -0
  242. package/dist/scene/materials/grass-foliage.d.ts.map +1 -0
  243. package/dist/scene/materials/grass-foliage.js +1 -2
  244. package/dist/scene/materials/grass.d.ts +1 -0
  245. package/dist/scene/materials/grass.d.ts.map +1 -0
  246. package/dist/scene/materials/grass.js +1 -2
  247. package/dist/scene/materials/utils/material-painting.d.ts +1 -0
  248. package/dist/scene/materials/utils/material-painting.d.ts.map +1 -0
  249. package/dist/scene/materials/utils/material-painting.js +1 -2
  250. package/dist/scene/materials/utils/noise.glsl.d.ts +1 -0
  251. package/dist/scene/materials/utils/noise.glsl.d.ts.map +1 -0
  252. package/dist/scene/materials/utils/noise.glsl.js +1 -2
  253. package/dist/scene/materials/water.d.ts +1 -0
  254. package/dist/scene/materials/water.d.ts.map +1 -0
  255. package/dist/scene/materials/water.js +1 -2
  256. package/dist/scene/model.d.ts +3 -1
  257. package/dist/scene/model.d.ts.map +1 -0
  258. package/dist/scene/model.js +1 -2
  259. package/dist/scene/objects/ramp-geometry.d.ts +1 -0
  260. package/dist/scene/objects/ramp-geometry.d.ts.map +1 -0
  261. package/dist/scene/objects/ramp-geometry.js +1 -2
  262. package/dist/scene/objects/shapes.d.ts +3 -3
  263. package/dist/scene/objects/shapes.d.ts.map +1 -0
  264. package/dist/scene/objects/shapes.js +1 -2
  265. package/dist/scene/objects/stairs-geometry.d.ts +1 -0
  266. package/dist/scene/objects/stairs-geometry.d.ts.map +1 -0
  267. package/dist/scene/objects/stairs-geometry.js +1 -2
  268. package/dist/scene/runtime-asset-service.d.ts +1 -0
  269. package/dist/scene/runtime-asset-service.d.ts.map +1 -0
  270. package/dist/scene/runtime-asset-service.js +1 -2
  271. package/dist/scene/runtime-backend-service.d.ts +1 -0
  272. package/dist/scene/runtime-backend-service.d.ts.map +1 -0
  273. package/dist/scene/runtime-backend-service.js +1 -2
  274. package/dist/scene/runtime-bundled-backend-service.d.ts +1 -0
  275. package/dist/scene/runtime-bundled-backend-service.d.ts.map +1 -0
  276. package/dist/scene/runtime-bundled-backend-service.js +1 -2
  277. package/dist/scene/scene-data-service.d.ts +1 -0
  278. package/dist/scene/scene-data-service.d.ts.map +1 -0
  279. package/dist/scene/scene-data-service.js +1 -2
  280. package/dist/scene/sky.d.ts +1 -0
  281. package/dist/scene/sky.d.ts.map +1 -0
  282. package/dist/scene/sky.js +1 -2
  283. package/dist/scene/storage/storage.d.ts +1 -0
  284. package/dist/scene/storage/storage.d.ts.map +1 -0
  285. package/dist/scene/storage/storage.js +1 -2
  286. package/dist/shader/builtin/index.d.ts +1 -0
  287. package/dist/shader/builtin/index.d.ts.map +1 -0
  288. package/dist/shader/builtin/index.js +1 -2
  289. package/dist/shader/builtin/lambert-shader.d.ts +1 -0
  290. package/dist/shader/builtin/lambert-shader.d.ts.map +1 -0
  291. package/dist/shader/builtin/lambert-shader.js +1 -2
  292. package/dist/shader/builtin/landscape-composite-shader.d.ts +1 -0
  293. package/dist/shader/builtin/landscape-composite-shader.d.ts.map +1 -0
  294. package/dist/shader/builtin/landscape-composite-shader.js +1 -2
  295. package/dist/shader/builtin/landscape-shader.d.ts +1 -0
  296. package/dist/shader/builtin/landscape-shader.d.ts.map +1 -0
  297. package/dist/shader/builtin/landscape-shader.js +1 -2
  298. package/dist/shader/builtin/standard-shader.d.ts +1 -0
  299. package/dist/shader/builtin/standard-shader.d.ts.map +1 -0
  300. package/dist/shader/builtin/standard-shader.js +1 -2
  301. package/dist/shader/builtin/unlit-shader.d.ts +1 -0
  302. package/dist/shader/builtin/unlit-shader.d.ts.map +1 -0
  303. package/dist/shader/builtin/unlit-shader.js +1 -2
  304. package/dist/shader/index.d.ts +1 -0
  305. package/dist/shader/index.d.ts.map +1 -0
  306. package/dist/shader/index.js +1 -2
  307. package/dist/shader/parameter.d.ts +3 -1
  308. package/dist/shader/parameter.d.ts.map +1 -0
  309. package/dist/shader/parameter.js +1 -2
  310. package/dist/shader/shader.d.ts +1 -0
  311. package/dist/shader/shader.d.ts.map +1 -0
  312. package/dist/shader/shader.js +1 -2
  313. package/dist/shader-nodes/bulge.d.ts +1 -0
  314. package/dist/shader-nodes/bulge.d.ts.map +1 -0
  315. package/dist/shader-nodes/bulge.js +1 -2
  316. package/dist/shader-nodes/depth.d.ts +1 -0
  317. package/dist/shader-nodes/depth.d.ts.map +1 -0
  318. package/dist/shader-nodes/depth.js +1 -2
  319. package/dist/shader-nodes/effects.d.ts +1 -0
  320. package/dist/shader-nodes/effects.d.ts.map +1 -0
  321. package/dist/shader-nodes/effects.js +1 -2
  322. package/dist/shader-nodes/glsl-node.d.ts +2 -1
  323. package/dist/shader-nodes/glsl-node.d.ts.map +1 -0
  324. package/dist/shader-nodes/glsl-node.js +1 -2
  325. package/dist/shader-nodes/index.d.ts +2 -0
  326. package/dist/shader-nodes/index.d.ts.map +1 -0
  327. package/dist/shader-nodes/index.js +1 -2
  328. package/dist/shader-nodes/landscape.d.ts +1 -0
  329. package/dist/shader-nodes/landscape.d.ts.map +1 -0
  330. package/dist/shader-nodes/landscape.js +1 -2
  331. package/dist/shader-nodes/layers.d.ts +1 -0
  332. package/dist/shader-nodes/layers.d.ts.map +1 -0
  333. package/dist/shader-nodes/layers.js +1 -2
  334. package/dist/shader-nodes/math.d.ts +1 -0
  335. package/dist/shader-nodes/math.d.ts.map +1 -0
  336. package/dist/shader-nodes/math.js +1 -2
  337. package/dist/shader-nodes/particle.d.ts +3 -0
  338. package/dist/shader-nodes/particle.d.ts.map +1 -0
  339. package/dist/shader-nodes/particle.js +1 -2
  340. package/dist/shader-nodes/shapes.d.ts +1 -0
  341. package/dist/shader-nodes/shapes.d.ts.map +1 -0
  342. package/dist/shader-nodes/shapes.js +1 -2
  343. package/dist/shader-nodes/texture-sequence.d.ts +2 -1
  344. package/dist/shader-nodes/texture-sequence.d.ts.map +1 -0
  345. package/dist/shader-nodes/texture-sequence.js +1 -2
  346. package/dist/shader-nodes/time.d.ts +1 -0
  347. package/dist/shader-nodes/time.d.ts.map +1 -0
  348. package/dist/shader-nodes/time.js +1 -2
  349. package/dist/shader-nodes/voronoi.d.ts +1 -0
  350. package/dist/shader-nodes/voronoi.d.ts.map +1 -0
  351. package/dist/shader-nodes/voronoi.js +1 -2
  352. package/dist/test/injection.test.d.ts +1 -0
  353. package/dist/test/injection.test.d.ts.map +1 -0
  354. package/dist/test/injection.test.js +1 -2
  355. package/dist/utils/async.d.ts +1 -0
  356. package/dist/utils/async.d.ts.map +1 -0
  357. package/dist/utils/async.js +1 -2
  358. package/dist/utils/buffer.d.ts +1 -0
  359. package/dist/utils/buffer.d.ts.map +1 -0
  360. package/dist/utils/buffer.js +1 -2
  361. package/dist/utils/collections.d.ts +1 -0
  362. package/dist/utils/collections.d.ts.map +1 -0
  363. package/dist/utils/collections.js +1 -2
  364. package/dist/utils/curve.d.ts +12 -0
  365. package/dist/utils/curve.d.ts.map +1 -0
  366. package/dist/utils/curve.js +4 -0
  367. package/dist/utils/files.d.ts +1 -0
  368. package/dist/utils/files.d.ts.map +1 -0
  369. package/dist/utils/files.js +1 -2
  370. package/dist/utils/materials.d.ts +1 -0
  371. package/dist/utils/materials.d.ts.map +1 -0
  372. package/dist/utils/materials.js +1 -2
  373. package/dist/utils/math.d.ts +1 -0
  374. package/dist/utils/math.d.ts.map +1 -0
  375. package/dist/utils/math.js +1 -2
  376. package/dist/utils/mesh.d.ts +1 -0
  377. package/dist/utils/mesh.d.ts.map +1 -0
  378. package/dist/utils/mesh.js +1 -2
  379. package/dist/utils/polyfill.d.ts +1 -0
  380. package/dist/utils/polyfill.d.ts.map +1 -0
  381. package/dist/utils/polyfill.js +1 -2
  382. package/dist/utils/three/depth-pass.d.ts +1 -0
  383. package/dist/utils/three/depth-pass.d.ts.map +1 -0
  384. package/dist/utils/three/depth-pass.js +1 -2
  385. package/dist/utils/three/gpu-stats-panel.d.ts +1 -0
  386. package/dist/utils/three/gpu-stats-panel.d.ts.map +1 -0
  387. package/dist/utils/three/gpu-stats-panel.js +1 -2
  388. package/dist/utils/three/line-sphere.d.ts +1 -0
  389. package/dist/utils/three/line-sphere.d.ts.map +1 -0
  390. package/dist/utils/three/line-sphere.js +1 -2
  391. package/dist/utils/three/outline-pass.d.ts +1 -0
  392. package/dist/utils/three/outline-pass.d.ts.map +1 -0
  393. package/dist/utils/three/outline-pass.js +1 -2
  394. package/dist/utils/three/positional-audio-helper.d.ts +1 -0
  395. package/dist/utils/three/positional-audio-helper.d.ts.map +1 -0
  396. package/dist/utils/three/positional-audio-helper.js +1 -2
  397. package/dist/utils/three/stats.d.ts +1 -0
  398. package/dist/utils/three/stats.d.ts.map +1 -0
  399. package/dist/utils/three/stats.js +1 -2
  400. package/dist/utils/three/transform-controls.d.ts +1 -0
  401. package/dist/utils/three/transform-controls.d.ts.map +1 -0
  402. package/dist/utils/three/transform-controls.js +1 -2
  403. package/dist/utils/three/traverse.d.ts +1 -0
  404. package/dist/utils/three/traverse.d.ts.map +1 -0
  405. package/dist/utils/three/traverse.js +1 -2
  406. package/dist/utils/type.d.ts +1 -0
  407. package/dist/utils/type.d.ts.map +1 -0
  408. package/dist/utils/type.js +1 -2
  409. package/dist/utils/uuid.d.ts +1 -0
  410. package/dist/utils/uuid.d.ts.map +1 -0
  411. package/dist/utils/uuid.js +1 -2
  412. package/dist/utils/voxel-bitset.d.ts +14 -0
  413. package/dist/utils/voxel-bitset.d.ts.map +1 -0
  414. package/dist/utils/voxel-bitset.js +4 -0
  415. package/dist/worker/index.d.ts +1 -0
  416. package/dist/worker/index.d.ts.map +1 -0
  417. package/dist/worker/index.js +1 -2
  418. package/package.json +84 -8
  419. package/tsconfig.tsbuildinfo +1 -1
@@ -1,5 +1,4 @@
1
- import{BoxCollisionShape as e,CapsuleCollisionShape as t,ConeCollisionShape as r,ConvexPolyhedronCollisionShape as s,CylinderCollisionShape as n,PlaneCollisionShape as i,SphereCollisionShape as o,TrimeshCollisionShape as a}from"../collision/collision-shape.js";import{BoxGeometry as m,PlaneGeometry as h,Vector3 as l,CylinderGeometry as c,SphereGeometry as g,Euler as p,TorusGeometry as u,ConeGeometry as d,CircleGeometry as w,CapsuleGeometry as y}from"three";import{rampGeometry as S}from"./ramp-geometry.js";import{RoundedBoxGeometry as f}from"three/examples/jsm/geometries/RoundedBoxGeometry.js";import{TextGeometry as x}from"three/examples/jsm/geometries/TextGeometry.js";import{Font as b}from"three/examples/jsm/loaders/FontLoader.js";import*as j from"three/examples/fonts/helvetiker_regular.typeface.json";import{createSpiralStairsGeometry as L,createStairsGeometry as z}from"./stairs-geometry.js";function E(e){return{type:"number",default:e}}function k(e){return{type:"number",default:e,float:!0}}function v(e){return{type:"boolean",default:e}}function B(e,t){const r={};for(let s in t)null==e[s]?r[s]=t[s].default:r[s]=e[s];return r}const G={box:{geometry:()=>new m(1,1,1),collision:()=>new e(new l(1,1,1))},ramp:{geometry:()=>S(),collision:()=>new s(S())},plane:new class{constructor(){this.parameters={widthSegments:E(1),heightSegments:E(1)}}geometry(e={}){const t=B(e,this.parameters);return new h(1,1,t.widthSegments,t.heightSegments)}collision(e={}){return new i(1,1)}},cylinder:new class{constructor(){this.parameters={radialSegments:E(12),heightSegments:E(1),openEnded:v(!1)}}geometry(e={}){const t=B(e,this.parameters);return new c(.5,.5,1,t.radialSegments,t.heightSegments,t.openEnded)}collision(e={}){const t=B(e,this.parameters);return new n(.5,.5,1,t.radialSegments,new p(0,1,0))}},sphere:new class{constructor(){this.parameters={withSegments:E(12),heightSegments:E(12)}}geometry(e={}){const t=B(e,this.parameters);return new g(.5,t.withSegments,t.heightSegments)}collision(){return new o(.5)}},torus:new class{constructor(){this.parameters={radius:k(1),tube:k(.3),radialSegments:E(16),tubularSegments:E(50)}}geometry(e={}){const t=B(e,this.parameters);return new u(t.radius,t.tube,t.radialSegments,t.tubularSegments)}collision(e={}){return new a(this.geometry(e))}},cone:new class{constructor(){this.parameters={radialSegments:E(12),heightSegments:E(1),openEnded:v(!1)}}geometry(e={}){const t=B(e,this.parameters);return new d(.5,1,t.radialSegments,t.heightSegments)}collision(e={}){return new r(1,.5)}},circle:new class{constructor(){this.parameters={segments:E(32)}}geometry(e={}){const t=B(e,this.parameters);return new w(.5,t.segments)}collision(e={}){return new a(this.geometry(e))}},capsule:new class{constructor(){this.parameters={radius:k(.5),length:k(1),capSegments:E(8),radialSegments:E(32)}}geometry(e={}){const t=B(e,this.parameters);return new y(t.radius,t.length,t.capSegments,t.radialSegments)}collision(e={}){const r=B(e,this.parameters);return new t(r.length,r.radius)}},roundedBox:new class{constructor(){this.parameters={width:k(1),height:k(1),depth:k(1),segments:E(4),radius:k(.1)}}geometry(e={}){const t=B(e,this.parameters);return new f(t.width,t.height,t.depth,t.segments,t.radius)}collision(t={}){const r=B(t,this.parameters);return new e(new l(r.width,r.height,r.depth))}},text:new class{constructor(){var e;this.parameters={text:(e="Text",{type:"string",default:e}),size:k(1),depth:k(.2)}}geometry(e={}){const t=B(e,this.parameters);return new x(t.text,{font:new b(j),size:t.size,height:t.depth})}collision(e={}){return B(e,this.parameters).text.trim().length,null}},stairs:new class{constructor(){this.parameters={floating:v(!1),width:k(1),height:k(.25),depth:k(.25),steps:E(4)}}geometry(e={}){const t=B(e,this.parameters);return z(t.floating,t.steps,t.depth,t.height,t.width)}collision(e={}){return new a(this.geometry(e))}},stairsSpiral:new class{constructor(){this.parameters={floating:v(!1),width:k(1),height:k(.25),steps:E(4),degrees:E(90),radius:k(.2),flipped:v(!1)}}geometry(e={}){const t=B(e,this.parameters);return L(t.floating,t.steps,t.height,t.width,t.degrees,t.radius,t.flipped)}collision(e={}){return new a(this.geometry(e))}}};export const ShapeLibrary=G;export const ShapeLibraryKeys=Object.keys(ShapeLibrary);
2
- /*
1
+ import{BoxCollisionShape as e,CapsuleCollisionShape as t,ConeCollisionShape as r,ConvexPolyhedronCollisionShape as s,CylinderCollisionShape as n,PlaneCollisionShape as i,SphereCollisionShape as o,TrimeshCollisionShape as a}from"../collision/collision-shape.js";import{BoxGeometry as m,PlaneGeometry as h,Vector3 as l,CylinderGeometry as c,SphereGeometry as g,Euler as p,TorusGeometry as u,ConeGeometry as d,CircleGeometry as w,CapsuleGeometry as y}from"three";import{rampGeometry as S}from"./ramp-geometry.js";import{RoundedBoxGeometry as f}from"three/examples/jsm/geometries/RoundedBoxGeometry.js";import{TextGeometry as x}from"three/examples/jsm/geometries/TextGeometry.js";import{Font as b}from"three/examples/jsm/loaders/FontLoader.js";import*as j from"three/examples/fonts/helvetiker_regular.typeface.json";import{createSpiralStairsGeometry as L,createStairsGeometry as z}from"./stairs-geometry.js";function E(e){return{type:"number",default:e}}function k(e){return{type:"number",default:e,float:!0}}function v(e){return{type:"boolean",default:e}}function B(e,t){const r={};for(let s in t)null==e[s]?r[s]=t[s].default:r[s]=e[s];return r}const G={box:{geometry:()=>new m(1,1,1),collision:()=>new e(new l(1,1,1))},ramp:{geometry:()=>S(),collision:()=>new s(S())},plane:new class{constructor(){this.parameters={widthSegments:E(1),heightSegments:E(1)}}geometry(e={}){const t=B(e,this.parameters);return new h(1,1,t.widthSegments,t.heightSegments)}collision(e={}){return new i(1,1)}},cylinder:new class{constructor(){this.parameters={radialSegments:E(12),heightSegments:E(1),openEnded:v(!1)}}geometry(e={}){const t=B(e,this.parameters);return new c(.5,.5,1,t.radialSegments,t.heightSegments,t.openEnded)}collision(e={}){const t=B(e,this.parameters);return new n(.5,.5,1,t.radialSegments,new p(0,1,0))}},sphere:new class{constructor(){this.parameters={withSegments:E(12),heightSegments:E(12)}}geometry(e={}){const t=B(e,this.parameters);return new g(.5,t.withSegments,t.heightSegments)}collision(){return new o(.5)}},torus:new class{constructor(){this.parameters={radius:k(1),tube:k(.3),radialSegments:E(16),tubularSegments:E(50)}}geometry(e={}){const t=B(e,this.parameters);return new u(t.radius,t.tube,t.radialSegments,t.tubularSegments)}collision(e={}){return new a(this.geometry(e))}},cone:new class{constructor(){this.parameters={radialSegments:E(12),heightSegments:E(1),openEnded:v(!1)}}geometry(e={}){const t=B(e,this.parameters);return new d(.5,1,t.radialSegments,t.heightSegments)}collision(e={}){return new r(1,.5)}},circle:new class{constructor(){this.parameters={segments:E(32)}}geometry(e={}){const t=B(e,this.parameters);return new w(.5,t.segments)}collision(e={}){return new a(this.geometry(e))}},capsule:new class{constructor(){this.parameters={radius:k(.5),length:k(1),capSegments:E(8),radialSegments:E(32)}}geometry(e={}){const t=B(e,this.parameters);return new y(t.radius,t.length,t.capSegments,t.radialSegments)}collision(e={}){const r=B(e,this.parameters);return new t(r.length,r.radius)}},roundedBox:new class{constructor(){this.parameters={width:k(1),height:k(1),depth:k(1),segments:E(4),radius:k(.1)}}geometry(e={}){const t=B(e,this.parameters);return new f(t.width,t.height,t.depth,t.segments,t.radius)}collision(t={}){const r=B(t,this.parameters);return new e(new l(r.width,r.height,r.depth))}},text:new class{constructor(){var e;this.parameters={text:(e="Text",{type:"string",default:e}),size:k(1),depth:k(.2)}}geometry(e={}){const t=B(e,this.parameters);return new x(t.text,{font:new b(j),size:t.size,height:t.depth})}collision(e={}){return B(e,this.parameters).text.trim().length,null}},stairs:new class{constructor(){this.parameters={floating:v(!1),width:k(1),height:k(.25),depth:k(.25),steps:E(4)}}geometry(e={}){const t=B(e,this.parameters);return z(t.floating,t.steps,t.depth,t.height,t.width)}collision(e={}){return new a(this.geometry(e))}},stairsSpiral:new class{constructor(){this.parameters={floating:v(!1),width:k(1),height:k(.25),steps:E(4),degrees:E(90),radius:k(.2),flipped:v(!1)}}geometry(e={}){const t=B(e,this.parameters);return L(t.floating,t.steps,t.height,t.width,t.degrees,t.radius,t.flipped)}collision(e={}){return new a(this.geometry(e))}}};export const ShapeLibrary=G;export const ShapeLibraryKeys=Object.keys(ShapeLibrary);/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,3 +1,4 @@
1
1
  import * as THREE from "three";
2
2
  export declare function createSpiralStairsGeometry(floating: boolean, numSteps: number, stepHeight: number, stepWidth: number, degrees: number, innerRadius: number, flipped: boolean): THREE.BufferGeometry<THREE.NormalBufferAttributes>;
3
3
  export declare function createStairsGeometry(floating: boolean, numSteps: number, stepSize: number, stepHeight: number, stepWidth: number): THREE.BufferGeometry<THREE.NormalBufferAttributes>;
4
+ //# sourceMappingURL=stairs-geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stairs-geometry.d.ts","sourceRoot":"","sources":["../../../src/scene/objects/stairs-geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,sDAsH5K;AAGD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sDAwGhI"}
@@ -1,5 +1,4 @@
1
- import*as t from"three";export function createSpiralStairsGeometry(e,o,r,s,n,a,l){const c=[];for(let i=0;i<o;i++){let f=i*r;const u=t.MathUtils.degToRad(Math.abs(n)),h=i/o,m=(i+1)/o,p=Math.cos(h*u)*a,M=Math.cos(h*u)*(a+s),b=Math.cos(m*u)*a,x=Math.cos(m*u)*(a+s),g=Math.sin(h*u)*a,w=Math.sin(h*u)*(a+s),y=Math.sin(m*u)*a,A=Math.sin(m*u)*(a+s);let B;if(e)B=[p,f,g,M,f,w,p,f+r,g,M,f+r,w,b,f,y,x,f,A,b,f+r,y,x,f+r,A];else{const t=0;B=[p,f,g,M,f,w,p,f+r,g,M,f+r,w,b,t,y,x,t,A,b,t+r*(i+1),y,x,t+r*(i+1),A,p,t,g,M,t,w]}const G=0,N=[G,G+2,G+1,G+1,G+2,G+3,G,G+4,G+2,G+2,G+4,G+6,G+5,G+1,G+3,G+5,G+3,G+7,...e||i===o-1?[G+6,G+4,G+5,G+6,G+5,G+7]:[],G+3,G+2,G+6,G+7,G+3,G+6,...!e&&i>0?[G,G+8,G+4,G+5,G+9,G+1]:[],...e?[G,G+1,G+4,G+1,G+5,G+4]:[G+8,G+9,G+4,G+9,G+5,G+4]];if(l)for(let t=0;t<N.length;t+=3){let e=N[t];N[t]=N[t+2],N[t+2]=e}for(let t=0;t<N.length;t++)c.push(B[3*N[t]],B[3*N[t]+1],B[3*N[t]+2])}const i=new t.BufferGeometry;return i.setAttribute("position",new t.Float32BufferAttribute(c,3)),i.computeVertexNormals(),l&&(i.scale(-1,1,1),i.computeVertexNormals()),i}export function createStairsGeometry(e,o,r,s,n){const a=[];for(let t=0;t<o;t++){let l=0,c=t*s;const i=t*r;let f;if(e)f=[l,c+0*s,i,l+n,c+0*s,i,l,c+s,i,l+n,c+s,i,l,c+0*s,i+r,l+n,c+0*s,i+r,l,c+s,i+r,l+n,c+s,i+r];else{const e=0;f=[l,c,i,l+n,c,i,l,c+s,i,l+n,c+s,i,l,e,i+r,l+n,e,i+r,l,e+s*(t+1),i+r,l+n,e+s*(t+1),i+r,l,e,i,l+n,e,i]}const u=0,h=[u,u+2,u+1,u+1,u+2,u+3,u,u+4,u+2,u+2,u+4,u+6,u+5,u+1,u+3,u+5,u+3,u+7,...e||t===o-1?[u+6,u+4,u+5,u+6,u+5,u+7]:[],...!e&&t>0?[u,u+8,u+4,u+5,u+9,u+1]:[],u+3,u+2,u+6,u+7,u+3,u+6,...e?[u,u+1,u+4,u+1,u+5,u+4]:[u+8,u+9,u+4,u+9,u+5,u+4]];for(let t=0;t<h.length;t++)a.push(f[3*h[t]],f[3*h[t]+1],f[3*h[t]+2])}const l=new t.BufferGeometry;return l.setAttribute("position",new t.Float32BufferAttribute(a,3)),l.computeVertexNormals(),l}
2
- /*
1
+ import*as t from"three";export function createSpiralStairsGeometry(e,o,r,s,n,a,l){const c=[];for(let i=0;i<o;i++){let f=i*r;const u=t.MathUtils.degToRad(Math.abs(n)),h=i/o,m=(i+1)/o,p=Math.cos(h*u)*a,M=Math.cos(h*u)*(a+s),b=Math.cos(m*u)*a,x=Math.cos(m*u)*(a+s),g=Math.sin(h*u)*a,w=Math.sin(h*u)*(a+s),y=Math.sin(m*u)*a,A=Math.sin(m*u)*(a+s);let B;if(e)B=[p,f,g,M,f,w,p,f+r,g,M,f+r,w,b,f,y,x,f,A,b,f+r,y,x,f+r,A];else{const t=0;B=[p,f,g,M,f,w,p,f+r,g,M,f+r,w,b,t,y,x,t,A,b,t+r*(i+1),y,x,t+r*(i+1),A,p,t,g,M,t,w]}const G=0,N=[G,G+2,G+1,G+1,G+2,G+3,G,G+4,G+2,G+2,G+4,G+6,G+5,G+1,G+3,G+5,G+3,G+7,...e||i===o-1?[G+6,G+4,G+5,G+6,G+5,G+7]:[],G+3,G+2,G+6,G+7,G+3,G+6,...!e&&i>0?[G,G+8,G+4,G+5,G+9,G+1]:[],...e?[G,G+1,G+4,G+1,G+5,G+4]:[G+8,G+9,G+4,G+9,G+5,G+4]];if(l)for(let t=0;t<N.length;t+=3){let e=N[t];N[t]=N[t+2],N[t+2]=e}for(let t=0;t<N.length;t++)c.push(B[3*N[t]],B[3*N[t]+1],B[3*N[t]+2])}const i=new t.BufferGeometry;return i.setAttribute("position",new t.Float32BufferAttribute(c,3)),i.computeVertexNormals(),l&&(i.scale(-1,1,1),i.computeVertexNormals()),i}export function createStairsGeometry(e,o,r,s,n){const a=[];for(let t=0;t<o;t++){let l=0,c=t*s;const i=t*r;let f;if(e)f=[l,c+0*s,i,l+n,c+0*s,i,l,c+s,i,l+n,c+s,i,l,c+0*s,i+r,l+n,c+0*s,i+r,l,c+s,i+r,l+n,c+s,i+r];else{const e=0;f=[l,c,i,l+n,c,i,l,c+s,i,l+n,c+s,i,l,e,i+r,l+n,e,i+r,l,e+s*(t+1),i+r,l+n,e+s*(t+1),i+r,l,e,i,l+n,e,i]}const u=0,h=[u,u+2,u+1,u+1,u+2,u+3,u,u+4,u+2,u+2,u+4,u+6,u+5,u+1,u+3,u+5,u+3,u+7,...e||t===o-1?[u+6,u+4,u+5,u+6,u+5,u+7]:[],...!e&&t>0?[u,u+8,u+4,u+5,u+9,u+1]:[],u+3,u+2,u+6,u+7,u+3,u+6,...e?[u,u+1,u+4,u+1,u+5,u+4]:[u+8,u+9,u+4,u+9,u+5,u+4]];for(let t=0;t<h.length;t++)a.push(f[3*h[t]],f[3*h[t]+1],f[3*h[t]+2])}const l=new t.BufferGeometry;return l.setAttribute("position",new t.Float32BufferAttribute(a,3)),l.computeVertexNormals(),l}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -13,3 +13,4 @@ export declare class RuntimeAssetsService implements AssetsProvider {
13
13
  getAssets(): Promise<Asset[]>;
14
14
  getAsset(id: string): Promise<Asset>;
15
15
  }
16
+ //# sourceMappingURL=runtime-asset-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-asset-service.d.ts","sourceRoot":"","sources":["../../src/scene/runtime-asset-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,qBAAa,oBAAqB,YAAW,cAAc;IAO7C,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,MAAM,CAAQ;IACf,QAAQ,iBAAuB;IAC/B,QAAQ,iBAAuB;IAC/B,QAAQ,iBAAuB;gBAElB,OAAO,EAAE,qBAAqB;IAErC,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAU7B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;CAGlD"}
@@ -1,5 +1,4 @@
1
- import{Subject as s}from"rxjs";export class RuntimeAssetsService{constructor(t){this.backend=t,this.assets=new Map,this.loaded=!1,this.onCreate=new s,this.onDelete=new s,this.onUpdate=new s}async getAssets(){if(!this.loaded){const s=await this.backend.getAssets();for(const t of s)this.assets.set(t.id,t)}return Array.from(this.assets.values())}async getAsset(s){return this.assets.get(s)??async function(s,e){t.has(s)||t.set(s,e(s));return t.get(s)}(s,(()=>this.backend.getAsset(s)))}}const t=new Map;
2
- /*
1
+ import{Subject as s}from"rxjs";export class RuntimeAssetsService{constructor(t){this.backend=t,this.assets=new Map,this.loaded=!1,this.onCreate=new s,this.onDelete=new s,this.onUpdate=new s}async getAssets(){if(!this.loaded){const s=await this.backend.getAssets();for(const t of s)this.assets.set(t.id,t)}return Array.from(this.assets.values())}async getAsset(s){return this.assets.get(s)??async function(s,e){t.has(s)||t.set(s,e(s));return t.get(s)}(s,(()=>this.backend.getAsset(s)))}}const t=new Map;/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -18,3 +18,4 @@ export declare class LegacyRuntimeBackendService implements RuntimeBackendServic
18
18
  getScene(idOrName: string): Promise<SceneData>;
19
19
  getSceneData(sceneId: string): Promise<SceneObject[]>;
20
20
  }
21
+ //# sourceMappingURL=runtime-backend-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-backend-service.d.ts","sourceRoot":"","sources":["../../src/scene/runtime-backend-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AAIzD,MAAM,WAAW,qBAAqB;IACpC,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;CACtD;AAGD,qBAAa,2BAA4B,YAAW,qBAAqB;IACvE,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,gBAAgB,CAA6C;IACrE,OAAO,CAAC,YAAY,CAAoC;gBAE5C,OAAO,EAAE,MAAM;IAMpB,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAG7B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAGjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAWnE"}
@@ -1,5 +1,4 @@
1
- import{ObjectStorage as e}from"./storage/storage.js";export class LegacyRuntimeBackendService{constructor(t){this.sceneStorage=new e("scene"),this.sceneBlobStorage=new e("scene-blob"),this.assetStorage=new e("asset"),this.sceneStorage.setBasePath(t),this.sceneBlobStorage.setBasePath(t),this.assetStorage.setBasePath(t)}getAssets(){return this.assetStorage.getAll()}getAsset(e){return this.assetStorage.get(e)}getScenes(){return this.sceneStorage.getAll()}getScene(e){return this.sceneStorage.get(e)}async getSceneData(e){const t=await this.sceneBlobStorage.get(e);return null==t?null:"string"==typeof t.data?JSON.parse(t.data):t.data}}
2
- /*
1
+ import{ObjectStorage as e}from"./storage/storage.js";export class LegacyRuntimeBackendService{constructor(t){this.sceneStorage=new e("scene"),this.sceneBlobStorage=new e("scene-blob"),this.assetStorage=new e("asset"),this.sceneStorage.setBasePath(t),this.sceneBlobStorage.setBasePath(t),this.assetStorage.setBasePath(t)}getAssets(){return this.assetStorage.getAll()}getAsset(e){return this.assetStorage.get(e)}getScenes(){return this.sceneStorage.getAll()}getScene(e){return this.sceneStorage.get(e)}async getSceneData(e){const t=await this.sceneBlobStorage.get(e);return null==t?null:"string"==typeof t.data?JSON.parse(t.data):t.data}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -13,3 +13,4 @@ export declare class RuntimeBundledBackendService implements RuntimeBackendServi
13
13
  static tryCreate(): void;
14
14
  preloadData(): Promise<void>;
15
15
  }
16
+ //# sourceMappingURL=runtime-bundled-backend-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-bundled-backend-service.d.ts","sourceRoot":"","sources":["../../src/scene/runtime-bundled-backend-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAa,SAAS,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,qBAAa,4BAA6B,YAAW,qBAAqB;IAExE,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,UAAU,CAA+B;IAE1C,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAG7B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIpC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAGjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;WASpD,SAAS;IAIV,WAAW;CAezB"}
@@ -1,5 +1,4 @@
1
- export class RuntimeBundledBackendService{constructor(){this.assets=new Map,this.scenes=new Map,this.sceneBlobs=new Map}getAssets(){return Promise.resolve(Array.from(this.assets.values()))}getAsset(e){return Promise.resolve(this.assets.get(e))}getScenes(){return Promise.resolve(Array.from(this.scenes.values()))}getScene(e){return Promise.resolve(this.scenes.get(e))}async getSceneData(e){const s=this.sceneBlobs.get(e);return"string"==typeof s.data?JSON.parse(s.data):s.data}static tryCreate(){}async preloadData(){const e=await(await fetch("hology_data.json")).json()??{};for(const s of e.asset??[])this.assets.set(s.id,s);for(const s of e.scene??[])this.scenes.set(s.id,s),this.scenes.set(s.name,s);for(const s of e["scene-blob"]??[])this.sceneBlobs.set(s.id,s)}}
2
- /*
1
+ export class RuntimeBundledBackendService{constructor(){this.assets=new Map,this.scenes=new Map,this.sceneBlobs=new Map}getAssets(){return Promise.resolve(Array.from(this.assets.values()))}getAsset(e){return Promise.resolve(this.assets.get(e))}getScenes(){return Promise.resolve(Array.from(this.scenes.values()))}getScene(e){return Promise.resolve(this.scenes.get(e))}async getSceneData(e){const s=this.sceneBlobs.get(e);return"string"==typeof s.data?JSON.parse(s.data):s.data}static tryCreate(){}async preloadData(){const e=await(await fetch("hology_data.json")).json()??{};for(const s of e.asset??[])this.assets.set(s.id,s);for(const s of e.scene??[])this.scenes.set(s.id,s),this.scenes.set(s.name,s);for(const s of e["scene-blob"]??[])this.sceneBlobs.set(s.id,s)}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -36,3 +36,4 @@ export declare class SceneDataService implements SceneDataProvider {
36
36
  export declare function createInitialFog(): SceneObject;
37
37
  export declare function createInitialSky(): SceneObject;
38
38
  export declare function createWorldEnvironment(): SceneObject;
39
+ //# sourceMappingURL=scene-data-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-data-service.d.ts","sourceRoot":"","sources":["../../src/scene/scene-data-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,OAAO,EAA6C,MAAM,OAAO,CAAC;AAG3E,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAAK;IACrB,YAAY,iCAAyC;;IAW5D,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE;IAK5B,OAAO,CAAC,oBAAoB;IAY5B,sBAAsB,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI;IAInE,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI;IAIrD,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI;IAIrD,UAAU,IAAI,WAAW,EAAE;IAI3B,mBAAmB,IAAI,WAAW,EAAE;IAapC,SAAS,CAAC,MAAM,EAAE,WAAW;IAM7B,YAAY,CAAC,MAAM,EAAE,WAAW;IAWhC,cAAc,CAAC,EAAE,EAAE,MAAM;IAazB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,EAAE;IAQ5C;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW;IAGvC,OAAO,CAAC,eAAe;IAOvB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW;IA8CxD,cAAc,CAAC,MAAM,EAAE,WAAW;IAWlC,cAAc,CAAC,MAAM,EAAE,WAAW;IASlC,YAAY,CAAC,MAAM,EAAE,WAAW;IAMhC,OAAO,CAAC,eAAe;IAavB,IAAI;IAKJ,SAAS,IAAI,MAAM;CAIpB;AAGD,wBAAgB,gBAAgB,IAAI,WAAW,CAa9C;AAED,wBAAgB,gBAAgB,IAAI,WAAW,CAS9C;AAED,wBAAgB,sBAAsB,IAAI,WAAW,CA2BpD"}
@@ -1,5 +1,4 @@
1
- import{BehaviorSubject as e}from"rxjs";import{Matrix4 as t,Vector3 as s,Quaternion as i,Euler as n,NoToneMapping as o}from"three";export class SceneDataService{constructor(){this.objects=[],this.callbacks=[],this.removeCallbacks=[],this.objectChange=new e([])}initiate(e){this.objects=e??[],this.objectChange.next(this.objects)}createDefaultObjects(){this.objects.some((e=>"global_fog"===e.type))||this.objects.unshift(createInitialFog());this.objects.some((e=>"sky"===e.type))||this.objects.unshift(createInitialSky())}removeOnUpdateCallback(e){this.callbacks.splice(this.callbacks.indexOf(e),1)}onUpdate(e){this.callbacks.push(e)}onRemove(e){this.removeCallbacks.push(e)}getObjects(){return this.objects}getObjectsRecursive(){const e=[],t=this.objects.slice();for(;t.length>0;){const s=t.pop();e.push(s),null!=s.children&&t.push(...s.children)}return e}addObject(e){this.objects.push(e),this.callbacks.forEach((t=>t(e))),this.objectChange.next(this.objects)}updateObject(e){const t=this.findObjectById(e.id);t?(Object.assign(t,e),this.callbacks.forEach((t=>t(e)))):this.addObject(e),this.objectChange.next(this.objects)}findObjectById(e){const t=[...this.objects];for(;t.length>0;){const s=t.pop();if(s.id===e)return s;s.children&&t.push(...s.children)}}findAncestorsById(e){const t=this.findParentById(e);return null==t?[]:[t,...this.findAncestorsById(t.id)]}findParentById(e){return this._findParentById(e,this.objects)}_findParentById(e,t,s=null){return t.some((t=>t.id===e))?s:t.filter((e=>null!=e.children)).map((t=>this._findParentById(e,t.children,t))).find((e=>null!=e))}updateParent(e,o){const r=this.findParentById(e.id);{const c=null!=o?this.getMatrixWorld(o).invert():(new t).identity();null!=r&&c.multiply(this.getMatrixWorld(r));const l=this.getLocalMatrix(e),a=c.multiply(l),h=new s,d=new i,b=new s;a.decompose(h,d,b),e.position=h.toArray(),e.rotation=(new n).setFromQuaternion(d).toArray(),e.scale=b.toArray()}this.removeRecursive(e.id,r?.children??this.objects),null!=r?r.children=r.children.slice():this.objects=this.objects.slice(),null!=o?(o.children??=[],o.children.push(e),o.children=o.children.slice()):(this.objects.push(e),this.objects=this.objects.slice()),this.objectChange.next(this.objects),this.callbacks.forEach((t=>t(e)))}getMatrixWorld(e){const t=this.findAncestorsById(e.id).reverse();t.push(e);const s=this.getLocalMatrix(t.shift());for(const e of t){const t=this.getLocalMatrix(e);s.multiply(t)}return s}getLocalMatrix(e){const o=new t,r=(new s).fromArray(e.position),c=(new i).setFromEuler((new n).fromArray(e.rotation)),l=(new s).fromArray(e.scale);return o.compose(r,c,l),o}removeObject(e){this.removeRecursive(e.id,this.objects),this.removeCallbacks.forEach((t=>t(e))),this.objectChange.next([...this.objects])}removeRecursive(e,t){const s=t.findIndex((t=>t.id===e));if(s>-1)t.splice(s,1);else for(const s of t)null!=s.children&&this.removeRecursive(e,s.children??[])}save(){}serialize(){return JSON.stringify(this.objects)}}export function createInitialFog(){return{id:"auto-global-fog",name:"Global fog",type:"global_fog",fog:{type:"density",color:"#b8f8ff",density:.005,near:100,far:1e3}}}export function createInitialSky(){return{id:"auto-sky",name:"Sky",type:"sky",sky:{materialId:null}}}export function createWorldEnvironment(){return{id:"auto-world-env",name:"World Environment",type:"world_env",worldEnv:{ao:{enabled:!1,blendIntensity:1,radius:.25,distanceExponent:1,thickness:1,distanceFallOff:1,scale:1,samples:16,onlyAO:!1},toneMapping:{mapping:o,exposure:1},environment:{textureId:null,intensity:1}}}}
2
- /*
1
+ import{BehaviorSubject as e}from"rxjs";import{Matrix4 as t,Vector3 as s,Quaternion as i,Euler as n,NoToneMapping as o}from"three";export class SceneDataService{constructor(){this.objects=[],this.callbacks=[],this.removeCallbacks=[],this.objectChange=new e([])}initiate(e){this.objects=e??[],this.objectChange.next(this.objects)}createDefaultObjects(){this.objects.some((e=>"global_fog"===e.type))||this.objects.unshift(createInitialFog());this.objects.some((e=>"sky"===e.type))||this.objects.unshift(createInitialSky())}removeOnUpdateCallback(e){this.callbacks.splice(this.callbacks.indexOf(e),1)}onUpdate(e){this.callbacks.push(e)}onRemove(e){this.removeCallbacks.push(e)}getObjects(){return this.objects}getObjectsRecursive(){const e=[],t=this.objects.slice();for(;t.length>0;){const s=t.pop();e.push(s),null!=s.children&&t.push(...s.children)}return e}addObject(e){this.objects.push(e),this.callbacks.forEach((t=>t(e))),this.objectChange.next(this.objects)}updateObject(e){const t=this.findObjectById(e.id);t?(Object.assign(t,e),this.callbacks.forEach((t=>t(e)))):this.addObject(e),this.objectChange.next(this.objects)}findObjectById(e){const t=[...this.objects];for(;t.length>0;){const s=t.pop();if(s.id===e)return s;s.children&&t.push(...s.children)}}findAncestorsById(e){const t=this.findParentById(e);return null==t?[]:[t,...this.findAncestorsById(t.id)]}findParentById(e){return this._findParentById(e,this.objects)}_findParentById(e,t,s=null){return t.some((t=>t.id===e))?s:t.filter((e=>null!=e.children)).map((t=>this._findParentById(e,t.children,t))).find((e=>null!=e))}updateParent(e,o){const r=this.findParentById(e.id);{const c=null!=o?this.getMatrixWorld(o).invert():(new t).identity();null!=r&&c.multiply(this.getMatrixWorld(r));const l=this.getLocalMatrix(e),a=c.multiply(l),h=new s,d=new i,b=new s;a.decompose(h,d,b),e.position=h.toArray(),e.rotation=(new n).setFromQuaternion(d).toArray(),e.scale=b.toArray()}this.removeRecursive(e.id,r?.children??this.objects),null!=r?r.children=r.children.slice():this.objects=this.objects.slice(),null!=o?(o.children??(o.children=[]),o.children.push(e),o.children=o.children.slice()):(this.objects.push(e),this.objects=this.objects.slice()),this.objectChange.next(this.objects),this.callbacks.forEach((t=>t(e)))}getMatrixWorld(e){const t=this.findAncestorsById(e.id).reverse();t.push(e);const s=this.getLocalMatrix(t.shift());for(const e of t){const t=this.getLocalMatrix(e);s.multiply(t)}return s}getLocalMatrix(e){const o=new t,r=(new s).fromArray(e.position),c=(new i).setFromEuler((new n).fromArray(e.rotation)),l=(new s).fromArray(e.scale);return o.compose(r,c,l),o}removeObject(e){this.removeRecursive(e.id,this.objects),this.removeCallbacks.forEach((t=>t(e))),this.objectChange.next([...this.objects])}removeRecursive(e,t){const s=t.findIndex((t=>t.id===e));if(s>-1)t.splice(s,1);else for(const s of t)null!=s.children&&this.removeRecursive(e,s.children??[])}save(){}serialize(){return JSON.stringify(this.objects)}}export function createInitialFog(){return{id:"auto-global-fog",name:"Global fog",type:"global_fog",fog:{type:"density",color:"#b8f8ff",density:.005,near:100,far:1e3}}}export function createInitialSky(){return{id:"auto-sky",name:"Sky",type:"sky",sky:{materialId:null}}}export function createWorldEnvironment(){return{id:"auto-world-env",name:"World Environment",type:"world_env",worldEnv:{ao:{enabled:!1,blendIntensity:1,radius:.25,distanceExponent:1,thickness:1,distanceFallOff:1,scale:1,samples:16,onlyAO:!1},toneMapping:{mapping:o,exposure:1},environment:{textureId:null,intensity:1}}}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -4,3 +4,4 @@ export declare function basicSceneSetup(scene: THREE.Scene): void;
4
4
  export declare const ambientLightName = "default_ambient";
5
5
  export declare const defaultSkyMaterial: NodeShaderMaterial;
6
6
  export declare function createSky(): THREE.Mesh<THREE.SphereGeometry, NodeShaderMaterial, THREE.Object3DEventMap>;
7
+ //# sourceMappingURL=sky.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky.d.ts","sourceRoot":"","sources":["../../src/scene/sky.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAc,kBAAkB,EAA6O,MAAM,oBAAoB,CAAC;AAI/S,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,QAGjD;AAED,eAAO,MAAM,gBAAgB,oBAAoB,CAAA;AA4EjD,eAAO,MAAM,kBAAkB,oBAkB3B,CAAA;AAGJ,wBAAgB,SAAS,iFASxB"}
package/dist/scene/sky.js CHANGED
@@ -1,5 +1,4 @@
1
- import*as e from"three";import{AmbientLight as a,FogExp2 as t}from"three";import{attributes as r,NodeShaderMaterial as o,uniforms as i,vec4 as n,varyingVec3 as s,float as h,normalize as d,rgb as c,mix as m,max as w,pow as p}from"three-shader-graph";export function basicSceneSetup(r){!function(t){new a(16777215,.5);var r=new e.HemisphereLight(16777215,273,.5*Math.PI);r.name=ambientLightName,r.position.set(0,100,0),t.add(r);new e.HemisphereLightHelper(r,10);var o=new e.DirectionalLight(16777215,.7);o.position.set(-30,50,30),o.castShadow=!0,o.shadow.mapSize.width=2048,o.shadow.mapSize.height=2048;var i=250;o.shadow.normalBias=.3,o.shadow.camera.left=-i,o.shadow.camera.right=i,o.shadow.camera.top=i,o.shadow.camera.bottom=-i,o.shadow.camera.far=500,o.shadow.bias=-5e-4;new e.DirectionalLightHelper(o,10);var n=new e.PointLight(16777215,1,50);n.castShadow=!0,n.position.set(0,40,0),n.shadow.camera.near=1,n.shadow.camera.far=60,n.shadow.bias=-.005}(r),function(e){e.fog=new t(l,f)}(r)}export const ambientLightName="default_ambient";const l=157554,f=.005;export const defaultSkyMaterial=function(){const a=h(5),t=h(.6),l=new e.Color(16777215),f=new e.Color(13431551),g=s(i.modelMatrix.multiplyVec(n(r.position,1)).xyz),u=d(g.addScalar(a)).y,S=w(p(w(u,h(0)),h(t)),h(0)),b=n(m(c(f),c(l),S),h(1)),y=new o({color:b.rgba});return y.side=e.BackSide,y.depthTest=!1,y}();export function createSky(){var a=new e.SphereGeometry(300,10,15),t=new e.Mesh(a,defaultSkyMaterial);return t.renderOrder=-999,t.raycast=()=>{},t}
2
- /*
1
+ import*as e from"three";import{AmbientLight as a,FogExp2 as t}from"three";import{attributes as r,NodeShaderMaterial as o,uniforms as i,vec4 as n,varyingVec3 as s,float as h,normalize as d,rgb as c,mix as m,max as w,pow as p}from"three-shader-graph";export function basicSceneSetup(r){!function(t){new a(16777215,.5);var r=new e.HemisphereLight(16777215,273,.5*Math.PI);r.name=ambientLightName,r.position.set(0,100,0),t.add(r);new e.HemisphereLightHelper(r,10);var o=new e.DirectionalLight(16777215,.7);o.position.set(-30,50,30),o.castShadow=!0,o.shadow.mapSize.width=2048,o.shadow.mapSize.height=2048;var i=250;o.shadow.normalBias=.3,o.shadow.camera.left=-i,o.shadow.camera.right=i,o.shadow.camera.top=i,o.shadow.camera.bottom=-i,o.shadow.camera.far=500,o.shadow.bias=-5e-4;new e.DirectionalLightHelper(o,10);var n=new e.PointLight(16777215,1,50);n.castShadow=!0,n.position.set(0,40,0),n.shadow.camera.near=1,n.shadow.camera.far=60,n.shadow.bias=-.005}(r),function(e){e.fog=new t(l,f)}(r)}export const ambientLightName="default_ambient";const l=157554,f=.005;export const defaultSkyMaterial=function(){const a=h(5),t=h(.6),l=new e.Color(16777215),f=new e.Color(13431551),g=s(i.modelMatrix.multiplyVec(n(r.position,1)).xyz),u=d(g.addScalar(a)).y,S=w(p(w(u,h(0)),h(t)),h(0)),b=n(m(c(f),c(l),S),h(1)),y=new o({color:b.rgba});return y.side=e.BackSide,y.depthTest=!1,y}();export function createSky(){var a=new e.SphereGeometry(300,10,15),t=new e.Mesh(a,defaultSkyMaterial);return t.renderOrder=-999,t.raycast=()=>{},t}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -76,3 +76,4 @@ export declare class ObjectStorage<T extends Entity> {
76
76
  }
77
77
  export declare function tokenizeName(name: string): string;
78
78
  export {};
79
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/scene/storage/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsF,UAAU,EAA0C,MAAM,MAAM,CAAC;AA+B9J,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AACD,KAAK,gBAAgB,GAAG;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,CAAA;AA2BjE,qBAAa,aAAa,CAAC,CAAC,SAAS,MAAM;IAc5B,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,UAAU,CAAC;IAbtD,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAMX;IACL,OAAO,CAAC,MAAM,CAAkD;IAChE,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAO;gBAEX,IAAI,EAAE,MAAM,EAAU,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM;IAEhF,WAAW,CAAC,IAAI,EAAE,MAAM;YAIjB,kCAAkC;IAWnC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjF;;OAEG;IACU,0BAA0B,CAAC,YAAY,EAAE,MAAM;IAI5D;;;;OAIG;IACU,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAqBnC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAK1D;;;;OAIG;IACU,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM;IASxC,eAAe,CAAC,YAAY,SAAK;IAIxC;;OAEG;IACI,YAAY,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAqBpC,KAAK,IAAI,UAAU,CAAC;QAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;QAAC,MAAM,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;YA6BtH,kBAAkB;YAOlB,gBAAgB;IAiBjB,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAmB3C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAgB3B,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQxB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBxC,MAAM,CAAC,GAAG,EAAE,CAAC;IAKb,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASzC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAMxC,OAAO,CAAC,SAAS;YAOH,WAAW;IAuBzB,OAAO,KAAK,aAAa,GAAmD;YAE9D,SAAS;IAWV,iBAAiB;IAIjB,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI;IAM7B,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAM5D,YAAY,CAAC,KAAK,EAAE,CAAC;IAQf,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM;IAQ7C,UAAU,CAAC,OAAO,EAAE,MAAM;IAavC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ;CA8BjB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC"}
@@ -1,5 +1,4 @@
1
- import{randomUUID as e}from"../../utils/uuid.js";import{pathJoin as t}from"../../utils/files.js";import{combineLatest as a,EMPTY as i,filter as r,firstValueFrom as s,from as n,map as h,mergeAll as o,mergeMap as l,Observable as c,of as d,startWith as u,Subject as p,switchMap as w,tap as f}from"rxjs";import{sleepDelay as m}from"../../utils/async.js";const y={},v={},j={},F={};null==y.read&&window.require&&(Object.assign(y,window.require("fs")),Object.assign(v,y.promises),Object.assign(j,window.require("path")),Object.assign(F,window.require("chokidar")));const b=null!=y.existsSync;function g(){if(b){const e="--path=",t=window.process.argv.find((t=>t.startsWith(e)));return t?t.substring(e.length):""}return""}const x=/^[A-Z]:/;function P(...e){return 0===e.length?"":x.test(e[0])||b?j.join(...e):t(...e)}export class ObjectStorage{constructor(e,t){this.name=e,this.filePathFn=t,this.basePathUpdates=new p,this.basePath=this.basePathUpdates.pipe(h((e=>P(g(),e))),f((e=>{this.path=P(e,this.name),O(this.path),this.determineIfMetaFileShouldBeCreated()}))),this.loaded=s(this.basePath),this.shouldCreateIndex=!0,this.watchers=[]}setBasePath(e){this.basePathUpdates.next(e)}async determineIfMetaFileShouldBeCreated(){try{(await v.readFile(P(g(),"vite.config.ts"))).toString().includes("hologyBuild")&&(this.shouldCreateIndex=!1)}catch(e){console.warn("Failed to read vite config to determine if meta files should be created")}}async createFolder(e,t=""){S(),await v.mkdir(j.join(this.path,t,e),{recursive:!0})}async deleteFolderForceDangerous(e){await v.rm(j.join(this.path,e),{recursive:!0,force:!0})}async moveFolder(e,t){if(S(),""==e)return void console.warn("Can not move a folder in root");const a=j.resolve(j.join(this.path,t),j.basename(e));if(await async function(e){try{await v.access(e,v.constants.F_OK)}catch(e){return!1}return!0}(a)){if(a!==j.resolve(this.path,e))throw new Error("Can not move to directory as a file already exists with the same name")}else{if(function(e,t){const a=j.resolve(e),i=j.resolve(t),r=j.normalize(a)+j.sep;return(j.normalize(i)+j.sep).startsWith(r)}(j.join(this.path,e),j.join(this.path,t)))throw new Error("Can not move a folder into a folder it contains");await v.rename(j.join(this.path,e),a)}}async renameFolder(e,t){await v.rename(j.join(this.path,e),j.resolve(j.dirname(j.join(this.path,e)),t))}async moveToFolder(e,t){if(S(),e.path===t)return;const a=this.privateObjectPath({...e,path:t});await v.rename(this.privateObjectPath(e),a)}getAbsolutePath(e=""){return j.join(this.path,e)}watchFolders(){const e=v.readdir(this.path,{recursive:!0,withFileTypes:!0});return a([n(e),this.watchDir(this.path).pipe(r((e=>!e.filename.endsWith(".json"))),u(null))]).pipe(w((([e,t])=>null!=t?n(v.readdir(this.path,{recursive:!0,withFileTypes:!0})):d(e))),h((e=>Array.from(new Set(e.filter((e=>e.isDirectory())).map((e=>j.relative(this.path,j.join(e.path,e.name)).replace(/^\.$/,""))).values())))))}watch(){return S(),n(this.loaded).pipe(w((()=>this.watchDir(this.path))),l((e=>{const t={event:e.event,path:j.dirname(e.filename).replace(/^\.$/,""),filename:j.basename(e.filename)};return e.filename.endsWith(".json")?"unlink"!==e.event?n(this.readFileIfExists(e.filename)).pipe(h((e=>({object:e,...t})))):d({object:null,...t}):"change"===e.event?n(this.reloadSubdirectory(e.filename)).pipe(o(),h((e=>({object:e,...t})))):i})))}async reloadSubdirectory(e){return(await this.getAll(e)).filter((t=>t.path.startsWith(e)))}async readFileIfExists(e){console.log("read file if exists");const t=P(this.path,e);try{const a=await v.readFile(t);return{...JSON.parse(a.toString()),path:j.dirname(e).replace(/^\.$/,""),filename:j.basename(e)}}catch{return console.error("Could not find file at "+t),null}}async getAll(e){if(b){await this.loaded,await O(this.path);const t=(await v.readdir(j.join(this.path,e??""),{recursive:!0,withFileTypes:!0})).filter((e=>e.isFile()&&e.name.endsWith(".json")&&!/^[\._]/.test(e.name)));return await Promise.all(t.map((e=>v.readFile(P(e.path,e.name)).then((t=>({...JSON.parse(t.toString()),path:j.relative(this.path,e.path).replace(/^\.$/,""),filename:j.basename(e.path)}))))))}const t=await this.loadIndex();return Promise.all(Object.keys(t).map((e=>this.get(e))))}async get(e){const t=await this.loadIndex(),a=t[e]??Object.values(t).find((t=>t.name===e));if(null==a)return;const i=this.privateObjectPath(a);if(!b)return(await fetch(i)).json();return await I(i)?JSON.parse((await v.readFile(i)).toString()):null}async save(e){return S(),await this.loaded,await v.writeFile(this.privateObjectPath(e),this.serialize(e)),await this.updateIndex(),e}async rename(e,t){const a={...e,name:t},i=this.privateObjectPath(e),r=this.privateObjectPath(a);try{await v.rename(i,r)}catch(e){console.error(e),console.warn("Rename failed, retrying",{currentPath:i,newPath:r}),await m(400),await v.rename(i,r)}return await this.save(a),await this.updateIndex(),a}async delete(e){await v.unlink(this.privateObjectPath(e)),this.updateIndex()}async create(t){return S(),await this.loaded,t.id=e(),await v.writeFile(this.privateObjectPath(t),this.serialize(t)),await this.updateIndex(),t}prepareCreate(t){return S(),t.id=e(),t}serialize(e){const t={...e};return delete t.path,delete t.filename,JSON.stringify(t,null,2)}async updateIndex(){S();const e=await this.getAll(),t={};for(const a of e)t[a.id]={id:a.id,name:a.name??a.id,path:a.path};if(this.cachedIndex=t,b){if(!this.shouldCreateIndex)return;await v.writeFile(this.indexFilePath,JSON.stringify(t,null,2))}}get indexFilePath(){return P(this.path,"_meta.json")}async loadIndex(){return null==this.cachedIndex&&(b?await this.updateIndex():this.cachedIndex=await(await fetch(this.indexFilePath)).json()),this.cachedIndex}async ensureResourceDir(){await O(P(this.path+"-resources"))}async saveFile(e,t){return S(),await O(P(this.path+"-resources")),v.copyFile(t.path,P(this.path+"-resources",e.fileKey))}async saveExtraFile(e,t){return S(),await O(P(this.path+"-resources")),v.copyFile(e,P(this.path+"-resources",t))}getAssetPath(e){return window&&"function"==typeof window.require?window.require("path").join(this.path+"-resources",e.fileKey):P(this.path+"-resources",e.fileKey)}async replaceFile(e,t){if(await I(t))return v.copyFile(t,P(this.path+"-resources",e.fileKey));console.error("Failed to replace file using path "+t)}async deleteFile(e){if(null==e)return;S();const t=P(this.path+"-resources",e);return await I(t)?v.unlink(t):void 0}privateObjectPath(e){return this.filePathFn?P(this.path,e.path??"",this.filePathFn(e)):P(this.path,e.path??"",tokenizeName(e.name??e.id)+".json")}watchDir(e){return new c((t=>{const a=F.watch(e,{cwd:e});return a.on("all",((e,a,i)=>{t.next({event:e,filename:a})})),a.on("unlinkDir",(e=>{})),a.on("error",(()=>{})),this.watchers.push(a),()=>{a.close()}}))}}export function tokenizeName(e){return e.trim().replace(/\s/g,"_").replace(/[^a-z0-9_\-\.]/gi,"")}async function O(e){b&&(await I(e)||await v.mkdir(e,{recursive:!0}))}function I(e){return!!b&&new Promise((function(t,a){y.exists(e,(function(e){t(e)}))}))}function S(){if(!b)throw new Error("Must have direct access to filesystem")}
2
- /*
1
+ import{randomUUID as e}from"../../utils/uuid.js";import{pathJoin as t}from"../../utils/files.js";import{combineLatest as a,EMPTY as i,filter as r,firstValueFrom as s,from as n,map as h,mergeAll as o,mergeMap as l,Observable as c,of as d,startWith as u,Subject as p,switchMap as w,tap as f}from"rxjs";import{sleepDelay as m}from"../../utils/async.js";const y={},v={},j={},F={};null==y.read&&window.require&&(Object.assign(y,window.require("fs")),Object.assign(v,y.promises),Object.assign(j,window.require("path")),Object.assign(F,window.require("chokidar")));const b=null!=y.existsSync;function g(){if(b){const e="--path=",t=window.process.argv.find((t=>t.startsWith(e)));return t?t.substring(e.length):""}return""}const x=/^[A-Z]:/;function P(...e){return 0===e.length?"":x.test(e[0])||b?j.join(...e):t(...e)}export class ObjectStorage{constructor(e,t){this.name=e,this.filePathFn=t,this.basePathUpdates=new p,this.basePath=this.basePathUpdates.pipe(h((e=>P(g(),e))),f((e=>{this.path=P(e,this.name),O(this.path),this.determineIfMetaFileShouldBeCreated()}))),this.loaded=s(this.basePath),this.shouldCreateIndex=!0,this.watchers=[]}setBasePath(e){this.basePathUpdates.next(e)}async determineIfMetaFileShouldBeCreated(){try{(await v.readFile(P(g(),"vite.config.ts"))).toString().includes("hologyBuild")&&(this.shouldCreateIndex=!1)}catch(e){console.warn("Failed to read vite config to determine if meta files should be created")}}async createFolder(e,t=""){S(),await v.mkdir(j.join(this.path,t,e),{recursive:!0})}async deleteFolderForceDangerous(e){await v.rm(j.join(this.path,e),{recursive:!0,force:!0})}async moveFolder(e,t){if(S(),""==e)return void console.warn("Can not move a folder in root");const a=j.resolve(j.join(this.path,t),j.basename(e));if(await async function(e){try{await v.access(e,v.constants.F_OK)}catch(e){return!1}return!0}(a)){if(a!==j.resolve(this.path,e))throw new Error("Can not move to directory as a file already exists with the same name")}else{if(function(e,t){const a=j.resolve(e),i=j.resolve(t),r=j.normalize(a)+j.sep;return(j.normalize(i)+j.sep).startsWith(r)}(j.join(this.path,e),j.join(this.path,t)))throw new Error("Can not move a folder into a folder it contains");await v.rename(j.join(this.path,e),a)}}async renameFolder(e,t){await v.rename(j.join(this.path,e),j.resolve(j.dirname(j.join(this.path,e)),t))}async moveToFolder(e,t){if(S(),e.path===t)return;const a=this.privateObjectPath({...e,path:t});await v.rename(this.privateObjectPath(e),a)}getAbsolutePath(e=""){return j.join(this.path,e)}watchFolders(){const e=v.readdir(this.path,{recursive:!0,withFileTypes:!0});return a([n(e),this.watchDir(this.path).pipe(r((e=>!e.filename.endsWith(".json"))),u(null))]).pipe(w((([e,t])=>null!=t?n(v.readdir(this.path,{recursive:!0,withFileTypes:!0})):d(e))),h((e=>Array.from(new Set(e.filter((e=>e.isDirectory())).map((e=>j.relative(this.path,j.join(e.path,e.name)).replace(/^\.$/,""))).values())))))}watch(){return S(),n(this.loaded).pipe(w((()=>this.watchDir(this.path))),l((e=>{const t={event:e.event,path:j.dirname(e.filename).replace(/^\.$/,""),filename:j.basename(e.filename)};return e.filename.endsWith(".json")?"unlink"!==e.event?n(this.readFileIfExists(e.filename)).pipe(h((e=>({object:e,...t})))):d({object:null,...t}):"change"===e.event?n(this.reloadSubdirectory(e.filename)).pipe(o(),h((e=>({object:e,...t})))):i})))}async reloadSubdirectory(e){return(await this.getAll(e)).filter((t=>t.path.startsWith(e)))}async readFileIfExists(e){console.log("read file if exists");const t=P(this.path,e);try{const a=await v.readFile(t);return{...JSON.parse(a.toString()),path:j.dirname(e).replace(/^\.$/,""),filename:j.basename(e)}}catch{return console.error("Could not find file at "+t),null}}async getAll(e){if(b){await this.loaded,await O(this.path);const t=(await v.readdir(j.join(this.path,e??""),{recursive:!0,withFileTypes:!0})).filter((e=>e.isFile()&&e.name.endsWith(".json")&&!/^[\._]/.test(e.name)));return await Promise.all(t.map((e=>v.readFile(P(e.path,e.name)).then((t=>({...JSON.parse(t.toString()),path:j.relative(this.path,e.path).replace(/^\.$/,""),filename:j.basename(e.path)}))))))}const t=await this.loadIndex();return Promise.all(Object.keys(t).map((e=>this.get(e))))}async get(e){const t=await this.loadIndex(),a=t[e]??Object.values(t).find((t=>t.name===e));if(null==a)return;const i=this.privateObjectPath(a);if(!b)return(await fetch(i)).json();return await I(i)?JSON.parse((await v.readFile(i)).toString()):null}async save(e){return S(),await this.loaded,await v.writeFile(this.privateObjectPath(e),this.serialize(e)),await this.updateIndex(),e}async rename(e,t){const a={...e,name:t},i=this.privateObjectPath(e),r=this.privateObjectPath(a);try{await v.rename(i,r)}catch(e){console.error(e),console.warn("Rename failed, retrying",{currentPath:i,newPath:r}),await m(400),await v.rename(i,r)}return await this.save(a),await this.updateIndex(),a}async delete(e){await v.unlink(this.privateObjectPath(e)),this.updateIndex()}async create(t){return S(),await this.loaded,t.id=e(),await v.writeFile(this.privateObjectPath(t),this.serialize(t)),await this.updateIndex(),t}prepareCreate(t){return S(),t.id=e(),t}serialize(e){const t={...e};return delete t.path,delete t.filename,JSON.stringify(t,null,2)}async updateIndex(){S();const e=await this.getAll(),t={};for(const a of e)t[a.id]={id:a.id,name:a.name??a.id,path:a.path};if(this.cachedIndex=t,b){if(!this.shouldCreateIndex)return;await v.writeFile(this.indexFilePath,JSON.stringify(t,null,2))}}get indexFilePath(){return P(this.path,"_meta.json")}async loadIndex(){return null==this.cachedIndex&&(b?await this.updateIndex():this.cachedIndex=await(await fetch(this.indexFilePath)).json()),this.cachedIndex}async ensureResourceDir(){await O(P(this.path+"-resources"))}async saveFile(e,t){return S(),await O(P(this.path+"-resources")),v.copyFile(t.path,P(this.path+"-resources",e.fileKey))}async saveExtraFile(e,t){return S(),await O(P(this.path+"-resources")),v.copyFile(e,P(this.path+"-resources",t))}getAssetPath(e){return window&&"function"==typeof window.require?window.require("path").join(this.path+"-resources",e.fileKey):P(this.path+"-resources",e.fileKey)}async replaceFile(e,t){if(await I(t))return v.copyFile(t,P(this.path+"-resources",e.fileKey));console.error("Failed to replace file using path "+t)}async deleteFile(e){if(null==e)return;S();const t=P(this.path+"-resources",e);return await I(t)?v.unlink(t):void 0}privateObjectPath(e){return this.filePathFn?P(this.path,e.path??"",this.filePathFn(e)):P(this.path,e.path??"",tokenizeName(e.name??e.id)+".json")}watchDir(e){return new c((t=>{const a=F.watch(e,{cwd:e});return a.on("all",((e,a,i)=>{t.next({event:e,filename:a})})),a.on("unlinkDir",(e=>{})),a.on("error",(()=>{})),this.watchers.push(a),()=>{a.close()}}))}}export function tokenizeName(e){return e.trim().replace(/\s/g,"_").replace(/[^a-z0-9_\-\.]/gi,"")}async function O(e){b&&(await I(e)||await v.mkdir(e,{recursive:!0}))}function I(e){return!!b&&new Promise((function(t,a){y.exists(e,(function(e){t(e)}))}))}function S(){if(!b)throw new Error("Must have direct access to filesystem")}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,3 +1,4 @@
1
1
  export * from './standard-shader.js';
2
2
  export * from './lambert-shader.js';
3
3
  export * from './unlit-shader.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shader/builtin/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA"}
@@ -1,5 +1,4 @@
1
- export*from"./standard-shader.js";export*from"./lambert-shader.js";export*from"./unlit-shader.js";
2
- /*
1
+ export*from"./standard-shader.js";export*from"./lambert-shader.js";export*from"./unlit-shader.js";/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -18,3 +18,4 @@ export declare class LambertShader extends Shader {
18
18
  refractionRatio?: number;
19
19
  build(): Material;
20
20
  }
21
+ //# sourceMappingURL=lambert-shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambert-shader.d.ts","sourceRoot":"","sources":["../../../src/shader/builtin/lambert-shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAwC,OAAO,EAAgC,MAAM,OAAO,CAAC;AACrH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,qBAAa,aAAc,SAAQ,MAAM;IAC1B,KAAK,EAAE,KAAK,CAAwB;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAI;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGpD,KAAK,IAAI,QAAQ;CAoBlB"}
@@ -1,5 +1,4 @@
1
- import{__decorate as e,__metadata as t}from"tslib";import{Color as i,Texture as a,MeshLambertMaterial as r}from"three";import{Shader as p}from"../shader.js";import{Parameter as o}from"../parameter.js";import{removeObjectUndefined as s}from"../../utils/collections.js";export class LambertShader extends p{constructor(){super(...arguments),this.color=new i("#FFFFFF"),this.opacity=1}build(){return new r(s({color:this.color,opacity:this.opacity,emissive:this.emissive,emissiveIntensity:this.emissiveIntensity,emissiveMap:this.emissiveMap,map:this.map,lightMap:this.lightMap,lightMapIntensity:this.lightMapIntensity,aoMap:this.aoMap,aoMapIntensity:this.aoMapIntensity,specularMap:this.specularMap,alphaMap:this.alphaMap,envMap:this.envMap,reflectivity:this.reflectivity,refractionRatio:this.refractionRatio}))}}e([o(),t("design:type",i)],LambertShader.prototype,"color",void 0),e([o({label:"Color Map"}),t("design:type",a)],LambertShader.prototype,"map",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"opacity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"alphaMap",void 0),e([o(),t("design:type",i)],LambertShader.prototype,"emissive",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"emissiveIntensity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"emissiveMap",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"lightMap",void 0),e([o(),t("design:type",Number)],LambertShader.prototype,"lightMapIntensity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"aoMap",void 0),e([o(),t("design:type",Number)],LambertShader.prototype,"aoMapIntensity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"specularMap",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"envMap",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"reflectivity",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"refractionRatio",void 0);
2
- /*
1
+ import{__decorate as e,__metadata as t}from"tslib";import{Color as i,Texture as a,MeshLambertMaterial as r}from"three";import{Shader as p}from"../shader.js";import{Parameter as o}from"../parameter.js";import{removeObjectUndefined as s}from"../../utils/collections.js";export class LambertShader extends p{constructor(){super(...arguments),this.color=new i("#FFFFFF"),this.opacity=1}build(){return new r(s({color:this.color,opacity:this.opacity,emissive:this.emissive,emissiveIntensity:this.emissiveIntensity,emissiveMap:this.emissiveMap,map:this.map,lightMap:this.lightMap,lightMapIntensity:this.lightMapIntensity,aoMap:this.aoMap,aoMapIntensity:this.aoMapIntensity,specularMap:this.specularMap,alphaMap:this.alphaMap,envMap:this.envMap,reflectivity:this.reflectivity,refractionRatio:this.refractionRatio}))}}e([o(),t("design:type",i)],LambertShader.prototype,"color",void 0),e([o({label:"Color Map"}),t("design:type",a)],LambertShader.prototype,"map",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"opacity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"alphaMap",void 0),e([o(),t("design:type",i)],LambertShader.prototype,"emissive",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"emissiveIntensity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"emissiveMap",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"lightMap",void 0),e([o(),t("design:type",Number)],LambertShader.prototype,"lightMapIntensity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"aoMap",void 0),e([o(),t("design:type",Number)],LambertShader.prototype,"aoMapIntensity",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"specularMap",void 0),e([o(),t("design:type",a)],LambertShader.prototype,"envMap",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"reflectivity",void 0),e([o({range:[0,1]}),t("design:type",Number)],LambertShader.prototype,"refractionRatio",void 0);/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -13,3 +13,4 @@ export declare class LandscapeCompositeShader extends NodeShader {
13
13
  slopeAngle: number;
14
14
  output(): NodeShaderOutput;
15
15
  }
16
+ //# sourceMappingURL=landscape-composite-shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landscape-composite-shader.d.ts","sourceRoot":"","sources":["../../../src/shader/builtin/landscape-composite-shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAoF,MAAM,OAAO,CAAC;AAE1H,OAAO,EAAE,YAAY,EAAoB,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAK5D,qBAAa,wBAAyB,SAAQ,UAAU;IACzB,MAAM,EAAE,QAAQ,EAAE,CAAK;IAEvC,OAAO,EAAE,MAAM,CAAI;IAE4E,UAAU,EAAE,YAAY,CAAoB;IAC3I,UAAU,EAAE,MAAM,CAAI;IACtB,WAAW,EAAE,MAAM,CAAK;IACxB,QAAQ,EAAE,MAAM,CAAK;IAErB,WAAW,EAAE,OAAO,CAAQ;IAC5B,aAAa,EAAE,QAAQ,CAAA;IACvB,UAAU,EAAE,MAAM,CAAK;IAEpC,MAAM,IAAI,gBAAgB;CA4H3B"}
@@ -1,5 +1,4 @@
1
- import{__decorate as e,__metadata as t}from"tslib";import{Material as s,MathUtils as a,MeshBasicMaterial as o,MeshLambertMaterial as l,MeshStandardMaterial as i}from"three";import{cos as n,float as r,mix as p,standardMaterial as m,step as h,varyingAttributes as u,SimplexNoiseNode as c,varying as d,uniforms as y,vec4 as g,attributes as M,smoothstep as S,textureSampler2d as f,rgba as v,varyingTransformed as b,colorToNormal as C}from"three-shader-graph";import{LayerMixMode as L,mixColorsByLayer as A}from"../../shader-nodes/layers.js";import{Parameter as x}from"../parameter.js";import{NodeShader as N}from"../shader.js";const w=d(y.modelMatrix.multiplyVec(g(M.position,1)).xz);export class LandscapeCompositeShader extends N{constructor(){super(...arguments),this.layers=[],this.uvScale=1,this.transition=L.soft,this.noiseScale=1,this.noiseAmount=.2,this.softness=.3,this.enableSlope=!1,this.slopeAngle=35}output(){const e=new j,t=u.uv.multiplyScalar(this.uvScale??1),s=this.layers.map((e=>{if(e instanceof i||e instanceof l||e instanceof o){let s=v(e.color,1);return null!=e.map&&(s=s.multiply(f(e.map).sample(t))),s}return v("white")})),d=this.layers.map((e=>(e instanceof i||e instanceof l)&&null!=e.normalMap?C(f(e.normalMap).sample(t),e.normalScale?.x??1):b.normal)),y=this.layers.map((s=>{let a=r(1);return s instanceof i&&(a=r(s.roughness??1),null!=s.roughnessMap&&(a=a.multiply(e.get(s.roughnessMap,t).g))),a})),g=this.layers.map((s=>{let a=r(0);return s instanceof i&&(a=r(s.metalness??0),null!=s.metalnessMap&&(a=a.multiply(e.get(s.metalnessMap,t).b))),a}));let M,x,N,z;this.enableSlope&&null!=this.slopeMaterial&&this.slopeMaterial instanceof i&&(M=v(this.slopeMaterial.color,1),null!=this.slopeMaterial.map&&(M=M.multiply(e.get(this.slopeMaterial.map,t))),x=b.normal,null!=this.slopeMaterial.normalMap&&(x=C(e.get(this.slopeMaterial.normalMap,t),this.slopeMaterial.normalScale?.x??1)),N=r(this.slopeMaterial.roughness??1),null!=this.slopeMaterial.roughnessMap&&(N=N.multiply(e.get(this.slopeMaterial.roughnessMap,t).g)),z=r(this.slopeMaterial.metalness??0),null!=this.slopeMaterial.roughnessMap&&(z=z.multiply(e.get(this.slopeMaterial.metalnessMap,t).b)));const B=(e,t)=>{const s=A({layerColors:e.slice(0,8),noiseScale:this.noiseScale,noiseAmount:this.noiseAmount,mode:this.transition,decay:this.softness}),o=r(this.noiseAmount).multiply(r(.1)),l=r(this.noiseScale),i=new c(w.multiplyScalar(l)).multiply(r(2)).subtract(r(1)).multiply(o),m=r(a.degToRad(this.slopeAngle)).add(i.multiply(r(.1)));let d=p(s,t,h(m,n(u.normal.y)));if(this.transition==L.soft){const e=m,a=r(this.softness).divide(r(2)),o=e.subtract(a),l=e.add(a);d=p(s,t,S(o,l,n(u.normal.y)))}return this.enableSlope&&null!=t?d:s},H=B(s,M),R=B(d,x),T=B(y,N),V=B(g,z);return{color:m({color:H,normal:R,roughness:T,metalness:V}),landscape:!0}}}e([x({type:s}),t("design:type",Array)],LandscapeCompositeShader.prototype,"layers",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"uvScale",void 0),e([x({options:[{value:L.hard,name:"Hard"},{value:L.soft,name:"Soft"}]}),t("design:type",Number)],LandscapeCompositeShader.prototype,"transition",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"noiseScale",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"noiseAmount",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"softness",void 0),e([x(),t("design:type",Boolean)],LandscapeCompositeShader.prototype,"enableSlope",void 0),e([x(),t("design:type",s)],LandscapeCompositeShader.prototype,"slopeMaterial",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"slopeAngle",void 0);class j{constructor(){this.cache=new Map}get(e,t){return this.cache.has(e)||this.cache.set(e,f(e).sample(t)),this.cache.get(e)}}
2
- /*
1
+ import{__decorate as e,__metadata as t}from"tslib";import{Material as s,MathUtils as a,MeshBasicMaterial as o,MeshLambertMaterial as l,MeshStandardMaterial as i}from"three";import{cos as n,float as r,mix as p,standardMaterial as m,step as h,varyingAttributes as u,SimplexNoiseNode as c,varying as d,uniforms as y,vec4 as g,attributes as M,smoothstep as S,textureSampler2d as f,rgba as v,varyingTransformed as b,colorToNormal as C}from"three-shader-graph";import{LayerMixMode as L,mixColorsByLayer as A}from"../../shader-nodes/layers.js";import{Parameter as x}from"../parameter.js";import{NodeShader as N}from"../shader.js";const w=d(y.modelMatrix.multiplyVec(g(M.position,1)).xz);export class LandscapeCompositeShader extends N{constructor(){super(...arguments),this.layers=[],this.uvScale=1,this.transition=L.soft,this.noiseScale=1,this.noiseAmount=.2,this.softness=.3,this.enableSlope=!1,this.slopeAngle=35}output(){const e=new j,t=u.uv.multiplyScalar(this.uvScale??1),s=this.layers.map((e=>{if(e instanceof i||e instanceof l||e instanceof o){let s=v(e.color,1);return null!=e.map&&(s=s.multiply(f(e.map).sample(t))),s}return v("white")})),d=this.layers.map((e=>(e instanceof i||e instanceof l)&&null!=e.normalMap?C(f(e.normalMap).sample(t),e.normalScale?.x??1):b.normal)),y=this.layers.map((s=>{let a=r(1);return s instanceof i&&(a=r(s.roughness??1),null!=s.roughnessMap&&(a=a.multiply(e.get(s.roughnessMap,t).g))),a})),g=this.layers.map((s=>{let a=r(0);return s instanceof i&&(a=r(s.metalness??0),null!=s.metalnessMap&&(a=a.multiply(e.get(s.metalnessMap,t).b))),a}));let M,x,N,z;this.enableSlope&&null!=this.slopeMaterial&&this.slopeMaterial instanceof i&&(M=v(this.slopeMaterial.color,1),null!=this.slopeMaterial.map&&(M=M.multiply(e.get(this.slopeMaterial.map,t))),x=b.normal,null!=this.slopeMaterial.normalMap&&(x=C(e.get(this.slopeMaterial.normalMap,t),this.slopeMaterial.normalScale?.x??1)),N=r(this.slopeMaterial.roughness??1),null!=this.slopeMaterial.roughnessMap&&(N=N.multiply(e.get(this.slopeMaterial.roughnessMap,t).g)),z=r(this.slopeMaterial.metalness??0),null!=this.slopeMaterial.roughnessMap&&(z=z.multiply(e.get(this.slopeMaterial.metalnessMap,t).b)));const B=(e,t)=>{const s=A({layerColors:e.slice(0,8),noiseScale:this.noiseScale,noiseAmount:this.noiseAmount,mode:this.transition,decay:this.softness}),o=r(this.noiseAmount).multiply(r(.1)),l=r(this.noiseScale),i=new c(w.multiplyScalar(l)).multiply(r(2)).subtract(r(1)).multiply(o),m=r(a.degToRad(this.slopeAngle)).add(i.multiply(r(.1)));let d=p(s,t,h(m,n(u.normal.y)));if(this.transition==L.soft){const e=m,a=r(this.softness).divide(r(2)),o=e.subtract(a),l=e.add(a);d=p(s,t,S(o,l,n(u.normal.y)))}return this.enableSlope&&null!=t?d:s},H=B(s,M),R=B(d,x),T=B(y,N),V=B(g,z);return{color:m({color:H,normal:R,roughness:T,metalness:V}),landscape:!0}}}e([x({type:s}),t("design:type",Array)],LandscapeCompositeShader.prototype,"layers",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"uvScale",void 0),e([x({options:[{value:L.hard,name:"Hard"},{value:L.soft,name:"Soft"}]}),t("design:type",Number)],LandscapeCompositeShader.prototype,"transition",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"noiseScale",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"noiseAmount",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"softness",void 0),e([x(),t("design:type",Boolean)],LandscapeCompositeShader.prototype,"enableSlope",void 0),e([x(),t("design:type",s)],LandscapeCompositeShader.prototype,"slopeMaterial",void 0),e([x(),t("design:type",Number)],LandscapeCompositeShader.prototype,"slopeAngle",void 0);class j{constructor(){this.cache=new Map}get(e,t){return this.cache.has(e)||this.cache.set(e,f(e).sample(t)),this.cache.get(e)}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -20,3 +20,4 @@ export declare class LandscapeShader extends NodeShader {
20
20
  slopeAngle: number;
21
21
  output(): NodeShaderOutput;
22
22
  }
23
+ //# sourceMappingURL=landscape-shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landscape-shader.d.ts","sourceRoot":"","sources":["../../../src/shader/builtin/landscape-shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAoB,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAK5D,qBAAa,eAAgB,SAAQ,UAAU;IAChC,SAAS,EAAE,KAAK,CAAwB;IACxC,UAAU,EAAE,KAAK,CAAwB;IACzC,WAAW,EAAE,KAAK,CAAwB;IAC1C,UAAU,EAAE,KAAK,CAAwB;IACzC,WAAW,EAAE,KAAK,CAAwB;IAC1C,UAAU,EAAE,KAAK,CAAwB;IACzC,UAAU,EAAE,KAAK,CAAwB;IACzC,YAAY,EAAE,KAAK,CAAwB;IAC3C,WAAW,EAAE,KAAK,CAAwB;IAEqD,UAAU,EAAE,YAAY,CAAoB;IAC3I,UAAU,EAAE,MAAM,CAAI;IACtB,WAAW,EAAE,MAAM,CAAK;IACxB,QAAQ,EAAE,MAAM,CAAK;IAErB,WAAW,EAAE,OAAO,CAAQ;IAC5B,UAAU,EAAE,KAAK,CAAwB;IACzC,UAAU,EAAE,MAAM,CAAK;IAEpC,MAAM,IAAI,gBAAgB;CA4C3B"}
@@ -1,5 +1,4 @@
1
- import{__decorate as o,__metadata as e}from"tslib";import{Color as t,MathUtils as s}from"three";import{cos as i,float as r,mix as n,rgb as d,standardMaterial as a,step as p,varyingAttributes as h,SimplexNoiseNode as l,varying as y,uniforms as c,vec4 as m,attributes as C,smoothstep as u}from"three-shader-graph";import{LayerMixMode as f,mixColorsByLayer as S}from"../../shader-nodes/layers.js";import{Parameter as g}from"../parameter.js";import{NodeShader as v}from"../shader.js";const L=y(c.modelMatrix.multiplyVec(m(C.position,1)).xz);export class LandscapeShader extends v{constructor(){super(...arguments),this.baseColor=new t("#dddddd"),this.firstColor=new t("#FF6F61"),this.secondColor=new t("#6B5B95"),this.thirdColor=new t("#88B04B"),this.fourthColor=new t("#F7CAC9"),this.fifthColor=new t("#92A8D1"),this.sixthColor=new t("#FFE156"),this.seventhColor=new t("#34568B"),this.eighthColor=new t("#FF6F91"),this.transition=f.soft,this.noiseScale=1,this.noiseAmount=.2,this.softness=.3,this.enableSlope=!1,this.slopeColor=new t("#999999"),this.slopeAngle=35}output(){const o=S({layerColors:[d(this.baseColor),d(this.firstColor),d(this.secondColor),d(this.thirdColor),d(this.fourthColor),d(this.fifthColor),d(this.sixthColor),d(this.seventhColor),d(this.eighthColor)],noiseScale:this.noiseScale,noiseAmount:this.noiseAmount,mode:this.transition,decay:this.softness}),e=r(this.noiseAmount).multiply(r(.1)),t=r(this.noiseScale),y=new l(L.multiplyScalar(t)).multiply(r(2)).subtract(r(1)).multiply(e),c=r(s.degToRad(this.slopeAngle)).add(y.multiply(r(.1)));let m=n(o,d(this.slopeColor),p(c,i(h.normal.y)));if(this.transition==f.soft){const e=c,t=r(this.softness).divide(r(2)),s=e.subtract(t),a=e.add(t);m=n(o,d(this.slopeColor),u(s,a,i(h.normal.y)))}return{color:a({color:this.enableSlope?m:o}),landscape:!0}}}o([g(),e("design:type",t)],LandscapeShader.prototype,"baseColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"firstColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"secondColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"thirdColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"fourthColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"fifthColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"sixthColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"seventhColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"eighthColor",void 0),o([g({options:[{value:f.hard,name:"Hard"},{value:f.soft,name:"Soft"}]}),e("design:type",Number)],LandscapeShader.prototype,"transition",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"noiseScale",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"noiseAmount",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"softness",void 0),o([g(),e("design:type",Boolean)],LandscapeShader.prototype,"enableSlope",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"slopeColor",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"slopeAngle",void 0);
2
- /*
1
+ import{__decorate as o,__metadata as e}from"tslib";import{Color as t,MathUtils as s}from"three";import{cos as i,float as r,mix as n,rgb as d,standardMaterial as a,step as p,varyingAttributes as h,SimplexNoiseNode as l,varying as y,uniforms as c,vec4 as m,attributes as C,smoothstep as u}from"three-shader-graph";import{LayerMixMode as f,mixColorsByLayer as S}from"../../shader-nodes/layers.js";import{Parameter as g}from"../parameter.js";import{NodeShader as v}from"../shader.js";const L=y(c.modelMatrix.multiplyVec(m(C.position,1)).xz);export class LandscapeShader extends v{constructor(){super(...arguments),this.baseColor=new t("#dddddd"),this.firstColor=new t("#FF6F61"),this.secondColor=new t("#6B5B95"),this.thirdColor=new t("#88B04B"),this.fourthColor=new t("#F7CAC9"),this.fifthColor=new t("#92A8D1"),this.sixthColor=new t("#FFE156"),this.seventhColor=new t("#34568B"),this.eighthColor=new t("#FF6F91"),this.transition=f.soft,this.noiseScale=1,this.noiseAmount=.2,this.softness=.3,this.enableSlope=!1,this.slopeColor=new t("#999999"),this.slopeAngle=35}output(){const o=S({layerColors:[d(this.baseColor),d(this.firstColor),d(this.secondColor),d(this.thirdColor),d(this.fourthColor),d(this.fifthColor),d(this.sixthColor),d(this.seventhColor),d(this.eighthColor)],noiseScale:this.noiseScale,noiseAmount:this.noiseAmount,mode:this.transition,decay:this.softness}),e=r(this.noiseAmount).multiply(r(.1)),t=r(this.noiseScale),y=new l(L.multiplyScalar(t)).multiply(r(2)).subtract(r(1)).multiply(e),c=r(s.degToRad(this.slopeAngle)).add(y.multiply(r(.1)));let m=n(o,d(this.slopeColor),p(c,i(h.normal.y)));if(this.transition==f.soft){const e=c,t=r(this.softness).divide(r(2)),s=e.subtract(t),a=e.add(t);m=n(o,d(this.slopeColor),u(s,a,i(h.normal.y)))}return{color:a({color:this.enableSlope?m:o}),landscape:!0}}}o([g(),e("design:type",t)],LandscapeShader.prototype,"baseColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"firstColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"secondColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"thirdColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"fourthColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"fifthColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"sixthColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"seventhColor",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"eighthColor",void 0),o([g({options:[{value:f.hard,name:"Hard"},{value:f.soft,name:"Soft"}]}),e("design:type",Number)],LandscapeShader.prototype,"transition",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"noiseScale",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"noiseAmount",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"softness",void 0),o([g(),e("design:type",Boolean)],LandscapeShader.prototype,"enableSlope",void 0),o([g(),e("design:type",t)],LandscapeShader.prototype,"slopeColor",void 0),o([g(),e("design:type",Number)],LandscapeShader.prototype,"slopeAngle",void 0);/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -28,3 +28,4 @@ export declare class StandardShader extends Shader {
28
28
  refractionRatio?: number;
29
29
  build(): Material;
30
30
  }
31
+ //# sourceMappingURL=standard-shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-shader.d.ts","sourceRoot":"","sources":["../../../src/shader/builtin/standard-shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAwC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,qBAAa,cAAe,SAAQ,MAAM;IAE3B,KAAK,EAAE,KAAK,CAAwB;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAI;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACL,SAAS,CAAC,EAAE,MAAM,CAAK;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACT,SAAS,CAAC,EAAE,MAAM,CAAK;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAKpD,KAAK,IAAI,QAAQ;CAkClB"}
@@ -1,5 +1,4 @@
1
- import{__decorate as e,__metadata as t}from"tslib";import{Color as a,MeshStandardMaterial as p,Texture as i,Vector2 as d}from"three";import{Shader as r}from"../shader.js";import{Parameter as s}from"../parameter.js";import{removeObjectUndefined as o}from"../../utils/collections.js";export class StandardShader extends r{constructor(){super(...arguments),this.color=new a("#FFFFFF"),this.opacity=1,this.roughness=1,this.metalness=0}build(){return new p(o({color:this.color,opacity:this.opacity,roughness:this.roughness,metalness:this.metalness,map:this.map,lightMap:this.lightMap,lightMapIntensity:this.lightMapIntensity,aoMap:this.aoMap,aoMapIntensity:this.aoMapIntensity,emissive:this.emissive,emissiveIntensity:this.emissiveIntensity,emissiveMap:this.emissiveMap,bumpMap:this.bumpMap,bumpScale:this.bumpScale,normalMap:this.normalMap,normalScale:this.normalScale,displacementMap:this.displacementMap,displacementScale:this.displacementScale,displacementBias:this.displacementBias,roughnessMap:this.roughnessMap,metalnessMap:this.metalnessMap,alphaMap:this.alphaMap,envMap:this.envMap,envMapIntensity:this.envMapIntensity,refractionRatio:this.refractionRatio}))}}e([s(),t("design:type",a)],StandardShader.prototype,"color",void 0),e([s({label:"Color Map"}),t("design:type",i)],StandardShader.prototype,"map",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"opacity",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"alphaMap",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"roughness",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"roughnessMap",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"metalness",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"metalnessMap",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"lightMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"lightMapIntensity",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"aoMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"aoMapIntensity",void 0),e([s(),t("design:type",a)],StandardShader.prototype,"emissive",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"emissiveIntensity",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"emissiveMap",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"bumpMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"bumpScale",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"normalMap",void 0),e([s(),t("design:type",d)],StandardShader.prototype,"normalScale",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"displacementMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"displacementScale",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"displacementBias",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"envMap",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"envMapIntensity",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"refractionRatio",void 0);
2
- /*
1
+ import{__decorate as e,__metadata as t}from"tslib";import{Color as a,MeshStandardMaterial as p,Texture as i,Vector2 as d}from"three";import{Shader as r}from"../shader.js";import{Parameter as s}from"../parameter.js";import{removeObjectUndefined as o}from"../../utils/collections.js";export class StandardShader extends r{constructor(){super(...arguments),this.color=new a("#FFFFFF"),this.opacity=1,this.roughness=1,this.metalness=0}build(){return new p(o({color:this.color,opacity:this.opacity,roughness:this.roughness,metalness:this.metalness,map:this.map,lightMap:this.lightMap,lightMapIntensity:this.lightMapIntensity,aoMap:this.aoMap,aoMapIntensity:this.aoMapIntensity,emissive:this.emissive,emissiveIntensity:this.emissiveIntensity,emissiveMap:this.emissiveMap,bumpMap:this.bumpMap,bumpScale:this.bumpScale,normalMap:this.normalMap,normalScale:this.normalScale,displacementMap:this.displacementMap,displacementScale:this.displacementScale,displacementBias:this.displacementBias,roughnessMap:this.roughnessMap,metalnessMap:this.metalnessMap,alphaMap:this.alphaMap,envMap:this.envMap,envMapIntensity:this.envMapIntensity,refractionRatio:this.refractionRatio}))}}e([s(),t("design:type",a)],StandardShader.prototype,"color",void 0),e([s({label:"Color Map"}),t("design:type",i)],StandardShader.prototype,"map",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"opacity",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"alphaMap",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"roughness",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"roughnessMap",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"metalness",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"metalnessMap",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"lightMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"lightMapIntensity",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"aoMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"aoMapIntensity",void 0),e([s(),t("design:type",a)],StandardShader.prototype,"emissive",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"emissiveIntensity",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"emissiveMap",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"bumpMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"bumpScale",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"normalMap",void 0),e([s(),t("design:type",d)],StandardShader.prototype,"normalScale",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"displacementMap",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"displacementScale",void 0),e([s(),t("design:type",Number)],StandardShader.prototype,"displacementBias",void 0),e([s(),t("design:type",i)],StandardShader.prototype,"envMap",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"envMapIntensity",void 0),e([s({range:[0,1]}),t("design:type",Number)],StandardShader.prototype,"refractionRatio",void 0);/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -16,3 +16,4 @@ export declare class UnlitShader extends Shader {
16
16
  refractionRatio?: number;
17
17
  build(): Material;
18
18
  }
19
+ //# sourceMappingURL=unlit-shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlit-shader.d.ts","sourceRoot":"","sources":["../../../src/shader/builtin/unlit-shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,EAAE,QAAQ,EAA2D,OAAO,EAAW,MAAM,OAAO,CAAC;AAClK,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,qBAAa,WAAY,SAAQ,MAAM;IACxB,KAAK,EAAE,KAAK,CAAwB;IACtB,OAAO,EAAE,MAAM,CAAI;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IAKzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACK,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGpD,KAAK,IAAI,QAAQ;CAkBlB"}
@@ -1,5 +1,4 @@
1
- import{__decorate as t,__metadata as e}from"tslib";import{AddOperation as i,MultiplyOperation as o,MixOperation as p,Color as a,MeshBasicMaterial as r,Texture as n}from"three";import{Shader as s}from"../shader.js";import{Parameter as d}from"../parameter.js";import{removeObjectUndefined as l}from"../../utils/collections.js";export class UnlitShader extends s{constructor(){super(...arguments),this.color=new a("#FFFFFF"),this.opacity=1}build(){return new r(l({color:this.color,opacity:this.opacity,map:this.map,lightMap:this.lightMap,lightMapIntensity:this.lightMapIntensity,aoMap:this.aoMap,aoMapIntensity:this.aoMapIntensity,specularMap:this.specularMap,alphaMap:this.alphaMap,envMap:this.envMap,combine:this.combine,reflectivity:this.reflectivity,refractionRatio:this.refractionRatio}))}}t([d(),e("design:type",a)],UnlitShader.prototype,"color",void 0),t([d({range:[0,1]}),e("design:type",Number)],UnlitShader.prototype,"opacity",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"map",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"lightMap",void 0),t([d(),e("design:type",Number)],UnlitShader.prototype,"lightMapIntensity",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"aoMap",void 0),t([d(),e("design:type",Number)],UnlitShader.prototype,"aoMapIntensity",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"specularMap",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"alphaMap",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"envMap",void 0),t([d({options:[{name:"Mix",value:p},{name:"Multiply",value:o},{name:"Add",value:i}]}),e("design:type",Number)],UnlitShader.prototype,"combine",void 0),t([d({range:[0,1]}),e("design:type",Number)],UnlitShader.prototype,"reflectivity",void 0),t([d({range:[0,1]}),e("design:type",Number)],UnlitShader.prototype,"refractionRatio",void 0);
2
- /*
1
+ import{__decorate as t,__metadata as e}from"tslib";import{AddOperation as i,MultiplyOperation as o,MixOperation as p,Color as a,MeshBasicMaterial as r,Texture as n}from"three";import{Shader as s}from"../shader.js";import{Parameter as d}from"../parameter.js";import{removeObjectUndefined as l}from"../../utils/collections.js";export class UnlitShader extends s{constructor(){super(...arguments),this.color=new a("#FFFFFF"),this.opacity=1}build(){return new r(l({color:this.color,opacity:this.opacity,map:this.map,lightMap:this.lightMap,lightMapIntensity:this.lightMapIntensity,aoMap:this.aoMap,aoMapIntensity:this.aoMapIntensity,specularMap:this.specularMap,alphaMap:this.alphaMap,envMap:this.envMap,combine:this.combine,reflectivity:this.reflectivity,refractionRatio:this.refractionRatio}))}}t([d(),e("design:type",a)],UnlitShader.prototype,"color",void 0),t([d({range:[0,1]}),e("design:type",Number)],UnlitShader.prototype,"opacity",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"map",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"lightMap",void 0),t([d(),e("design:type",Number)],UnlitShader.prototype,"lightMapIntensity",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"aoMap",void 0),t([d(),e("design:type",Number)],UnlitShader.prototype,"aoMapIntensity",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"specularMap",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"alphaMap",void 0),t([d(),e("design:type",n)],UnlitShader.prototype,"envMap",void 0),t([d({options:[{name:"Mix",value:p},{name:"Multiply",value:o},{name:"Add",value:i}]}),e("design:type",Number)],UnlitShader.prototype,"combine",void 0),t([d({range:[0,1]}),e("design:type",Number)],UnlitShader.prototype,"reflectivity",void 0),t([d({range:[0,1]}),e("design:type",Number)],UnlitShader.prototype,"refractionRatio",void 0);/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,3 +1,4 @@
1
1
  export * from './parameter.js';
2
2
  export * from './builtin/index.js';
3
3
  export * from './shader.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shader/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA"}
@@ -1,5 +1,4 @@
1
- export*from"./parameter.js";export*from"./builtin/index.js";export*from"./shader.js";
2
- /*
1
+ export*from"./parameter.js";export*from"./builtin/index.js";export*from"./shader.js";/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -4,7 +4,8 @@ import { BaseActor } from '../gameplay/actors/actor.js';
4
4
  import { Color, Euler, Material, Object3D, Texture, Vector2, Vector3, Vector4 } from 'three';
5
5
  import { BooleanNode, FloatNode, RgbNode, Sampler2DNode, Vec2Node, Vec3Node, Vec4Node } from '../shader-nodes/index.js';
6
6
  import { VisualEffect } from '../effects/vfx/vfx-param.js';
7
- export type ParameterType = Type<FloatNode | Number | Texture | Sampler2DNode | Boolean | BooleanNode | Vector2 | Vec2Node | Vector3 | Vec3Node | Vector4 | Vec4Node | Color | RgbNode | String | BaseActor | Euler | Object3D | Material | VisualEffect>;
7
+ import { Curve2 } from '../utils/curve.js';
8
+ export type ParameterType = Type<FloatNode | Number | Texture | Sampler2DNode | Boolean | BooleanNode | Vector2 | Vec2Node | Vector3 | Vec3Node | Vector4 | Vec4Node | Color | RgbNode | String | BaseActor | Euler | Object3D | Material | VisualEffect | Curve2>;
8
9
  export type ParameterOption<T> = {
9
10
  name: string;
10
11
  value: T;
@@ -24,3 +25,4 @@ export interface PropertyParameter {
24
25
  }
25
26
  export declare function Parameter(options?: ParameterOptions): (target: Object, propertyName: string | symbol, index?: unknown) => void;
26
27
  export declare function extractShaderParameters(shaderType: Type<any>): PropertyParameter[];
28
+ //# sourceMappingURL=parameter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../src/shader/parameter.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAEzB,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAExH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,SAAS,GACT,MAAM,GACN,OAAO,GACP,aAAa,GACb,OAAO,GACP,WAAW,GACX,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,KAAK,GACL,OAAO,GACP,MAAM,GACN,SAAS,GACT,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,MAAM,CAAC,CAAA;AAOT,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAA;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAKD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,gBAAgB,CAAA;CAC1B;AAUD,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,IACjC,QAAQ,MAAM,EAAE,cAAc,MAAM,GAAG,MAAM,EAAE,QAAQ,OAAO,KAAG,IAAI,CAevF;AAYD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,EAAE,CAyBlF"}
@@ -1,5 +1,4 @@
1
- import"reflect-metadata";import{reflect as t,decorateProperty as e}from"@plumier/reflect";import{ArrayMap as r}from"../utils/collections.js";Symbol("format");class o{constructor(t){this.options=t,this.isParameterDecorator=!0}}const a=new r;export function Parameter(t){return function(r,n,c){if(null!=r){a.push(r.constructor,{name:n,options:t??{}});try{e(new o(t))(r,n,c)}catch(t){console.warn("Failed to decorate method ",r,n,c)}}}}export function extractShaderParameters(t){return a.get(t).map((({name:e,options:r})=>{const o=Reflect.getMetadata("design:type",t.prototype,e),a=r.type??o;return r.array=o===Array,{name:e,type:a,options:r}}))}
2
- /*
1
+ import"reflect-metadata";import{reflect as t,decorateProperty as e}from"@plumier/reflect";import{ArrayMap as r}from"../utils/collections.js";Symbol("format");class o{constructor(t){this.options=t,this.isParameterDecorator=!0}}const a=new r;export function Parameter(t){return function(r,n,c){if(null!=r){a.push(r.constructor,{name:n,options:t??{}});try{e(new o(t))(r,n,c)}catch(t){console.warn("Failed to decorate method ",r,n,c)}}}}export function extractShaderParameters(t){return a.get(t).map((({name:e,options:r})=>{const o=Reflect.getMetadata("design:type",t.prototype,e),a=r.type??o;return r.array=o===Array,{name:e,type:a,options:r}}))}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -26,3 +26,4 @@ export declare abstract class NodeShader {
26
26
  build(): Material;
27
27
  abstract output(): NodeShaderOutput;
28
28
  }
29
+ //# sourceMappingURL=shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../src/shader/shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAgC,QAAQ,EAAE,WAAW,EAAkB,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC9I,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,cAAc,gBAAgB,CAAA;AAE9B,8BAAsB,MAAM;IAC1B,QAAQ,CAAC,KAAK,IAAI,QAAQ;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;AAErC,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;AAEvC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;CACd,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;AAE5C,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;AAE1C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,QAAQ,GAAC,QAAQ,GAAC,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAID,8BAAsB,UAAU;IAC9B,KAAK,IAAI,QAAQ;IAajB,QAAQ,CAAC,MAAM,IAAI,gBAAgB;CACpC"}
@@ -1,5 +1,4 @@
1
- import{NodeShaderMaterial as r,BooleanNode as s,attributeFloat as e}from"../shader-nodes/index.js";export*from"./parameter.js";export class Shader{}const a=e("hole").gt(.5);export class NodeShader{build(){const e=this.output();return new r({transparent:!1,...e,...!0===e.landscape?{discard:null!=e.discard&&e.discard instanceof s?e.discard.or(a):a}:{}})}}
2
- /*
1
+ import{NodeShaderMaterial as r,BooleanNode as s,attributeFloat as e}from"../shader-nodes/index.js";export*from"./parameter.js";export class Shader{}const a=e("hole").gt(.5);export class NodeShader{build(){const e=this.output();return new r({transparent:!1,...e,...!0===e.landscape?{discard:null!=e.discard&&e.discard instanceof s?e.discard.or(a):a}:{}})}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -3,3 +3,4 @@ import { FloatNode, Vec2Node } from "three-shader-graph";
3
3
  * Create a distortion such that the center is has a smaller is expanded
4
4
  */
5
5
  export declare function bulge(uv: Vec2Node, center: Vec2Node, power?: number | FloatNode): Vec2Node;
6
+ //# sourceMappingURL=bulge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulge.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/bulge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAM,GAAC,SAAa,GAAG,QAAQ,CAQ3F"}
@@ -1,5 +1,4 @@
1
- import{length as r,pow as t}from"three-shader-graph";export function bulge(e,a,l=1){let o=e;o=e.subtract(a);const u=r(o),c=1===l?u:t(u,l);return o=o.multiplyScalar(c),o=e.add(a),o}
2
- /*
1
+ import{length as r,pow as t}from"three-shader-graph";export function bulge(e,a,l=1){let o=e;o=e.subtract(a);const u=r(o),c=1===l?u:t(u,l);return o=o.multiplyScalar(c),o=e.add(a),o}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -8,3 +8,4 @@ export declare const farUniformName = "hology_camera_far";
8
8
  export declare const depthSampler: import("three-shader-graph").UniformSampler2d;
9
9
  export declare const fragmentLinearEyeDepth: FloatNode;
10
10
  export declare const linearEyeDepth: FloatNode;
11
+ //# sourceMappingURL=depth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/depth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAmC,SAAS,EAAoH,MAAM,oBAAoB,CAAC;AAKlM,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,aAAa,WAEpE;AAID,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AACxD,eAAO,MAAM,eAAe,uBAAuB,CAAA;AACnD,eAAO,MAAM,cAAc,sBAAsB,CAAA;AAEjD,eAAO,MAAM,YAAY,+CAAkE,CAAA;AA2G3F,eAAO,MAAM,sBAAsB,WAAkB,CAAA;AAOrD,eAAO,MAAM,cAAc,WAA+B,CAAA"}
@@ -1,5 +1,4 @@
1
- import{Vector2 as e}from"three";import{dot as t,FloatExpressionNode as o,FloatNode as r,texture2d as n,uniformVec2 as a,Vec2ExpressionNode as s,Vec4Node as c,uniformSampler2d as p,uniformFloat as i}from"three-shader-graph";import*as h from"three";export function supportsDepthTextureExtension(e){return!!e.extensions.get("WEBGL_depth_texture")}export const depthUniformName="hology_depth_map";export const resolutionUniformName="hology_resolution";export const nearUniformName="hology_camera_near";export const farUniformName="hology_camera_far";export const depthSampler=p(depthUniformName,new h.DepthTexture(1,1));const m=i(nearUniformName,.5),l=i(farUniformName,500);class u extends r{compile(e){const t=e.variable();var o=e.get(m),r=e.get(l);return{chunk:`\n float depth_${t} = 2.0 * ${o} * ${r} / (${r} + ${o} - (2.0 * ${e.get(this.depth)} - 1.0) * (${r} - ${o}));\n `,out:`depth_${t}`}}constructor(e){super(),this.depth=e}}function _(e){return new u(e)}const f=new class extends c{constructor(){super(...arguments),this.k="31u50"}compile(e){return{pars:`\n const float UnpackDownscale_${this.k} = 255. / 256.; // 0..1 -> fraction (excluding 1)\n const vec4 PackFactors_${this.k} = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\n const vec4 UnpackFactors_${this.k} = vec4( UnpackDownscale_${this.k} / PackFactors_${this.k}.rgb, 1.0 / PackFactors_${this.k}.a );\n `,out:`UnpackFactors_${this.k}`}}};const d=new o("gl_FragCoord.z");export const fragmentLinearEyeDepth=_(d);const g=a("hology_resolution",new e(250,1e3)),x=new s("gl_FragCoord.xy").divide(g);export const linearEyeDepth=_((k=x,$=n(depthSampler,k),t($,f)));var k,$;
2
- /*
1
+ import{Vector2 as e}from"three";import{dot as t,FloatExpressionNode as o,FloatNode as r,texture2d as n,uniformVec2 as a,Vec2ExpressionNode as s,Vec4Node as c,uniformSampler2d as p,uniformFloat as i}from"three-shader-graph";import*as h from"three";export function supportsDepthTextureExtension(e){return!!e.extensions.get("WEBGL_depth_texture")}export const depthUniformName="hology_depth_map";export const resolutionUniformName="hology_resolution";export const nearUniformName="hology_camera_near";export const farUniformName="hology_camera_far";export const depthSampler=p(depthUniformName,new h.DepthTexture(1,1));const m=i(nearUniformName,.5),l=i(farUniformName,500);class u extends r{compile(e){const t=e.variable();var o=e.get(m),r=e.get(l);return{chunk:`\n float depth_${t} = 2.0 * ${o} * ${r} / (${r} + ${o} - (2.0 * ${e.get(this.depth)} - 1.0) * (${r} - ${o}));\n `,out:`depth_${t}`}}constructor(e){super(),this.depth=e}}function _(e){return new u(e)}const f=new class extends c{constructor(){super(...arguments),this.k="31u50"}compile(e){return{pars:`\n const float UnpackDownscale_${this.k} = 255. / 256.; // 0..1 -> fraction (excluding 1)\n const vec4 PackFactors_${this.k} = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\n const vec4 UnpackFactors_${this.k} = vec4( UnpackDownscale_${this.k} / PackFactors_${this.k}.rgb, 1.0 / PackFactors_${this.k}.a );\n `,out:`UnpackFactors_${this.k}`}}};const d=new o("gl_FragCoord.z");export const fragmentLinearEyeDepth=_(d);const g=a("hology_resolution",new e(250,1e3)),x=new s("gl_FragCoord.xy").divide(g);export const linearEyeDepth=_((k=x,$=n(depthSampler,k),t($,f)));var k,$;/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -6,3 +6,4 @@ export declare function fresnelEffect(power?: number | FloatNode): FloatNode;
6
6
  * with another or to increase the transparency of water where it meets a shore.
7
7
  */
8
8
  export declare function edgeDepthEffect(power?: number | FloatNode): FloatNode;
9
+ //# sourceMappingURL=effects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/effects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsK,MAAM,oBAAoB,CAAC;AAQnN,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,GAAC,SAAa,aAIxD;AAeD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,GAAC,SAAa,aAE1D"}
@@ -1,5 +1,4 @@
1
- import{Vec3ExpressionNode as t,attributes as r,dot as e,float as o,normalize as i,pow as f,saturate as m,transformed as n,uniforms as p,varyingAttributes as c,varyingVec3 as s,vec4 as a}from"three-shader-graph";import{fragmentLinearEyeDepth as u,linearEyeDepth as d}from"./depth.js";import{oneMinus as h}from"./math.js";p.modelMatrix.multiplyVec(a(r.position,1));export function fresnelEffect(t=1){return f(h(m(e(n.viewDir,n.normal))),o(t))}const l=o(1).subtract(d.subtract(u).divide(d));export function edgeDepthEffect(t=1){return f(l,o(t))}
2
- /*
1
+ import{Vec3ExpressionNode as t,attributes as r,dot as e,float as o,normalize as i,pow as f,saturate as m,transformed as n,uniforms as p,varyingAttributes as c,varyingVec3 as s,vec4 as a}from"three-shader-graph";import{fragmentLinearEyeDepth as u,linearEyeDepth as d}from"./depth.js";import{oneMinus as h}from"./math.js";p.modelMatrix.multiplyVec(a(r.position,1));export function fresnelEffect(t=1){return f(h(m(e(n.viewDir,n.normal))),o(t))}const l=o(1).subtract(d.subtract(u).divide(d));export function edgeDepthEffect(t=1){return f(l,o(t))}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,4 +1,4 @@
1
- import { FloatNode, BooleanNode, IntNode, Vec2Node, Vec3Node, Vec4Node, Mat2Node, Mat3Node, Mat4Node, RgbNode, RgbaNode, Sampler2DNode } from "shader-nodes";
1
+ import { FloatNode, BooleanNode, IntNode, Vec2Node, Vec3Node, Vec4Node, Mat2Node, Mat3Node, Mat4Node, RgbNode, RgbaNode, Sampler2DNode } from "../shader-nodes";
2
2
  type AbstractType<T> = abstract new (...args: unknown[]) => T;
3
3
  type ShaderNode = FloatNode | BooleanNode | IntNode | Vec2Node | Vec3Node | Vec4Node | Mat2Node | Mat3Node | Mat4Node | RgbNode | RgbaNode | Sampler2DNode;
4
4
  /**
@@ -14,3 +14,4 @@ type ShaderNode = FloatNode | BooleanNode | IntNode | Vec2Node | Vec3Node | Vec4
14
14
  */
15
15
  export declare function glslFunction<TReturn extends ShaderNode>(returnType: AbstractType<TReturn>, args: Record<string, ShaderNode>, body: string): TReturn;
16
16
  export {};
17
+ //# sourceMappingURL=glsl-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsl-node.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/glsl-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/J,KAAK,YAAY,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AAC7D,KAAK,UAAU,GACZ,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,aAAa,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAS,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAqBpJ"}