angular-three 0.0.2 → 0.0.3

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 (388) hide show
  1. package/attributes/README.md +3 -0
  2. package/attributes/index.d.ts +22 -0
  3. package/attributes/lib/buffer-attribute/buffer-attribute.d.ts +8 -0
  4. package/attributes/lib/color-attribute/color-attribute.d.ts +8 -0
  5. package/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.d.ts +8 -0
  6. package/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.d.ts +8 -0
  7. package/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.d.ts +8 -0
  8. package/attributes/lib/fog-attribute/fog-attribute.d.ts +8 -0
  9. package/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.d.ts +8 -0
  10. package/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.d.ts +8 -0
  11. package/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.d.ts +8 -0
  12. package/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.d.ts +8 -0
  13. package/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.d.ts +8 -0
  14. package/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.d.ts +8 -0
  15. package/attributes/lib/matrix3-attribute/matrix3-attribute.d.ts +8 -0
  16. package/attributes/lib/matrix4-attribute/matrix4-attribute.d.ts +8 -0
  17. package/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.d.ts +8 -0
  18. package/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.d.ts +8 -0
  19. package/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.d.ts +8 -0
  20. package/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.d.ts +8 -0
  21. package/attributes/lib/value-attribute/value-attribute.d.ts +8 -0
  22. package/attributes/lib/vector2-attribute/vector2-attribute.d.ts +8 -0
  23. package/attributes/lib/vector3-attribute/vector3-attribute.d.ts +8 -0
  24. package/attributes/lib/vector4-attribute/vector4-attribute.d.ts +8 -0
  25. package/audios/README.md +3 -0
  26. package/audios/index.d.ts +3 -0
  27. package/audios/lib/audio/audio.d.ts +49 -0
  28. package/audios/lib/audio-listener/audio-listener.d.ts +35 -0
  29. package/audios/lib/positional-audio/positional-audio.d.ts +49 -0
  30. package/cameras/README.md +3 -0
  31. package/cameras/index.d.ts +5 -0
  32. package/cameras/lib/array-camera/array-camera.d.ts +56 -0
  33. package/cameras/lib/cube-camera/cube-camera.d.ts +36 -0
  34. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +54 -0
  35. package/cameras/lib/perspective-camera/perspective-camera.d.ts +55 -0
  36. package/cameras/lib/stereo-camera/stereo-camera.d.ts +42 -0
  37. package/esm2020/attributes/angular-three-attributes.mjs +5 -0
  38. package/esm2020/attributes/index.mjs +24 -0
  39. package/esm2020/attributes/lib/buffer-attribute/buffer-attribute.mjs +25 -0
  40. package/esm2020/attributes/lib/color-attribute/color-attribute.mjs +25 -0
  41. package/esm2020/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.mjs +25 -0
  42. package/esm2020/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.mjs +25 -0
  43. package/esm2020/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.mjs +25 -0
  44. package/esm2020/attributes/lib/fog-attribute/fog-attribute.mjs +25 -0
  45. package/esm2020/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.mjs +25 -0
  46. package/esm2020/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.mjs +25 -0
  47. package/esm2020/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.mjs +25 -0
  48. package/esm2020/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.mjs +25 -0
  49. package/esm2020/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.mjs +25 -0
  50. package/esm2020/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.mjs +29 -0
  51. package/esm2020/attributes/lib/matrix3-attribute/matrix3-attribute.mjs +25 -0
  52. package/esm2020/attributes/lib/matrix4-attribute/matrix4-attribute.mjs +25 -0
  53. package/esm2020/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.mjs +25 -0
  54. package/esm2020/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.mjs +25 -0
  55. package/esm2020/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.mjs +25 -0
  56. package/esm2020/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.mjs +25 -0
  57. package/esm2020/attributes/lib/value-attribute/value-attribute.mjs +27 -0
  58. package/esm2020/attributes/lib/vector2-attribute/vector2-attribute.mjs +25 -0
  59. package/esm2020/attributes/lib/vector3-attribute/vector3-attribute.mjs +25 -0
  60. package/esm2020/attributes/lib/vector4-attribute/vector4-attribute.mjs +25 -0
  61. package/esm2020/audios/angular-three-audios.mjs +5 -0
  62. package/esm2020/audios/index.mjs +5 -0
  63. package/esm2020/audios/lib/audio/audio.mjs +68 -0
  64. package/esm2020/audios/lib/audio-listener/audio-listener.mjs +65 -0
  65. package/esm2020/audios/lib/positional-audio/positional-audio.mjs +68 -0
  66. package/esm2020/cameras/angular-three-cameras.mjs +5 -0
  67. package/esm2020/cameras/index.mjs +7 -0
  68. package/esm2020/cameras/lib/array-camera/array-camera.mjs +67 -0
  69. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +55 -0
  70. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +65 -0
  71. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +66 -0
  72. package/esm2020/cameras/lib/stereo-camera/stereo-camera.mjs +61 -0
  73. package/esm2020/geometries/angular-three-geometries.mjs +5 -0
  74. package/esm2020/geometries/index.mjs +25 -0
  75. package/esm2020/geometries/lib/box-geometry/box-geometry.mjs +25 -0
  76. package/esm2020/geometries/lib/buffer-geometry/buffer-geometry.mjs +25 -0
  77. package/esm2020/geometries/lib/capsule-geometry/capsule-geometry.mjs +25 -0
  78. package/esm2020/geometries/lib/circle-geometry/circle-geometry.mjs +25 -0
  79. package/esm2020/geometries/lib/cone-geometry/cone-geometry.mjs +25 -0
  80. package/esm2020/geometries/lib/cylinder-geometry/cylinder-geometry.mjs +25 -0
  81. package/esm2020/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.mjs +25 -0
  82. package/esm2020/geometries/lib/edges-geometry/edges-geometry.mjs +25 -0
  83. package/esm2020/geometries/lib/extrude-geometry/extrude-geometry.mjs +25 -0
  84. package/esm2020/geometries/lib/icosahedron-geometry/icosahedron-geometry.mjs +25 -0
  85. package/esm2020/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.mjs +25 -0
  86. package/esm2020/geometries/lib/lathe-geometry/lathe-geometry.mjs +25 -0
  87. package/esm2020/geometries/lib/octahedron-geometry/octahedron-geometry.mjs +25 -0
  88. package/esm2020/geometries/lib/plane-geometry/plane-geometry.mjs +25 -0
  89. package/esm2020/geometries/lib/polyhedron-geometry/polyhedron-geometry.mjs +25 -0
  90. package/esm2020/geometries/lib/ring-geometry/ring-geometry.mjs +25 -0
  91. package/esm2020/geometries/lib/shape-geometry/shape-geometry.mjs +25 -0
  92. package/esm2020/geometries/lib/sphere-geometry/sphere-geometry.mjs +25 -0
  93. package/esm2020/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.mjs +25 -0
  94. package/esm2020/geometries/lib/torus-geometry/torus-geometry.mjs +25 -0
  95. package/esm2020/geometries/lib/torus-knot-geometry/torus-knot-geometry.mjs +25 -0
  96. package/esm2020/geometries/lib/tube-geometry/tube-geometry.mjs +25 -0
  97. package/esm2020/geometries/lib/wireframe-geometry/wireframe-geometry.mjs +25 -0
  98. package/esm2020/helpers/angular-three-helpers.mjs +5 -0
  99. package/esm2020/helpers/index.mjs +15 -0
  100. package/esm2020/helpers/lib/arrow-helper/arrow-helper.mjs +25 -0
  101. package/esm2020/helpers/lib/axes-helper/axes-helper.mjs +25 -0
  102. package/esm2020/helpers/lib/box-helper/box-helper.mjs +35 -0
  103. package/esm2020/helpers/lib/box3-helper/box3-helper.mjs +35 -0
  104. package/esm2020/helpers/lib/camera-helper/camera-helper.mjs +35 -0
  105. package/esm2020/helpers/lib/directional-light-helper/directional-light-helper.mjs +35 -0
  106. package/esm2020/helpers/lib/grid-helper/grid-helper.mjs +25 -0
  107. package/esm2020/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.mjs +35 -0
  108. package/esm2020/helpers/lib/plane-helper/plane-helper.mjs +35 -0
  109. package/esm2020/helpers/lib/point-light-helper/point-light-helper.mjs +35 -0
  110. package/esm2020/helpers/lib/polar-grid-helper/polar-grid-helper.mjs +25 -0
  111. package/esm2020/helpers/lib/skeleton-helper/skeleton-helper.mjs +35 -0
  112. package/esm2020/helpers/lib/spot-light-helper/spot-light-helper.mjs +35 -0
  113. package/esm2020/index.mjs +12 -2
  114. package/esm2020/lib/canvas.mjs +227 -0
  115. package/esm2020/lib/di/resize.mjs +19 -0
  116. package/esm2020/lib/di/window.mjs +13 -0
  117. package/esm2020/lib/directives/args.mjs +30 -0
  118. package/esm2020/lib/events.mjs +53 -0
  119. package/esm2020/lib/instance.mjs +358 -0
  120. package/esm2020/lib/ref.mjs +15 -0
  121. package/esm2020/lib/services/loader.mjs +45 -0
  122. package/esm2020/lib/services/resize.mjs +127 -0
  123. package/esm2020/lib/stores/component-store.mjs +137 -0
  124. package/esm2020/lib/stores/store.mjs +433 -0
  125. package/esm2020/lib/types.mjs +2 -0
  126. package/esm2020/lib/utils/apply-props.mjs +135 -0
  127. package/esm2020/lib/utils/build-graph.mjs +15 -0
  128. package/esm2020/lib/utils/camera.mjs +28 -0
  129. package/esm2020/lib/utils/capitalize.mjs +4 -0
  130. package/esm2020/lib/utils/check-update.mjs +22 -0
  131. package/esm2020/lib/utils/events.mjs +353 -0
  132. package/esm2020/lib/utils/get-instance-local-state.mjs +6 -0
  133. package/esm2020/lib/utils/inject.mjs +18 -0
  134. package/esm2020/lib/utils/instance.mjs +35 -0
  135. package/esm2020/lib/utils/is.mjs +54 -0
  136. package/esm2020/lib/utils/loop.mjs +139 -0
  137. package/esm2020/lib/utils/make.mjs +30 -0
  138. package/esm2020/lib/utils/mutate.mjs +24 -0
  139. package/esm2020/lib/utils/proxy.mjs +99 -0
  140. package/esm2020/lib/utils/renderer.mjs +15 -0
  141. package/esm2020/lights/angular-three-lights.mjs +5 -0
  142. package/esm2020/lights/index.mjs +11 -0
  143. package/esm2020/lights/lib/ambient-light/ambient-light.mjs +68 -0
  144. package/esm2020/lights/lib/ambient-light-probe/ambient-light-probe.mjs +69 -0
  145. package/esm2020/lights/lib/directional-light/directional-light.mjs +69 -0
  146. package/esm2020/lights/lib/hemisphere-light/hemisphere-light.mjs +70 -0
  147. package/esm2020/lights/lib/hemisphere-light-probe/hemisphere-light-probe.mjs +71 -0
  148. package/esm2020/lights/lib/light-probe/light-probe.mjs +69 -0
  149. package/esm2020/lights/lib/point-light/point-light.mjs +71 -0
  150. package/esm2020/lights/lib/rect-area-light/rect-area-light.mjs +71 -0
  151. package/esm2020/lights/lib/spot-light/spot-light.mjs +74 -0
  152. package/esm2020/materials/angular-three-materials.mjs +5 -0
  153. package/esm2020/materials/index.mjs +19 -0
  154. package/esm2020/materials/lib/line-basic-material/line-basic-material.mjs +76 -0
  155. package/esm2020/materials/lib/line-dashed-material/line-dashed-material.mjs +79 -0
  156. package/esm2020/materials/lib/mesh-basic-material/mesh-basic-material.mjs +88 -0
  157. package/esm2020/materials/lib/mesh-depth-material/mesh-depth-material.mjs +79 -0
  158. package/esm2020/materials/lib/mesh-distance-material/mesh-distance-material.mjs +79 -0
  159. package/esm2020/materials/lib/mesh-lambert-material/mesh-lambert-material.mjs +99 -0
  160. package/esm2020/materials/lib/mesh-matcap-material/mesh-matcap-material.mjs +85 -0
  161. package/esm2020/materials/lib/mesh-normal-material/mesh-normal-material.mjs +82 -0
  162. package/esm2020/materials/lib/mesh-phong-material/mesh-phong-material.mjs +102 -0
  163. package/esm2020/materials/lib/mesh-physical-material/mesh-physical-material.mjs +118 -0
  164. package/esm2020/materials/lib/mesh-standard-material/mesh-standard-material.mjs +99 -0
  165. package/esm2020/materials/lib/mesh-toon-material/mesh-toon-material.mjs +95 -0
  166. package/esm2020/materials/lib/points-material/points-material.mjs +77 -0
  167. package/esm2020/materials/lib/raw-shader-material/raw-shader-material.mjs +82 -0
  168. package/esm2020/materials/lib/shader-material/shader-material.mjs +82 -0
  169. package/esm2020/materials/lib/shadow-material/shadow-material.mjs +73 -0
  170. package/esm2020/materials/lib/sprite-material/sprite-material.mjs +77 -0
  171. package/esm2020/objects/angular-three-objects.mjs +5 -0
  172. package/esm2020/objects/index.mjs +14 -0
  173. package/esm2020/objects/lib/bone/bone.mjs +54 -0
  174. package/esm2020/objects/lib/group/group.mjs +54 -0
  175. package/esm2020/objects/lib/instanced-mesh/instanced-mesh.mjs +63 -0
  176. package/esm2020/objects/lib/line/line.mjs +58 -0
  177. package/esm2020/objects/lib/line-loop/line-loop.mjs +58 -0
  178. package/esm2020/objects/lib/line-segments/line-segments.mjs +58 -0
  179. package/esm2020/objects/lib/lod/lod.mjs +57 -0
  180. package/esm2020/objects/lib/mesh/mesh.mjs +58 -0
  181. package/esm2020/objects/lib/points/points.mjs +58 -0
  182. package/esm2020/objects/lib/skeleton/skeleton.mjs +49 -0
  183. package/esm2020/objects/lib/skinned-mesh/skinned-mesh.mjs +62 -0
  184. package/esm2020/objects/lib/sprite/sprite.mjs +57 -0
  185. package/esm2020/primitives/angular-three-primitives.mjs +5 -0
  186. package/esm2020/primitives/index.mjs +3 -0
  187. package/esm2020/primitives/lib/object-primitive/object-primitive.mjs +54 -0
  188. package/esm2020/primitives/lib/primitive/primitive.mjs +37 -0
  189. package/esm2020/stats/angular-three-stats.mjs +5 -0
  190. package/esm2020/stats/index.mjs +2 -0
  191. package/esm2020/stats/lib/stats/stats.mjs +54 -0
  192. package/esm2020/textures/angular-three-textures.mjs +5 -0
  193. package/esm2020/textures/index.mjs +12 -0
  194. package/esm2020/textures/lib/canvas-texture/canvas-texture.mjs +25 -0
  195. package/esm2020/textures/lib/compressed-array-texture/compressed-array-texture.mjs +25 -0
  196. package/esm2020/textures/lib/compressed-texture/compressed-texture.mjs +25 -0
  197. package/esm2020/textures/lib/cube-texture/cube-texture.mjs +25 -0
  198. package/esm2020/textures/lib/data-array-texture/data-array-texture.mjs +25 -0
  199. package/esm2020/textures/lib/data-texture/data-texture.mjs +25 -0
  200. package/esm2020/textures/lib/data3-dtexture/data3-dtexture.mjs +25 -0
  201. package/esm2020/textures/lib/depth-texture/depth-texture.mjs +25 -0
  202. package/esm2020/textures/lib/framebuffer-texture/framebuffer-texture.mjs +25 -0
  203. package/esm2020/textures/lib/video-texture/video-texture.mjs +25 -0
  204. package/fesm2015/angular-three-attributes.mjs +462 -0
  205. package/fesm2015/angular-three-attributes.mjs.map +1 -0
  206. package/fesm2015/angular-three-audios.mjs +200 -0
  207. package/fesm2015/angular-three-audios.mjs.map +1 -0
  208. package/fesm2015/angular-three-cameras.mjs +304 -0
  209. package/fesm2015/angular-three-cameras.mjs.map +1 -0
  210. package/fesm2015/angular-three-geometries.mjs +475 -0
  211. package/fesm2015/angular-three-geometries.mjs.map +1 -0
  212. package/fesm2015/angular-three-helpers.mjs +365 -0
  213. package/fesm2015/angular-three-helpers.mjs.map +1 -0
  214. package/fesm2015/angular-three-lights.mjs +602 -0
  215. package/fesm2015/angular-three-lights.mjs.map +1 -0
  216. package/fesm2015/angular-three-materials.mjs +1402 -0
  217. package/fesm2015/angular-three-materials.mjs.map +1 -0
  218. package/fesm2015/angular-three-objects.mjs +641 -0
  219. package/fesm2015/angular-three-objects.mjs.map +1 -0
  220. package/fesm2015/angular-three-primitives.mjs +95 -0
  221. package/fesm2015/angular-three-primitives.mjs.map +1 -0
  222. package/fesm2015/angular-three-stats.mjs +62 -0
  223. package/fesm2015/angular-three-stats.mjs.map +1 -0
  224. package/fesm2015/angular-three-textures.mjs +215 -0
  225. package/fesm2015/angular-three-textures.mjs.map +1 -0
  226. package/fesm2015/angular-three.mjs +2327 -10
  227. package/fesm2015/angular-three.mjs.map +1 -1
  228. package/fesm2020/angular-three-attributes.mjs +462 -0
  229. package/fesm2020/angular-three-attributes.mjs.map +1 -0
  230. package/fesm2020/angular-three-audios.mjs +200 -0
  231. package/fesm2020/angular-three-audios.mjs.map +1 -0
  232. package/fesm2020/angular-three-cameras.mjs +304 -0
  233. package/fesm2020/angular-three-cameras.mjs.map +1 -0
  234. package/fesm2020/angular-three-geometries.mjs +475 -0
  235. package/fesm2020/angular-three-geometries.mjs.map +1 -0
  236. package/fesm2020/angular-three-helpers.mjs +365 -0
  237. package/fesm2020/angular-three-helpers.mjs.map +1 -0
  238. package/fesm2020/angular-three-lights.mjs +602 -0
  239. package/fesm2020/angular-three-lights.mjs.map +1 -0
  240. package/fesm2020/angular-three-materials.mjs +1402 -0
  241. package/fesm2020/angular-three-materials.mjs.map +1 -0
  242. package/fesm2020/angular-three-objects.mjs +641 -0
  243. package/fesm2020/angular-three-objects.mjs.map +1 -0
  244. package/fesm2020/angular-three-primitives.mjs +95 -0
  245. package/fesm2020/angular-three-primitives.mjs.map +1 -0
  246. package/fesm2020/angular-three-stats.mjs +62 -0
  247. package/fesm2020/angular-three-stats.mjs.map +1 -0
  248. package/fesm2020/angular-three-textures.mjs +215 -0
  249. package/fesm2020/angular-three-textures.mjs.map +1 -0
  250. package/fesm2020/angular-three.mjs +2344 -10
  251. package/fesm2020/angular-three.mjs.map +1 -1
  252. package/geometries/README.md +3 -0
  253. package/geometries/index.d.ts +23 -0
  254. package/geometries/lib/box-geometry/box-geometry.d.ts +8 -0
  255. package/geometries/lib/buffer-geometry/buffer-geometry.d.ts +8 -0
  256. package/geometries/lib/capsule-geometry/capsule-geometry.d.ts +8 -0
  257. package/geometries/lib/circle-geometry/circle-geometry.d.ts +8 -0
  258. package/geometries/lib/cone-geometry/cone-geometry.d.ts +8 -0
  259. package/geometries/lib/cylinder-geometry/cylinder-geometry.d.ts +8 -0
  260. package/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.d.ts +8 -0
  261. package/geometries/lib/edges-geometry/edges-geometry.d.ts +8 -0
  262. package/geometries/lib/extrude-geometry/extrude-geometry.d.ts +8 -0
  263. package/geometries/lib/icosahedron-geometry/icosahedron-geometry.d.ts +8 -0
  264. package/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.d.ts +8 -0
  265. package/geometries/lib/lathe-geometry/lathe-geometry.d.ts +8 -0
  266. package/geometries/lib/octahedron-geometry/octahedron-geometry.d.ts +8 -0
  267. package/geometries/lib/plane-geometry/plane-geometry.d.ts +8 -0
  268. package/geometries/lib/polyhedron-geometry/polyhedron-geometry.d.ts +8 -0
  269. package/geometries/lib/ring-geometry/ring-geometry.d.ts +8 -0
  270. package/geometries/lib/shape-geometry/shape-geometry.d.ts +8 -0
  271. package/geometries/lib/sphere-geometry/sphere-geometry.d.ts +8 -0
  272. package/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.d.ts +8 -0
  273. package/geometries/lib/torus-geometry/torus-geometry.d.ts +8 -0
  274. package/geometries/lib/torus-knot-geometry/torus-knot-geometry.d.ts +8 -0
  275. package/geometries/lib/tube-geometry/tube-geometry.d.ts +8 -0
  276. package/geometries/lib/wireframe-geometry/wireframe-geometry.d.ts +8 -0
  277. package/helpers/README.md +3 -0
  278. package/helpers/index.d.ts +13 -0
  279. package/helpers/lib/arrow-helper/arrow-helper.d.ts +8 -0
  280. package/helpers/lib/axes-helper/axes-helper.d.ts +8 -0
  281. package/helpers/lib/box-helper/box-helper.d.ts +8 -0
  282. package/helpers/lib/box3-helper/box3-helper.d.ts +8 -0
  283. package/helpers/lib/camera-helper/camera-helper.d.ts +8 -0
  284. package/helpers/lib/directional-light-helper/directional-light-helper.d.ts +8 -0
  285. package/helpers/lib/grid-helper/grid-helper.d.ts +8 -0
  286. package/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.d.ts +8 -0
  287. package/helpers/lib/plane-helper/plane-helper.d.ts +8 -0
  288. package/helpers/lib/point-light-helper/point-light-helper.d.ts +8 -0
  289. package/helpers/lib/polar-grid-helper/polar-grid-helper.d.ts +8 -0
  290. package/helpers/lib/skeleton-helper/skeleton-helper.d.ts +8 -0
  291. package/helpers/lib/spot-light-helper/spot-light-helper.d.ts +8 -0
  292. package/index.d.ts +11 -1
  293. package/lib/canvas.d.ts +46 -0
  294. package/lib/di/resize.d.ts +12 -0
  295. package/lib/di/window.d.ts +1 -0
  296. package/lib/directives/args.d.ts +19 -0
  297. package/lib/events.d.ts +2 -0
  298. package/lib/instance.d.ts +81 -0
  299. package/lib/ref.d.ts +5 -0
  300. package/lib/services/loader.d.ts +11 -0
  301. package/lib/services/resize.d.ts +19 -0
  302. package/lib/stores/component-store.d.ts +69 -0
  303. package/lib/stores/store.d.ts +32 -0
  304. package/lib/types.d.ts +358 -0
  305. package/lib/utils/apply-props.d.ts +6 -0
  306. package/lib/utils/build-graph.d.ts +3 -0
  307. package/lib/utils/camera.d.ts +4 -0
  308. package/lib/utils/capitalize.d.ts +1 -0
  309. package/lib/utils/check-update.d.ts +2 -0
  310. package/lib/utils/events.d.ts +6 -0
  311. package/lib/utils/get-instance-local-state.d.ts +2 -0
  312. package/lib/utils/inject.d.ts +9 -0
  313. package/lib/utils/instance.d.ts +4 -0
  314. package/lib/utils/is.d.ts +21 -0
  315. package/lib/utils/loop.d.ts +32 -0
  316. package/lib/utils/make.d.ts +4 -0
  317. package/lib/utils/mutate.d.ts +2 -0
  318. package/lib/utils/proxy.d.ts +7 -0
  319. package/lib/utils/renderer.d.ts +3 -0
  320. package/lights/README.md +3 -0
  321. package/lights/index.d.ts +9 -0
  322. package/lights/lib/ambient-light/ambient-light.d.ts +49 -0
  323. package/lights/lib/ambient-light-probe/ambient-light-probe.d.ts +50 -0
  324. package/lights/lib/directional-light/directional-light.d.ts +50 -0
  325. package/lights/lib/hemisphere-light/hemisphere-light.d.ts +51 -0
  326. package/lights/lib/hemisphere-light-probe/hemisphere-light-probe.d.ts +52 -0
  327. package/lights/lib/light-probe/light-probe.d.ts +50 -0
  328. package/lights/lib/point-light/point-light.d.ts +52 -0
  329. package/lights/lib/rect-area-light/rect-area-light.d.ts +52 -0
  330. package/lights/lib/spot-light/spot-light.d.ts +55 -0
  331. package/materials/README.md +3 -0
  332. package/materials/index.d.ts +17 -0
  333. package/materials/lib/line-basic-material/line-basic-material.d.ts +55 -0
  334. package/materials/lib/line-dashed-material/line-dashed-material.d.ts +58 -0
  335. package/materials/lib/mesh-basic-material/mesh-basic-material.d.ts +67 -0
  336. package/materials/lib/mesh-depth-material/mesh-depth-material.d.ts +58 -0
  337. package/materials/lib/mesh-distance-material/mesh-distance-material.d.ts +58 -0
  338. package/materials/lib/mesh-lambert-material/mesh-lambert-material.d.ts +78 -0
  339. package/materials/lib/mesh-matcap-material/mesh-matcap-material.d.ts +64 -0
  340. package/materials/lib/mesh-normal-material/mesh-normal-material.d.ts +61 -0
  341. package/materials/lib/mesh-phong-material/mesh-phong-material.d.ts +81 -0
  342. package/materials/lib/mesh-physical-material/mesh-physical-material.d.ts +97 -0
  343. package/materials/lib/mesh-standard-material/mesh-standard-material.d.ts +78 -0
  344. package/materials/lib/mesh-toon-material/mesh-toon-material.d.ts +74 -0
  345. package/materials/lib/points-material/points-material.d.ts +56 -0
  346. package/materials/lib/raw-shader-material/raw-shader-material.d.ts +68 -0
  347. package/materials/lib/shader-material/shader-material.d.ts +68 -0
  348. package/materials/lib/shadow-material/shadow-material.d.ts +52 -0
  349. package/materials/lib/sprite-material/sprite-material.d.ts +56 -0
  350. package/objects/README.md +3 -0
  351. package/objects/index.d.ts +12 -0
  352. package/objects/lib/bone/bone.d.ts +35 -0
  353. package/objects/lib/group/group.d.ts +35 -0
  354. package/objects/lib/instanced-mesh/instanced-mesh.d.ts +44 -0
  355. package/objects/lib/line/line.d.ts +41 -0
  356. package/objects/lib/line-loop/line-loop.d.ts +41 -0
  357. package/objects/lib/line-segments/line-segments.d.ts +41 -0
  358. package/objects/lib/lod/lod.d.ts +41 -0
  359. package/objects/lib/mesh/mesh.d.ts +41 -0
  360. package/objects/lib/points/points.d.ts +41 -0
  361. package/objects/lib/skeleton/skeleton.d.ts +17 -0
  362. package/objects/lib/skinned-mesh/skinned-mesh.d.ts +45 -0
  363. package/objects/lib/sprite/sprite.d.ts +38 -0
  364. package/package.json +93 -2
  365. package/primitives/README.md +3 -0
  366. package/primitives/index.d.ts +2 -0
  367. package/primitives/lib/object-primitive/object-primitive.d.ts +35 -0
  368. package/primitives/lib/primitive/primitive.d.ts +10 -0
  369. package/schematics/src/generators/init/generator.d.ts +1 -1
  370. package/schematics/src/generators/init/generator.js +4 -4
  371. package/schematics/src/generators/init/generator.js.map +1 -1
  372. package/stats/README.md +3 -0
  373. package/stats/index.d.ts +1 -0
  374. package/stats/lib/stats/stats.d.ts +16 -0
  375. package/textures/README.md +3 -0
  376. package/textures/index.d.ts +10 -0
  377. package/textures/lib/canvas-texture/canvas-texture.d.ts +8 -0
  378. package/textures/lib/compressed-array-texture/compressed-array-texture.d.ts +8 -0
  379. package/textures/lib/compressed-texture/compressed-texture.d.ts +8 -0
  380. package/textures/lib/cube-texture/cube-texture.d.ts +8 -0
  381. package/textures/lib/data-array-texture/data-array-texture.d.ts +8 -0
  382. package/textures/lib/data-texture/data-texture.d.ts +8 -0
  383. package/textures/lib/data3-dtexture/data3-dtexture.d.ts +8 -0
  384. package/textures/lib/depth-texture/depth-texture.d.ts +8 -0
  385. package/textures/lib/framebuffer-texture/framebuffer-texture.d.ts +8 -0
  386. package/textures/lib/video-texture/video-texture.d.ts +8 -0
  387. package/esm2020/lib/angular-three.module.mjs +0 -15
  388. package/lib/angular-three.module.d.ts +0 -7
