angular-three 0.0.2 → 0.0.4
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.
- package/attributes/README.md +3 -0
- package/attributes/index.d.ts +22 -0
- package/attributes/lib/buffer-attribute/buffer-attribute.d.ts +8 -0
- package/attributes/lib/color-attribute/color-attribute.d.ts +8 -0
- package/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.d.ts +8 -0
- package/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.d.ts +8 -0
- package/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.d.ts +8 -0
- package/attributes/lib/fog-attribute/fog-attribute.d.ts +8 -0
- package/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.d.ts +8 -0
- package/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.d.ts +8 -0
- package/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.d.ts +8 -0
- package/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.d.ts +8 -0
- package/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.d.ts +8 -0
- package/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.d.ts +8 -0
- package/attributes/lib/matrix3-attribute/matrix3-attribute.d.ts +8 -0
- package/attributes/lib/matrix4-attribute/matrix4-attribute.d.ts +8 -0
- package/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.d.ts +8 -0
- package/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.d.ts +8 -0
- package/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.d.ts +8 -0
- package/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.d.ts +8 -0
- package/attributes/lib/value-attribute/value-attribute.d.ts +8 -0
- package/attributes/lib/vector2-attribute/vector2-attribute.d.ts +8 -0
- package/attributes/lib/vector3-attribute/vector3-attribute.d.ts +8 -0
- package/attributes/lib/vector4-attribute/vector4-attribute.d.ts +8 -0
- package/audios/README.md +3 -0
- package/audios/index.d.ts +3 -0
- package/audios/lib/audio/audio.d.ts +49 -0
- package/audios/lib/audio-listener/audio-listener.d.ts +35 -0
- package/audios/lib/positional-audio/positional-audio.d.ts +49 -0
- package/cameras/README.md +3 -0
- package/cameras/index.d.ts +5 -0
- package/cameras/lib/array-camera/array-camera.d.ts +56 -0
- package/cameras/lib/cube-camera/cube-camera.d.ts +36 -0
- package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +54 -0
- package/cameras/lib/perspective-camera/perspective-camera.d.ts +55 -0
- package/cameras/lib/stereo-camera/stereo-camera.d.ts +42 -0
- package/esm2020/attributes/angular-three-attributes.mjs +5 -0
- package/esm2020/attributes/index.mjs +24 -0
- package/esm2020/attributes/lib/buffer-attribute/buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/color-attribute/color-attribute.mjs +25 -0
- package/esm2020/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/fog-attribute/fog-attribute.mjs +25 -0
- package/esm2020/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.mjs +25 -0
- package/esm2020/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.mjs +29 -0
- package/esm2020/attributes/lib/matrix3-attribute/matrix3-attribute.mjs +25 -0
- package/esm2020/attributes/lib/matrix4-attribute/matrix4-attribute.mjs +25 -0
- package/esm2020/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.mjs +25 -0
- package/esm2020/attributes/lib/value-attribute/value-attribute.mjs +27 -0
- package/esm2020/attributes/lib/vector2-attribute/vector2-attribute.mjs +25 -0
- package/esm2020/attributes/lib/vector3-attribute/vector3-attribute.mjs +25 -0
- package/esm2020/attributes/lib/vector4-attribute/vector4-attribute.mjs +25 -0
- package/esm2020/audios/angular-three-audios.mjs +5 -0
- package/esm2020/audios/index.mjs +5 -0
- package/esm2020/audios/lib/audio/audio.mjs +68 -0
- package/esm2020/audios/lib/audio-listener/audio-listener.mjs +65 -0
- package/esm2020/audios/lib/positional-audio/positional-audio.mjs +68 -0
- package/esm2020/cameras/angular-three-cameras.mjs +5 -0
- package/esm2020/cameras/index.mjs +7 -0
- package/esm2020/cameras/lib/array-camera/array-camera.mjs +67 -0
- package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +55 -0
- package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +65 -0
- package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +66 -0
- package/esm2020/cameras/lib/stereo-camera/stereo-camera.mjs +61 -0
- package/esm2020/geometries/angular-three-geometries.mjs +5 -0
- package/esm2020/geometries/index.mjs +25 -0
- package/esm2020/geometries/lib/box-geometry/box-geometry.mjs +25 -0
- package/esm2020/geometries/lib/buffer-geometry/buffer-geometry.mjs +25 -0
- package/esm2020/geometries/lib/capsule-geometry/capsule-geometry.mjs +25 -0
- package/esm2020/geometries/lib/circle-geometry/circle-geometry.mjs +25 -0
- package/esm2020/geometries/lib/cone-geometry/cone-geometry.mjs +25 -0
- package/esm2020/geometries/lib/cylinder-geometry/cylinder-geometry.mjs +25 -0
- package/esm2020/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.mjs +25 -0
- package/esm2020/geometries/lib/edges-geometry/edges-geometry.mjs +25 -0
- package/esm2020/geometries/lib/extrude-geometry/extrude-geometry.mjs +25 -0
- package/esm2020/geometries/lib/icosahedron-geometry/icosahedron-geometry.mjs +25 -0
- package/esm2020/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.mjs +25 -0
- package/esm2020/geometries/lib/lathe-geometry/lathe-geometry.mjs +25 -0
- package/esm2020/geometries/lib/octahedron-geometry/octahedron-geometry.mjs +25 -0
- package/esm2020/geometries/lib/plane-geometry/plane-geometry.mjs +25 -0
- package/esm2020/geometries/lib/polyhedron-geometry/polyhedron-geometry.mjs +25 -0
- package/esm2020/geometries/lib/ring-geometry/ring-geometry.mjs +25 -0
- package/esm2020/geometries/lib/shape-geometry/shape-geometry.mjs +25 -0
- package/esm2020/geometries/lib/sphere-geometry/sphere-geometry.mjs +25 -0
- package/esm2020/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.mjs +25 -0
- package/esm2020/geometries/lib/torus-geometry/torus-geometry.mjs +25 -0
- package/esm2020/geometries/lib/torus-knot-geometry/torus-knot-geometry.mjs +25 -0
- package/esm2020/geometries/lib/tube-geometry/tube-geometry.mjs +25 -0
- package/esm2020/geometries/lib/wireframe-geometry/wireframe-geometry.mjs +25 -0
- package/esm2020/helpers/angular-three-helpers.mjs +5 -0
- package/esm2020/helpers/index.mjs +15 -0
- package/esm2020/helpers/lib/arrow-helper/arrow-helper.mjs +25 -0
- package/esm2020/helpers/lib/axes-helper/axes-helper.mjs +25 -0
- package/esm2020/helpers/lib/box-helper/box-helper.mjs +35 -0
- package/esm2020/helpers/lib/box3-helper/box3-helper.mjs +35 -0
- package/esm2020/helpers/lib/camera-helper/camera-helper.mjs +35 -0
- package/esm2020/helpers/lib/directional-light-helper/directional-light-helper.mjs +35 -0
- package/esm2020/helpers/lib/grid-helper/grid-helper.mjs +25 -0
- package/esm2020/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.mjs +35 -0
- package/esm2020/helpers/lib/plane-helper/plane-helper.mjs +35 -0
- package/esm2020/helpers/lib/point-light-helper/point-light-helper.mjs +35 -0
- package/esm2020/helpers/lib/polar-grid-helper/polar-grid-helper.mjs +25 -0
- package/esm2020/helpers/lib/skeleton-helper/skeleton-helper.mjs +35 -0
- package/esm2020/helpers/lib/spot-light-helper/spot-light-helper.mjs +35 -0
- package/esm2020/index.mjs +39 -2
- package/esm2020/lib/canvas.mjs +229 -0
- package/esm2020/lib/di/resize.mjs +19 -0
- package/esm2020/lib/di/window.mjs +13 -0
- package/esm2020/lib/directives/args.mjs +30 -0
- package/esm2020/lib/directives/cursor.mjs +35 -0
- package/esm2020/lib/directives/repeat.mjs +20 -0
- package/esm2020/lib/events.mjs +53 -0
- package/esm2020/lib/instance.mjs +368 -0
- package/esm2020/lib/pipes/math.mjs +15 -0
- package/esm2020/lib/pipes/pi.mjs +14 -0
- package/esm2020/lib/pipes/radian.mjs +14 -0
- package/esm2020/lib/pipes/side.mjs +22 -0
- package/esm2020/lib/ref.mjs +15 -0
- package/esm2020/lib/services/loader.mjs +45 -0
- package/esm2020/lib/services/resize.mjs +127 -0
- package/esm2020/lib/stores/component-store.mjs +137 -0
- package/esm2020/lib/stores/store.mjs +433 -0
- package/esm2020/lib/types.mjs +2 -0
- package/esm2020/lib/utils/apply-props.mjs +135 -0
- package/esm2020/lib/utils/build-graph.mjs +15 -0
- package/esm2020/lib/utils/camera.mjs +28 -0
- package/esm2020/lib/utils/capitalize.mjs +4 -0
- package/esm2020/lib/utils/check-update.mjs +22 -0
- package/esm2020/lib/utils/events.mjs +353 -0
- package/esm2020/lib/utils/get-instance-local-state.mjs +6 -0
- package/esm2020/lib/utils/inject.mjs +18 -0
- package/esm2020/lib/utils/instance.mjs +35 -0
- package/esm2020/lib/utils/is.mjs +54 -0
- package/esm2020/lib/utils/loop.mjs +139 -0
- package/esm2020/lib/utils/make.mjs +30 -0
- package/esm2020/lib/utils/mutate.mjs +24 -0
- package/esm2020/lib/utils/proxy.mjs +99 -0
- package/esm2020/lib/utils/renderer.mjs +15 -0
- package/esm2020/lights/angular-three-lights.mjs +5 -0
- package/esm2020/lights/index.mjs +11 -0
- package/esm2020/lights/lib/ambient-light/ambient-light.mjs +58 -0
- package/esm2020/lights/lib/ambient-light-probe/ambient-light-probe.mjs +59 -0
- package/esm2020/lights/lib/directional-light/directional-light.mjs +59 -0
- package/esm2020/lights/lib/hemisphere-light/hemisphere-light.mjs +60 -0
- package/esm2020/lights/lib/hemisphere-light-probe/hemisphere-light-probe.mjs +61 -0
- package/esm2020/lights/lib/light-probe/light-probe.mjs +59 -0
- package/esm2020/lights/lib/point-light/point-light.mjs +61 -0
- package/esm2020/lights/lib/rect-area-light/rect-area-light.mjs +61 -0
- package/esm2020/lights/lib/spot-light/spot-light.mjs +64 -0
- package/esm2020/materials/angular-three-materials.mjs +5 -0
- package/esm2020/materials/index.mjs +19 -0
- package/esm2020/materials/lib/line-basic-material/line-basic-material.mjs +76 -0
- package/esm2020/materials/lib/line-dashed-material/line-dashed-material.mjs +79 -0
- package/esm2020/materials/lib/mesh-basic-material/mesh-basic-material.mjs +88 -0
- package/esm2020/materials/lib/mesh-depth-material/mesh-depth-material.mjs +79 -0
- package/esm2020/materials/lib/mesh-distance-material/mesh-distance-material.mjs +79 -0
- package/esm2020/materials/lib/mesh-lambert-material/mesh-lambert-material.mjs +99 -0
- package/esm2020/materials/lib/mesh-matcap-material/mesh-matcap-material.mjs +85 -0
- package/esm2020/materials/lib/mesh-normal-material/mesh-normal-material.mjs +82 -0
- package/esm2020/materials/lib/mesh-phong-material/mesh-phong-material.mjs +102 -0
- package/esm2020/materials/lib/mesh-physical-material/mesh-physical-material.mjs +118 -0
- package/esm2020/materials/lib/mesh-standard-material/mesh-standard-material.mjs +99 -0
- package/esm2020/materials/lib/mesh-toon-material/mesh-toon-material.mjs +95 -0
- package/esm2020/materials/lib/points-material/points-material.mjs +77 -0
- package/esm2020/materials/lib/raw-shader-material/raw-shader-material.mjs +82 -0
- package/esm2020/materials/lib/shader-material/shader-material.mjs +82 -0
- package/esm2020/materials/lib/shadow-material/shadow-material.mjs +73 -0
- package/esm2020/materials/lib/sprite-material/sprite-material.mjs +77 -0
- package/esm2020/objects/angular-three-objects.mjs +5 -0
- package/esm2020/objects/index.mjs +14 -0
- package/esm2020/objects/lib/bone/bone.mjs +54 -0
- package/esm2020/objects/lib/group/group.mjs +54 -0
- package/esm2020/objects/lib/instanced-mesh/instanced-mesh.mjs +63 -0
- package/esm2020/objects/lib/line/line.mjs +58 -0
- package/esm2020/objects/lib/line-loop/line-loop.mjs +58 -0
- package/esm2020/objects/lib/line-segments/line-segments.mjs +58 -0
- package/esm2020/objects/lib/lod/lod.mjs +56 -0
- package/esm2020/objects/lib/mesh/mesh.mjs +58 -0
- package/esm2020/objects/lib/points/points.mjs +58 -0
- package/esm2020/objects/lib/skeleton/skeleton.mjs +40 -0
- package/esm2020/objects/lib/skinned-mesh/skinned-mesh.mjs +62 -0
- package/esm2020/objects/lib/sprite/sprite.mjs +57 -0
- package/esm2020/primitives/angular-three-primitives.mjs +5 -0
- package/esm2020/primitives/index.mjs +3 -0
- package/esm2020/primitives/lib/object-primitive/object-primitive.mjs +54 -0
- package/esm2020/primitives/lib/primitive/primitive.mjs +37 -0
- package/esm2020/stats/angular-three-stats.mjs +5 -0
- package/esm2020/stats/index.mjs +2 -0
- package/esm2020/stats/lib/stats/stats.mjs +54 -0
- package/esm2020/textures/angular-three-textures.mjs +5 -0
- package/esm2020/textures/index.mjs +12 -0
- package/esm2020/textures/lib/canvas-texture/canvas-texture.mjs +25 -0
- package/esm2020/textures/lib/compressed-array-texture/compressed-array-texture.mjs +25 -0
- package/esm2020/textures/lib/compressed-texture/compressed-texture.mjs +25 -0
- package/esm2020/textures/lib/cube-texture/cube-texture.mjs +25 -0
- package/esm2020/textures/lib/data-array-texture/data-array-texture.mjs +25 -0
- package/esm2020/textures/lib/data-texture/data-texture.mjs +25 -0
- package/esm2020/textures/lib/data3-dtexture/data3-dtexture.mjs +25 -0
- package/esm2020/textures/lib/depth-texture/depth-texture.mjs +25 -0
- package/esm2020/textures/lib/framebuffer-texture/framebuffer-texture.mjs +25 -0
- package/esm2020/textures/lib/video-texture/video-texture.mjs +25 -0
- package/fesm2015/angular-three-attributes.mjs +462 -0
- package/fesm2015/angular-three-attributes.mjs.map +1 -0
- package/fesm2015/angular-three-audios.mjs +201 -0
- package/fesm2015/angular-three-audios.mjs.map +1 -0
- package/fesm2015/angular-three-cameras.mjs +304 -0
- package/fesm2015/angular-three-cameras.mjs.map +1 -0
- package/fesm2015/angular-three-geometries.mjs +475 -0
- package/fesm2015/angular-three-geometries.mjs.map +1 -0
- package/fesm2015/angular-three-helpers.mjs +365 -0
- package/fesm2015/angular-three-helpers.mjs.map +1 -0
- package/fesm2015/angular-three-lights.mjs +511 -0
- package/fesm2015/angular-three-lights.mjs.map +1 -0
- package/fesm2015/angular-three-materials.mjs +1402 -0
- package/fesm2015/angular-three-materials.mjs.map +1 -0
- package/fesm2015/angular-three-objects.mjs +630 -0
- package/fesm2015/angular-three-objects.mjs.map +1 -0
- package/fesm2015/angular-three-primitives.mjs +95 -0
- package/fesm2015/angular-three-primitives.mjs.map +1 -0
- package/fesm2015/angular-three-stats.mjs +62 -0
- package/fesm2015/angular-three-stats.mjs.map +1 -0
- package/fesm2015/angular-three-textures.mjs +215 -0
- package/fesm2015/angular-three-textures.mjs.map +1 -0
- package/fesm2015/angular-three.mjs +2448 -10
- package/fesm2015/angular-three.mjs.map +1 -1
- package/fesm2020/angular-three-attributes.mjs +462 -0
- package/fesm2020/angular-three-attributes.mjs.map +1 -0
- package/fesm2020/angular-three-audios.mjs +201 -0
- package/fesm2020/angular-three-audios.mjs.map +1 -0
- package/fesm2020/angular-three-cameras.mjs +304 -0
- package/fesm2020/angular-three-cameras.mjs.map +1 -0
- package/fesm2020/angular-three-geometries.mjs +475 -0
- package/fesm2020/angular-three-geometries.mjs.map +1 -0
- package/fesm2020/angular-three-helpers.mjs +365 -0
- package/fesm2020/angular-three-helpers.mjs.map +1 -0
- package/fesm2020/angular-three-lights.mjs +511 -0
- package/fesm2020/angular-three-lights.mjs.map +1 -0
- package/fesm2020/angular-three-materials.mjs +1402 -0
- package/fesm2020/angular-three-materials.mjs.map +1 -0
- package/fesm2020/angular-three-objects.mjs +630 -0
- package/fesm2020/angular-three-objects.mjs.map +1 -0
- package/fesm2020/angular-three-primitives.mjs +95 -0
- package/fesm2020/angular-three-primitives.mjs.map +1 -0
- package/fesm2020/angular-three-stats.mjs +62 -0
- package/fesm2020/angular-three-stats.mjs.map +1 -0
- package/fesm2020/angular-three-textures.mjs +215 -0
- package/fesm2020/angular-three-textures.mjs.map +1 -0
- package/fesm2020/angular-three.mjs +2462 -10
- package/fesm2020/angular-three.mjs.map +1 -1
- package/geometries/README.md +3 -0
- package/geometries/index.d.ts +23 -0
- package/geometries/lib/box-geometry/box-geometry.d.ts +8 -0
- package/geometries/lib/buffer-geometry/buffer-geometry.d.ts +8 -0
- package/geometries/lib/capsule-geometry/capsule-geometry.d.ts +8 -0
- package/geometries/lib/circle-geometry/circle-geometry.d.ts +8 -0
- package/geometries/lib/cone-geometry/cone-geometry.d.ts +8 -0
- package/geometries/lib/cylinder-geometry/cylinder-geometry.d.ts +8 -0
- package/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.d.ts +8 -0
- package/geometries/lib/edges-geometry/edges-geometry.d.ts +8 -0
- package/geometries/lib/extrude-geometry/extrude-geometry.d.ts +8 -0
- package/geometries/lib/icosahedron-geometry/icosahedron-geometry.d.ts +8 -0
- package/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.d.ts +8 -0
- package/geometries/lib/lathe-geometry/lathe-geometry.d.ts +8 -0
- package/geometries/lib/octahedron-geometry/octahedron-geometry.d.ts +8 -0
- package/geometries/lib/plane-geometry/plane-geometry.d.ts +8 -0
- package/geometries/lib/polyhedron-geometry/polyhedron-geometry.d.ts +8 -0
- package/geometries/lib/ring-geometry/ring-geometry.d.ts +8 -0
- package/geometries/lib/shape-geometry/shape-geometry.d.ts +8 -0
- package/geometries/lib/sphere-geometry/sphere-geometry.d.ts +8 -0
- package/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.d.ts +8 -0
- package/geometries/lib/torus-geometry/torus-geometry.d.ts +8 -0
- package/geometries/lib/torus-knot-geometry/torus-knot-geometry.d.ts +8 -0
- package/geometries/lib/tube-geometry/tube-geometry.d.ts +8 -0
- package/geometries/lib/wireframe-geometry/wireframe-geometry.d.ts +8 -0
- package/helpers/README.md +3 -0
- package/helpers/index.d.ts +13 -0
- package/helpers/lib/arrow-helper/arrow-helper.d.ts +8 -0
- package/helpers/lib/axes-helper/axes-helper.d.ts +8 -0
- package/helpers/lib/box-helper/box-helper.d.ts +8 -0
- package/helpers/lib/box3-helper/box3-helper.d.ts +8 -0
- package/helpers/lib/camera-helper/camera-helper.d.ts +8 -0
- package/helpers/lib/directional-light-helper/directional-light-helper.d.ts +8 -0
- package/helpers/lib/grid-helper/grid-helper.d.ts +8 -0
- package/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.d.ts +8 -0
- package/helpers/lib/plane-helper/plane-helper.d.ts +8 -0
- package/helpers/lib/point-light-helper/point-light-helper.d.ts +8 -0
- package/helpers/lib/polar-grid-helper/polar-grid-helper.d.ts +8 -0
- package/helpers/lib/skeleton-helper/skeleton-helper.d.ts +8 -0
- package/helpers/lib/spot-light-helper/spot-light-helper.d.ts +8 -0
- package/index.d.ts +38 -1
- package/lib/canvas.d.ts +46 -0
- package/lib/di/resize.d.ts +12 -0
- package/lib/di/window.d.ts +1 -0
- package/lib/directives/args.d.ts +19 -0
- package/lib/directives/cursor.d.ts +7 -0
- package/lib/directives/repeat.d.ts +7 -0
- package/lib/events.d.ts +2 -0
- package/lib/instance.d.ts +81 -0
- package/lib/pipes/math.d.ts +7 -0
- package/lib/pipes/pi.d.ts +7 -0
- package/lib/pipes/radian.d.ts +7 -0
- package/lib/pipes/side.d.ts +8 -0
- package/lib/ref.d.ts +5 -0
- package/lib/services/loader.d.ts +11 -0
- package/lib/services/resize.d.ts +19 -0
- package/lib/stores/component-store.d.ts +69 -0
- package/lib/stores/store.d.ts +32 -0
- package/lib/types.d.ts +358 -0
- package/lib/utils/apply-props.d.ts +6 -0
- package/lib/utils/build-graph.d.ts +3 -0
- package/lib/utils/camera.d.ts +4 -0
- package/lib/utils/capitalize.d.ts +1 -0
- package/lib/utils/check-update.d.ts +2 -0
- package/lib/utils/events.d.ts +6 -0
- package/lib/utils/get-instance-local-state.d.ts +2 -0
- package/lib/utils/inject.d.ts +9 -0
- package/lib/utils/instance.d.ts +4 -0
- package/lib/utils/is.d.ts +21 -0
- package/lib/utils/loop.d.ts +32 -0
- package/lib/utils/make.d.ts +4 -0
- package/lib/utils/mutate.d.ts +2 -0
- package/lib/utils/proxy.d.ts +7 -0
- package/lib/utils/renderer.d.ts +3 -0
- package/lights/README.md +3 -0
- package/lights/index.d.ts +9 -0
- package/lights/lib/ambient-light/ambient-light.d.ts +39 -0
- package/lights/lib/ambient-light-probe/ambient-light-probe.d.ts +40 -0
- package/lights/lib/directional-light/directional-light.d.ts +40 -0
- package/lights/lib/hemisphere-light/hemisphere-light.d.ts +41 -0
- package/lights/lib/hemisphere-light-probe/hemisphere-light-probe.d.ts +42 -0
- package/lights/lib/light-probe/light-probe.d.ts +40 -0
- package/lights/lib/point-light/point-light.d.ts +42 -0
- package/lights/lib/rect-area-light/rect-area-light.d.ts +42 -0
- package/lights/lib/spot-light/spot-light.d.ts +45 -0
- package/materials/README.md +3 -0
- package/materials/index.d.ts +17 -0
- package/materials/lib/line-basic-material/line-basic-material.d.ts +55 -0
- package/materials/lib/line-dashed-material/line-dashed-material.d.ts +58 -0
- package/materials/lib/mesh-basic-material/mesh-basic-material.d.ts +67 -0
- package/materials/lib/mesh-depth-material/mesh-depth-material.d.ts +58 -0
- package/materials/lib/mesh-distance-material/mesh-distance-material.d.ts +58 -0
- package/materials/lib/mesh-lambert-material/mesh-lambert-material.d.ts +78 -0
- package/materials/lib/mesh-matcap-material/mesh-matcap-material.d.ts +64 -0
- package/materials/lib/mesh-normal-material/mesh-normal-material.d.ts +61 -0
- package/materials/lib/mesh-phong-material/mesh-phong-material.d.ts +81 -0
- package/materials/lib/mesh-physical-material/mesh-physical-material.d.ts +97 -0
- package/materials/lib/mesh-standard-material/mesh-standard-material.d.ts +78 -0
- package/materials/lib/mesh-toon-material/mesh-toon-material.d.ts +74 -0
- package/materials/lib/points-material/points-material.d.ts +56 -0
- package/materials/lib/raw-shader-material/raw-shader-material.d.ts +68 -0
- package/materials/lib/shader-material/shader-material.d.ts +68 -0
- package/materials/lib/shadow-material/shadow-material.d.ts +52 -0
- package/materials/lib/sprite-material/sprite-material.d.ts +56 -0
- package/objects/README.md +3 -0
- package/objects/index.d.ts +12 -0
- package/objects/lib/bone/bone.d.ts +35 -0
- package/objects/lib/group/group.d.ts +35 -0
- package/objects/lib/instanced-mesh/instanced-mesh.d.ts +44 -0
- package/objects/lib/line/line.d.ts +41 -0
- package/objects/lib/line-loop/line-loop.d.ts +41 -0
- package/objects/lib/line-segments/line-segments.d.ts +41 -0
- package/objects/lib/lod/lod.d.ts +40 -0
- package/objects/lib/mesh/mesh.d.ts +41 -0
- package/objects/lib/points/points.d.ts +41 -0
- package/objects/lib/skeleton/skeleton.d.ts +16 -0
- package/objects/lib/skinned-mesh/skinned-mesh.d.ts +45 -0
- package/objects/lib/sprite/sprite.d.ts +38 -0
- package/package.json +93 -2
- package/primitives/README.md +3 -0
- package/primitives/index.d.ts +2 -0
- package/primitives/lib/object-primitive/object-primitive.d.ts +35 -0
- package/primitives/lib/primitive/primitive.d.ts +10 -0
- package/schematics/src/generators/init/generator.d.ts +1 -1
- package/schematics/src/generators/init/generator.js +4 -4
- package/schematics/src/generators/init/generator.js.map +1 -1
- package/stats/README.md +3 -0
- package/stats/index.d.ts +1 -0
- package/stats/lib/stats/stats.d.ts +16 -0
- package/textures/README.md +3 -0
- package/textures/index.d.ts +10 -0
- package/textures/lib/canvas-texture/canvas-texture.d.ts +8 -0
- package/textures/lib/compressed-array-texture/compressed-array-texture.d.ts +8 -0
- package/textures/lib/compressed-texture/compressed-texture.d.ts +8 -0
- package/textures/lib/cube-texture/cube-texture.d.ts +8 -0
- package/textures/lib/data-array-texture/data-array-texture.d.ts +8 -0
- package/textures/lib/data-texture/data-texture.d.ts +8 -0
- package/textures/lib/data3-dtexture/data3-dtexture.d.ts +8 -0
- package/textures/lib/depth-texture/depth-texture.d.ts +8 -0
- package/textures/lib/framebuffer-texture/framebuffer-texture.d.ts +8 -0
- package/textures/lib/video-texture/video-texture.d.ts +8 -0
- package/esm2020/lib/angular-three.module.mjs +0 -15
- package/lib/angular-three.module.d.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three.mjs","sources":["../../../../packages/angular-three/src/lib/angular-three.module.ts","../../../../packages/angular-three/src/angular-three.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class AngularThreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAMa,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFjB,YAAY,CAAA,EAAA,CAAA,CAAA;AAEb,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFjB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAEb,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AAC1B,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"angular-three.mjs","sources":["../../../../packages/angular-three/src/lib/utils/get-instance-local-state.ts","../../../../packages/angular-three/src/lib/utils/make.ts","../../../../packages/angular-three/src/lib/utils/events.ts","../../../../packages/angular-three/src/lib/events.ts","../../../../packages/angular-three/src/lib/ref.ts","../../../../packages/angular-three/src/lib/utils/is.ts","../../../../packages/angular-three/src/lib/stores/component-store.ts","../../../../packages/angular-three/src/lib/utils/inject.ts","../../../../packages/angular-three/src/lib/di/window.ts","../../../../packages/angular-three/src/lib/utils/check-update.ts","../../../../packages/angular-three/src/lib/utils/instance.ts","../../../../packages/angular-three/src/lib/utils/apply-props.ts","../../../../packages/angular-three/src/lib/utils/camera.ts","../../../../packages/angular-three/src/lib/utils/loop.ts","../../../../packages/angular-three/src/lib/utils/renderer.ts","../../../../packages/angular-three/src/lib/stores/store.ts","../../../../packages/angular-three/src/lib/utils/mutate.ts","../../../../packages/angular-three/src/lib/instance.ts","../../../../packages/angular-three/src/lib/di/resize.ts","../../../../packages/angular-three/src/lib/services/resize.ts","../../../../packages/angular-three/src/lib/utils/build-graph.ts","../../../../packages/angular-three/src/lib/services/loader.ts","../../../../packages/angular-three/src/lib/canvas.ts","../../../../packages/angular-three/src/lib/directives/args.ts","../../../../packages/angular-three/src/lib/directives/cursor.ts","../../../../packages/angular-three/src/lib/directives/repeat.ts","../../../../packages/angular-three/src/lib/pipes/pi.ts","../../../../packages/angular-three/src/lib/pipes/math.ts","../../../../packages/angular-three/src/lib/pipes/radian.ts","../../../../packages/angular-three/src/lib/pipes/side.ts","../../../../packages/angular-three/src/lib/utils/capitalize.ts","../../../../packages/angular-three/src/lib/utils/proxy.ts","../../../../packages/angular-three/src/index.ts","../../../../packages/angular-three/src/angular-three.ts"],"sourcesContent":["import type { NgtAnyRecord, NgtInstanceLocalState } from '../types';\n\nexport function getInstanceLocalState<TInstance extends object = NgtAnyRecord>(\n obj: TInstance | undefined\n): NgtInstanceLocalState | undefined {\n if (!obj) return undefined;\n return (obj as NgtAnyRecord)['__ngt__'] as NgtInstanceLocalState;\n}\n","import * as THREE from 'three';\nimport type { NgtAnyConstructor, NgtDpr, NgtIntersection } from '../types';\n\nconst idCache: { [id: string]: boolean | undefined } = {};\nexport function makeId(event?: NgtIntersection): string {\n if (event) {\n return (event.eventObject || event.object).uuid + '/' + event.index + event.instanceId;\n }\n\n const newId = THREE.MathUtils.generateUUID();\n // ensure not already used\n if (!idCache[newId]) {\n idCache[newId] = true;\n return newId;\n }\n return makeId();\n}\n\nexport function makeDpr(dpr: NgtDpr, window?: Window) {\n const target = window?.devicePixelRatio || 1;\n return Array.isArray(dpr) ? Math.min(Math.max(dpr[0], target), dpr[1]) : dpr;\n}\n\nexport function make<TType extends NgtAnyConstructor>(\n type: TType,\n input?:\n | InstanceType<TType>\n | Parameters<typeof type.prototype['set']>\n | Parameters<typeof type.prototype['setScalar']>[0]\n | ConstructorParameters<TType>\n): InstanceType<TType> {\n if (!input) return new type();\n\n if (input instanceof type) {\n return input as InstanceType<TType>;\n }\n\n if (!Array.isArray(input)) {\n input = typeof input === 'number' ? [input, input, input, input] : [input];\n }\n\n return new type(...(input as unknown[]));\n}\n","import * as THREE from 'three';\nimport type {\n NgtDomEvent,\n NgtEventHandlers,\n NgtIntersection,\n NgtPointerCaptureTarget,\n NgtStateFactory,\n NgtThreeEvent,\n} from '../types';\nimport { getInstanceLocalState } from './get-instance-local-state';\nimport { makeId } from './make';\n\n/**\n * Release pointer captures.\n * This is called by releasePointerCapture in the API, and when an object is removed.\n */\nfunction releaseInternalPointerCapture(\n capturedMap: Map<number, Map<THREE.Object3D, NgtPointerCaptureTarget>>,\n obj: THREE.Object3D,\n captures: Map<THREE.Object3D, NgtPointerCaptureTarget>,\n pointerId: number\n): void {\n const captureData: NgtPointerCaptureTarget | undefined = captures.get(obj);\n if (captureData) {\n captures.delete(obj);\n // If this was the last capturing object for this pointer\n if (captures.size === 0) {\n capturedMap.delete(pointerId);\n captureData.target.releasePointerCapture(pointerId);\n }\n }\n}\n\nexport function removeInteractivity(stateFactory: NgtStateFactory, object: THREE.Object3D) {\n const { internal } = stateFactory();\n // Removes every trace of an object from the data store\n internal.interaction = internal.interaction.filter((o) => o !== object);\n internal.initialHits = internal.initialHits.filter((o) => o !== object);\n internal.hovered.forEach((value, key) => {\n if (value.eventObject === object || value.object === object) {\n // Clear out intersects, they are outdated by now\n internal.hovered.delete(key);\n }\n });\n internal.capturedMap.forEach((captures, pointerId) => {\n releaseInternalPointerCapture(internal.capturedMap, object, captures, pointerId);\n });\n}\n\nexport function createEvents(stateFactory: NgtStateFactory) {\n /** Calculates delta */\n function calculateDistance(event: NgtDomEvent) {\n const { internal } = stateFactory();\n const dx = event.offsetX - internal.initialClick[0];\n const dy = event.offsetY - internal.initialClick[1];\n return Math.round(Math.sqrt(dx * dx + dy * dy));\n }\n\n /** Returns true if an instance has a valid pointer-event registered, this excludes scroll, clicks etc */\n function filterPointerEvents(objects: THREE.Object3D[]) {\n return objects.filter((obj) =>\n ['move', 'over', 'enter', 'out', 'leave'].some((name) => {\n const eventName = ('pointer' + name) as keyof NgtEventHandlers;\n return getInstanceLocalState(obj)?.handlers[eventName];\n })\n );\n }\n\n function intersect(event: NgtDomEvent, filter?: (objects: THREE.Object3D[]) => THREE.Object3D[]) {\n const state = stateFactory();\n const duplicates = new Set<string>();\n const intersections: NgtIntersection[] = [];\n // Allow callers to eliminate event objects\n const eventsObjects = filter ? filter(state.internal.interaction) : state.internal.interaction;\n // Reset all raycaster cameras to undefined\n for (let i = 0; i < eventsObjects.length; i++) {\n const instanceState = getInstanceLocalState(eventsObjects[i])?.stateFactory();\n if (instanceState) {\n instanceState.raycaster.camera = undefined!;\n }\n }\n\n if (!state.previousStateFactory) {\n // Make sure root-level pointer and ray are set up\n state.events.compute?.(event, () => state);\n }\n\n function handleRaycast(obj: THREE.Object3D<THREE.Event>) {\n const state = getInstanceLocalState(obj)?.stateFactory();\n // Skip event handling when noEvents is set, or when the raycasters camera is null\n if (!state || !state.events.enabled || state.raycaster.camera === null) return [];\n\n // When the camera is undefined we have to call the event layers update function\n if (state.raycaster.camera === undefined) {\n state.events.compute?.(event, () => state, state.previousStateFactory);\n // If the camera is still undefined we have to skip this layer entirely\n if (state.raycaster.camera === undefined) state.raycaster.camera = null!;\n }\n\n // Intersect object by object\n return state.raycaster.camera ? state.raycaster.intersectObject(obj, true) : [];\n }\n\n // Collect events\n let hits: THREE.Intersection<THREE.Object3D<THREE.Event>>[] = eventsObjects\n // Intersect objects\n .flatMap(handleRaycast)\n // Sort by event priority and distance\n .sort((a, b) => {\n const aState = getInstanceLocalState(a.object)?.stateFactory();\n const bState = getInstanceLocalState(b.object)?.stateFactory();\n if (!aState || !bState) return 0;\n return bState.events.priority - aState.events.priority || a.distance - b.distance;\n })\n // Filter out duplicates\n .filter((item) => {\n const id = makeId(item as NgtIntersection);\n if (duplicates.has(id)) return false;\n duplicates.add(id);\n return true;\n });\n\n // https://github.com/mrdoob/three.js/issues/16031\n // Allow custom userland intersect sort order, this likely only makes sense on the root filter\n if (state.events.filter) hits = state.events.filter(hits, () => state);\n\n // Bubble up the events, find the event source (eventObject)\n for (const hit of hits) {\n let eventObject: THREE.Object3D | null = hit.object;\n // Bubble event up\n while (eventObject) {\n if (getInstanceLocalState(eventObject)?.eventCount) intersections.push({ ...hit, eventObject });\n eventObject = eventObject.parent;\n }\n }\n\n // If the interaction is captured, make all capturing targets part of the intersect.\n if ('pointerId' in event && state.internal.capturedMap.has(event.pointerId)) {\n for (const captureData of state.internal.capturedMap.get(event.pointerId)!.values()) {\n intersections.push(captureData.intersection);\n }\n }\n return intersections;\n }\n\n /** Handles intersections by forwarding them to handlers */\n function handleIntersects(\n intersections: NgtIntersection[],\n event: NgtDomEvent,\n delta: number,\n callback: (event: NgtThreeEvent<NgtDomEvent>) => void\n ) {\n const rootState = stateFactory();\n // If anything has been found, forward it to the event listeners\n if (intersections.length) {\n const localState = { stopped: false };\n for (const hit of intersections) {\n const state = getInstanceLocalState(hit.object)?.stateFactory() || rootState;\n const { raycaster, pointer, camera, internal } = state;\n const unprojectedPoint = new THREE.Vector3(pointer.x, pointer.y, 0).unproject(camera);\n const hasPointerCapture = (id: number) => internal.capturedMap.get(id)?.has(hit.eventObject) ?? false;\n\n const setPointerCapture = (id: number) => {\n const captureData = {\n intersection: hit,\n target: event.target as Element,\n };\n if (internal.capturedMap.has(id)) {\n // if the pointerId was previously captured, we add the hit to the\n // event capturedMap.\n internal.capturedMap.get(id)!.set(hit.eventObject, captureData);\n } else {\n // if the pointerId was not previously captured, we create a map\n // containing the hitObject, and the hit. hitObject is used for\n // faster access.\n internal.capturedMap.set(id, new Map([[hit.eventObject, captureData]]));\n }\n // Call the original event now\n (event.target as Element).setPointerCapture(id);\n };\n\n const releasePointerCapture = (id: number) => {\n const captures = internal.capturedMap.get(id);\n if (captures) {\n releaseInternalPointerCapture(internal.capturedMap, hit.eventObject, captures, id);\n }\n };\n\n // Add native event props\n const extractEventProps: any = {};\n // This iterates over the event's properties including the inherited ones. Native PointerEvents have most of their props as getters which are inherited, but polyfilled PointerEvents have them all as their own properties (i.e. not inherited). We can't use Object.keys() or Object.entries() as they only return \"own\" properties; nor Object.getPrototypeOf(event) as that *doesn't* return \"own\" properties, only inherited ones.\n for (const prop in event) {\n const property = event[prop as keyof NgtDomEvent];\n // Only copy over atomics, leave functions alone as these should be\n // called as event.nativeEvent.fn()\n if (typeof property !== 'function') extractEventProps[prop] = property;\n }\n\n const raycastEvent: NgtThreeEvent<NgtDomEvent> = {\n ...hit,\n ...extractEventProps,\n pointer,\n intersections,\n stopped: localState.stopped,\n delta,\n unprojectedPoint,\n ray: raycaster.ray,\n camera: camera,\n // Hijack stopPropagation, which just sets a flag\n stopPropagation() {\n // https://github.com/pmndrs/react-three-fiber/issues/596\n // Events are not allowed to stop propagation if the pointer has been captured\n const capturesForPointer = 'pointerId' in event && internal.capturedMap.get(event.pointerId);\n\n // We only authorize stopPropagation...\n if (\n // ...if this pointer hasn't been captured\n !capturesForPointer ||\n // ... or if the hit object is capturing the pointer\n capturesForPointer.has(hit.eventObject)\n ) {\n raycastEvent.stopped = localState.stopped = true;\n // Propagation is stopped, remove all other hover records\n // An event handler is only allowed to flush other handlers if it is hovered itself\n if (\n internal.hovered.size &&\n Array.from(internal.hovered.values()).find((i) => i.eventObject === hit.eventObject)\n ) {\n // Objects cannot flush out higher up objects that have already caught the event\n const higher = intersections.slice(0, intersections.indexOf(hit));\n cancelPointer([...higher, hit]);\n }\n }\n },\n // there should be a distinction between target and currentTarget\n target: {\n hasPointerCapture,\n setPointerCapture,\n releasePointerCapture,\n },\n currentTarget: {\n hasPointerCapture,\n setPointerCapture,\n releasePointerCapture,\n },\n nativeEvent: event,\n };\n\n // Call subscribers\n callback(raycastEvent);\n // Event bubbling may be interrupted by stopPropagation\n if (localState.stopped === true) break;\n }\n }\n return intersections;\n }\n\n function cancelPointer(intersections: NgtIntersection[]) {\n const { internal } = stateFactory();\n for (const hoveredObj of internal.hovered.values()) {\n // When no objects were hit or the hovered object wasn't found underneath the cursor\n // we call onPointerOut and delete the object from the hovered-elements map\n if (\n !intersections.length ||\n !intersections.find(\n (hit) =>\n hit.object === hoveredObj.object &&\n hit.index === hoveredObj.index &&\n hit.instanceId === hoveredObj.instanceId\n )\n ) {\n const eventObject = hoveredObj.eventObject;\n const instance = getInstanceLocalState(eventObject);\n const handlers = instance?.handlers;\n internal.hovered.delete(makeId(hoveredObj));\n if (instance?.eventCount) {\n // Clear out intersects, they are outdated by now\n const data = { ...hoveredObj, intersections };\n handlers?.pointerout?.(data as NgtThreeEvent<PointerEvent>);\n handlers?.pointerleave?.(data as NgtThreeEvent<PointerEvent>);\n }\n }\n }\n }\n\n function pointerMissed(event: MouseEvent, objects: THREE.Object3D[]) {\n for (let i = 0; i < objects.length; i++) {\n const instance = getInstanceLocalState(objects[i]);\n instance?.handlers.pointermissed?.(event);\n }\n }\n\n function handlePointer(name: string) {\n // Deal with cancelation\n switch (name) {\n case 'pointerleave':\n case 'pointercancel':\n return () => cancelPointer([]);\n case 'lostpointercapture':\n return (event: NgtDomEvent) => {\n const { internal } = stateFactory();\n if ('pointerId' in event && !internal.capturedMap.has(event.pointerId)) {\n // If the object event interface had onLostPointerCapture, we'd call it here on every\n // object that's getting removed.\n internal.capturedMap.delete(event.pointerId);\n cancelPointer([]);\n }\n };\n }\n\n // Any other pointer goes here ...\n return function handleEvent(event: NgtDomEvent) {\n const { onPointerMissed, internal } = stateFactory();\n\n // prepareRay(event)\n internal.lastEvent = event;\n\n // Get fresh intersects\n const isPointerMove = name === 'pointermove';\n const isClickEvent = name === 'click' || name === 'contextmenu' || name === 'dblclick';\n const filter = isPointerMove ? filterPointerEvents : undefined;\n // const hits = patchIntersects(intersect(filter), event)\n const hits = intersect(event, filter);\n const delta = isClickEvent ? calculateDistance(event) : 0;\n\n // Save initial coordinates on pointer-down\n if (name === 'pointerdown') {\n internal.initialClick = [event.offsetX, event.offsetY];\n internal.initialHits = hits.map((hit) => hit.eventObject);\n }\n\n // If a click yields no results, pass it back to the user as a miss\n // Missed events have to come first in order to establish user-land side-effect clean up\n if (isClickEvent && !hits.length) {\n if (delta <= 2) {\n pointerMissed(event, internal.interaction);\n if (onPointerMissed) onPointerMissed(event);\n }\n }\n // Take care of unhover\n if (isPointerMove) cancelPointer(hits);\n\n function onIntersect(data: NgtThreeEvent<NgtDomEvent>) {\n const eventObject = data.eventObject;\n const instance = getInstanceLocalState(eventObject);\n const handlers = instance?.handlers;\n // Check presence of handlers\n if (!instance?.eventCount) return;\n\n if (isPointerMove) {\n // Move event ...\n if (\n handlers?.pointerover ||\n handlers?.pointerenter ||\n handlers?.pointerout ||\n handlers?.pointerleave\n ) {\n // When enter or out is present take care of hover-state\n const id = makeId(data);\n const hoveredItem = internal.hovered.get(id);\n if (!hoveredItem) {\n // If the object wasn't previously hovered, book it and call its handler\n internal.hovered.set(id, data);\n handlers.pointerover?.(data as NgtThreeEvent<PointerEvent>);\n handlers.pointerenter?.(data as NgtThreeEvent<PointerEvent>);\n } else if (hoveredItem.stopped) {\n // If the object was previously hovered and stopped, we shouldn't allow other items to proceed\n data.stopPropagation();\n }\n }\n // Call mouse move\n handlers?.pointermove?.(data as NgtThreeEvent<PointerEvent>);\n } else {\n // All other events ...\n const handler = handlers![name as keyof NgtEventHandlers] as (\n event: NgtThreeEvent<PointerEvent>\n ) => void;\n if (handler) {\n // Forward all events back to their respective handlers with the exception of click events,\n // which must use the initial target\n if (!isClickEvent || internal.initialHits.includes(eventObject)) {\n // Missed events have to come first\n pointerMissed(\n event,\n internal.interaction.filter((object) => !internal.initialHits.includes(object))\n );\n // Now call the handler\n handler(data as NgtThreeEvent<PointerEvent>);\n }\n } else {\n // Trigger onPointerMissed on all elements that have pointer over/out handlers, but not click and weren't hit\n if (isClickEvent && internal.initialHits.includes(eventObject)) {\n pointerMissed(\n event,\n internal.interaction.filter((object) => !internal.initialHits.includes(object))\n );\n }\n }\n }\n }\n\n handleIntersects(hits, event, delta, onIntersect);\n };\n }\n\n return { handlePointer };\n}\n","import type { NgtAnyRecord, NgtDomEvent, NgtEventManager, NgtEvents, NgtStateFactory } from './types';\nimport { createEvents } from './utils/events';\n\nconst DOM_EVENTS = {\n click: false,\n contextmenu: false,\n dblclick: false,\n wheel: false, // passive wheel errors with OrbitControls\n pointerdown: true,\n pointerup: true,\n pointerleave: true,\n pointermove: true,\n pointercancel: true,\n lostpointercapture: true,\n} as const;\n\nexport function createPointerEvents(stateFactory: NgtStateFactory): NgtEventManager<HTMLElement> {\n const { handlePointer } = createEvents(stateFactory);\n\n return {\n priority: 1,\n enabled: true,\n compute: (event: NgtDomEvent, rootFactory: NgtStateFactory) => {\n const state = rootFactory();\n // https://github.com/pmndrs/react-three-fiber/pull/782\n // Events trigger outside of canvas when moved, use offsetX/Y by default and allow overrides\n state.pointer.set((event.offsetX / state.size.width) * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);\n state.raycaster.setFromCamera(state.pointer, state.camera);\n },\n connected: undefined,\n handlers: Object.keys(DOM_EVENTS).reduce((handlers: NgtAnyRecord, supportedEventName) => {\n handlers[supportedEventName] = handlePointer(supportedEventName);\n return handlers;\n }, {}) as NgtEvents,\n connect: (target: HTMLElement) => {\n const state = stateFactory();\n state.events.disconnect?.();\n\n state.setEvents({ connected: target });\n\n Object.entries(state.events.handlers ?? {}).forEach(\n ([eventName, eventHandler]: [string, EventListener]) => {\n const passive = DOM_EVENTS[eventName as keyof typeof DOM_EVENTS];\n target.addEventListener(eventName, eventHandler, { passive });\n }\n );\n },\n disconnect: () => {\n const { events, setEvents } = stateFactory();\n if (events.connected) {\n Object.entries(events.handlers ?? {}).forEach(([eventName, eventHandler]: [string, EventListener]) => {\n if (events.connected instanceof HTMLElement) {\n events.connected.removeEventListener(eventName, eventHandler);\n }\n });\n\n setEvents({ connected: undefined });\n }\n },\n };\n}\n","import { BehaviorSubject } from 'rxjs';\n\nexport class NgtRef<T = any> extends BehaviorSubject<T> {\n constructor(value?: T | null) {\n super(value ? value : null!);\n }\n\n set(valueOrFactory: T | ((previous: T) => T)) {\n if (typeof valueOrFactory === 'function') {\n this.next((valueOrFactory as (previous: T) => T)(this.value));\n } else {\n this.next(valueOrFactory);\n }\n }\n}\n","import * as THREE from 'three';\nimport { NgtRef } from '../ref';\nimport type { NgtAnyRecord, NgtEquConfig, NgtInstanceNode } from '../types';\n\nexport const is = {\n obj: (a: unknown): a is object => a === Object(a) && !Array.isArray(a) && typeof a !== 'function',\n material: (a: unknown): a is THREE.Material => !!a && (a as THREE.Material).isMaterial,\n geometry: (a: unknown): a is THREE.BufferGeometry => !!a && (a as THREE.BufferGeometry).isBufferGeometry,\n mesh: (a: unknown): a is THREE.Mesh => !!a && (a as THREE.Mesh).isMesh,\n color: (a: unknown): a is THREE.Color => !!a && (a as THREE.Color).isColor,\n orthographic: (a: unknown): a is THREE.OrthographicCamera =>\n !!a && (a as THREE.OrthographicCamera).isOrthographicCamera,\n perspective: (a: unknown): a is THREE.PerspectiveCamera =>\n !!a && (a as THREE.PerspectiveCamera).isPerspectiveCamera,\n camera: (a: unknown): a is THREE.Camera => !!a && (a as THREE.Camera).isCamera,\n glRenderer: (a: unknown): a is THREE.WebGLRenderer => !!a && a instanceof THREE.WebGLRenderer,\n scene: (a: unknown): a is THREE.Scene => !!a && (a as THREE.Scene).isScene,\n object3d: (a: unknown): a is THREE.Object3D => !!a && (a as THREE.Object3D).isObject3D,\n instance: (a: unknown): a is NgtInstanceNode => !!a && !!(a as NgtAnyRecord)['__ngt__'],\n ref: (a: unknown): a is NgtRef => !!a && a instanceof NgtRef,\n supportColorManagement: (): boolean => 'ColorManagement' in THREE,\n canvas: (a: unknown): a is HTMLCanvasElement => a instanceof HTMLCanvasElement,\n equ(a: any, b: any, { arrays = 'shallow', objects = 'reference', strict = true }: NgtEquConfig = {}) {\n // Wrong type or one of the two undefined, doesn't match\n if (typeof a !== typeof b || !!a !== !!b) return false;\n // Atomic, just compare a against b\n if (typeof a === 'string' || typeof a === 'number') return a === b;\n const isObj = is.obj(a);\n if (isObj && objects === 'reference') return a === b;\n const isArr = Array.isArray(a);\n if (isArr && arrays === 'reference') return a === b;\n // Array or Object, shallow compare first to see if it's a match\n if ((isArr || isObj) && a === b) return true;\n // Last resort, go through keys\n let i;\n for (i in a) if (!(i in b)) return false;\n for (i in strict ? b : a) if (a[i] !== b[i]) return false;\n if (i === void 0) {\n if (isArr && a.length === 0 && b.length === 0) return true;\n if (isObj && Object.keys(a).length === 0 && Object.keys(b).length === 0) return true;\n if (a !== b) return false;\n }\n return true;\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport {\n combineLatest,\n filter,\n isObservable,\n MonoTypeOperatorFunction,\n noop,\n Observable,\n ObservableInput,\n tap,\n} from 'rxjs';\nimport type { NgtAnyRecord } from '../types';\nimport { is } from '../utils/is';\n\n/**\n * a default Selector that consumers can quickly use for their selectors projector\n */\nexport const defaultProjector = () => ({});\n\n/**\n * A custom operator that skips the first undefined value but allows subsequent undefined values.\n * NgRxComponentStore#select always emits the first value regardless of undefined or not after initialize\n */\nexport const skipFirstUndefined = <T>(): MonoTypeOperatorFunction<T> =>\n filter<T>((value, index) => index > 0 || value !== undefined);\n\ntype EffectFn<TValue> = (\n value: TValue\n) => void | undefined | ((cleanUpParams: { prev: TValue | undefined; complete: boolean; error: boolean }) => void);\n\n/**\n * An extended `tap` operator that accepts an `effectFn` which:\n * - runs on every `next` notification from `source$`\n * - can optionally return a `cleanUp` function that\n * invokes from the 2nd `next` notification onward and on `unsubscribe` (destroyed)\n *\n *\n * @example\n * ```typescript\n * source$.pipe(\n * tapEffect((sourceValue) = {\n * const cb = () => {\n * doStuff(sourceValue);\n * };\n * addListener('event', cb);\n *\n * return () => {\n * removeListener('event', cb);\n * }\n * })\n * )\n * ```\n */\nexport function tapEffect<TValue>(effectFn: EffectFn<TValue>): MonoTypeOperatorFunction<TValue> {\n let cleanupFn: (cleanUpParams: { prev: TValue | undefined; complete: boolean; error: boolean }) => void = noop;\n let firstRun = false;\n let prev: TValue | undefined = undefined;\n\n const teardown = (error: boolean) => {\n return () => {\n if (cleanupFn) {\n cleanupFn({ prev, complete: true, error });\n }\n };\n };\n\n return tap<TValue>({\n next: (value: TValue) => {\n if (cleanupFn && firstRun) {\n cleanupFn({ prev, complete: false, error: false });\n }\n\n const cleanUpOrVoid = effectFn(value);\n if (cleanUpOrVoid) {\n cleanupFn = cleanUpOrVoid;\n }\n\n prev = value;\n\n if (!firstRun) {\n firstRun = true;\n }\n },\n complete: teardown(false),\n unsubscribe: teardown(false),\n error: teardown(true),\n });\n}\n\n@Injectable()\nexport class NgtComponentStore<\n TState extends object = any,\n TInternalState extends object = TState & NgtAnyRecord\n> extends ComponentStore<TInternalState> {\n constructor() {\n super({} as TInternalState);\n this.initialize();\n }\n\n // exposing get since THREE is imperative at its core\n // we need to imperatively get state sometimes for usages in Animation Loop\n // we also bind \"this\" instance, so we don't have to bind it later\n readonly read = this.get.bind(this);\n\n /**\n * A custom patchState that allows for:\n * - Partial state updates and Observable of partial state updates like patchState\n * - Pass a Record<string, ObservableInput> to update a specific key with an Observable.\n * This is similar to `RxState.connect()` API\n */\n write(\n partialStateOrFactory:\n | ((state: TInternalState) => Record<string, any>)\n | ((state: TInternalState) => Observable<Partial<TInternalState>>)\n | Observable<Partial<TInternalState>>\n | Record<string, any>\n ): void {\n if (typeof partialStateOrFactory === 'function') {\n return this.write(partialStateOrFactory(this.read()));\n }\n\n const partialState = partialStateOrFactory;\n if (Object.keys(partialState).length === 0) {\n return;\n }\n\n if (isObservable(partialState)) {\n return this.patchState(partialState as Observable<Partial<TInternalState>>);\n }\n\n const entries = Object.entries(partialState);\n const hasObservable = entries.some(([_, value]) => isObservable(value) && !is.ref(value));\n\n if (!hasObservable) {\n return this.patchState(partialState as Partial<TInternalState>);\n }\n\n const [rawValues, observableValues] = entries.reduce(\n (result, [key, value]) => {\n if (isObservable(value)) {\n result[1][key as keyof TInternalState] = value;\n } else {\n result[0][key as keyof TInternalState] = value as TInternalState[keyof TInternalState];\n }\n return result;\n },\n [{}, {}] as [Partial<TInternalState>, Record<keyof TInternalState, ObservableInput<any>>]\n );\n\n if (Object.keys(rawValues).length > 0) {\n this.patchState(rawValues);\n }\n\n if (Object.keys(observableValues).length > 0) {\n this.patchState(combineLatest(observableValues));\n }\n }\n\n protected initialize() {\n return;\n }\n\n /**\n * A utility class method to select a state on the template as Observable\n * - This method always debounce the Observable\n */\n selectKey<TKey extends keyof TInternalState & string>(\n key: TKey,\n skipFirst = false\n ): Observable<TInternalState[TKey]> {\n return this.select((s) => s[key], { debounce: true }).pipe(skipFirst ? skipFirstUndefined() : (s) => s);\n }\n\n /**\n * A utility class method to get a state on the template as imperative Value\n */\n readKey<TKey extends keyof TInternalState & string>(key: TKey): TInternalState[TKey] {\n return this.read((s) => s[key]);\n }\n}\n","import { inject, InjectionToken, InjectOptions, Provider } from '@angular/core';\n\nexport function createInjection<\n TTokenValue,\n TProvideValue = TTokenValue extends object ? Partial<TTokenValue> : TTokenValue\n>(\n description: string,\n {\n defaultValueOrFactory,\n provideValueFactory,\n }: {\n defaultValueOrFactory?: TTokenValue | (() => TTokenValue);\n provideValueFactory?: (value: TProvideValue) => TTokenValue;\n } = {}\n): [\n injectFn: (options?: InjectOptions) => TTokenValue,\n provideFn: (value: TProvideValue) => Provider,\n token: InjectionToken<TTokenValue>\n] {\n const factory = (\n defaultValueOrFactory && typeof defaultValueOrFactory === 'function'\n ? defaultValueOrFactory\n : () => defaultValueOrFactory\n ) as () => TTokenValue;\n const injectionToken = new InjectionToken(description, { factory });\n\n function injectFn(options: InjectOptions = {}) {\n return inject(injectionToken, options) as TTokenValue;\n }\n\n function provideFn(value: TProvideValue): Provider {\n return {\n provide: injectionToken,\n useValue: provideValueFactory ? provideValueFactory(value) : value,\n };\n }\n\n return [injectFn, provideFn, injectionToken];\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject } from '@angular/core';\nimport { createInjection } from '../utils/inject';\n\nexport const [injectWindow] = createInjection<Window & typeof globalThis>('window', {\n defaultValueOrFactory: () => {\n const { defaultView } = inject(DOCUMENT);\n\n if (!defaultView) {\n throw `window is not available!`;\n }\n\n return defaultView;\n },\n});\n","import type { NgtAnyRecord } from '../types';\nimport { is } from './is';\n\nexport function checkNeedsUpdate(value: unknown) {\n if (value !== null && is.obj(value) && 'needsUpdate' in (value as NgtAnyRecord)) {\n (value as NgtAnyRecord)['needsUpdate'] = true;\n\n if ('uniformsNeedUpdate' in (value as NgtAnyRecord)) {\n (value as NgtAnyRecord)['uniformsNeedUpdate'] = true;\n }\n }\n}\n\nexport function checkUpdate(value: unknown) {\n if (is.object3d(value)) {\n value.updateMatrix();\n } else if (is.camera(value)) {\n if (is.perspective(value) || is.orthographic(value)) {\n value.updateProjectionMatrix();\n }\n value.updateMatrixWorld();\n }\n\n checkNeedsUpdate(value);\n}\n","import { NgtRef } from '../ref';\nimport type { NgtAnyRecord, NgtInstanceNode, NgtStateFactory } from '../types';\nimport { applyProps } from './apply-props';\nimport { checkUpdate } from './check-update';\nimport { getInstanceLocalState } from './get-instance-local-state';\nimport { is } from './is';\n\nexport function invalidateInstance<TInstance extends object>(instance: TInstance) {\n const state = getInstanceLocalState(instance)?.stateFactory();\n if (state && state.internal.frames === 0) state.invalidate();\n checkUpdate(instance);\n}\n\nexport function prepare<TInstance extends object = NgtAnyRecord>(\n instance: TInstance,\n parentStateFactory: NgtStateFactory,\n rootStateFactory: NgtStateFactory,\n parentInstance?: NgtRef,\n previousInstance?: NgtRef,\n isPrimitive = false\n): NgtInstanceNode<TInstance> {\n const previousInstanceInternal = getInstanceLocalState(previousInstance?.value);\n\n const parent = parentInstance\n ? parentInstance\n : previousInstanceInternal\n ? previousInstanceInternal.parentRef\n : undefined;\n\n if (is.scene(instance)) {\n applyProps(instance, { dispose: null });\n }\n\n return Object.assign(instance, {\n __ngt__: {\n stateFactory: parentStateFactory,\n rootFactory: rootStateFactory,\n isPrimitive: !isPrimitive ? previousInstanceInternal?.isPrimitive : isPrimitive,\n eventCount: previousInstanceInternal?.eventCount ?? 0,\n handlers: previousInstanceInternal?.handlers ?? {},\n instancesRefs: previousInstanceInternal?.instancesRefs ?? new NgtRef([] as NgtRef[]),\n objectsRefs: previousInstanceInternal?.objectsRefs ?? new NgtRef([] as NgtRef[]),\n parentRef: parent ? (parent === instance || parent.value === instance ? null : parent) : null,\n },\n });\n}\n","import * as THREE from 'three';\nimport type { NgtAnyConstructor, NgtAnyFunction, NgtAnyRecord, NgtInstanceLocalState } from '../types';\nimport { checkNeedsUpdate } from './check-update';\nimport { getInstanceLocalState } from './get-instance-local-state';\nimport { invalidateInstance } from './instance';\nimport { is } from './is';\n\nconst DEFAULT = '__default';\n\nexport function diffProps<TInstance extends object>(\n instance: TInstance,\n props: NgtAnyRecord,\n previousProps: NgtAnyRecord = {},\n remove = false\n) {\n const localState = getInstanceLocalState(instance) || ({} as NgtInstanceLocalState);\n const propsEntries = Object.entries(props);\n const changes: [key: string, value: unknown][] = [];\n\n // Catch removed props, prepend them, so they can be reset or removed\n if (remove) {\n const previousKeys = Object.keys(previousProps);\n for (const previousKey of previousKeys) {\n // @ts-ignore\n if (!Object.hasOwn(props, previousKey)) {\n propsEntries.unshift([previousKey, DEFAULT + 'remove']);\n }\n }\n }\n\n for (const [propKey, propValue] of propsEntries) {\n if (is.equ(propValue, previousProps[propKey])) continue;\n changes.push([propKey, propValue]);\n }\n\n const memoized: NgtAnyRecord = { ...props };\n if (localState.memoized && localState.memoized['args']) {\n memoized['args'] = localState.memoized['args'];\n }\n\n if (localState.memoized && localState.memoized['attach']) {\n memoized['attach'] = localState.memoized['attach'] || localState.attach;\n }\n\n return { changes, memoized };\n}\n\nexport function applyProps<TInstance extends object>(instance: TInstance, props: NgtAnyRecord): TInstance {\n // props is empty\n if (!Object.keys(props).length) return instance;\n\n // Filter equals, events and reserved props\n const localState = getInstanceLocalState(instance) || ({} as NgtInstanceLocalState);\n const rootState = localState.stateFactory?.();\n const { changes, memoized } = diffProps(instance, props);\n const instanceHandlers = localState.eventCount;\n\n if (getInstanceLocalState(instance)) {\n getInstanceLocalState(instance)!.memoized = memoized;\n }\n\n for (let i = 0; i < changes.length; i++) {\n const key = changes[i][0];\n const currentInstance = instance;\n const targetProp = (currentInstance as NgtAnyRecord)[key] as NgtAnyRecord;\n let value = changes[i][1];\n\n if (is.ref(value)) {\n value = value.value;\n }\n\n if (value === DEFAULT + 'remove') {\n if (targetProp && targetProp.constructor) {\n // use the prop constructor to find the default it should be\n value = new (targetProp.constructor as NgtAnyConstructor)(...((memoized['args'] as unknown[]) ?? []));\n } else if (currentInstance.constructor) {\n const dummyInstance = new (currentInstance.constructor as NgtAnyConstructor)(\n ...((getInstanceLocalState(currentInstance)?.memoized?.['args'] as unknown[]) || [])\n );\n value = dummyInstance[targetProp as unknown as string];\n // destroy the instance\n if (dummyInstance.dispose) dummyInstance.dispose();\n } else {\n value = 0;\n }\n }\n\n // Special treatment for objects with support for set/copy, and layers\n if (targetProp && targetProp['set'] && (targetProp['copy'] || targetProp instanceof THREE.Layers)) {\n const isColor = targetProp instanceof THREE.Color;\n // If value is an array\n if (Array.isArray(value)) {\n if (targetProp['fromArray']) (targetProp['fromArray'] as NgtAnyFunction)(value);\n else (targetProp['set'] as NgtAnyFunction)(...value);\n }\n // Test again target.copy(class) next ...\n else if (\n targetProp['copy'] &&\n value &&\n value.constructor &&\n targetProp.constructor.name === value.constructor.name\n ) {\n (targetProp['copy'] as NgtAnyFunction)(value);\n if (!is.supportColorManagement() && !rootState.linear && isColor) {\n targetProp['convertSRGBToLinear']();\n }\n }\n // If nothing else fits, just set the single value, ignore undefined\n // https://github.com/pmndrs/react-three-fiber/issues/274\n else if (value !== undefined) {\n const isColor = targetProp instanceof THREE.Color;\n // Allow setting array scalars\n if (!isColor && targetProp['setScalar']) (targetProp['setScalar'] as NgtAnyFunction)(value);\n // Layers have no copy function, we must therefore copy the mask property\n else if (targetProp instanceof THREE.Layers && value instanceof THREE.Layers)\n targetProp.mask = value.mask;\n // Otherwise just set ...\n else (targetProp['set'] as NgtAnyFunction)(value);\n // For versions of three which don't support THREE.ColorManagement,\n // Auto-convert sRGB colors\n // https://github.com/pmndrs/react-three-fiber/issues/344\n if (!is.supportColorManagement() && !rootState.linear && isColor) targetProp.convertSRGBToLinear();\n }\n // Else, just overwrite the value\n } else {\n (currentInstance as NgtAnyRecord)[key] = value;\n // Auto-convert sRGB textures, for now ...\n // https://github.com/pmndrs/react-three-fiber/issues/344\n if (!rootState?.linear && (currentInstance as NgtAnyRecord)[key] instanceof THREE.Texture) {\n ((currentInstance as NgtAnyRecord)[key] as NgtAnyRecord)['encoding'] = THREE.sRGBEncoding;\n }\n }\n\n checkNeedsUpdate(targetProp);\n invalidateInstance(instance);\n }\n\n if (\n localState.parentRef &&\n rootState.internal &&\n (instance as NgtAnyRecord)['raycast'] &&\n instanceHandlers !== localState.eventCount\n ) {\n // Pre-emptively remove the instance from the interaction manager\n rootState.removeInteraction((instance as NgtAnyRecord)['uuid'] as string);\n // Add the instance to the interaction manager only when it has handlers\n if (localState.eventCount) rootState.addInteraction(instance as unknown as THREE.Object3D);\n }\n\n return instance;\n}\n","import * as THREE from 'three';\nimport type { NgtCameraWithManual, NgtSize } from '../types';\nimport { is } from './is';\n\nexport function updateCamera(camera: NgtCameraWithManual, size: NgtSize) {\n // https://github.com/pmndrs/react-three-fiber/issues/92\n // Do not mess with the camera if it belongs to the user\n if (!camera.manual) {\n if (is.orthographic(camera)) {\n camera.left = size.width / -2;\n camera.right = size.width / 2;\n camera.top = size.height / 2;\n camera.bottom = size.height / -2;\n } else {\n camera.aspect = size.width / size.height;\n }\n camera.updateProjectionMatrix();\n // https://github.com/pmndrs/react-three-fiber/issues/178\n // Update matrix world since the renderer is a frame late\n camera.updateMatrixWorld();\n }\n}\n\nexport function createDefaultCamera(isOrthographic: boolean, size: NgtSize) {\n if (isOrthographic) {\n return new THREE.OrthographicCamera(0, 0, 0, 0, 0.1, 1000);\n }\n\n return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);\n}\n","import type { NgtState, NgtStateFactory } from '../types';\nimport { is } from './is';\n\nexport type NgtGlobalRenderCallback = (timeStamp: number) => void;\ntype NgtSubItem = { callback: NgtGlobalRenderCallback };\n\nfunction createSubs(callback: NgtGlobalRenderCallback, subs: Set<NgtSubItem>): () => void {\n const sub = { callback };\n subs.add(sub);\n return () => void subs.delete(sub);\n}\n\nconst globalEffects: Set<NgtSubItem> = new Set();\nconst globalAfterEffects: Set<NgtSubItem> = new Set();\nconst globalTailEffects: Set<NgtSubItem> = new Set();\n\n/**\n * Adds a global render callback which is called each frame.\n * @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#addEffect\n */\nexport const addEffect = (callback: NgtGlobalRenderCallback) => createSubs(callback, globalEffects);\n\n/**\n * Adds a global after-render callback which is called each frame.\n * @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#addAfterEffect\n */\nexport const addAfterEffect = (callback: NgtGlobalRenderCallback) => createSubs(callback, globalAfterEffects);\n\n/**\n * Adds a global callback which is called when rendering stops.\n * @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#addTail\n */\nexport const addTail = (callback: NgtGlobalRenderCallback) => createSubs(callback, globalTailEffects);\n\nfunction run(effects: Set<NgtSubItem>, timestamp: number) {\n if (!effects.size) return;\n for (const { callback } of effects.values()) {\n callback(timestamp);\n }\n}\n\nexport type GlobalEffectType = 'before' | 'after' | 'tail';\n\nexport function flushGlobalEffects(type: GlobalEffectType, timestamp: number): void {\n switch (type) {\n case 'before':\n return run(globalEffects, timestamp);\n case 'after':\n return run(globalAfterEffects, timestamp);\n case 'tail':\n return run(globalTailEffects, timestamp);\n }\n}\n\nfunction render(timestamp: number, stateFactory: NgtStateFactory, frame?: XRFrame) {\n const state = stateFactory();\n // Run local effects\n let delta = state.clock.getDelta();\n // In frameloop='never' mode, clock times are updated using the provided timestamp\n if (state.frameloop === 'never' && typeof timestamp === 'number') {\n delta = timestamp - state.clock.elapsedTime;\n state.clock.oldTime = state.clock.elapsedTime;\n state.clock.elapsedTime = timestamp;\n }\n // Call subscribers (useFrame)\n // subscribers = state.internal.subscribers;\n for (let i = 0; i < state.internal.subscribers.length; i++) {\n const subscriber = state.internal.subscribers[i];\n const object = is.ref(subscriber.obj) ? subscriber.obj.value : subscriber.obj;\n subscriber.callback({ ...state, delta, frame }, object);\n }\n // Render content\n if (!state.internal.priority && state.gl.render) state.gl.render(state.scene, state.camera);\n // Decrease frame count\n state.internal.frames = Math.max(0, state.internal.frames - 1);\n return state.frameloop === 'always' ? 1 : state.internal.frames;\n}\n\nexport function createLoop<TCanvas>(roots: Map<TCanvas, NgtStateFactory>) {\n let running = false;\n let repeat: number;\n let frame: number;\n let state: NgtState;\n\n function loop(timestamp: number): void {\n frame = requestAnimationFrame(loop);\n running = true;\n repeat = 0;\n\n // Run effects\n flushGlobalEffects('before', timestamp);\n\n // Render all roots\n for (const root of roots.values()) {\n state = root();\n // If the frameloop is invalidated, do not run another frame\n if (\n state.internal.active &&\n (state.frameloop === 'always' || state.internal.frames > 0) &&\n !state.gl.xr?.isPresenting\n ) {\n repeat += render(timestamp, root);\n }\n }\n\n // Run after-effects\n flushGlobalEffects('after', timestamp);\n\n // Stop the loop if nothing invalidates it\n if (repeat === 0) {\n // Tail call effects, they are called when rendering stops\n flushGlobalEffects('tail', timestamp);\n\n // Flag end of operation\n running = false;\n return cancelAnimationFrame(frame);\n }\n }\n\n function invalidate(stateFactory?: NgtStateFactory, frames = 1): void {\n const stateToInvalidate = stateFactory?.();\n if (!stateToInvalidate) return roots.forEach((root) => invalidate(root, frames));\n if (\n stateToInvalidate.gl.xr?.isPresenting ||\n !stateToInvalidate.internal.active ||\n stateToInvalidate.frameloop === 'never'\n )\n return;\n // Increase frames, do not go higher than 60\n stateToInvalidate.internal.frames = Math.min(60, stateToInvalidate.internal.frames + frames);\n // If the render-loop isn't active, start it\n if (!running) {\n running = true;\n requestAnimationFrame(loop);\n }\n }\n\n function advance(\n timestamp: number,\n runGlobalEffects: boolean = true,\n stateFactory?: NgtStateFactory,\n frame?: XRFrame\n ): void {\n if (runGlobalEffects) flushGlobalEffects('before', timestamp);\n if (!stateFactory) for (const root of roots.values()) render(timestamp, root);\n else render(timestamp, stateFactory, frame);\n if (runGlobalEffects) flushGlobalEffects('after', timestamp);\n }\n\n return {\n loop,\n /**\n * Invalidates the view, requesting a frame to be rendered. Will globally invalidate unless passed a root's state.\n * @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#invalidate\n */\n invalidate,\n /**\n * Advances the frameloop and runs render effects, useful for when manually rendering via `frameloop=\"never\"`.\n * @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#advance\n */\n advance,\n };\n}\n","import * as THREE from 'three';\nimport type { NgtGLOptions } from '../types';\n\nexport function createRenderer(glOptions: NgtGLOptions, canvasElement: HTMLCanvasElement): THREE.WebGLRenderer {\n const customRenderer = (\n typeof glOptions === 'function' ? glOptions(canvasElement) : glOptions\n ) as THREE.WebGLRenderer;\n\n if (customRenderer?.render != null) {\n return customRenderer;\n }\n\n return new THREE.WebGLRenderer({\n powerPreference: 'high-performance',\n canvas: canvasElement,\n antialias: true,\n alpha: true,\n ...(glOptions || {}),\n });\n}\n","import { inject, Injectable, NgZone } from '@angular/core';\nimport { filter, Subscription, tap } from 'rxjs';\nimport * as THREE from 'three';\nimport { injectWindow } from '../di/window';\nimport { NgtRef } from '../ref';\nimport type {\n NgtBeforeRenderCallback,\n NgtCamera,\n NgtCanvasInputs,\n NgtDpr,\n NgtEquConfig,\n NgtEventManager,\n NgtSize,\n NgtState,\n NgtStateFactory,\n NgtViewport,\n} from '../types';\nimport { applyProps } from '../utils/apply-props';\nimport { createDefaultCamera, updateCamera } from '../utils/camera';\nimport { checkNeedsUpdate } from '../utils/check-update';\nimport { prepare } from '../utils/instance';\nimport { is } from '../utils/is';\nimport { createLoop } from '../utils/loop';\nimport { makeDpr } from '../utils/make';\nimport { createRenderer } from '../utils/renderer';\nimport { defaultProjector, NgtComponentStore, tapEffect } from './component-store';\n\nexport const rootStateMap = new Map<Element, NgtStateFactory>();\nconst { invalidate, advance } = createLoop(rootStateMap);\n\nconst shallowLoose = { objects: 'shallow', strict: false } as NgtEquConfig;\n\n@Injectable()\nexport class NgtStore extends NgtComponentStore<NgtState> {\n private readonly parentStore = inject(NgtStore, { optional: true, skipSelf: true });\n private readonly zone = inject(NgZone);\n private readonly window = injectWindow();\n\n private readonly position = new THREE.Vector3();\n private readonly defaultTarget = new THREE.Vector3();\n private readonly tempTarget = new THREE.Vector3();\n\n get rootStateFactory(): NgtStateFactory {\n let root = this.read((s) => s.previousStateFactory);\n while (root && root().previousStateFactory) {\n root = root().previousStateFactory;\n }\n\n return root || this.read;\n }\n\n private readonly resize = this.effect<any>(($) => {\n let oldSize = this.read((s) => s.size);\n let oldDpr = this.read((s) => s.viewport?.dpr);\n\n return $.pipe(\n tap(() => {\n const { camera, size, viewport, gl } = this.read();\n // Resize camera and renderer on changes to size and pixelratio\n if (size !== oldSize || viewport.dpr !== oldDpr) {\n oldSize = size;\n oldDpr = viewport.dpr;\n // Update camera & renderer\n updateCamera(camera, size);\n gl.setPixelRatio(viewport.dpr);\n gl.setSize(size.width, size.height, size.updateStyle);\n }\n })\n );\n });\n\n private readonly invalidate = this.effect(tap(() => void this.read((s) => s.invalidate)()));\n\n isInit = false;\n isConfigured = false;\n\n init() {\n if (!this.isInit) {\n const pointer = new THREE.Vector2();\n\n const scene = prepare(\n new THREE.Scene(),\n this.read,\n this.rootStateFactory,\n this.parentStore?.get((s) => s.sceneRef)\n );\n\n let performanceTimeout: ReturnType<typeof setTimeout>;\n\n this.write({\n ready: false,\n cameraRef: new NgtRef(),\n scene,\n sceneRef: new NgtRef(scene),\n events: { priority: 1, enabled: true, connected: false },\n invalidate: (frames = 1) => invalidate(this.read, frames),\n advance: (timestamp: number, runGlobalEffects?: boolean) =>\n advance(timestamp, runGlobalEffects, this.read),\n\n legacy: false,\n linear: false,\n flat: false,\n controls: null,\n\n clock: new THREE.Clock(),\n pointer,\n\n frameloop: 'always',\n\n performance: {\n current: 1,\n min: 0.5,\n max: 1,\n debounce: 200,\n regress: () => {\n this.zone.runOutsideAngular(() => {\n const state = this.read();\n // Clear timeout\n if (performanceTimeout) clearTimeout(performanceTimeout);\n // Set lower bound performance\n if (state.performance.current !== state.performance.min)\n this.setPerformanceCurrent(state.performance.min);\n // Go back to upper bound performance after a while unless something regresses meanwhile\n performanceTimeout = setTimeout(\n () => this.setPerformanceCurrent(this.read((s) => s.performance)?.max || 1),\n state.performance.debounce\n );\n });\n },\n },\n\n size: { width: 0, height: 0, top: 0, left: 0, updateStyle: false },\n viewport: {\n initialDpr: 0,\n dpr: 0,\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n aspect: 0,\n distance: 0,\n factor: 0,\n getCurrentViewport: this.getCurrentViewport,\n },\n\n previousStateFactory: this.parentStore?.read.bind(this.parentStore),\n internal: {\n active: false,\n priority: 0,\n frames: 0,\n lastEvent: null,\n interaction: [],\n hovered: new Map(),\n capturedMap: new Map(),\n animations: new Map(),\n subscribers: [],\n initialClick: [0, 0],\n initialHits: [],\n subscribe: (\n callback: NgtBeforeRenderCallback,\n priority: number = 0,\n stateFactory: NgtStateFactory = this.read,\n obj?: THREE.Object3D | NgtRef<THREE.Object3D>\n ) => {\n const internal = this.read((s) => s.internal);\n // If this subscription was given a priority, it takes rendering into its own hands\n // For that reason we switch off automatic rendering and increase the manual flag\n // As long as this flag is positive there can be no internal rendering at all\n // because there could be multiple render subscriptions\n internal.priority = internal.priority + (priority > 0 ? 1 : 0);\n internal.subscribers.push({ priority, stateFactory, callback, obj });\n\n // Register subscriber and sort layers from lowest to highest, meaning,\n // highest priority renders last (on top of the other frames)\n internal.subscribers.sort((a, b) => (a.priority || 0) - (b.priority || 0));\n\n return () => {\n const internalOnCleanUp = this.read((s) => s.internal);\n if (internalOnCleanUp.subscribers) {\n // Decrease manual flag if this subscription had a priority\n internalOnCleanUp.priority = internalOnCleanUp.priority - (priority > 0 ? 1 : 0);\n // Remove subscriber from list\n internalOnCleanUp.subscribers = internalOnCleanUp.subscribers.filter(\n (s) => s.callback !== callback\n );\n }\n };\n },\n },\n setPerformanceCurrent: this.setPerformanceCurrent,\n setEvents: this.setEvents,\n setFrameloop: this.setFrameloop,\n setSize: this.setSize,\n setDpr: this.setDpr,\n setCamera: this.setCamera,\n addInteraction: this.addInteraction,\n removeInteraction: this.removeInteraction,\n });\n this.isInit = true;\n }\n }\n\n private readonly addInteraction = (interaction: THREE.Object3D) => {\n this.write((state) => ({\n ...state,\n internal: {\n ...state.internal,\n interaction: [...state.internal.interaction, interaction],\n },\n }));\n };\n\n private readonly removeInteraction = (uuid: string) => {\n this.write((state) => ({\n ...state,\n internal: {\n ...state.internal,\n interaction: state.internal.interaction.filter((interaction) => interaction.uuid !== uuid),\n },\n }));\n };\n\n private readonly setPerformanceCurrent = (current: number) => {\n this.write((s) => ({ performance: { ...s.performance, current } }));\n };\n\n private readonly setEvents = (events: Partial<NgtEventManager<any>>) => {\n this.write((s) => ({ events: { ...s.events, ...events } }));\n };\n\n private readonly setSize = (width: number, height: number, top?: number, left?: number, updateStyle?: boolean) => {\n const camera = this.read((s) => s.camera);\n const size = { width, height, top: top || 0, left: left || 0, updateStyle };\n\n this.write((state) => ({\n size,\n viewport: {\n ...state.viewport,\n ...this.getCurrentViewport(camera, this.defaultTarget, size),\n },\n }));\n };\n\n private readonly setCamera = (camera: NgtCamera) => {\n this.write((s) => ({\n camera,\n viewport: {\n ...s.viewport,\n ...this.getCurrentViewport(camera),\n },\n }));\n this.read((s) => s.cameraRef).set(camera);\n };\n\n private readonly setDpr = (dpr: NgtDpr) => {\n const resolved = makeDpr(dpr, this.window);\n this.write((s) => ({\n viewport: {\n ...s.viewport,\n dpr: resolved,\n initialDpr: s.viewport.initialDpr || resolved,\n },\n }));\n };\n\n private readonly setFrameloop = (frameloop: 'always' | 'demand' | 'never' = 'always') => {\n const clock = this.read((s) => s.clock);\n\n // if frameloop === \"never\" clock.elapsedTime is updated using advance(timestamp)\n clock.stop();\n clock.elapsedTime = 0;\n\n if (frameloop !== 'never') {\n clock.start();\n clock.elapsedTime = 0;\n }\n\n this.write({ frameloop });\n };\n\n private readonly getCurrentViewport = (\n camera = this.read((s) => s.camera),\n target: THREE.Vector3 | Parameters<THREE.Vector3['set']> = this.defaultTarget,\n size = this.read((s) => s.size)\n ): Omit<NgtViewport, 'dpr' | 'initialDpr'> => {\n const { width, height, top, left } = size;\n const aspect = width / height;\n if (target instanceof THREE.Vector3) this.tempTarget.copy(target);\n else this.tempTarget.set(...target);\n\n const distance = camera.getWorldPosition(this.position).distanceTo(this.tempTarget);\n\n if (is.orthographic(camera)) {\n return {\n width: width / camera.zoom,\n height: height / camera.zoom,\n top,\n left,\n factor: 1,\n distance,\n aspect,\n };\n }\n\n const fov = (camera.fov * Math.PI) / 180; // convert vertical fov to radians\n const h = 2 * Math.tan(fov / 2) * distance; // visible height\n const w = h * (width / height);\n return {\n width: w,\n height: h,\n top,\n left,\n factor: width / w,\n distance,\n aspect,\n };\n };\n\n configure(inputs: NgtCanvasInputs, canvasElement: HTMLCanvasElement) {\n const {\n gl: glOptions,\n size: sizeOptions,\n camera: cameraOptions,\n raycaster: raycasterOptions,\n events,\n orthographic,\n lookAt,\n shadows,\n linear,\n flat,\n legacy,\n dpr,\n frameloop,\n performance,\n } = inputs;\n\n const state = this.read();\n\n // Set up renderer (one time only!)\n let gl = state.gl;\n if (!state.gl) {\n this.write({ gl: (gl = createRenderer(glOptions, canvasElement)) });\n }\n\n // Set up raycaster (one time only!)\n let raycaster = state.raycaster;\n if (!raycaster) {\n this.write({ raycaster: (raycaster = new THREE.Raycaster()) });\n }\n\n // Set raycaster options\n const { params, ...options } = raycasterOptions || {};\n if (!is.equ(options, raycaster, shallowLoose)) {\n applyProps(raycaster, { ...options });\n }\n if (!is.equ(params, raycaster.params, shallowLoose)) {\n applyProps(raycaster, {\n params: { ...raycaster.params, ...(params || {}) },\n });\n }\n\n // Create default camera (one time only!)\n if (!state.camera) {\n const isCamera = is.camera(cameraOptions);\n let camera = isCamera ? (cameraOptions as NgtCamera) : createDefaultCamera(orthographic!, state.size);\n if (!isCamera) {\n if (cameraOptions) {\n applyProps(camera, cameraOptions);\n }\n\n // Set position.z if position not passed in\n if (!cameraOptions?.position) {\n camera.position.z = 5;\n }\n\n // Always look at center or passed-in lookAt by default\n if (!cameraOptions?.rotation) {\n if (Array.isArray(lookAt)) {\n camera.lookAt(lookAt[0], lookAt[1], lookAt[2]);\n } else if (lookAt instanceof THREE.Vector3) {\n camera.lookAt(lookAt);\n } else {\n camera.lookAt(0, 0, 0);\n }\n }\n\n // Update projection matrix after applying props\n camera.updateProjectionMatrix();\n }\n\n if (!is.instance(camera)) {\n camera = prepare(\n camera,\n this.read,\n this.rootStateFactory,\n this.parentStore?.get((s) => s.cameraRef)\n );\n }\n this.write({ camera });\n this.read((s) => s.cameraRef).set(camera);\n }\n\n // Set up XR (one time only!)\n if (!state.xr) {\n // Handle frame behavior in WebXR\n const handleXRFrame: XRFrameRequestCallback = (timestamp: number, frame?: XRFrame) => {\n const state = this.read();\n if (state.frameloop === 'never') return;\n advance(timestamp, true, this.read, frame);\n };\n\n // Toggle render switching on session\n const handleSessionChange = () => {\n const state = this.read();\n state.gl.xr.enabled = state.gl.xr.isPresenting;\n\n state.gl.xr.setAnimationLoop(state.gl.xr.isPresenting ? handleXRFrame : null);\n if (!state.gl.xr.isPresenting) invalidate(this.read);\n };\n\n // WebXR session manager\n const xr = {\n connect: () => {\n const gl = this.read((s) => s.gl);\n gl.xr.addEventListener('sessionstart', handleSessionChange);\n gl.xr.addEventListener('sessionend', handleSessionChange);\n },\n disconnect: () => {\n const gl = this.read((s) => s.gl);\n gl.xr.removeEventListener('sessionstart', handleSessionChange);\n gl.xr.removeEventListener('sessionend', handleSessionChange);\n },\n };\n\n // Subscribe to WebXR session events\n if (gl.xr) xr.connect();\n this.write({ xr });\n }\n\n // Set shadowmap\n if (gl.shadowMap) {\n const isBoolean = typeof shadows === 'boolean';\n if ((isBoolean && gl.shadowMap.enabled !== shadows) || !is.equ(shadows, gl.shadowMap, shallowLoose)) {\n const old = gl.shadowMap.enabled;\n gl.shadowMap.enabled = !!shadows;\n if (!isBoolean) Object.assign(gl.shadowMap, shadows);\n else gl.shadowMap.type = THREE.PCFSoftShadowMap;\n\n if (old !== gl.shadowMap.enabled) checkNeedsUpdate(gl.shadowMap);\n }\n }\n\n // Safely set color management if available.\n // Avoid accessing THREE.ColorManagement to play nice with older versions\n if (is.supportColorManagement()) {\n THREE.ColorManagement.legacyMode = state.legacy;\n }\n const outputEncoding = linear ? THREE.LinearEncoding : THREE.sRGBEncoding;\n const toneMapping = flat ? THREE.NoToneMapping : THREE.ACESFilmicToneMapping;\n if (gl.outputEncoding !== outputEncoding) gl.outputEncoding = outputEncoding;\n if (gl.toneMapping !== toneMapping) gl.toneMapping = toneMapping;\n\n // Update color management state\n if (state.legacy !== legacy) this.write({ legacy });\n if (state.linear !== linear) this.write({ linear });\n if (state.flat !== flat) this.write({ flat });\n\n // Set gl props\n gl.setClearAlpha(0);\n gl.setPixelRatio(makeDpr(state.viewport.dpr));\n gl.setSize(state.size.width, state.size.height, state.size.updateStyle);\n\n if (\n is.obj(glOptions) &&\n !(typeof glOptions === 'function') &&\n !is.glRenderer(glOptions) &&\n !is.equ(glOptions, gl, shallowLoose)\n ) {\n applyProps(gl, glOptions);\n }\n\n // Store events internally\n if (events && !state.events.handlers) {\n this.write({ events: events(this.read) });\n }\n\n // Check pixelratio\n if (dpr && state.viewport.dpr !== makeDpr(dpr)) {\n state.setDpr(dpr);\n }\n // Check size, allow it to take on container bounds initially\n const size = computeInitialSize(canvasElement, sizeOptions);\n if (!is.equ(size, state.size, shallowLoose)) {\n state.setSize(size.width, size.height, size.top, size.left);\n }\n\n // Check frameloop\n if (state.frameloop !== frameloop) state.setFrameloop(frameloop!);\n\n // Check performance\n if (performance && !is.equ(performance, state.performance, shallowLoose)) {\n this.write((state) => ({\n performance: { ...state.performance, ...performance },\n }));\n }\n\n this.write({ ready: true });\n this.resize(\n this.select(\n this.select((s) => s.size),\n this.select((s) => s.viewport.dpr),\n defaultProjector,\n { debounce: true }\n )\n );\n this.invalidate(this.select((s) => s, { debounce: true }));\n this.zone.run(() => {\n this.isConfigured = true;\n });\n }\n\n onReady(cb: Parameters<typeof tapEffect>[0]): Subscription {\n return this.effect(tapEffect(cb))(this.select((s) => s.ready).pipe(filter((ready) => ready)));\n }\n}\n\nfunction computeInitialSize(canvas: HTMLCanvasElement | THREE.OffscreenCanvas, defaultSize?: NgtSize): NgtSize {\n if (defaultSize) {\n return defaultSize;\n }\n\n if (is.canvas(canvas) && canvas.parentElement) {\n const { width, height, top, left } = canvas.parentElement.getBoundingClientRect();\n\n return { width, height, top, left };\n }\n\n return { width: 0, height: 0, top: 0, left: 0 };\n}\n","import type { NgtAnyRecord } from '../types';\nimport { applyProps } from './apply-props';\n\nexport function mutate<T extends NgtAnyRecord>(object: T, value: unknown, paths: string[] = []): void {\n const [base, ...remaining] = paths;\n\n if (!base) return;\n\n if (remaining.length === 0) {\n applyProps(object, { [base]: value });\n } else {\n // assign an empty object in order to spread object if undefined\n assignEmpty(object, base);\n // recursion\n mutate(object[base], value, remaining);\n }\n}\n\nfunction assignEmpty(obj: NgtAnyRecord, base: string) {\n if (\n // @ts-ignore\n (!Object.hasOwn(obj, base) && Reflect && !!Reflect.has && !Reflect.has(obj, base)) ||\n obj[base] === undefined\n ) {\n obj[base] = {};\n }\n}\n","import {\n Directive,\n EventEmitter,\n inject,\n InjectionToken,\n InjectOptions,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { filter, Subscription, tap } from 'rxjs';\nimport { NgtRef } from './ref';\nimport { NgtComponentStore, tapEffect } from './stores/component-store';\nimport { NgtStore } from './stores/store';\nimport type {\n NgtAnyCtor,\n NgtAnyFunction,\n NgtAnyRecord,\n NgtAttachFunction,\n NgtBeforeRenderCallback,\n NgtEventHandlers,\n NgtInstanceLocalState,\n NgtObservableInput,\n NgtThreeEvent,\n} from './types';\nimport { applyProps } from './utils/apply-props';\nimport { removeInteractivity } from './utils/events';\nimport { getInstanceLocalState } from './utils/get-instance-local-state';\nimport { invalidateInstance } from './utils/instance';\nimport { is } from './utils/is';\nimport { mutate } from './utils/mutate';\n\nexport const NGT_PROXY_INSTANCE = Symbol.for('__ngt__proxy__instance__');\n\nexport const NGT_INSTANCE_REF_FACTORY = new InjectionToken<NgtAnyFunction<NgtRef>>('NgtInstance[instanceRef] factory');\nexport function provideInstanceRef<\n TInstanceType extends object = any,\n TCtor extends NgtAnyCtor<TInstanceType> = NgtAnyCtor<TInstanceType>\n>(ctor: TCtor, factory?: (instance: InstanceType<TCtor>) => NgtRef) {\n return {\n provide: NGT_INSTANCE_REF_FACTORY,\n useFactory: (instance: InstanceType<TCtor>) => {\n if (factory) {\n return () => factory(instance);\n }\n\n return () =>\n (instance as NgtAnyRecord)['instanceRef'] || (instance as NgtAnyRecord)['instance']['instanceRef'];\n },\n deps: [ctor],\n };\n}\nexport function injectInstanceRef(): NgtAnyFunction<NgtRef>;\nexport function injectInstanceRef(options: InjectOptions & { optional?: false }): NgtAnyFunction<NgtRef>;\nexport function injectInstanceRef(options: InjectOptions & { optional?: true }): NgtAnyFunction<NgtRef> | null;\nexport function injectInstanceRef(options: InjectOptions = {}) {\n return inject(NGT_INSTANCE_REF_FACTORY, options);\n}\n\nexport interface NgtInstanceState<TInstance extends object = NgtAnyRecord> {\n instanceRef: NgtRef<TInstance>;\n instanceArgs: unknown[];\n attach: string[] | NgtAttachFunction;\n noAttach: boolean;\n skipWrapper: boolean;\n skipInit: boolean;\n}\nexport function injectInstance<T extends object>(): NgtInstance<T>;\nexport function injectInstance<T extends object>(options: InjectOptions & { optional?: false }): NgtInstance<T>;\nexport function injectInstance<T extends object>(options: InjectOptions & { optional?: true }): NgtInstance<T> | null;\nexport function injectInstance(options: InjectOptions = {}) {\n return inject(NgtInstance, options);\n}\n\nconst supportedEvents = [\n 'click',\n 'contextmenu',\n 'dblclick',\n 'pointerup',\n 'pointerdown',\n 'pointerover',\n 'pointerout',\n 'pointerenter',\n 'pointerleave',\n 'pointermove',\n 'pointermissed',\n 'pointercancel',\n 'wheel',\n] as const;\n\n@Directive({\n selector: '[ngtInstance]',\n exportAs: 'ngtInstance',\n standalone: true,\n})\nexport class NgtInstance<\n TInstance extends object = any,\n TInstanceState extends NgtInstanceState<TInstance> = NgtInstanceState<TInstance>\n >\n extends NgtComponentStore<TInstanceState>\n implements OnInit, OnDestroy\n{\n @Input() set ref(instance: TInstance | NgtRef<TInstance>) {\n this.write({ instanceRef: is.ref(instance) ? instance : new NgtRef(instance) });\n }\n\n @Input() set skipWrapper(skipWrapper: NgtObservableInput<boolean>) {\n this.write({ skipWrapper });\n this.write({ skipWrapperExplicit: true });\n }\n\n @Input() set skipInit(skipInit: NgtObservableInput<boolean>) {\n this.write({ skipInit });\n this.write({ skipInitExplicit: true });\n }\n\n @Input() set noAttach(noAttach: NgtObservableInput<boolean>) {\n this.write({ noAttach });\n this.write({ noAttachExplicit: true });\n }\n\n @Input() set attach(value: string | string[] | [string, ...(string | number)[]] | NgtAttachFunction | undefined) {\n if (value) {\n const attach =\n typeof value === 'function'\n ? value\n : Array.isArray(value)\n ? value.map((item) => (typeof item === 'number' ? item.toString() : item))\n : [value];\n\n this.write({ attach, attachExplicit: true });\n }\n }\n\n @Input() priority = 0;\n @Input() beforeRender?: NgtBeforeRenderCallback<TInstance>;\n\n @Input() readyCallback?: ((instance: TInstance) => void) | (() => void);\n @Input() updateCallback?: ((instance: TInstance) => void) | (() => void);\n\n @Output() click = new EventEmitter<NgtThreeEvent<MouseEvent>>();\n @Output() contextmenu = new EventEmitter<NgtThreeEvent<MouseEvent>>();\n @Output() dblclick = new EventEmitter<NgtThreeEvent<MouseEvent>>();\n @Output() pointerup = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointerdown = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointerover = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointerout = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointerenter = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointerleave = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointermove = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointermissed = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() pointercancel = new EventEmitter<NgtThreeEvent<PointerEvent>>();\n @Output() wheel = new EventEmitter<NgtThreeEvent<WheelEvent>>();\n\n private readonly zone = inject(NgZone);\n private readonly store = inject(NgtStore);\n\n private readonly parentRef = injectInstanceRef({ skipSelf: true, optional: true });\n private _isRaw = false;\n\n set isRaw(val: boolean) {\n this._isRaw = val;\n }\n\n private hasEmittedAlready = false;\n\n private readonly instanceReady = this.effect(\n tapEffect(() => {\n this.handleEvents();\n\n let attachToParentSubscription: Subscription;\n if (this.parentRef) {\n attachToParentSubscription = this.attachToParent(this.parent!.pipe(filter((parent) => !!parent)));\n const { noAttach, skipWrapper } = this.read();\n if (!noAttach && !skipWrapper) {\n const parentInstanceNode = getInstanceLocalState(\n getInstanceLocalState(this.instanceValue)?.parentRef?.value\n );\n\n if (parentInstanceNode) {\n const collections = is.object3d(this.instanceValue)\n ? parentInstanceNode.objectsRefs\n : parentInstanceNode.instancesRefs;\n collections.set((s) => [...s, this.instanceRef]);\n }\n }\n }\n\n let beforeRenderCleanUp: () => void;\n if (this.beforeRender && is.object3d(this.instanceValue) && is.object3d(this.proxyInstance)) {\n beforeRenderCleanUp = this.store\n .read((s) => s.internal)\n .subscribe(\n (state, object) => this.beforeRender!(state, object),\n this.priority,\n this.store.read,\n this.proxyInstance\n );\n }\n\n if (this.readyCallback) this.readyCallback(this.instanceValue);\n\n return () => {\n beforeRenderCleanUp?.();\n attachToParentSubscription?.unsubscribe();\n };\n })\n );\n\n private handleEvents = this.effect<void>(\n tapEffect(() => {\n if (this.instanceValue && is.object3d(this.instanceValue)) {\n const observedEvents = supportedEvents.reduce(\n (result, event) => {\n const controllerEvent = this[event].observed ? this[event] : null;\n if (controllerEvent) {\n result.handlers[event] = this.eventNameToHandler(\n controllerEvent as EventEmitter<NgtThreeEvent<any>>\n );\n result.eventCount += 1;\n }\n return result;\n },\n { handlers: {}, eventCount: 0 } as {\n handlers: NgtEventHandlers;\n eventCount: number;\n }\n );\n\n // patch __ngt__ with events\n applyProps(this.__ngt__, observedEvents);\n\n // add as an interaction if there are events observed\n if (observedEvents.eventCount > 0) {\n getInstanceLocalState(this.instanceValue)?.rootFactory().addInteraction(this.instanceValue);\n }\n }\n return () => {\n if (is.object3d(this.instanceValue) && this.__ngt__.eventCount > 0) {\n getInstanceLocalState(this.instanceValue)?.rootFactory().removeInteraction(this.instanceValue.uuid);\n }\n };\n })\n );\n\n private readonly attachToParent = this.effect(\n tap(() => {\n const attach = this.read((s) => s.attach);\n\n let parentInstanceRef = this.__ngt__?.parentRef;\n\n // if no parentInstance, try re-run the factory due to late init\n if (!parentInstanceRef || !parentInstanceRef.value) {\n // return early if failed to retrieve\n if (!this.parent?.value) return;\n\n // reassign on instance internal state\n if (this.__ngt__) {\n this.__ngt__.parentRef = this.parent;\n }\n parentInstanceRef = this.parent;\n }\n\n if (typeof attach === 'function') {\n const attachCleanUp = attach(parentInstanceRef, this.instanceRef, this.store.read);\n if (attachCleanUp) {\n this.__ngt__.attach = attachCleanUp;\n }\n } else {\n const propertyToAttach = [...attach];\n\n // if propertyToAttach is empty\n if (propertyToAttach.length === 0) {\n // this might be the case where we are attaching an object3D to the parent object3D\n if (\n is.object3d(this.instanceValue) &&\n is.object3d(this.proxyInstance) &&\n is.object3d(this.parent?.value)\n ) {\n this.parent?.value.add(this.proxyInstance);\n }\n } else {\n // array material handling\n if (\n propertyToAttach[0] === 'material' &&\n propertyToAttach[1] &&\n typeof Number(propertyToAttach[1]) === 'number' &&\n is.material(this.instanceValue)\n ) {\n if (!Array.isArray(parentInstanceRef.value.material)) {\n parentInstanceRef.value.material = [];\n }\n }\n\n // retrieve the current value on the parentInstance, so we can reset it later\n if (this.__ngt__) {\n this.__ngt__.attachValue = propertyToAttach.reduce(\n (value, property) => value[property],\n parentInstanceRef.value\n );\n }\n\n // attach the instance value on the parent\n mutate(parentInstanceRef.value, this.proxyInstance, propertyToAttach);\n }\n\n // validate on the instance\n invalidateInstance(this.instanceValue);\n\n // validate on the parent\n if (getInstanceLocalState(parentInstanceRef.value)) {\n invalidateInstance(parentInstanceRef.value);\n }\n\n // save the attach\n if (this.__ngt__) {\n this.__ngt__.attach = propertyToAttach;\n }\n this.write({ attach: propertyToAttach });\n }\n })\n );\n\n override initialize() {\n super.initialize();\n this.write({\n instanceRef: new NgtRef(null),\n attach: [],\n noAttach: false,\n skipWrapper: false,\n skipInit: false,\n });\n }\n\n ngOnInit() {\n this.zone.runOutsideAngular(() => {\n this.store.onReady(() => {\n this.instanceReady(this.instanceRef.pipe(filter((instance) => !!instance)));\n });\n });\n }\n\n get instanceRef(): NgtRef<TInstance> {\n return this.read((s) => s.instanceRef);\n }\n\n get instanceValue(): TInstance {\n if (!this.instanceRef.value) return this.instanceRef.value;\n return this._isRaw ? (this.instanceRef.value?.valueOf() as TInstance) : this.instanceRef.value;\n }\n\n get proxyInstance(): TInstance {\n return (this.instanceValue as any)?.[NGT_PROXY_INSTANCE];\n }\n\n get __ngt__(): NgtInstanceLocalState {\n return getInstanceLocalState(\n this._isRaw ? this.instanceRef.value : this.instanceValue\n ) as NgtInstanceLocalState;\n }\n\n get parent(): NgtRef | undefined {\n return this.parentRef?.();\n }\n\n override ngOnDestroy() {\n this.zone.runOutsideAngular(() => {\n this.destroy();\n });\n super.ngOnDestroy();\n }\n\n private destroy() {\n if (this.instanceValue) {\n if (is.object3d(this.instanceValue)) {\n const parentInstance = this.parent;\n if (parentInstance && is.object3d(parentInstance.value)) {\n removeInteractivity(this.__ngt__.stateFactory.bind(this.__ngt__), this.instanceValue);\n parentInstance.value.remove(this.instanceValue);\n invalidateInstance(parentInstance.value);\n }\n\n if (this.instanceValue.clear != null) {\n this.instanceValue.clear();\n }\n } else {\n if (this.__ngt__) {\n // non-scene objects\n const previousAttach = this.__ngt__.attach;\n if (previousAttach != null) {\n if (typeof previousAttach === 'function') {\n previousAttach();\n } else {\n const previousAttachValue = this.__ngt__.attachValue;\n if (this.__ngt__.parentRef && this.__ngt__.parentRef.value) {\n mutate(this.__ngt__.parentRef.value, previousAttachValue, previousAttach);\n }\n }\n\n if (this.__ngt__.parentRef && this.__ngt__.parentRef.value) {\n invalidateInstance(this.__ngt__.parentRef.value);\n }\n }\n }\n }\n\n const dispose = (this.instanceValue as NgtAnyRecord)['dispose'];\n if (dispose && typeof dispose === 'function') {\n dispose.apply(this.instanceValue);\n }\n }\n\n this.write({ attach: [] });\n this.instanceRef.complete();\n }\n\n private eventNameToHandler(\n controllerEvent: EventEmitter<NgtThreeEvent<PointerEvent>> | EventEmitter<NgtThreeEvent<WheelEvent>>\n ) {\n return (event: Parameters<Exclude<NgtEventHandlers[typeof supportedEvents[number]], undefined>>[0]) => {\n // go back into Angular Zone so that state updates on these events trigger CD\n this.zone.run(() => {\n controllerEvent.emit(event as NgtThreeEvent<any>);\n });\n };\n }\n}\n\nexport const NGT_INSTANCE_INPUTS = [\n 'ref',\n 'attach',\n 'skipWrapper',\n 'skipInit',\n 'noAttach',\n 'beforeRender',\n 'priority',\n 'updateCallback',\n 'readyCallback',\n];\n\nexport const NGT_INSTANCE_OUTPUTS = [...supportedEvents];\n","import { createInjection } from '../utils/inject';\nimport { injectWindow } from './window';\n\nexport interface NgtResizeOptions {\n box: ResizeObserverBoxOptions;\n debounce: number | { scroll: number; resize: number };\n scroll: boolean;\n offsetSize: boolean;\n}\n\nexport const defaultResizeOptions: NgtResizeOptions = {\n box: 'content-box',\n scroll: false,\n offsetSize: false,\n debounce: { scroll: 50, resize: 0 },\n};\n\nexport const [injectResizeOptions, provideResizeOptions] = createInjection<NgtResizeOptions>('ngtResize Options', {\n defaultValueOrFactory: defaultResizeOptions,\n provideValueFactory: (value) => ({ ...defaultResizeOptions, ...value }),\n});\n\nexport const [injectResizeObserverSupport] = createInjection<boolean>('Resize Observer API support', {\n defaultValueOrFactory: () => {\n const window = injectWindow();\n return 'ResizeObserver' in window && (window as any)['ResizeObserver'] != null;\n },\n});\n","import { DOCUMENT } from '@angular/common';\nimport { ElementRef, inject, Injectable, NgZone } from '@angular/core';\nimport {\n debounceTime,\n fromEvent,\n MonoTypeOperatorFunction,\n Observable,\n pipe,\n ReplaySubject,\n share,\n Subject,\n takeUntil,\n} from 'rxjs';\nimport { injectResizeObserverSupport, injectResizeOptions } from '../di/resize';\nimport { injectWindow } from '../di/window';\n\nexport interface NgtResizeResult {\n readonly entries: ReadonlyArray<ResizeObserverEntry>;\n readonly x: number;\n readonly y: number;\n readonly width: number;\n readonly height: number;\n readonly top: number;\n readonly right: number;\n readonly bottom: number;\n readonly left: number;\n readonly dpr: number;\n}\n\n@Injectable()\nexport class NgtResize extends Observable<NgtResizeResult> {\n constructor() {\n const { nativeElement } = inject(ElementRef) as ElementRef<HTMLElement>;\n const zone = inject(NgZone);\n const document = inject(DOCUMENT);\n const window = injectWindow();\n const isSupport = injectResizeObserverSupport();\n const { box, offsetSize, scroll, debounce } = injectResizeOptions();\n\n let observer: ResizeObserver;\n let lastBounds: Omit<NgtResizeResult, 'entries' | 'dpr'>;\n let lastEntries: ResizeObserverEntry[] = [];\n\n const torndown$ = new Subject<void>();\n const scrollContainers: HTMLOrSVGElement[] | null = findScrollContainers(nativeElement, document.body);\n\n // set actual debounce values early, so effects know if they should react accordingly\n const scrollDebounce = debounce ? (typeof debounce === 'number' ? debounce : debounce.scroll) : null;\n\n const resizeDebounce = debounce ? (typeof debounce === 'number' ? debounce : debounce.resize) : null;\n\n const debounceAndDestroy = <T>(debounce: number | null): MonoTypeOperatorFunction<T> => {\n return pipe(debounceTime(debounce ?? 0), takeUntil(torndown$));\n };\n\n super((subscriber) => {\n if (!isSupport) {\n subscriber.error('ResizeObserver is not supported in your browser. Please use a polyfill');\n return;\n }\n\n zone.runOutsideAngular(() => {\n const callback = (entries: ResizeObserverEntry[]) => {\n lastEntries = entries;\n const { left, top, width, height, bottom, right, x, y } = nativeElement.getBoundingClientRect();\n\n const size = {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y,\n };\n\n if (nativeElement instanceof HTMLElement && offsetSize) {\n size.height = nativeElement.offsetHeight;\n size.width = nativeElement.offsetWidth;\n }\n\n Object.freeze(size);\n subscriber.next({\n entries,\n dpr: window.devicePixelRatio,\n ...size,\n });\n if (!areBoundsEqual(lastBounds || {}, size)) {\n lastBounds = size;\n }\n };\n\n const boundEntriesCallback = () => {\n callback(lastEntries);\n };\n\n observer = new ResizeObserver(callback);\n observer.observe(nativeElement, { box });\n if (scroll) {\n if (scrollContainers) {\n scrollContainers.forEach((scrollContainer) => {\n fromEvent(scrollContainer as HTMLElement, 'scroll', {\n capture: true,\n passive: true,\n })\n .pipe(debounceAndDestroy(scrollDebounce))\n .subscribe(boundEntriesCallback);\n });\n }\n\n fromEvent(window, 'scroll', {\n capture: true,\n passive: true,\n })\n .pipe(debounceAndDestroy(scrollDebounce))\n .subscribe(boundEntriesCallback);\n }\n\n fromEvent(window, 'resize').pipe(debounceAndDestroy(resizeDebounce)).subscribe(boundEntriesCallback);\n });\n\n return () => {\n if (observer) {\n observer.unobserve(nativeElement);\n observer.disconnect();\n }\n torndown$.next();\n torndown$.complete();\n };\n });\n\n return this.pipe(\n debounceTime(scrollDebounce || 0),\n share({\n connector: () => new ReplaySubject(1),\n resetOnRefCountZero: true,\n resetOnComplete: true,\n })\n );\n }\n}\n\n// Returns a list of scroll offsets\nfunction findScrollContainers(element: HTMLOrSVGElement | null, documentBody: HTMLElement): HTMLOrSVGElement[] {\n const result: HTMLOrSVGElement[] = [];\n if (!element || element === documentBody) return result;\n const { overflow, overflowX, overflowY } = window.getComputedStyle(element as HTMLElement);\n if ([overflow, overflowX, overflowY].some((prop) => prop === 'auto' || prop === 'scroll')) result.push(element);\n return [...result, ...findScrollContainers((element as HTMLElement).parentElement, documentBody)];\n}\n\n// Checks if element boundaries are equal\nconst keys: (keyof Omit<NgtResizeResult, 'entries' | 'dpr'>)[] = [\n 'x',\n 'y',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'width',\n 'height',\n];\nconst areBoundsEqual = (a: Omit<NgtResizeResult, 'entries' | 'dpr'>, b: Omit<NgtResizeResult, 'entries' | 'dpr'>) =>\n keys.every((key) => a[key] === b[key]);\n","import * as THREE from 'three';\nimport type { NgtObjectMap } from '../types';\n\nexport function buildGraph(object: THREE.Object3D): NgtObjectMap {\n const data: NgtObjectMap = { nodes: {}, materials: {} };\n if (object) {\n object.traverse((obj: THREE.Object3D) => {\n if (obj.name) data.nodes[obj.name] = obj;\n if ('material' in obj && !data.materials[((obj as THREE.Mesh).material as THREE.Material).name]) {\n data.materials[((obj as THREE.Mesh).material as THREE.Material).name] = (obj as THREE.Mesh)\n .material as THREE.Material;\n }\n });\n }\n return data;\n}\n","import { Injectable } from '@angular/core';\nimport { catchError, forkJoin, from, map, Observable, of, ReplaySubject, retry, share, tap } from 'rxjs';\nimport { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';\nimport type {\n NgtAnyConstructor,\n NgtBranchingReturn,\n NgtLoaderExtensions,\n NgtLoaderResult,\n NgtObjectMap,\n} from '../types';\nimport { buildGraph } from '../utils/build-graph';\n\n@Injectable({ providedIn: 'root' })\nexport class NgtLoader {\n private readonly cached = new Map();\n\n use<TReturnType, TUrl extends string | string[]>(\n loadConstructor: NgtAnyConstructor<NgtLoaderResult<TReturnType>>,\n input: TUrl,\n extensions?: NgtLoaderExtensions,\n onProgress?: (event: ProgressEvent) => void\n ): TUrl extends string[]\n ? Observable<Array<NgtBranchingReturn<TReturnType, GLTF, GLTF & NgtObjectMap>>>\n : Observable<NgtBranchingReturn<TReturnType, GLTF, GLTF & NgtObjectMap>> {\n const urls = Array.isArray(input) ? input : [input];\n const loader = new loadConstructor();\n if (extensions) {\n extensions(loader);\n }\n\n const observables$ = urls.map((url) => {\n if (!this.cached.has(url)) {\n this.cached.set(\n url,\n from(loader.loadAsync(url, onProgress)).pipe(\n tap((data) => {\n if (data.scene) {\n Object.assign(data, buildGraph(data.scene));\n }\n }),\n retry(2),\n catchError((err) => {\n console.error(`[NgtLoader]: Error loading ${url}: ${err.message}`);\n return of(null);\n }),\n share({\n connector: () => new ReplaySubject(1),\n resetOnComplete: true,\n resetOnRefCountZero: true,\n resetOnError: true,\n })\n )\n );\n }\n\n return this.cached.get(url);\n });\n\n return forkJoin(observables$).pipe(map((results) => (Array.isArray(input) ? results : results[0])));\n }\n\n destroy() {\n this.cached.clear();\n }\n}\n","import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport * as THREE from 'three';\nimport { createPointerEvents } from './events';\nimport { provideInstanceRef } from './instance';\nimport { NgtResize, NgtResizeResult } from './services/resize';\nimport { NgtComponentStore } from './stores/component-store';\nimport { NgtStore, rootStateMap } from './stores/store';\nimport type { NgtCanvasInputs, NgtDomEvent, NgtDpr, NgtObservableInput, NgtState, NgtVector3 } from './types';\nimport { NgtLoader } from './services/loader';\n\n@Component({\n selector: 'ngt-canvas-container',\n standalone: true,\n template: '<ng-content></ng-content>',\n providers: [NgtResize],\n styles: [\n `\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n `,\n ],\n})\nexport class NgtCanvasContainer {\n @Output() resize = inject(NgtResize) as Observable<NgtResizeResult>;\n}\n\n@Component({\n selector: 'ngt-canvas',\n standalone: true,\n template: `\n <ngt-canvas-container (resize)=\"onResize($event)\">\n <canvas #glCanvas style=\"display: block\">\n <ng-container *ngIf=\"isConfigured\" [ngTemplateOutlet]=\"canvasContent\"></ng-container>\n <ng-content></ng-content>\n </canvas>\n </ngt-canvas-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n imports: [NgtCanvasContainer, NgIf, NgTemplateOutlet, AsyncPipe],\n providers: [NgtStore, provideInstanceRef(NgtCanvas, (canvas) => canvas.sceneRef)],\n})\nexport class NgtCanvas extends NgtComponentStore<NgtCanvasInputs> implements OnInit, OnDestroy {\n @HostBinding('class.ngt-canvas') readonly hostClass = true;\n\n @HostBinding('style.pointerEvents') get pointerEvents() {\n return this.read((s) => s.eventSource) !== this.host.nativeElement ? 'none' : 'auto';\n }\n\n @Input() set linear(linear: NgtObservableInput<boolean>) {\n this.write({ linear });\n }\n\n @Input() set legacy(legacy: NgtObservableInput<boolean>) {\n this.write({ legacy });\n }\n\n @Input() set flat(flat: NgtObservableInput<boolean>) {\n this.write({ flat });\n }\n\n @Input() set orthographic(orthographic: NgtObservableInput<boolean>) {\n this.write({ orthographic });\n }\n\n @Input() set frameloop(frameloop: NgtObservableInput<'always' | 'demand' | 'never'>) {\n this.write({ frameloop });\n }\n\n @Input() set dpr(dpr: NgtObservableInput<NgtDpr>) {\n this.write({ dpr });\n }\n\n @Input() set raycaster(raycaster: Partial<THREE.Raycaster>) {\n this.write({ raycaster });\n }\n\n @Input() set shadows(shadows: boolean | Partial<THREE.WebGLShadowMap>) {\n this.write({\n shadows: typeof shadows === 'object' ? (shadows as Partial<THREE.WebGLShadowMap>) : shadows,\n });\n }\n\n @Input() set camera(camera: NgtCanvasInputs['camera']) {\n this.write({ camera });\n }\n\n @Input() set gl(gl: NgtCanvasInputs['gl']) {\n this.write({ gl });\n }\n\n @Input() set eventSource(eventSource: NgtCanvasInputs['eventSource']) {\n this.write({ eventSource });\n }\n\n @Input() set eventPrefix(eventPrefix: NgtCanvasInputs['eventPrefix']) {\n this.write({ eventPrefix });\n }\n\n @Input() set lookAt(lookAt: NgtObservableInput<NgtVector3>) {\n this.write({ lookAt });\n }\n\n @Input() set performance(performance: NgtCanvasInputs['performance']) {\n this.write({ performance });\n }\n\n @Output() created = new EventEmitter<NgtState>();\n @Output() canvasPointerMissed = new EventEmitter();\n\n @ViewChild('glCanvas', { static: true })\n glCanvas!: ElementRef<HTMLCanvasElement>;\n\n @ContentChild(TemplateRef, { static: true })\n canvasContent!: TemplateRef<unknown>;\n\n private readonly zone = inject(NgZone);\n private readonly loader = inject(NgtLoader);\n private readonly store = inject(NgtStore, { self: true });\n\n private readonly host = inject(ElementRef) as ElementRef<HTMLElement>;\n\n get sceneRef() {\n return this.store.read((s) => s.sceneRef);\n }\n\n get isConfigured() {\n return this.store.isConfigured;\n }\n\n override initialize() {\n super.initialize();\n this.write({\n shadows: false,\n linear: false,\n flat: false,\n legacy: false,\n orthographic: false,\n frameloop: 'always',\n dpr: [1, 2],\n events: createPointerEvents,\n });\n }\n\n ngOnInit() {\n this.zone.runOutsideAngular(() => {\n if (!this.eventSource) {\n this.eventSource = this.host.nativeElement;\n }\n\n if (this.canvasPointerMissed.observed) {\n // update pointerMissed event\n this.store.write({\n onPointerMissed: (event: MouseEvent) => {\n // go back into angular zone\n this.zone.run(() => {\n this.canvasPointerMissed.emit(event);\n });\n },\n });\n }\n\n // set rootStateMap\n rootStateMap.set(this.glCanvas.nativeElement, this.store.read);\n\n // setup canvas state\n this.store.init();\n\n this.store.onReady(() => {\n const state = this.store.read();\n const inputs = this.read();\n\n // canvas is ready\n this.store.write((s) => ({ internal: { ...s.internal, active: true } }));\n\n // Connect to eventsource\n state.events.connect?.(\n inputs.eventSource instanceof ElementRef ? inputs.eventSource.nativeElement : inputs.eventSource\n );\n\n // Set up compute function\n if (inputs.eventPrefix) {\n state.setEvents({\n compute: (event, stateGetter) => {\n const innerState = stateGetter();\n const x = event[(inputs.eventPrefix + 'X') as keyof NgtDomEvent] as number;\n const y = event[(inputs.eventPrefix + 'Y') as keyof NgtDomEvent] as number;\n innerState.pointer.set(\n (x / innerState.size.width) * 2 - 1,\n -(y / innerState.size.height) * 2 + 1\n );\n innerState.raycaster.setFromCamera(innerState.pointer, innerState.camera);\n },\n });\n }\n\n if (this.created.observed) {\n this.zone.run(() => {\n requestAnimationFrame(() => {\n this.created.emit(this.store.read());\n });\n });\n }\n });\n });\n }\n\n onResize(resizeResult: NgtResizeResult) {\n this.zone.runOutsideAngular(() => {\n const { width, height } = resizeResult;\n if (width > 0 && height > 0) {\n if (!this.store.isInit) {\n this.store.init();\n }\n this.store.configure(this.read(), this.glCanvas.nativeElement);\n }\n });\n }\n\n override ngOnDestroy() {\n this.loader.destroy();\n super.ngOnDestroy();\n }\n}\n","import {\n Directive,\n EmbeddedViewRef,\n inject,\n InjectionToken,\n InjectOptions,\n Injector,\n Input,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { NgtAnyCtor } from '../types';\n\nexport const NGT_ARGS = new InjectionToken<unknown[]>('NgtArgs');\n\nexport function injectArgs<TCtor extends NgtAnyCtor = NgtAnyCtor>(): ConstructorParameters<TCtor>;\nexport function injectArgs<TCtor extends NgtAnyCtor = NgtAnyCtor>(\n options: InjectOptions & { optional?: false }\n): ConstructorParameters<TCtor>;\nexport function injectArgs<TCtor extends NgtAnyCtor = NgtAnyCtor>(\n options: InjectOptions & { optional?: true }\n): ConstructorParameters<TCtor> | null;\nexport function injectArgs<TCtor extends NgtAnyCtor = NgtAnyCtor>(options: InjectOptions = {}) {\n return inject<ConstructorParameters<TCtor>>(NGT_ARGS, options);\n}\n\n@Directive({\n selector: '[args]',\n standalone: true,\n})\nexport class NgtArgs {\n private readonly templateRef = inject(TemplateRef);\n private readonly vcr = inject(ViewContainerRef);\n\n private view?: EmbeddedViewRef<any>;\n\n @Input() set args(args: unknown[]) {\n if (this.view) {\n this.view.destroy();\n }\n\n this.view = this.vcr.createEmbeddedView(\n this.templateRef,\n {},\n { injector: Injector.create({ providers: [{ provide: NGT_ARGS, useValue: args }] }) }\n );\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, Inject, Optional, Self } from '@angular/core';\nimport { map, merge, takeUntil } from 'rxjs';\nimport { NgtInstance } from '../instance';\n\n@Directive({\n selector: '[ngtCursor]',\n standalone: true,\n exportAs: 'ngtCursor',\n})\nexport class NgtCursor {\n constructor(\n @Optional()\n @Self()\n instance: NgtInstance,\n @Inject(DOCUMENT) document: Document\n ) {\n if (!instance) return;\n merge(instance.pointerover.pipe(map(() => true)), instance.pointerout.pipe(map(() => false)))\n .pipe(takeUntil(instance.destroy$))\n .subscribe((hovered) => {\n document.body.style.cursor = hovered ? 'pointer' : 'auto';\n });\n }\n}\n","import { NgForOf } from '@angular/common';\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[ngFor][ngForRepeat]',\n standalone: true,\n})\nexport class NgtRepeat extends NgForOf<number> {\n @Input() set ngForRepeat(count: number) {\n this.ngForOf = Number.isInteger(count) ? Array.from({ length: count }, (_, i) => i) : [];\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'pi', standalone: true })\nexport class NgtPiPipe implements PipeTransform {\n transform(value: number): number {\n return value * Math.PI;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'math', standalone: true })\nexport class NgtMathPipe implements PipeTransform {\n transform(\n value: number | number[],\n keyOfMath: keyof Omit<Math, 'PI' | 'E' | 'LN2' | 'LOG2E' | 'LN10' | 'LOG10E' | 'SQRT1_2' | 'SQRT2' | 'random'>\n ): ReturnType<Extract<Math[typeof keyOfMath], 'string'>> {\n const params = Array.isArray(value) ? value : [value];\n return (Math[keyOfMath] as unknown as (...args: number[]) => number)(...params) as ReturnType<\n Extract<Math[typeof keyOfMath], 'string'>\n >;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'radian', standalone: true })\nexport class NgtRadianPipe implements PipeTransform {\n transform(degree: number): number {\n return (degree * Math.PI) / 180;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as THREE from 'three';\n\n@Pipe({ name: 'side', standalone: true })\nexport class NgtSidePipe implements PipeTransform {\n transform(side: 'front' | 'back' | 'double'): THREE.Side {\n switch (side) {\n case 'front':\n return THREE.FrontSide;\n case 'back':\n return THREE.BackSide;\n case 'double':\n return THREE.DoubleSide;\n }\n }\n}\n","export function capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n","import { inject, NgZone } from '@angular/core';\nimport { isObservable, Subscription } from 'rxjs';\nimport { injectInstance, injectInstanceRef, NGT_PROXY_INSTANCE, NgtInstance } from '../instance';\nimport { tapEffect } from '../stores/component-store';\nimport { NgtStore } from '../stores/store';\nimport { NgtAnyFunction, NgtAttachFunction, NgtStateFactory } from '../types';\nimport { applyProps } from './apply-props';\nimport { capitalize } from './capitalize';\nimport { prepare } from './instance';\n\nexport function proxify<T extends object>(\n instance: T,\n proxifyOptions: {\n attach?: string | string[] | NgtAttachFunction<T>;\n created?: (instance: T, stateFactory: NgtStateFactory, ngtInstance: NgtInstance) => void;\n primitive?: boolean;\n } = {}\n): T {\n const ngtInstance = injectInstance<T>({ host: true });\n const store = inject(NgtStore);\n const zone = inject(NgZone);\n const parentInstance = injectInstanceRef({ skipSelf: true, optional: true });\n\n return zone.runOutsideAngular(() => {\n // prep the instance w/ local state\n instance = prepare(\n instance,\n store.read,\n store.rootStateFactory,\n parentInstance?.(),\n ngtInstance.instanceValue ? ngtInstance.instanceRef : undefined,\n !!proxifyOptions.primitive\n );\n\n let storeReadySubscription: Subscription;\n const newValueSubscriptionMap = new Map<string, () => void>();\n\n function setProp(obj: T, prop: string, newValue: any): (() => void) | undefined {\n const capitalizedProp = `set${capitalize(prop)}` as keyof T;\n\n if (isObservable(newValue)) {\n const sub = newValue.subscribe((val) => {\n if (obj[capitalizedProp] && typeof obj[capitalizedProp] === 'function') {\n (obj[capitalizedProp] as NgtAnyFunction)(val);\n } else {\n applyProps(obj, { [prop]: val });\n }\n\n ngtInstance.write({ [prop]: val });\n });\n return () => sub.unsubscribe();\n }\n\n if (obj[capitalizedProp] && typeof obj[capitalizedProp] === 'function') {\n (obj[capitalizedProp] as NgtAnyFunction)(newValue);\n } else {\n applyProps(obj, { [prop]: newValue });\n }\n ngtInstance.write({ [prop]: newValue });\n return;\n }\n\n const handler: ProxyHandler<T> = {\n get(target: T, p: string | symbol, receiver: any): any {\n if (p === 'instanceRef') return ngtInstance.instanceRef;\n if (p === 'instance') return ngtInstance;\n if (p === NGT_PROXY_INSTANCE) return target;\n\n const capitalizedProp = `get${capitalize(p as string)}`;\n if (target[capitalizedProp as keyof T] && typeof target[capitalizedProp as keyof T] === 'function') {\n return (target[capitalizedProp as keyof T] as Function)();\n }\n\n return Reflect.get(target, p, receiver);\n },\n set(target: T, p: string | symbol, newValue: any, receiver: any): boolean {\n const prop = p as string;\n\n if (storeReadySubscription) storeReadySubscription.unsubscribe();\n if (newValueSubscriptionMap.has(prop)) newValueSubscriptionMap.get(prop)!();\n\n // Angular sets this property\n if (p === '__ngContext__') return Reflect.set(target, p, newValue, receiver);\n\n return zone.runOutsideAngular(() => {\n // TODO: figure out what else we need to handle\n // we should handle if newValue is an Observable as well\n if (store.read((s) => s.ready)) {\n const cleanUp = setProp(instance, prop, newValue);\n if (cleanUp) newValueSubscriptionMap.set(prop, cleanUp);\n } else {\n storeReadySubscription = store.onReady(() => setProp(instance, prop, newValue));\n }\n\n // schedule updateCallback on next event loop\n queueMicrotask(() => {\n if (ngtInstance.updateCallback) ngtInstance.updateCallback(instance);\n });\n\n return true;\n });\n },\n };\n\n ngtInstance.effect<void>(\n tapEffect(() => () => {\n if (storeReadySubscription) storeReadySubscription.unsubscribe();\n newValueSubscriptionMap.forEach((cleanUp) => cleanUp());\n })\n )();\n\n const proxied = new Proxy(instance, handler);\n\n if (proxifyOptions.attach) ngtInstance.attach = proxifyOptions.attach;\n if (proxifyOptions.created) proxifyOptions.created(proxied, store.read, ngtInstance);\n\n ngtInstance.instanceRef.set(proxied);\n\n return proxied;\n });\n}\n","/**\n * main exports\n */\nexport * from './lib/canvas';\nexport * from './lib/types';\nexport * from './lib/instance';\n/**\n * services\n */\nexport * from './lib/services/loader';\nexport * from './lib/services/resize';\n/**\n * stores\n */\nexport * from './lib/stores/store';\nexport * from './lib/stores/component-store';\n/**\n * directives\n */\nexport * from './lib/directives/args';\nexport * from './lib/directives/cursor';\nexport * from './lib/directives/repeat';\n/**\n * pipes\n */\nexport * from './lib/pipes/pi';\nexport * from './lib/pipes/math';\nexport * from './lib/pipes/radian';\nexport * from './lib/pipes/side';\n/**\n * utilities\n */\nexport * from './lib/utils/proxy';\nexport * from './lib/utils/loop';\n/**\n * resize\n */\nexport * from './lib/di/resize';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export * from './lib/box-geometry/box-geometry';
|
|
2
|
+
export * from './lib/capsule-geometry/capsule-geometry';
|
|
3
|
+
export * from './lib/circle-geometry/circle-geometry';
|
|
4
|
+
export * from './lib/cone-geometry/cone-geometry';
|
|
5
|
+
export * from './lib/cylinder-geometry/cylinder-geometry';
|
|
6
|
+
export * from './lib/dodecahedron-geometry/dodecahedron-geometry';
|
|
7
|
+
export * from './lib/edges-geometry/edges-geometry';
|
|
8
|
+
export * from './lib/extrude-geometry/extrude-geometry';
|
|
9
|
+
export * from './lib/icosahedron-geometry/icosahedron-geometry';
|
|
10
|
+
export * from './lib/lathe-geometry/lathe-geometry';
|
|
11
|
+
export * from './lib/octahedron-geometry/octahedron-geometry';
|
|
12
|
+
export * from './lib/plane-geometry/plane-geometry';
|
|
13
|
+
export * from './lib/polyhedron-geometry/polyhedron-geometry';
|
|
14
|
+
export * from './lib/ring-geometry/ring-geometry';
|
|
15
|
+
export * from './lib/shape-geometry/shape-geometry';
|
|
16
|
+
export * from './lib/sphere-geometry/sphere-geometry';
|
|
17
|
+
export * from './lib/tetrahedron-geometry/tetrahedron-geometry';
|
|
18
|
+
export * from './lib/torus-geometry/torus-geometry';
|
|
19
|
+
export * from './lib/torus-knot-geometry/torus-knot-geometry';
|
|
20
|
+
export * from './lib/tube-geometry/tube-geometry';
|
|
21
|
+
export * from './lib/wireframe-geometry/wireframe-geometry';
|
|
22
|
+
export * from './lib/buffer-geometry/buffer-geometry';
|
|
23
|
+
export * from './lib/instanced-buffer-geometry/instanced-buffer-geometry';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "angular-three";
|
|
4
|
+
export declare class NgtBoxGeometry extends THREE.BoxGeometry {
|
|
5
|
+
constructor();
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtBoxGeometry, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtBoxGeometry, "ngt-box-geometry", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.NgtInstance; inputs: {}; outputs: {}; }]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "angular-three";
|
|
4
|
+
export declare class NgtBufferGeometry extends THREE.BufferGeometry {
|
|
5
|
+
constructor();
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtBufferGeometry, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtBufferGeometry, "ngt-buffer-geometry", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.NgtInstance; inputs: {}; outputs: {}; }]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "angular-three";
|
|
4
|
+
export declare class NgtCapsuleGeometry extends THREE.CapsuleGeometry {
|
|
5
|
+
constructor();
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtCapsuleGeometry, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtCapsuleGeometry, "ngt-capsule-geometry", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.NgtInstance; inputs: {}; outputs: {}; }]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "angular-three";
|
|
4
|
+
export declare class NgtCircleGeometry extends THREE.CircleGeometry {
|
|
5
|
+
constructor();
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtCircleGeometry, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtCircleGeometry, "ngt-circle-geometry", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.NgtInstance; inputs: {}; outputs: {}; }]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "angular-three";
|
|
4
|
+
export declare class NgtConeGeometry extends THREE.ConeGeometry {
|
|
5
|
+
constructor();
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgtConeGeometry, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgtConeGeometry, "ngt-cone-geometry", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.NgtInstance; inputs: {}; outputs: {}; }]>;
|
|
8
|
+
}
|