@hology/core 0.0.91 → 0.0.92

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 (412) hide show
  1. package/LICENSE.md +14 -14
  2. package/README.md +2 -2
  3. package/dist/config/project-config.d.ts +1 -0
  4. package/dist/config/project-config.d.ts.map +1 -0
  5. package/dist/config/project-config.js +1 -2
  6. package/dist/controllers/base-game-controller.d.ts +1 -0
  7. package/dist/controllers/base-game-controller.d.ts.map +1 -0
  8. package/dist/controllers/base-game-controller.js +1 -2
  9. package/dist/csm.d.ts +1 -0
  10. package/dist/csm.d.ts.map +1 -0
  11. package/dist/csm.js +1 -2
  12. package/dist/effects/particles/examples.d.ts +1 -0
  13. package/dist/effects/particles/examples.d.ts.map +1 -0
  14. package/dist/effects/particles/examples.js +1 -2
  15. package/dist/effects/particles/particle-system-config.d.ts +1 -0
  16. package/dist/effects/particles/particle-system-config.d.ts.map +1 -0
  17. package/dist/effects/particles/particle-system-config.js +1 -2
  18. package/dist/effects/vfx/behaviours.d.ts +3 -1
  19. package/dist/effects/vfx/behaviours.d.ts.map +1 -0
  20. package/dist/effects/vfx/behaviours.js +1 -2
  21. package/dist/effects/vfx/index.d.ts +1 -0
  22. package/dist/effects/vfx/index.d.ts.map +1 -0
  23. package/dist/effects/vfx/index.js +1 -2
  24. package/dist/effects/vfx/initializsers.d.ts +20 -39
  25. package/dist/effects/vfx/initializsers.d.ts.map +1 -0
  26. package/dist/effects/vfx/initializsers.js +1 -2
  27. package/dist/effects/vfx/rates.d.ts +5 -4
  28. package/dist/effects/vfx/rates.d.ts.map +1 -0
  29. package/dist/effects/vfx/rates.js +1 -2
  30. package/dist/effects/vfx/stretched-sprite.d.ts +1 -0
  31. package/dist/effects/vfx/stretched-sprite.d.ts.map +1 -0
  32. package/dist/effects/vfx/stretched-sprite.js +1 -2
  33. package/dist/effects/vfx/trail-renderer.d.ts +1 -0
  34. package/dist/effects/vfx/trail-renderer.d.ts.map +1 -0
  35. package/dist/effects/vfx/trail-renderer.js +1 -2
  36. package/dist/effects/vfx/vfx-actor.d.ts +2 -1
  37. package/dist/effects/vfx/vfx-actor.d.ts.map +1 -0
  38. package/dist/effects/vfx/vfx-actor.js +1 -2
  39. package/dist/effects/vfx/vfx-asset.d.ts +11 -0
  40. package/dist/effects/vfx/vfx-asset.d.ts.map +1 -0
  41. package/dist/effects/vfx/vfx-asset.js +1 -2
  42. package/dist/effects/vfx/vfx-defs.d.ts +11 -7
  43. package/dist/effects/vfx/vfx-defs.d.ts.map +1 -0
  44. package/dist/effects/vfx/vfx-defs.js +1 -2
  45. package/dist/effects/vfx/vfx-materializer.d.ts +9 -1
  46. package/dist/effects/vfx/vfx-materializer.d.ts.map +1 -0
  47. package/dist/effects/vfx/vfx-materializer.js +1 -2
  48. package/dist/effects/vfx/vfx-old-materializer.d.ts +2 -11
  49. package/dist/effects/vfx/vfx-old-materializer.d.ts.map +1 -0
  50. package/dist/effects/vfx/vfx-old-materializer.js +1 -2
  51. package/dist/effects/vfx/vfx-param.d.ts +1 -0
  52. package/dist/effects/vfx/vfx-param.d.ts.map +1 -0
  53. package/dist/effects/vfx/vfx-param.js +1 -2
  54. package/dist/effects/vfx/vfx-renderers.d.ts +2 -1
  55. package/dist/effects/vfx/vfx-renderers.d.ts.map +1 -0
  56. package/dist/effects/vfx/vfx-renderers.js +1 -2
  57. package/dist/effects/vfx/vfx-service.d.ts +1 -0
  58. package/dist/effects/vfx/vfx-service.d.ts.map +1 -0
  59. package/dist/effects/vfx/vfx-service.js +1 -2
  60. package/dist/effects/vfx/zones.d.ts +2 -1
  61. package/dist/effects/vfx/zones.d.ts.map +1 -0
  62. package/dist/effects/vfx/zones.js +1 -2
  63. package/dist/game-component/component-decorators.d.ts +1 -0
  64. package/dist/game-component/component-decorators.d.ts.map +1 -0
  65. package/dist/game-component/component-decorators.js +1 -2
  66. package/dist/game-component/game-component.d.ts +1 -0
  67. package/dist/game-component/game-component.d.ts.map +1 -0
  68. package/dist/game-component/game-component.js +1 -2
  69. package/dist/gameplay/actors/actor.d.ts +1 -0
  70. package/dist/gameplay/actors/actor.d.ts.map +1 -0
  71. package/dist/gameplay/actors/actor.js +1 -2
  72. package/dist/gameplay/actors/builtin/camera-actor.d.ts +1 -0
  73. package/dist/gameplay/actors/builtin/camera-actor.d.ts.map +1 -0
  74. package/dist/gameplay/actors/builtin/camera-actor.js +1 -2
  75. package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts +1 -0
  76. package/dist/gameplay/actors/builtin/components/character/character-animation.d.ts.map +1 -0
  77. package/dist/gameplay/actors/builtin/components/character/character-animation.js +1 -2
  78. package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts +1 -0
  79. package/dist/gameplay/actors/builtin/components/character/character-movement copy.d.ts.map +1 -0
  80. package/dist/gameplay/actors/builtin/components/character/character-movement copy.js +1 -2
  81. package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts +1 -0
  82. package/dist/gameplay/actors/builtin/components/character/character-movement.d.ts.map +1 -0
  83. package/dist/gameplay/actors/builtin/components/character/character-movement.js +1 -2
  84. package/dist/gameplay/actors/builtin/components/character/modes.d.ts +1 -0
  85. package/dist/gameplay/actors/builtin/components/character/modes.d.ts.map +1 -0
  86. package/dist/gameplay/actors/builtin/components/character/modes.js +1 -2
  87. package/dist/gameplay/actors/builtin/components/mesh-component.d.ts +1 -0
  88. package/dist/gameplay/actors/builtin/components/mesh-component.d.ts.map +1 -0
  89. package/dist/gameplay/actors/builtin/components/mesh-component.js +1 -2
  90. package/dist/gameplay/actors/builtin/components/scene-component.d.ts +1 -0
  91. package/dist/gameplay/actors/builtin/components/scene-component.d.ts.map +1 -0
  92. package/dist/gameplay/actors/builtin/components/scene-component.js +1 -2
  93. package/dist/gameplay/actors/builtin/index.d.ts +1 -0
  94. package/dist/gameplay/actors/builtin/index.d.ts.map +1 -0
  95. package/dist/gameplay/actors/builtin/index.js +1 -2
  96. package/dist/gameplay/actors/builtin/navmesh-actor.d.ts +1 -0
  97. package/dist/gameplay/actors/builtin/navmesh-actor.d.ts.map +1 -0
  98. package/dist/gameplay/actors/builtin/navmesh-actor.js +1 -2
  99. package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts +1 -0
  100. package/dist/gameplay/actors/builtin/positional-audio-actor.d.ts.map +1 -0
  101. package/dist/gameplay/actors/builtin/positional-audio-actor.js +1 -2
  102. package/dist/gameplay/actors/builtin/spawn-point.d.ts +1 -0
  103. package/dist/gameplay/actors/builtin/spawn-point.d.ts.map +1 -0
  104. package/dist/gameplay/actors/builtin/spawn-point.js +1 -2
  105. package/dist/gameplay/actors/builtin/trigger-volume.d.ts +1 -0
  106. package/dist/gameplay/actors/builtin/trigger-volume.d.ts.map +1 -0
  107. package/dist/gameplay/actors/builtin/trigger-volume.js +1 -2
  108. package/dist/gameplay/actors/camera/camera-component.d.ts +1 -0
  109. package/dist/gameplay/actors/camera/camera-component.d.ts.map +1 -0
  110. package/dist/gameplay/actors/camera/camera-component.js +1 -2
  111. package/dist/gameplay/actors/camera/third-person-camera-component.d.ts +1 -0
  112. package/dist/gameplay/actors/camera/third-person-camera-component.d.ts.map +1 -0
  113. package/dist/gameplay/actors/camera/third-person-camera-component.js +1 -2
  114. package/dist/gameplay/actors/component.d.ts +1 -0
  115. package/dist/gameplay/actors/component.d.ts.map +1 -0
  116. package/dist/gameplay/actors/component.js +1 -2
  117. package/dist/gameplay/actors/factory.d.ts +1 -0
  118. package/dist/gameplay/actors/factory.d.ts.map +1 -0
  119. package/dist/gameplay/actors/factory.js +1 -2
  120. package/dist/gameplay/actors/index.d.ts +1 -0
  121. package/dist/gameplay/actors/index.d.ts.map +1 -0
  122. package/dist/gameplay/actors/index.js +1 -2
  123. package/dist/gameplay/actors/internal/component-init.d.ts +1 -0
  124. package/dist/gameplay/actors/internal/component-init.d.ts.map +1 -0
  125. package/dist/gameplay/actors/internal/component-init.js +1 -2
  126. package/dist/gameplay/actors/internal/container-map.d.ts +1 -0
  127. package/dist/gameplay/actors/internal/container-map.d.ts.map +1 -0
  128. package/dist/gameplay/actors/internal/container-map.js +1 -2
  129. package/dist/gameplay/ai/behavior-tree/bt.d.ts +1 -0
  130. package/dist/gameplay/ai/behavior-tree/bt.d.ts.map +1 -0
  131. package/dist/gameplay/ai/behavior-tree/bt.js +1 -2
  132. package/dist/gameplay/ai/behavior-tree/move.d.ts +1 -0
  133. package/dist/gameplay/ai/behavior-tree/move.d.ts.map +1 -0
  134. package/dist/gameplay/ai/behavior-tree/move.js +1 -2
  135. package/dist/gameplay/ai/build-tile.d.ts +1 -0
  136. package/dist/gameplay/ai/build-tile.d.ts.map +1 -0
  137. package/dist/gameplay/ai/build-tile.js +1 -2
  138. package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts +1 -0
  139. package/dist/gameplay/ai/dynamic-tiled-navmesh.d.ts.map +1 -0
  140. package/dist/gameplay/ai/dynamic-tiled-navmesh.js +1 -2
  141. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts +1 -0
  142. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.d.ts.map +1 -0
  143. package/dist/gameplay/ai/dynamic-tiled-navmesh.worker.js +1 -2
  144. package/dist/gameplay/ai/index.d.ts +1 -0
  145. package/dist/gameplay/ai/index.d.ts.map +1 -0
  146. package/dist/gameplay/ai/index.js +1 -2
  147. package/dist/gameplay/ai/navigation.d.ts +1 -0
  148. package/dist/gameplay/ai/navigation.d.ts.map +1 -0
  149. package/dist/gameplay/ai/navigation.js +1 -2
  150. package/dist/gameplay/animation/anim-sm.d.ts +1 -0
  151. package/dist/gameplay/animation/anim-sm.d.ts.map +1 -0
  152. package/dist/gameplay/animation/anim-sm.js +1 -2
  153. package/dist/gameplay/animation/root-motion.d.ts +1 -0
  154. package/dist/gameplay/animation/root-motion.d.ts.map +1 -0
  155. package/dist/gameplay/animation/root-motion.js +1 -2
  156. package/dist/gameplay/env.d.ts +1 -0
  157. package/dist/gameplay/env.d.ts.map +1 -0
  158. package/dist/gameplay/env.js +1 -2
  159. package/dist/gameplay/index.d.ts +1 -0
  160. package/dist/gameplay/index.d.ts.map +1 -0
  161. package/dist/gameplay/index.js +1 -2
  162. package/dist/gameplay/initiate.d.ts +1 -0
  163. package/dist/gameplay/initiate.d.ts.map +1 -0
  164. package/dist/gameplay/initiate.js +1 -2
  165. package/dist/gameplay/inject.d.ts +1 -0
  166. package/dist/gameplay/inject.d.ts.map +1 -0
  167. package/dist/gameplay/inject.js +1 -2
  168. package/dist/gameplay/input/index.d.ts +1 -0
  169. package/dist/gameplay/input/index.d.ts.map +1 -0
  170. package/dist/gameplay/input/index.js +1 -2
  171. package/dist/gameplay/input/input-service.d.ts +1 -0
  172. package/dist/gameplay/input/input-service.d.ts.map +1 -0
  173. package/dist/gameplay/input/input-service.js +1 -2
  174. package/dist/gameplay/input/input.d.ts +1 -0
  175. package/dist/gameplay/input/input.d.ts.map +1 -0
  176. package/dist/gameplay/input/input.js +1 -2
  177. package/dist/gameplay/input/keybind.d.ts +1 -0
  178. package/dist/gameplay/input/keybind.d.ts.map +1 -0
  179. package/dist/gameplay/input/keybind.js +1 -2
  180. package/dist/gameplay/polyfill.d.ts +1 -0
  181. package/dist/gameplay/polyfill.d.ts.map +1 -0
  182. package/dist/gameplay/polyfill.js +1 -2
  183. package/dist/gameplay/services/asset-loader.d.ts +1 -0
  184. package/dist/gameplay/services/asset-loader.d.ts.map +1 -0
  185. package/dist/gameplay/services/asset-loader.js +1 -2
  186. package/dist/gameplay/services/physics/abstract-physics-system.d.ts +1 -0
  187. package/dist/gameplay/services/physics/abstract-physics-system.d.ts.map +1 -0
  188. package/dist/gameplay/services/physics/abstract-physics-system.js +1 -2
  189. package/dist/gameplay/services/physics/collision-contact.d.ts +1 -0
  190. package/dist/gameplay/services/physics/collision-contact.d.ts.map +1 -0
  191. package/dist/gameplay/services/physics/collision-contact.js +1 -2
  192. package/dist/gameplay/services/physics/physics-system.d.ts +1 -0
  193. package/dist/gameplay/services/physics/physics-system.d.ts.map +1 -0
  194. package/dist/gameplay/services/physics/physics-system.js +1 -2
  195. package/dist/gameplay/services/pointer-events.d.ts +1 -0
  196. package/dist/gameplay/services/pointer-events.d.ts.map +1 -0
  197. package/dist/gameplay/services/pointer-events.js +1 -2
  198. package/dist/gameplay/services/render.d.ts +1 -0
  199. package/dist/gameplay/services/render.d.ts.map +1 -0
  200. package/dist/gameplay/services/render.js +1 -2
  201. package/dist/gameplay/services/world.d.ts +1 -0
  202. package/dist/gameplay/services/world.d.ts.map +1 -0
  203. package/dist/gameplay/services/world.js +1 -2
  204. package/dist/index.d.ts +1 -0
  205. package/dist/index.d.ts.map +1 -0
  206. package/dist/index.js +1 -2
  207. package/dist/rendering/shader-override.d.ts +1 -0
  208. package/dist/rendering/shader-override.d.ts.map +1 -0
  209. package/dist/rendering/shader-override.js +1 -2
  210. package/dist/rendering.d.ts +1 -0
  211. package/dist/rendering.d.ts.map +1 -0
  212. package/dist/rendering.js +1 -2
  213. package/dist/scene/asset-resource-loader.d.ts +1 -0
  214. package/dist/scene/asset-resource-loader.d.ts.map +1 -0
  215. package/dist/scene/asset-resource-loader.js +1 -2
  216. package/dist/scene/assets-provider.d.ts +1 -0
  217. package/dist/scene/assets-provider.d.ts.map +1 -0
  218. package/dist/scene/assets-provider.js +1 -2
  219. package/dist/scene/bootstrap.d.ts +1 -0
  220. package/dist/scene/bootstrap.d.ts.map +1 -0
  221. package/dist/scene/bootstrap.js +1 -2
  222. package/dist/scene/collision/collision-shape-import.d.ts +1 -0
  223. package/dist/scene/collision/collision-shape-import.d.ts.map +1 -0
  224. package/dist/scene/collision/collision-shape-import.js +1 -2
  225. package/dist/scene/collision/collision-shape.d.ts +1 -0
  226. package/dist/scene/collision/collision-shape.d.ts.map +1 -0
  227. package/dist/scene/collision/collision-shape.js +1 -2
  228. package/dist/scene/landscape/landscape-manager.d.ts +1 -0
  229. package/dist/scene/landscape/landscape-manager.d.ts.map +1 -0
  230. package/dist/scene/landscape/landscape-manager.js +1 -2
  231. package/dist/scene/landscape/landscape.d.ts +1 -0
  232. package/dist/scene/landscape/landscape.d.ts.map +1 -0
  233. package/dist/scene/landscape/landscape.js +1 -2
  234. package/dist/scene/landscape/utils.d.ts +1 -0
  235. package/dist/scene/landscape/utils.d.ts.map +1 -0
  236. package/dist/scene/landscape/utils.js +1 -2
  237. package/dist/scene/materializer.d.ts +1 -0
  238. package/dist/scene/materializer.d.ts.map +1 -0
  239. package/dist/scene/materializer.js +1 -2
  240. package/dist/scene/materials/grass-foliage.d.ts +1 -0
  241. package/dist/scene/materials/grass-foliage.d.ts.map +1 -0
  242. package/dist/scene/materials/grass-foliage.js +1 -2
  243. package/dist/scene/materials/grass.d.ts +1 -0
  244. package/dist/scene/materials/grass.d.ts.map +1 -0
  245. package/dist/scene/materials/grass.js +1 -2
  246. package/dist/scene/materials/utils/material-painting.d.ts +1 -0
  247. package/dist/scene/materials/utils/material-painting.d.ts.map +1 -0
  248. package/dist/scene/materials/utils/material-painting.js +1 -2
  249. package/dist/scene/materials/utils/noise.glsl.d.ts +1 -0
  250. package/dist/scene/materials/utils/noise.glsl.d.ts.map +1 -0
  251. package/dist/scene/materials/utils/noise.glsl.js +1 -2
  252. package/dist/scene/materials/water.d.ts +1 -0
  253. package/dist/scene/materials/water.d.ts.map +1 -0
  254. package/dist/scene/materials/water.js +1 -2
  255. package/dist/scene/model.d.ts +1 -0
  256. package/dist/scene/model.d.ts.map +1 -0
  257. package/dist/scene/model.js +1 -2
  258. package/dist/scene/objects/ramp-geometry.d.ts +1 -0
  259. package/dist/scene/objects/ramp-geometry.d.ts.map +1 -0
  260. package/dist/scene/objects/ramp-geometry.js +1 -2
  261. package/dist/scene/objects/shapes.d.ts +2 -2
  262. package/dist/scene/objects/shapes.d.ts.map +1 -0
  263. package/dist/scene/objects/shapes.js +1 -2
  264. package/dist/scene/objects/stairs-geometry.d.ts +1 -0
  265. package/dist/scene/objects/stairs-geometry.d.ts.map +1 -0
  266. package/dist/scene/objects/stairs-geometry.js +1 -2
  267. package/dist/scene/runtime-asset-service.d.ts +1 -0
  268. package/dist/scene/runtime-asset-service.d.ts.map +1 -0
  269. package/dist/scene/runtime-asset-service.js +1 -2
  270. package/dist/scene/runtime-backend-service.d.ts +1 -0
  271. package/dist/scene/runtime-backend-service.d.ts.map +1 -0
  272. package/dist/scene/runtime-backend-service.js +1 -2
  273. package/dist/scene/runtime-bundled-backend-service.d.ts +1 -0
  274. package/dist/scene/runtime-bundled-backend-service.d.ts.map +1 -0
  275. package/dist/scene/runtime-bundled-backend-service.js +1 -2
  276. package/dist/scene/scene-data-service.d.ts +1 -0
  277. package/dist/scene/scene-data-service.d.ts.map +1 -0
  278. package/dist/scene/scene-data-service.js +1 -2
  279. package/dist/scene/sky.d.ts +1 -0
  280. package/dist/scene/sky.d.ts.map +1 -0
  281. package/dist/scene/sky.js +1 -2
  282. package/dist/scene/storage/storage.d.ts +1 -0
  283. package/dist/scene/storage/storage.d.ts.map +1 -0
  284. package/dist/scene/storage/storage.js +1 -2
  285. package/dist/shader/builtin/index.d.ts +1 -0
  286. package/dist/shader/builtin/index.d.ts.map +1 -0
  287. package/dist/shader/builtin/index.js +1 -2
  288. package/dist/shader/builtin/lambert-shader.d.ts +1 -0
  289. package/dist/shader/builtin/lambert-shader.d.ts.map +1 -0
  290. package/dist/shader/builtin/lambert-shader.js +1 -2
  291. package/dist/shader/builtin/landscape-composite-shader.d.ts +1 -0
  292. package/dist/shader/builtin/landscape-composite-shader.d.ts.map +1 -0
  293. package/dist/shader/builtin/landscape-composite-shader.js +1 -2
  294. package/dist/shader/builtin/landscape-shader.d.ts +1 -0
  295. package/dist/shader/builtin/landscape-shader.d.ts.map +1 -0
  296. package/dist/shader/builtin/landscape-shader.js +1 -2
  297. package/dist/shader/builtin/standard-shader.d.ts +1 -0
  298. package/dist/shader/builtin/standard-shader.d.ts.map +1 -0
  299. package/dist/shader/builtin/standard-shader.js +1 -2
  300. package/dist/shader/builtin/unlit-shader.d.ts +1 -0
  301. package/dist/shader/builtin/unlit-shader.d.ts.map +1 -0
  302. package/dist/shader/builtin/unlit-shader.js +1 -2
  303. package/dist/shader/index.d.ts +1 -0
  304. package/dist/shader/index.d.ts.map +1 -0
  305. package/dist/shader/index.js +1 -2
  306. package/dist/shader/parameter.d.ts +1 -0
  307. package/dist/shader/parameter.d.ts.map +1 -0
  308. package/dist/shader/parameter.js +1 -2
  309. package/dist/shader/shader.d.ts +1 -0
  310. package/dist/shader/shader.d.ts.map +1 -0
  311. package/dist/shader/shader.js +1 -2
  312. package/dist/shader-nodes/bulge.d.ts +1 -0
  313. package/dist/shader-nodes/bulge.d.ts.map +1 -0
  314. package/dist/shader-nodes/bulge.js +1 -2
  315. package/dist/shader-nodes/depth.d.ts +1 -0
  316. package/dist/shader-nodes/depth.d.ts.map +1 -0
  317. package/dist/shader-nodes/depth.js +1 -2
  318. package/dist/shader-nodes/effects.d.ts +1 -0
  319. package/dist/shader-nodes/effects.d.ts.map +1 -0
  320. package/dist/shader-nodes/effects.js +1 -2
  321. package/dist/shader-nodes/glsl-node.d.ts +2 -1
  322. package/dist/shader-nodes/glsl-node.d.ts.map +1 -0
  323. package/dist/shader-nodes/glsl-node.js +1 -2
  324. package/dist/shader-nodes/index.d.ts +2 -0
  325. package/dist/shader-nodes/index.d.ts.map +1 -0
  326. package/dist/shader-nodes/index.js +1 -2
  327. package/dist/shader-nodes/landscape.d.ts +1 -0
  328. package/dist/shader-nodes/landscape.d.ts.map +1 -0
  329. package/dist/shader-nodes/landscape.js +1 -2
  330. package/dist/shader-nodes/layers.d.ts +1 -0
  331. package/dist/shader-nodes/layers.d.ts.map +1 -0
  332. package/dist/shader-nodes/layers.js +1 -2
  333. package/dist/shader-nodes/math.d.ts +1 -0
  334. package/dist/shader-nodes/math.d.ts.map +1 -0
  335. package/dist/shader-nodes/math.js +1 -2
  336. package/dist/shader-nodes/particle.d.ts +3 -0
  337. package/dist/shader-nodes/particle.d.ts.map +1 -0
  338. package/dist/shader-nodes/particle.js +1 -2
  339. package/dist/shader-nodes/shapes.d.ts +1 -0
  340. package/dist/shader-nodes/shapes.d.ts.map +1 -0
  341. package/dist/shader-nodes/shapes.js +1 -2
  342. package/dist/shader-nodes/texture-sequence.d.ts +2 -1
  343. package/dist/shader-nodes/texture-sequence.d.ts.map +1 -0
  344. package/dist/shader-nodes/texture-sequence.js +1 -2
  345. package/dist/shader-nodes/time.d.ts +1 -0
  346. package/dist/shader-nodes/time.d.ts.map +1 -0
  347. package/dist/shader-nodes/time.js +1 -2
  348. package/dist/shader-nodes/voronoi.d.ts +1 -0
  349. package/dist/shader-nodes/voronoi.d.ts.map +1 -0
  350. package/dist/shader-nodes/voronoi.js +1 -2
  351. package/dist/test/injection.test.d.ts +1 -0
  352. package/dist/test/injection.test.d.ts.map +1 -0
  353. package/dist/test/injection.test.js +1 -2
  354. package/dist/utils/async.d.ts +1 -0
  355. package/dist/utils/async.d.ts.map +1 -0
  356. package/dist/utils/async.js +1 -2
  357. package/dist/utils/buffer.d.ts +1 -0
  358. package/dist/utils/buffer.d.ts.map +1 -0
  359. package/dist/utils/buffer.js +1 -2
  360. package/dist/utils/collections.d.ts +1 -0
  361. package/dist/utils/collections.d.ts.map +1 -0
  362. package/dist/utils/collections.js +1 -2
  363. package/dist/utils/files.d.ts +1 -0
  364. package/dist/utils/files.d.ts.map +1 -0
  365. package/dist/utils/files.js +1 -2
  366. package/dist/utils/materials.d.ts +1 -0
  367. package/dist/utils/materials.d.ts.map +1 -0
  368. package/dist/utils/materials.js +1 -2
  369. package/dist/utils/math.d.ts +1 -0
  370. package/dist/utils/math.d.ts.map +1 -0
  371. package/dist/utils/math.js +1 -2
  372. package/dist/utils/mesh.d.ts +1 -0
  373. package/dist/utils/mesh.d.ts.map +1 -0
  374. package/dist/utils/mesh.js +1 -2
  375. package/dist/utils/polyfill.d.ts +1 -0
  376. package/dist/utils/polyfill.d.ts.map +1 -0
  377. package/dist/utils/polyfill.js +1 -2
  378. package/dist/utils/three/depth-pass.d.ts +1 -0
  379. package/dist/utils/three/depth-pass.d.ts.map +1 -0
  380. package/dist/utils/three/depth-pass.js +1 -2
  381. package/dist/utils/three/gpu-stats-panel.d.ts +1 -0
  382. package/dist/utils/three/gpu-stats-panel.d.ts.map +1 -0
  383. package/dist/utils/three/gpu-stats-panel.js +1 -2
  384. package/dist/utils/three/line-sphere.d.ts +1 -0
  385. package/dist/utils/three/line-sphere.d.ts.map +1 -0
  386. package/dist/utils/three/line-sphere.js +1 -2
  387. package/dist/utils/three/outline-pass.d.ts +1 -0
  388. package/dist/utils/three/outline-pass.d.ts.map +1 -0
  389. package/dist/utils/three/outline-pass.js +1 -2
  390. package/dist/utils/three/positional-audio-helper.d.ts +1 -0
  391. package/dist/utils/three/positional-audio-helper.d.ts.map +1 -0
  392. package/dist/utils/three/positional-audio-helper.js +1 -2
  393. package/dist/utils/three/stats.d.ts +1 -0
  394. package/dist/utils/three/stats.d.ts.map +1 -0
  395. package/dist/utils/three/stats.js +1 -2
  396. package/dist/utils/three/transform-controls.d.ts +1 -0
  397. package/dist/utils/three/transform-controls.d.ts.map +1 -0
  398. package/dist/utils/three/transform-controls.js +1 -2
  399. package/dist/utils/three/traverse.d.ts +1 -0
  400. package/dist/utils/three/traverse.d.ts.map +1 -0
  401. package/dist/utils/three/traverse.js +1 -2
  402. package/dist/utils/type.d.ts +1 -0
  403. package/dist/utils/type.d.ts.map +1 -0
  404. package/dist/utils/type.js +1 -2
  405. package/dist/utils/uuid.d.ts +1 -0
  406. package/dist/utils/uuid.d.ts.map +1 -0
  407. package/dist/utils/uuid.js +1 -2
  408. package/dist/worker/index.d.ts +1 -0
  409. package/dist/worker/index.d.ts.map +1 -0
  410. package/dist/worker/index.js +1 -2
  411. package/package.json +122 -122
  412. package/tsconfig.tsbuildinfo +1 -1
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
  */