@@ -0,0 +1,135 @@
1
+ import * as THREE from 'three';
2
+ import { checkNeedsUpdate } from './check-update';
3
+ import { getInstanceLocalState } from './get-instance-local-state';
4
+ import { invalidateInstance } from './instance';
5
+ import { is } from './is';
6
+ const DEFAULT = '__default';
7
+ export function diffProps(instance, props, previousProps = {}, remove = false) {
8
+ const localState = getInstanceLocalState(instance) || {};
9
+ const propsEntries = Object.entries(props);
10
+ const changes = [];
11
+ // Catch removed props, prepend them, so they can be reset or removed
12
+ if (remove) {
13
+ const previousKeys = Object.keys(previousProps);
14
+ for (const previousKey of previousKeys) {
15
+ // @ts-ignore
16
+ if (!Object.hasOwn(props, previousKey)) {
17
+ propsEntries.unshift([previousKey, DEFAULT + 'remove']);
18
+ }
19
+ }
20
+ }
21
+ for (const [propKey, propValue] of propsEntries) {
22
+ if (is.equ(propValue, previousProps[propKey]))
23
+ continue;
24
+ changes.push([propKey, propValue]);
25
+ }
26
+ const memoized = { ...props };
27
+ if (localState.memoized && localState.memoized['args']) {
28
+ memoized['args'] = localState.memoized['args'];
29
+ }
30
+ if (localState.memoized && localState.memoized['attach']) {
31
+ memoized['attach'] = localState.memoized['attach'] || localState.attach;
32
+ }
33
+ return { changes, memoized };
34
+ }
35
+ export function applyProps(instance, props) {
36
+ // props is empty
37
+ if (!Object.keys(props).length)
38
+ return instance;
39
+ // Filter equals, events and reserved props
40
+ const localState = getInstanceLocalState(instance) || {};
41
+ const rootState = localState.stateFactory?.();
42
+ const { changes, memoized } = diffProps(instance, props);
43
+ const instanceHandlers = localState.eventCount;
44
+ if (getInstanceLocalState(instance)) {
45
+ getInstanceLocalState(instance).memoized = memoized;
46
+ }
47
+ for (let i = 0; i < changes.length; i++) {
48
+ const key = changes[i][0];
49
+ const currentInstance = instance;
50
+ const targetProp = currentInstance[key];
51
+ let value = changes[i][1];
52
+ if (is.ref(value)) {
53
+ value = value.value;
54
+ }
55
+ if (value === DEFAULT + 'remove') {
56
+ if (targetProp && targetProp.constructor) {
57
+ // use the prop constructor to find the default it should be
58
+ value = new targetProp.constructor(...(memoized['args'] ?? []));
59
+ }
60
+ else if (currentInstance.constructor) {
61
+ const dummyInstance = new currentInstance.constructor(...(getInstanceLocalState(currentInstance)?.memoized?.['args'] || []));
62
+ value = dummyInstance[targetProp];
63
+ // destroy the instance
64
+ if (dummyInstance.dispose)
65
+ dummyInstance.dispose();
66
+ }
67
+ else {
68
+ value = 0;
69
+ }
70
+ }
71
+ // Special treatment for objects with support for set/copy, and layers
72
+ if (targetProp && targetProp['set'] && (targetProp['copy'] || targetProp instanceof THREE.Layers)) {
73
+ const isColor = targetProp instanceof THREE.Color;
74
+ // If value is an array
75
+ if (Array.isArray(value)) {
76
+ if (targetProp['fromArray'])
77
+ targetProp['fromArray'](value);
78
+ else
79
+ targetProp['set'](...value);
80
+ }
81
+ // Test again target.copy(class) next ...
82
+ else if (targetProp['copy'] &&
83
+ value &&
84
+ value.constructor &&
85
+ targetProp.constructor.name === value.constructor.name) {
86
+ targetProp['copy'](value);
87
+ if (!is.supportColorManagement() && !rootState.linear && isColor) {
88
+ targetProp['convertSRGBToLinear']();
89
+ }
90
+ }
91
+ // If nothing else fits, just set the single value, ignore undefined
92
+ // https://github.com/pmndrs/react-three-fiber/issues/274
93
+ else if (value !== undefined) {
94
+ const isColor = targetProp instanceof THREE.Color;
95
+ // Allow setting array scalars
96
+ if (!isColor && targetProp['setScalar'])
97
+ targetProp['setScalar'](value);
98
+ // Layers have no copy function, we must therefore copy the mask property
99
+ else if (targetProp instanceof THREE.Layers && value instanceof THREE.Layers)
100
+ targetProp.mask = value.mask;
101
+ // Otherwise just set ...
102
+ else
103
+ targetProp['set'](value);
104
+ // For versions of three which don't support THREE.ColorManagement,
105
+ // Auto-convert sRGB colors
106
+ // https://github.com/pmndrs/react-three-fiber/issues/344
107
+ if (!is.supportColorManagement() && !rootState.linear && isColor)
108
+ targetProp.convertSRGBToLinear();
109
+ }
110
+ // Else, just overwrite the value
111
+ }
112
+ else {
113
+ currentInstance[key] = value;
114
+ // Auto-convert sRGB textures, for now ...
115
+ // https://github.com/pmndrs/react-three-fiber/issues/344
116
+ if (!rootState?.linear && currentInstance[key] instanceof THREE.Texture) {
117
+ currentInstance[key]['encoding'] = THREE.sRGBEncoding;
118
+ }
119
+ }
120
+ checkNeedsUpdate(targetProp);
121
+ invalidateInstance(instance);
122
+ }
123
+ if (localState.parentRef &&
124
+ rootState.internal &&
125
+ instance['raycast'] &&
126
+ instanceHandlers !== localState.eventCount) {
127
+ // Pre-emptively remove the instance from the interaction manager
128
+ rootState.removeInteraction(instance['uuid']);
129
+ // Add the instance to the interaction manager only when it has handlers
130
+ if (localState.eventCount)
131
+ rootState.addInteraction(instance);
132
+ }
133
+ return instance;
134
+ }
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvdXRpbHMvYXBwbHktcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDO0FBRTVCLE1BQU0sVUFBVSxTQUFTLENBQ3JCLFFBQW1CLEVBQ25CLEtBQW1CLEVBQ25CLGdCQUE4QixFQUFFLEVBQ2hDLE1BQU0sR0FBRyxLQUFLO0lBRWQsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUssRUFBNEIsQ0FBQztJQUNwRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUM7SUFFcEQscUVBQXFFO0lBQ3JFLElBQUksTUFBTSxFQUFFO1FBQ1IsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRCxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRTtZQUNwQyxhQUFhO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFO2dCQUNwQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FB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Q2pCLFFBQXlCLENBQUMsU0FBUyxDQUFDO1FBQ3JDLGdCQUFnQixLQUFLLFVBQVUsQ0FBQyxVQUFVLEVBQzVDO1FBQ0UsaUVBQWlFO1FBQ2pFLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBRSxRQUF5QixDQUFDLE1BQU0sQ0FBVyxDQUFDLENBQUM7UUFDMUUsd0VBQXdFO1FBQ3hFLElBQUksVUFBVSxDQUFDLFVBQVU7WUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQXFDLENBQUMsQ0FBQztLQUM5RjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueUNvbnN0cnVjdG9yLCBOZ3RBbnlGdW5jdGlvbiwgTmd0QW55UmVjb3JkLCBOZ3RJbnN0YW5jZUxvY2FsU3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjaGVja05lZWRzVXBkYXRlIH0gZnJvbSAnLi9jaGVjay11cGRhdGUnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VMb2NhbFN0YXRlIH0gZnJvbSAnLi9nZXQtaW5zdGFuY2UtbG9jYWwtc3RhdGUnO1xuaW1wb3J0IHsgaW52YWxpZGF0ZUluc3RhbmNlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5jb25zdCBERUZBVUxUID0gJ19fZGVmYXVsdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmUHJvcHM8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0PihcbiAgICBpbnN0YW5jZTogVEluc3RhbmNlLFxuICAgIHByb3BzOiBOZ3RBbnlSZWNvcmQsXG4gICAgcHJldmlvdXNQcm9wczogTmd0QW55UmVjb3JkID0ge30sXG4gICAgcmVtb3ZlID0gZmFsc2Vcbikge1xuICAgIGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRJbnN0YW5jZUxvY2FsU3RhdGUoaW5zdGFuY2UpIHx8ICh7fSBhcyBOZ3RJbnN0YW5jZUxvY2FsU3RhdGUpO1xuICAgIGNvbnN0IHByb3BzRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzKTtcbiAgICBjb25zdCBjaGFuZ2VzOiBba2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duXVtdID0gW107XG5cbiAgICAvLyBDYXRjaCByZW1vdmVkIHByb3BzLCBwcmVwZW5kIHRoZW0sIHNvIHRoZXkgY2FuIGJlIHJlc2V0IG9yIHJlbW92ZWRcbiAgICBpZiAocmVtb3ZlKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzS2V5cyA9IE9iamVjdC5rZXlzKHByZXZpb3VzUHJvcHMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByZXZpb3VzS2V5IG9mIHByZXZpb3VzS2V5cykge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKHByb3BzLCBwcmV2aW91c0tleSkpIHtcbiAgICAgICAgICAgICAgICBwcm9wc0VudHJpZXMudW5zaGlmdChbcHJldmlvdXNLZXksIERFRkFVTFQgKyAncmVtb3ZlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcbiAgICAgICAgaWYgKGlzLmVxdShwcm9wVmFsdWUsIHByZXZpb3VzUHJvcHNbcHJvcEtleV0pKSBjb250aW51ZTtcbiAgICAgICAgY2hhbmdlcy5wdXNoKFtwcm9wS2V5LCBwcm9wVmFsdWVdKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vaXplZDogTmd0QW55UmVjb3JkID0geyAuLi5wcm9wcyB9O1xuICAgIGlmIChsb2NhbFN0YXRlLm1lbW9pemVkICYmIGxvY2FsU3RhdGUubWVtb2l6ZWRbJ2FyZ3MnXSkge1xuICAgICAgICBtZW1vaXplZFsnYXJncyddID0gbG9jYWxTdGF0ZS5tZW1vaXplZFsnYXJncyddO1xuICAgIH1cblxuICAgIGlmIChsb2NhbFN0YXRlLm1lbW9pemVkICYmIGxvY2FsU3RhdGUubWVtb2l6ZWRbJ2F0dGFjaCddKSB7XG4gICAgICAgIG1lbW9pemVkWydhdHRhY2gnXSA9IGxvY2FsU3RhdGUubWVtb2l6ZWRbJ2F0dGFjaCddIHx8IGxvY2FsU3RhdGUuYXR0YWNoO1xuICAgIH1cblxuICAgIHJldHVybiB7IGNoYW5nZXMsIG1lbW9pemVkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVByb3BzPFRJbnN0YW5jZSBleHRlbmRzIG9iamVjdD4oaW5zdGFuY2U6IFRJbnN0YW5jZSwgcHJvcHM6IE5ndEFueVJlY29yZCk6IFRJbnN0YW5jZSB7XG4gICAgLy8gcHJvcHMgaXMgZW1wdHlcbiAgICBpZiAoIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHJldHVybiBpbnN0YW5jZTtcblxuICAgIC8vIEZpbHRlciBlcXVhbHMsIGV2ZW50cyBhbmQgcmVzZXJ2ZWQgcHJvcHNcbiAgICBjb25zdCBsb2NhbFN0YXRlID0gZ2V0SW5zdGFuY2VMb2NhbFN0YXRlKGluc3RhbmNlKSB8fCAoe30gYXMgTmd0SW5zdGFuY2VMb2NhbFN0YXRlKTtcbiAgICBjb25zdCByb290U3RhdGUgPSBsb2NhbFN0YXRlLnN0YXRlRmFjdG9yeT8uKCk7XG4gICAgY29uc3QgeyBjaGFuZ2VzLCBtZW1vaXplZCB9ID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG4gICAgY29uc3QgaW5zdGFuY2VIYW5kbGVycyA9IGxvY2FsU3RhdGUuZXZlbnRDb3VudDtcblxuICAgIGlmIChnZXRJbnN0YW5jZUxvY2FsU3RhdGUoaW5zdGFuY2UpKSB7XG4gICAgICAgIGdldEluc3RhbmNlTG9jYWxTdGF0ZShpbnN0YW5jZSkhLm1lbW9pemVkID0gbWVtb2l6ZWQ7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGNoYW5nZXNbaV1bMF07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICBjb25zdCB0YXJnZXRQcm9wID0gKGN1cnJlbnRJbnN0YW5jZSBhcyBOZ3RBbnlSZWNvcmQpW2tleV0gYXMgTmd0QW55UmVjb3JkO1xuICAgICAgICBsZXQgdmFsdWUgPSBjaGFuZ2VzW2ldWzFdO1xuXG4gICAgICAgIGlmIChpcy5yZWYodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBERUZBVUxUICsgJ3JlbW92ZScpIHtcbiAgICAgICAgICAgIGlmICh0YXJnZXRQcm9wICYmIHRhcmdldFByb3AuY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIHByb3AgY29uc3RydWN0b3IgdG8gZmluZCB0aGUgZGVmYXVsdCBpdCBzaG91bGQgYmVcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyAodGFyZ2V0UHJvcC5jb25zdHJ1Y3RvciBhcyBOZ3RBbnlDb25zdHJ1Y3RvcikoLi4uKChtZW1vaXplZFsnYXJncyddIGFzIHVua25vd25bXSkgPz8gW10pKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudEluc3RhbmNlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZHVtbXlJbnN0YW5jZSA9IG5ldyAoY3VycmVudEluc3RhbmNlLmNvbnN0cnVjdG9yIGFzIE5ndEFueUNvbnN0cnVjdG9yKShcbiAgICAgICAgICAgICAgICAgICAgLi4uKChnZXRJbnN0YW5jZUxvY2FsU3RhdGUoY3VycmVudEluc3RhbmNlKT8ubWVtb2l6ZWQ/LlsnYXJncyddIGFzIHVua25vd25bXSkgfHwgW10pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGR1bW15SW5zdGFuY2VbdGFyZ2V0UHJvcCBhcyB1bmtub3duIGFzIHN0cmluZ107XG4gICAgICAgICAgICAgICAgLy8gZGVzdHJveSB0aGUgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBpZiAoZHVtbXlJbnN0YW5jZS5kaXNwb3NlKSBkdW1teUluc3RhbmNlLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3BlY2lhbCB0cmVhdG1lbnQgZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvciBzZXQvY29weSwgYW5kIGxheWVyc1xuICAgICAgICBpZiAodGFyZ2V0UHJvcCAmJiB0YXJnZXRQcm9wWydzZXQnXSAmJiAodGFyZ2V0UHJvcFsnY29weSddIHx8IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuICAgICAgICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gYXJyYXlcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXRQcm9wWydmcm9tQXJyYXknXSkgKHRhcmdldFByb3BbJ2Zyb21BcnJheSddIGFzIE5ndEFueUZ1bmN0aW9uKSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZWxzZSAodGFyZ2V0UHJvcFsnc2V0J10gYXMgTmd0QW55RnVuY3Rpb24pKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRlc3QgYWdhaW4gdGFyZ2V0LmNvcHkoY2xhc3MpIG5leHQgLi4uXG4gICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB0YXJnZXRQcm9wWydjb3B5J10gJiZcbiAgICAgICAgICAgICAgICB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmNvbnN0cnVjdG9yICYmXG4gICAgICAgICAgICAgICAgdGFyZ2V0UHJvcC5jb25zdHJ1Y3Rvci5uYW1lID09PSB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAodGFyZ2V0UHJvcFsnY29weSddIGFzIE5ndEFueUZ1bmN0aW9uKSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFpcy5zdXBwb3J0Q29sb3JNYW5hZ2VtZW50KCkgJiYgIXJvb3RTdGF0ZS5saW5lYXIgJiYgaXNDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiBub3RoaW5nIGVsc2UgZml0cywganVzdCBzZXQgdGhlIHNpbmdsZSB2YWx1ZSwgaWdub3JlIHVuZGVmaW5lZFxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BtbmRycy9yZWFjdC10aHJlZS1maWJlci9pc3N1ZXMvMjc0XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcbiAgICAgICAgICAgICAgICAvLyBBbGxvdyBzZXR0aW5nIGFycmF5IHNjYWxhcnNcbiAgICAgICAgICAgICAgICBpZiAoIWlzQ29sb3IgJiYgdGFyZ2V0UHJvcFsnc2V0U2NhbGFyJ10pICh0YXJnZXRQcm9wWydzZXRTY2FsYXInXSBhcyBOZ3RBbnlGdW5jdGlvbikodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIExheWVycyBoYXZlIG5vIGNvcHkgZnVuY3Rpb24sIHdlIG11c3QgdGhlcmVmb3JlIGNvcHkgdGhlIG1hc2sgcHJvcGVydHlcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXJnZXRQcm9wIGluc3RhbmNlb2YgVEhSRUUuTGF5ZXJzICYmIHZhbHVlIGluc3RhbmNlb2YgVEhSRUUuTGF5ZXJzKVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRQcm9wLm1hc2sgPSB2YWx1ZS5tYXNrO1xuICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHNldCAuLi5cbiAgICAgICAgICAgICAgICBlbHNlICh0YXJnZXRQcm9wWydzZXQnXSBhcyBOZ3RBbnlGdW5jdGlvbikodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEZvciB2ZXJzaW9ucyBvZiB0aHJlZSB3aGljaCBkb24ndCBzdXBwb3J0IFRIUkVFLkNvbG9yTWFuYWdlbWVudCxcbiAgICAgICAgICAgICAgICAvLyBBdXRvLWNvbnZlcnQgc1JHQiBjb2xvcnNcbiAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL2lzc3Vlcy8zNDRcbiAgICAgICAgICAgICAgICBpZiAoIWlzLnN1cHBvcnRDb2xvck1hbmFnZW1lbnQoKSAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEVsc2UsIGp1c3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKGN1cnJlbnRJbnN0YW5jZSBhcyBOZ3RBbnlSZWNvcmQpW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIC8vIEF1dG8tY29udmVydCBzUkdCIHRleHR1cmVzLCBmb3Igbm93IC4uLlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BtbmRycy9yZWFjdC10aHJlZS1maWJlci9pc3N1ZXMvMzQ0XG4gICAgICAgICAgICBpZiAoIXJvb3RTdGF0ZT8ubGluZWFyICYmIChjdXJyZW50SW5zdGFuY2UgYXMgTmd0QW55UmVjb3JkKVtrZXldIGluc3RhbmNlb2YgVEhSRUUuVGV4dHVyZSkge1xuICAgICAgICAgICAgICAgICgoY3VycmVudEluc3RhbmNlIGFzIE5ndEFueVJlY29yZClba2V5XSBhcyBOZ3RBbnlSZWNvcmQpWydlbmNvZGluZyddID0gVEhSRUUuc1JHQkVuY29kaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2hlY2tOZWVkc1VwZGF0ZSh0YXJnZXRQcm9wKTtcbiAgICAgICAgaW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAgIGxvY2FsU3RhdGUucGFyZW50UmVmICYmXG4gICAgICAgIHJvb3RTdGF0ZS5pbnRlcm5hbCAmJlxuICAgICAgICAoaW5zdGFuY2UgYXMgTmd0QW55UmVjb3JkKVsncmF5Y2FzdCddICYmXG4gICAgICAgIGluc3RhbmNlSGFuZGxlcnMgIT09IGxvY2FsU3RhdGUuZXZlbnRDb3VudFxuICAgICkge1xuICAgICAgICAvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuICAgICAgICByb290U3RhdGUucmVtb3ZlSW50ZXJhY3Rpb24oKGluc3RhbmNlIGFzIE5ndEFueVJlY29yZClbJ3V1aWQnXSBhcyBzdHJpbmcpO1xuICAgICAgICAvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcbiAgICAgICAgaWYgKGxvY2FsU3RhdGUuZXZlbnRDb3VudCkgcm9vdFN0YXRlLmFkZEludGVyYWN0aW9uKGluc3RhbmNlIGFzIHVua25vd24gYXMgVEhSRUUuT2JqZWN0M0QpO1xuICAgIH1cblxuICAgIHJldHVybiBpbnN0YW5jZTtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ export function buildGraph(object) {
2
+ const data = { nodes: {}, materials: {} };
3
+ if (object) {
4
+ object.traverse((obj) => {
5
+ if (obj.name)
6
+ data.nodes[obj.name] = obj;
7
+ if ('material' in obj && !data.materials[obj.material.name]) {
8
+ data.materials[obj.material.name] = obj
9
+ .material;
10
+ }
11
+ });
12
+ }
13
+ return data;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvdXRpbHMvYnVpbGQtZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFzQjtJQUMvQyxNQUFNLElBQUksR0FBaUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN4RCxJQUFJLE1BQU0sRUFBRTtRQUNWLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFtQixFQUFFLEVBQUU7WUFDdEMsSUFBSSxHQUFHLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDekMsSUFBSSxVQUFVLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxHQUFrQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9GLElBQUksQ0FBQyxTQUFTLENBQUcsR0FBa0IsQ0FBQyxRQUEyQixDQUFDLElBQUksQ0FBQyxHQUFJLEdBQWtCO3FCQUN4RixRQUEwQixDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0T2JqZWN0TWFwIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHcmFwaChvYmplY3Q6IFRIUkVFLk9iamVjdDNEKTogTmd0T2JqZWN0TWFwIHtcbiAgY29uc3QgZGF0YTogTmd0T2JqZWN0TWFwID0geyBub2Rlczoge30sIG1hdGVyaWFsczoge30gfTtcbiAgaWYgKG9iamVjdCkge1xuICAgIG9iamVjdC50cmF2ZXJzZSgob2JqOiBUSFJFRS5PYmplY3QzRCkgPT4ge1xuICAgICAgaWYgKG9iai5uYW1lKSBkYXRhLm5vZGVzW29iai5uYW1lXSA9IG9iajtcbiAgICAgIGlmICgnbWF0ZXJpYWwnIGluIG9iaiAmJiAhZGF0YS5tYXRlcmlhbHNbKChvYmogYXMgVEhSRUUuTWVzaCkubWF0ZXJpYWwgYXMgVEhSRUUuTWF0ZXJpYWwpLm5hbWVdKSB7XG4gICAgICAgIGRhdGEubWF0ZXJpYWxzWygob2JqIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSA9IChvYmogYXMgVEhSRUUuTWVzaClcbiAgICAgICAgICAubWF0ZXJpYWwgYXMgVEhSRUUuTWF0ZXJpYWw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import * as THREE from 'three';
2
+ import { is } from './is';
3
+ export function updateCamera(camera, size) {
4
+ // https://github.com/pmndrs/react-three-fiber/issues/92
5
+ // Do not mess with the camera if it belongs to the user
6
+ if (!camera.manual) {
7
+ if (is.orthographic(camera)) {
8
+ camera.left = size.width / -2;
9
+ camera.right = size.width / 2;
10
+ camera.top = size.height / 2;
11
+ camera.bottom = size.height / -2;
12
+ }
13
+ else {
14
+ camera.aspect = size.width / size.height;
15
+ }
16
+ camera.updateProjectionMatrix();
17
+ // https://github.com/pmndrs/react-three-fiber/issues/178
18
+ // Update matrix world since the renderer is a frame late
19
+ camera.updateMatrixWorld();
20
+ }
21
+ }
22
+ export function createDefaultCamera(isOrthographic, size) {
23
+ if (isOrthographic) {
24
+ return new THREE.OrthographicCamera(0, 0, 0, 0, 0.1, 1000);
25
+ }
26
+ return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3V0aWxzL2NhbWVyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBMkIsRUFBRSxJQUFhO0lBQ25FLHdEQUF3RDtJQUN4RCx3REFBd0Q7SUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDaEIsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM1QztRQUNELE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLHlEQUF5RDtRQUN6RCx5REFBeUQ7UUFDekQsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDOUI7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGNBQXVCLEVBQUUsSUFBYTtJQUN0RSxJQUFJLGNBQWMsRUFBRTtRQUNoQixPQUFPLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDOUQ7SUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndENhbWVyYVdpdGhNYW51YWwsIE5ndFNpemUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FtZXJhKGNhbWVyYTogTmd0Q2FtZXJhV2l0aE1hbnVhbCwgc2l6ZTogTmd0U2l6ZSkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QtdGhyZWUtZmliZXIvaXNzdWVzLzkyXG4gICAgLy8gRG8gbm90IG1lc3Mgd2l0aCB0aGUgY2FtZXJhIGlmIGl0IGJlbG9uZ3MgdG8gdGhlIHVzZXJcbiAgICBpZiAoIWNhbWVyYS5tYW51YWwpIHtcbiAgICAgICAgaWYgKGlzLm9ydGhvZ3JhcGhpYyhjYW1lcmEpKSB7XG4gICAgICAgICAgICBjYW1lcmEubGVmdCA9IHNpemUud2lkdGggLyAtMjtcbiAgICAgICAgICAgIGNhbWVyYS5yaWdodCA9IHNpemUud2lkdGggLyAyO1xuICAgICAgICAgICAgY2FtZXJhLnRvcCA9IHNpemUuaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIGNhbWVyYS5ib3R0b20gPSBzaXplLmhlaWdodCAvIC0yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL2lzc3Vlcy8xNzhcbiAgICAgICAgLy8gVXBkYXRlIG1hdHJpeCB3b3JsZCBzaW5jZSB0aGUgcmVuZGVyZXIgaXMgYSBmcmFtZSBsYXRlXG4gICAgICAgIGNhbWVyYS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRDYW1lcmEoaXNPcnRob2dyYXBoaWM6IGJvb2xlYW4sIHNpemU6IE5ndFNpemUpIHtcbiAgICBpZiAoaXNPcnRob2dyYXBoaWMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEoMCwgMCwgMCwgMCwgMC4xLCAxMDAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhKDc1LCBzaXplLndpZHRoIC8gc2l6ZS5oZWlnaHQsIDAuMSwgMTAwMCk7XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export function capitalize(str) {
2
+ return str.charAt(0).toUpperCase() + str.slice(1);
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi91dGlscy9jYXBpdGFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVztJQUNsQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { is } from './is';
2
+ export function checkNeedsUpdate(value) {
3
+ if (value !== null && is.obj(value) && 'needsUpdate' in value) {
4
+ value['needsUpdate'] = true;
5
+ if ('uniformsNeedUpdate' in value) {
6
+ value['uniformsNeedUpdate'] = true;
7
+ }
8
+ }
9
+ }
10
+ export function checkUpdate(value) {
11
+ if (is.object3d(value)) {
12
+ value.updateMatrix();
13
+ }
14
+ else if (is.camera(value)) {
15
+ if (is.perspective(value) || is.orthographic(value)) {
16
+ value.updateProjectionMatrix();
17
+ }
18
+ value.updateMatrixWorld();
19
+ }
20
+ checkNeedsUpdate(value);
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3V0aWxzL2NoZWNrLXVwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzNDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsSUFBSyxLQUFzQixFQUFFO1FBQzVFLEtBQXNCLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRTlDLElBQUksb0JBQW9CLElBQUssS0FBc0IsRUFBRTtZQUNoRCxLQUFzQixDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3hEO0tBQ0o7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3RDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNwQixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7S0FDeEI7U0FBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakQsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDbEM7UUFDRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztLQUM3QjtJQUVELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja05lZWRzVXBkYXRlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIGlzLm9iaih2YWx1ZSkgJiYgJ25lZWRzVXBkYXRlJyBpbiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKSkge1xuICAgICAgICAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVsnbmVlZHNVcGRhdGUnXSA9IHRydWU7XG5cbiAgICAgICAgaWYgKCd1bmlmb3Jtc05lZWRVcGRhdGUnIGluICh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpKSB7XG4gICAgICAgICAgICAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVsndW5pZm9ybXNOZWVkVXBkYXRlJ10gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tVcGRhdGUodmFsdWU6IHVua25vd24pIHtcbiAgICBpZiAoaXMub2JqZWN0M2QodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuICAgIH0gZWxzZSBpZiAoaXMuY2FtZXJhKHZhbHVlKSkge1xuICAgICAgICBpZiAoaXMucGVyc3BlY3RpdmUodmFsdWUpIHx8IGlzLm9ydGhvZ3JhcGhpYyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuICAgIH1cblxuICAgIGNoZWNrTmVlZHNVcGRhdGUodmFsdWUpO1xufVxuIl19