@@ -24,3 +24,4 @@ export interface PropertyParameter {
24
24
  }
25
25
  export declare function Parameter(options?: ParameterOptions): (target: Object, propertyName: string | symbol, index?: unknown) => void;
26
26
  export declare function extractShaderParameters(shaderType: Type<any>): PropertyParameter[];
27
+ //# 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;AAE3D,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,CAAC,CAAA;AAOf,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,YACzB,MAAM,gBAAgB,MAAM,GAAG,MAAM,UAAU,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"}
@@ -1,5 +1,4 @@
1
- export function glslFunction(t,e,n){const o=t.typeName;return new class extends t{compile(t){const c=`customFunction_${t.variable()}`,s=Object.entries(e).map((([t,e])=>`${e.constructor.typeName} ${t}`)).join(", "),r=Object.values(e).map((e=>t.get(e))).join(", ");return{pars:`${o} ${c}(${s}) {\n ${n}\n }`,out:`${c}(${r})`}}}}
2
- /*
1
+ export function glslFunction(t,e,n){const o=t.typeName;return new class extends t{compile(t){const c=`customFunction_${t.variable()}`,s=Object.entries(e).map((([t,e])=>`${e.constructor.typeName} ${t}`)).join(", "),r=Object.values(e).map((e=>t.get(e))).join(", ");return{pars:`${o} ${c}(${s}) {\n ${n}\n }`,out:`${c}(${r})`}}}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -9,3 +9,5 @@ export * from './voronoi.js';
9
9
  export * from './effects.js';
10
10
  export * from './math.js';
11
11
  export * from './bulge.js';
12
+ export * from './texture-sequence.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA"}
@@ -1,5 +1,4 @@
1
- export*from"three-shader-graph";export{linearEyeDepth,fragmentLinearEyeDepth,depthSampler}from"./depth.js";export{timeUniforms}from"./time.js";export{particleUniforms}from"./particle.js";export*from"./layers.js";export*from"./landscape.js";export*from"./shapes.js";export*from"./voronoi.js";export*from"./effects.js";export*from"./math.js";export*from"./bulge.js";
2
- /*
1
+ export*from"three-shader-graph";export{linearEyeDepth,fragmentLinearEyeDepth,depthSampler}from"./depth.js";export{timeUniforms}from"./time.js";export{particleUniforms}from"./particle.js";export*from"./layers.js";export*from"./landscape.js";export*from"./shapes.js";export*from"./voronoi.js";export*from"./effects.js";export*from"./math.js";export*from"./bulge.js";export*from"./texture-sequence.js";/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -3,3 +3,4 @@ import { FloatNode } from 'three-shader-graph';
3
3
  * Get coordinates in world space which can be much better for texturing landscapes than using UV
4
4
  */
5
5
  export declare function getLandscapeCoords(scale: FloatNode | number): import("three-shader-graph").VaryingVec2Node;
6
+ //# sourceMappingURL=landscape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landscape.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/landscape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAA+B,MAAM,oBAAoB,CAAC;AAI/F;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAC,MAAM,gDAEzD"}
@@ -1,5 +1,4 @@
1
- import{attributes as r,float as t,uniforms as o,vec4 as e,varyingVec2 as a}from"three-shader-graph";const i=o.modelMatrix.multiplyVec(e(r.position,1));export function getLandscapeCoords(r){return a(i.xz.multiplyScalar(t(r)))}
2
- /*
1
+ import{attributes as r,float as t,uniforms as o,vec4 as e,varyingVec2 as a}from"three-shader-graph";const i=o.modelMatrix.multiplyVec(e(r.position,1));export function getLandscapeCoords(r){return a(i.xz.multiplyScalar(t(r)))}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -12,3 +12,4 @@ export interface MixColorsOptions<T extends RgbNode | RgbaNode | Vec3Node | Vec4
12
12
  mode?: LayerMixMode;
13
13
  }
14
14
  export declare function mixColorsByLayer<T extends RgbNode | RgbaNode | Vec3Node | Vec4Node | FloatNode>(options: MixColorsOptions<T>): T;
15
+ //# sourceMappingURL=layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAyJ,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAG5O,oBAAY,YAAY;IACtB,IAAI,IAAA;IAAE,IAAI,IAAA;CACX;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,OAAO,GAAC,QAAQ,GAAC,QAAQ,GAAC,QAAQ,GAAC,SAAS;IACtF,WAAW,EAAE,CAAC,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAC,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAC,SAAS,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAC,SAAS,CAAA;IACxB,IAAI,CAAC,EAAE,YAAY,CAAA;CAEpB;AAuBD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,GAAC,QAAQ,GAAC,QAAQ,GAAC,QAAQ,GAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAyBxH"}
@@ -1,5 +1,4 @@
1
- import{float as e,uniforms as o,vec4 as r,attributes as a,SimplexNoiseNode as t,select as i,mix as l,smoothstep as d,AttributeVec4Node as n,varying as s}from"three-shader-graph";export var LayerMixMode;!function(e){e[e.hard=0]="hard",e[e.soft=1]="soft"}(LayerMixMode||(LayerMixMode={}));const y={enableNoise:!0,noiseScale:e(.1),noiseAmount:e(.5),decay:.3,mode:LayerMixMode.soft},c=s(o.modelMatrix.multiplyVec(r(a.position,1)).xz),m=new n("material"),u=new n("material2"),x=s(m),p=s(u),M=[e(0),x.x,x.y,x.z,x.w,p.x,p.y,p.z,p.w];export function mixColorsByLayer(o){const r={...y,...o},a=e(r.noiseAmount).multiply(e(.1)),n=e(r.noiseScale),s=new t(c.multiplyScalar(n)).multiply(e(2)).subtract(e(1)).multiply(a),m=e(.5),u=r.enableNoise?m.add(s.multiply(e(.1))):m;if(r.mode==LayerMixMode.hard)return r.layerColors.reduce(((e,o,r)=>i(M[r].gt(u),o,e)));{const o=e(r.decay),a=e(.5),t=o.divide(e(2)),i=a.subtract(t),n=a.add(t);return r.layerColors.slice(0,M.length).reduce(((e,o,r)=>l(e,o,d(i,n,M[r].add(s)))))}}
2
- /*
1
+ import{float as e,uniforms as o,vec4 as r,attributes as a,SimplexNoiseNode as t,select as i,mix as l,smoothstep as d,AttributeVec4Node as n,varying as s}from"three-shader-graph";export var LayerMixMode;!function(e){e[e.hard=0]="hard",e[e.soft=1]="soft"}(LayerMixMode||(LayerMixMode={}));const y={enableNoise:!0,noiseScale:e(.1),noiseAmount:e(.5),decay:.3,mode:LayerMixMode.soft},c=s(o.modelMatrix.multiplyVec(r(a.position,1)).xz),m=new n("material"),u=new n("material2"),x=s(m),p=s(u),M=[e(0),x.x,x.y,x.z,x.w,p.x,p.y,p.z,p.w];export function mixColorsByLayer(o){const r={...y,...o},a=e(r.noiseAmount).multiply(e(.1)),n=e(r.noiseScale),s=new t(c.multiplyScalar(n)).multiply(e(2)).subtract(e(1)).multiply(a),m=e(.5),u=r.enableNoise?m.add(s.multiply(e(.1))):m;if(r.mode==LayerMixMode.hard)return r.layerColors.reduce(((e,o,r)=>i(M[r].gt(u),o,e)));{const o=e(r.decay),a=e(.5),t=o.divide(e(2)),i=a.subtract(t),n=a.add(t);return r.layerColors.slice(0,M.length).reduce(((e,o,r)=>l(e,o,d(i,n,M[r].add(s)))))}}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,2 +1,3 @@
1
1
  import { FloatNode, IntNode, Vec2Node, Vec3Node, Vec4Node } from "three-shader-graph";
2
2
  export declare function oneMinus<T extends FloatNode | Vec2Node | Vec3Node | Vec4Node | IntNode>(value: T): T;
3
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/math.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAgC,MAAM,oBAAoB,CAAC;AAGpH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAC,QAAQ,GAAC,QAAQ,GAAC,QAAQ,GAAC,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAS5F"}
@@ -1,5 +1,4 @@
1
- import{FloatNode as t,IntNode as r,Vec2Node as e,Vec3Node as n,Vec4Node as s,float as a,int as c,vec2 as u,vec3 as o,vec4 as i}from"three-shader-graph";export function oneMinus(f){switch(!0){case f instanceof t:return a(1).subtract(f);case f instanceof r:return c(1).subtract(f);case f instanceof e:return u(1,1).subtract(f);case f instanceof n:return o(1,1,1).subtract(f);case f instanceof s:return i(1,1,1,1).subtract(f)}throw"Unsupported type "+f}
2
- /*
1
+ import{FloatNode as t,IntNode as r,Vec2Node as e,Vec3Node as n,Vec4Node as s,float as a,int as c,vec2 as u,vec3 as o,vec4 as i}from"three-shader-graph";export function oneMinus(f){switch(!0){case f instanceof t:return a(1).subtract(f);case f instanceof r:return c(1).subtract(f);case f instanceof e:return u(1,1).subtract(f);case f instanceof n:return o(1,1,1).subtract(f);case f instanceof s:return i(1,1,1,1).subtract(f)}throw"Unsupported type "+f}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,7 +1,10 @@
1
1
  export declare const particleEnergyUniformName = "hology_particle_energy";
2
+ export declare const particleTimeUniformName = "hology_particle_time";
2
3
  export declare const particleVelcoityUniformName = "hology_particle_velocity";
3
4
  export declare const particleUniforms: {
4
5
  energy: import("three-shader-graph").UniformFloatNode;
6
+ time: import("three-shader-graph").UniformFloatNode;
5
7
  velocity: import("three-shader-graph").UniformVec3Node;
6
8
  };
7
9
  export declare const particleAttributes: {};
10
+ //# sourceMappingURL=particle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particle.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/particle.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,2BAA2B,CAAA;AACjE,eAAO,MAAM,uBAAuB,yBAAyB,CAAA;AAC7D,eAAO,MAAM,2BAA2B,6BAA6B,CAAA;AAErE,eAAO,MAAM,gBAAgB;;;;CAO5B,CAAA;AAED,eAAO,MAAM,kBAAkB,IAE9B,CAAA"}
@@ -1,5 +1,4 @@
1
- import{uniformFloat as e,uniformVec3 as o}from"three-shader-graph";export const particleEnergyUniformName="hology_particle_energy";export const particleVelcoityUniformName="hology_particle_velocity";export const particleUniforms={energy:e("hology_particle_energy"),velocity:o("hology_particle_velocity")};export const particleAttributes={};
2
- /*
1
+ import{uniformFloat as e,uniformVec3 as t}from"three-shader-graph";export const particleEnergyUniformName="hology_particle_energy";export const particleTimeUniformName="hology_particle_time";export const particleVelcoityUniformName="hology_particle_velocity";export const particleUniforms={energy:e("hology_particle_energy"),time:e("hology_particle_time"),velocity:t("hology_particle_velocity")};export const particleAttributes={};/*
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 { FloatNode, Vec2Node } from "three-shader-graph";
2
2
  export declare function rectangleFloat(uv: Vec2Node, width: FloatNode, height: FloatNode): FloatNode;
3
3
  export declare function roundedRectangleFloat(uv: Vec2Node, width: FloatNode, height: FloatNode, radius: FloatNode): FloatNode;
4
+ //# sourceMappingURL=shapes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/shapes.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4F,SAAS,EAAE,QAAQ,EAA4C,MAAM,oBAAoB,CAAC;AAG7L,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAI3F;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAKrH"}
@@ -1,5 +1,4 @@
1
- import{float as t,length as a,min as r,max as e,saturate as c,dFdx as d,dFdy as l,abs as u,ComponentsVec2Node as n,vec2 as i}from"three-shader-graph";export function rectangleFloat(t,a,e){const o=u(t.multiplyScalar(2).subtractScalar(1)).subtract(new n(a,e)),s=i(1,1).subtract(o.divide(u(d(p=o)).add(u(l(p)))));var p;return c(r(s.x,s.y))}export function roundedRectangleFloat(o,s,p,b){const m=e(r(r(u(b.multiply(2)),u(s)),u(p)),t(1e-5)),v=u(o.multiplyScalar(2).subtractScalar(1)).subtract(new n(s,p)).addScalar(m),S=a(e(i(0,0),v)).divide(m);return c(t(1).subtract(S).divide(u(d(y=S)).add(u(l(y)))));var y}
2
- /*
1
+ import{float as t,length as a,min as r,max as e,saturate as c,dFdx as d,dFdy as l,abs as u,ComponentsVec2Node as n,vec2 as i}from"three-shader-graph";export function rectangleFloat(t,a,e){const o=u(t.multiplyScalar(2).subtractScalar(1)).subtract(new n(a,e)),s=i(1,1).subtract(o.divide(u(d(p=o)).add(u(l(p)))));var p;return c(r(s.x,s.y))}export function roundedRectangleFloat(o,s,p,b){const m=e(r(r(u(b.multiply(2)),u(s)),u(p)),t(1e-5)),v=u(o.multiplyScalar(2).subtractScalar(1)).subtract(new n(s,p)).addScalar(m),S=a(e(i(0,0),v)).divide(m);return c(t(1).subtract(S).divide(u(d(y=S)).add(u(l(y)))));var y}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -1,2 +1,3 @@
1
1
  import { FloatNode, Sampler2DNode, Vec2Node } from "three-shader-graph";
2
- export declare function textureSequence(sampler: Sampler2DNode, uv: Vec2Node, alpha: FloatNode, columns: number, rows: number, frames?: number): import("three-shader-graph").RgbaNode;
2
+ export declare function sampleFlipbook(sampler: Sampler2DNode, uv: Vec2Node, columns: number, rows: number, time: FloatNode, fps?: number, mode?: 'clamp' | 'loop'): import("three-shader-graph").RgbaNode;
3
+ //# sourceMappingURL=texture-sequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texture-sequence.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/texture-sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,SAAS,EAAmB,aAAa,EAA8B,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5H,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAK,EAAE,IAAI,GAAE,OAAO,GAAG,MAAgB,yCAsB9J"}
@@ -1,5 +1,4 @@
1
- import{float as i,floor as e,mod as d,textureSize as t,vec2 as l}from"three-shader-graph";export function textureSequence(r,p,u,m,v,n=m*v){const{x:o,y:y}=t(r,0),a=o.divide(m),c=y.divide(v),h=m*v,s=e(i(h).multiply(u.multiply(i(n).divide(h)))),x=d(s,i(m)).multiply(i(a)).divide(i(o)),f=e(s.divide(i(m))).multiply(i(c)).divide(i(y)),g=l(x,f);return r.sample(g.add(p))}
2
- /*
1
+ import{float as l,floor as t,min as e,mod as p,varying as i,vec2 as a}from"three-shader-graph";export function sampleFlipbook(m,o,r,c,s,d=60,u="clamp"){const n=r*c;let h;switch(u){case"clamp":h=t(e(s.multiply(l(d)),l(n-1)));break;case"loop":h=t(p(s.multiply(l(d)),l(n)))}const y=l(1/r),b=l(1/c),f=p(h,l(r)).multiply(y),k=t(h.divide(r)).multiply(b),v=a(f,l(1).subtract(k));return m.sample(i(v.add(o.divide(a(r,c)))))}/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */
@@ -2,3 +2,4 @@ export declare const elapsedTimeUniformName = "hology_elapsed_time";
2
2
  export declare const timeUniforms: {
3
3
  elapsed: import("three-shader-graph").UniformFloatNode;
4
4
  };
5
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/time.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,wBAAwB,CAAA;AAE3D,eAAO,MAAM,YAAY;;CAExB,CAAA"}
@@ -1,5 +1,4 @@
1
- import{uniformFloat as e}from"three-shader-graph";export const elapsedTimeUniformName="hology_elapsed_time";export const timeUniforms={elapsed:e("hology_elapsed_time")};
2
- /*
1
+ import{uniformFloat as e}from"three-shader-graph";export const elapsedTimeUniformName="hology_elapsed_time";export const timeUniforms={elapsed:e("hology_elapsed_time")};/*
3
2
  * Copyright (©) 2023. All rights reserved.
4
3
  * See the LICENSE.md file for details.
5
4
  */