angular-three 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +12 -2
- package/esm2020/lib/canvas.mjs +227 -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/events.mjs +53 -0
- package/esm2020/lib/instance.mjs +358 -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 +68 -0
- package/esm2020/lights/lib/ambient-light-probe/ambient-light-probe.mjs +69 -0
- package/esm2020/lights/lib/directional-light/directional-light.mjs +69 -0
- package/esm2020/lights/lib/hemisphere-light/hemisphere-light.mjs +70 -0
- package/esm2020/lights/lib/hemisphere-light-probe/hemisphere-light-probe.mjs +71 -0
- package/esm2020/lights/lib/light-probe/light-probe.mjs +69 -0
- package/esm2020/lights/lib/point-light/point-light.mjs +71 -0
- package/esm2020/lights/lib/rect-area-light/rect-area-light.mjs +71 -0
- package/esm2020/lights/lib/spot-light/spot-light.mjs +74 -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 +57 -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 +49 -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 +200 -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 +602 -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 +641 -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 +2327 -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 +200 -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 +602 -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 +641 -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 +2344 -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 +11 -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/events.d.ts +2 -0
- package/lib/instance.d.ts +81 -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 +49 -0
- package/lights/lib/ambient-light-probe/ambient-light-probe.d.ts +50 -0
- package/lights/lib/directional-light/directional-light.d.ts +50 -0
- package/lights/lib/hemisphere-light/hemisphere-light.d.ts +51 -0
- package/lights/lib/hemisphere-light-probe/hemisphere-light-probe.d.ts +52 -0
- package/lights/lib/light-probe/light-probe.d.ts +50 -0
- package/lights/lib/point-light/point-light.d.ts +52 -0
- package/lights/lib/rect-area-light/rect-area-light.d.ts +52 -0
- package/lights/lib/spot-light/spot-light.d.ts +55 -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 +41 -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 +17 -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
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { checkNeedsUpdate } from './check-update';
|
|
3
|
+
import { getInstanceLocalState } from './get-instance-local-state';
|
|
4
|
+
import { invalidateInstance } from './instance';
|
|
5
|
+
import { is } from './is';
|
|
6
|
+
const DEFAULT = '__default';
|
|
7
|
+
export function diffProps(instance, props, previousProps = {}, remove = false) {
|
|
8
|
+
const localState = getInstanceLocalState(instance) || {};
|
|
9
|
+
const propsEntries = Object.entries(props);
|
|
10
|
+
const changes = [];
|
|
11
|
+
// Catch removed props, prepend them, so they can be reset or removed
|
|
12
|
+
if (remove) {
|
|
13
|
+
const previousKeys = Object.keys(previousProps);
|
|
14
|
+
for (const previousKey of previousKeys) {
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
if (!Object.hasOwn(props, previousKey)) {
|
|
17
|
+
propsEntries.unshift([previousKey, DEFAULT + 'remove']);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
for (const [propKey, propValue] of propsEntries) {
|
|
22
|
+
if (is.equ(propValue, previousProps[propKey]))
|
|
23
|
+
continue;
|
|
24
|
+
changes.push([propKey, propValue]);
|
|
25
|
+
}
|
|
26
|
+
const memoized = { ...props };
|
|
27
|
+
if (localState.memoized && localState.memoized['args']) {
|
|
28
|
+
memoized['args'] = localState.memoized['args'];
|
|
29
|
+
}
|
|
30
|
+
if (localState.memoized && localState.memoized['attach']) {
|
|
31
|
+
memoized['attach'] = localState.memoized['attach'] || localState.attach;
|
|
32
|
+
}
|
|
33
|
+
return { changes, memoized };
|
|
34
|
+
}
|
|
35
|
+
export function applyProps(instance, props) {
|
|
36
|
+
// props is empty
|
|
37
|
+
if (!Object.keys(props).length)
|
|
38
|
+
return instance;
|
|
39
|
+
// Filter equals, events and reserved props
|
|
40
|
+
const localState = getInstanceLocalState(instance) || {};
|
|
41
|
+
const rootState = localState.stateFactory?.();
|
|
42
|
+
const { changes, memoized } = diffProps(instance, props);
|
|
43
|
+
const instanceHandlers = localState.eventCount;
|
|
44
|
+
if (getInstanceLocalState(instance)) {
|
|
45
|
+
getInstanceLocalState(instance).memoized = memoized;
|
|
46
|
+
}
|
|
47
|
+
for (let i = 0; i < changes.length; i++) {
|
|
48
|
+
const key = changes[i][0];
|
|
49
|
+
const currentInstance = instance;
|
|
50
|
+
const targetProp = currentInstance[key];
|
|
51
|
+
let value = changes[i][1];
|
|
52
|
+
if (is.ref(value)) {
|
|
53
|
+
value = value.value;
|
|
54
|
+
}
|
|
55
|
+
if (value === DEFAULT + 'remove') {
|
|
56
|
+
if (targetProp && targetProp.constructor) {
|
|
57
|
+
// use the prop constructor to find the default it should be
|
|
58
|
+
value = new targetProp.constructor(...(memoized['args'] ?? []));
|
|
59
|
+
}
|
|
60
|
+
else if (currentInstance.constructor) {
|
|
61
|
+
const dummyInstance = new currentInstance.constructor(...(getInstanceLocalState(currentInstance)?.memoized?.['args'] || []));
|
|
62
|
+
value = dummyInstance[targetProp];
|
|
63
|
+
// destroy the instance
|
|
64
|
+
if (dummyInstance.dispose)
|
|
65
|
+
dummyInstance.dispose();
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
value = 0;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Special treatment for objects with support for set/copy, and layers
|
|
72
|
+
if (targetProp && targetProp['set'] && (targetProp['copy'] || targetProp instanceof THREE.Layers)) {
|
|
73
|
+
const isColor = targetProp instanceof THREE.Color;
|
|
74
|
+
// If value is an array
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
if (targetProp['fromArray'])
|
|
77
|
+
targetProp['fromArray'](value);
|
|
78
|
+
else
|
|
79
|
+
targetProp['set'](...value);
|
|
80
|
+
}
|
|
81
|
+
// Test again target.copy(class) next ...
|
|
82
|
+
else if (targetProp['copy'] &&
|
|
83
|
+
value &&
|
|
84
|
+
value.constructor &&
|
|
85
|
+
targetProp.constructor.name === value.constructor.name) {
|
|
86
|
+
targetProp['copy'](value);
|
|
87
|
+
if (!is.supportColorManagement() && !rootState.linear && isColor) {
|
|
88
|
+
targetProp['convertSRGBToLinear']();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// If nothing else fits, just set the single value, ignore undefined
|
|
92
|
+
// https://github.com/pmndrs/react-three-fiber/issues/274
|
|
93
|
+
else if (value !== undefined) {
|
|
94
|
+
const isColor = targetProp instanceof THREE.Color;
|
|
95
|
+
// Allow setting array scalars
|
|
96
|
+
if (!isColor && targetProp['setScalar'])
|
|
97
|
+
targetProp['setScalar'](value);
|
|
98
|
+
// Layers have no copy function, we must therefore copy the mask property
|
|
99
|
+
else if (targetProp instanceof THREE.Layers && value instanceof THREE.Layers)
|
|
100
|
+
targetProp.mask = value.mask;
|
|
101
|
+
// Otherwise just set ...
|
|
102
|
+
else
|
|
103
|
+
targetProp['set'](value);
|
|
104
|
+
// For versions of three which don't support THREE.ColorManagement,
|
|
105
|
+
// Auto-convert sRGB colors
|
|
106
|
+
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
107
|
+
if (!is.supportColorManagement() && !rootState.linear && isColor)
|
|
108
|
+
targetProp.convertSRGBToLinear();
|
|
109
|
+
}
|
|
110
|
+
// Else, just overwrite the value
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
currentInstance[key] = value;
|
|
114
|
+
// Auto-convert sRGB textures, for now ...
|
|
115
|
+
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
116
|
+
if (!rootState?.linear && currentInstance[key] instanceof THREE.Texture) {
|
|
117
|
+
currentInstance[key]['encoding'] = THREE.sRGBEncoding;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
checkNeedsUpdate(targetProp);
|
|
121
|
+
invalidateInstance(instance);
|
|
122
|
+
}
|
|
123
|
+
if (localState.parentRef &&
|
|
124
|
+
rootState.internal &&
|
|
125
|
+
instance['raycast'] &&
|
|
126
|
+
instanceHandlers !== localState.eventCount) {
|
|
127
|
+
// Pre-emptively remove the instance from the interaction manager
|
|
128
|
+
rootState.removeInteraction(instance['uuid']);
|
|
129
|
+
// Add the instance to the interaction manager only when it has handlers
|
|
130
|
+
if (localState.eventCount)
|
|
131
|
+
rootState.addInteraction(instance);
|
|
132
|
+
}
|
|
133
|
+
return instance;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvdXRpbHMvYXBwbHktcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDO0FBRTVCLE1BQU0sVUFBVSxTQUFTLENBQ3JCLFFBQW1CLEVBQ25CLEtBQW1CLEVBQ25CLGdCQUE4QixFQUFFLEVBQ2hDLE1BQU0sR0FBRyxLQUFLO0lBRWQsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUssRUFBNEIsQ0FBQztJQUNwRixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUM7SUFFcEQscUVBQXFFO0lBQ3JFLElBQUksTUFBTSxFQUFFO1FBQ1IsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRCxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRTtZQUNwQyxhQUFhO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFO2dCQUNwQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FB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Q2pCLFFBQXlCLENBQUMsU0FBUyxDQUFDO1FBQ3JDLGdCQUFnQixLQUFLLFVBQVUsQ0FBQyxVQUFVLEVBQzVDO1FBQ0UsaUVBQWlFO1FBQ2pFLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBRSxRQUF5QixDQUFDLE1BQU0sQ0FBVyxDQUFDLENBQUM7UUFDMUUsd0VBQXdFO1FBQ3hFLElBQUksVUFBVSxDQUFDLFVBQVU7WUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQXFDLENBQUMsQ0FBQztLQUM5RjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueUNvbnN0cnVjdG9yLCBOZ3RBbnlGdW5jdGlvbiwgTmd0QW55UmVjb3JkLCBOZ3RJbnN0YW5jZUxvY2FsU3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjaGVja05lZWRzVXBkYXRlIH0gZnJvbSAnLi9jaGVjay11cGRhdGUnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VMb2NhbFN0YXRlIH0gZnJvbSAnLi9nZXQtaW5zdGFuY2UtbG9jYWwtc3RhdGUnO1xuaW1wb3J0IHsgaW52YWxpZGF0ZUluc3RhbmNlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5jb25zdCBERUZBVUxUID0gJ19fZGVmYXVsdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmUHJvcHM8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0PihcbiAgICBpbnN0YW5jZTogVEluc3RhbmNlLFxuICAgIHByb3BzOiBOZ3RBbnlSZWNvcmQsXG4gICAgcHJldmlvdXNQcm9wczogTmd0QW55UmVjb3JkID0ge30sXG4gICAgcmVtb3ZlID0gZmFsc2Vcbikge1xuICAgIGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRJbnN0YW5jZUxvY2FsU3RhdGUoaW5zdGFuY2UpIHx8ICh7fSBhcyBOZ3RJbnN0YW5jZUxvY2FsU3RhdGUpO1xuICAgIGNvbnN0IHByb3BzRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzKTtcbiAgICBjb25zdCBjaGFuZ2VzOiBba2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duXVtdID0gW107XG5cbiAgICAvLyBDYXRjaCByZW1vdmVkIHByb3BzLCBwcmVwZW5kIHRoZW0sIHNvIHRoZXkgY2FuIGJlIHJlc2V0IG9yIHJlbW92ZWRcbiAgICBpZiAocmVtb3ZlKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzS2V5cyA9IE9iamVjdC5rZXlzKHByZXZpb3VzUHJvcHMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByZXZpb3VzS2V5IG9mIHByZXZpb3VzS2V5cykge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKHByb3BzLCBwcmV2aW91c0tleSkpIHtcbiAgICAgICAgICAgICAgICBwcm9wc0VudHJpZXMudW5zaGlmdChbcHJldmlvdXNLZXksIERFRkFVTFQgKyAncmVtb3ZlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcbiAgICAgICAgaWYgKGlzLmVxdShwcm9wVmFsdWUsIHByZXZpb3VzUHJvcHNbcHJvcEtleV0pKSBjb250aW51ZTtcbiAgICAgICAgY2hhbmdlcy5wdXNoKFtwcm9wS2V5LCBwcm9wVmFsdWVdKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vaXplZDogTmd0QW55UmVjb3JkID0geyAuLi5wcm9wcyB9O1xuICAgIGlmIChsb2NhbFN0YXRlLm1lbW9pemVkICYmIGxvY2FsU3RhdGUubWVtb2l6ZWRbJ2FyZ3MnXSkge1xuICAgICAgICBtZW1vaXplZFsnYXJncyddID0gbG9jYWxTdGF0ZS5tZW1vaXplZFsnYXJncyddO1xuICAgIH1cblxuICAgIGlmIChsb2NhbFN0YXRlLm1lbW9pemVkICYmIGxvY2FsU3RhdGUubWVtb2l6ZWRbJ2F0dGFjaCddKSB7XG4gICAgICAgIG1lbW9pemVkWydhdHRhY2gnXSA9IGxvY2FsU3RhdGUubWVtb2l6ZWRbJ2F0dGFjaCddIHx8IGxvY2FsU3RhdGUuYXR0YWNoO1xuICAgIH1cblxuICAgIHJldHVybiB7IGNoYW5nZXMsIG1lbW9pemVkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVByb3BzPFRJbnN0YW5jZSBleHRlbmRzIG9iamVjdD4oaW5zdGFuY2U6IFRJbnN0YW5jZSwgcHJvcHM6IE5ndEFueVJlY29yZCk6IFRJbnN0YW5jZSB7XG4gICAgLy8gcHJvcHMgaXMgZW1wdHlcbiAgICBpZiAoIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHJldHVybiBpbnN0YW5jZTtcblxuICAgIC8vIEZpbHRlciBlcXVhbHMsIGV2ZW50cyBhbmQgcmVzZXJ2ZWQgcHJvcHNcbiAgICBjb25zdCBsb2NhbFN0YXRlID0gZ2V0SW5zdGFuY2VMb2NhbFN0YXRlKGluc3RhbmNlKSB8fCAoe30gYXMgTmd0SW5zdGFuY2VMb2NhbFN0YXRlKTtcbiAgICBjb25zdCByb290U3RhdGUgPSBsb2NhbFN0YXRlLnN0YXRlRmFjdG9yeT8uKCk7XG4gICAgY29uc3QgeyBjaGFuZ2VzLCBtZW1vaXplZCB9ID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG4gICAgY29uc3QgaW5zdGFuY2VIYW5kbGVycyA9IGxvY2FsU3RhdGUuZXZlbnRDb3VudDtcblxuICAgIGlmIChnZXRJbnN0YW5jZUxvY2FsU3RhdGUoaW5zdGFuY2UpKSB7XG4gICAgICAgIGdldEluc3RhbmNlTG9jYWxTdGF0ZShpbnN0YW5jZSkhLm1lbW9pemVkID0gbWVtb2l6ZWQ7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGNoYW5nZXNbaV1bMF07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICBjb25zdCB0YXJnZXRQcm9wID0gKGN1cnJlbnRJbnN0YW5jZSBhcyBOZ3RBbnlSZWNvcmQpW2tleV0gYXMgTmd0QW55UmVjb3JkO1xuICAgICAgICBsZXQgdmFsdWUgPSBjaGFuZ2VzW2ldWzFdO1xuXG4gICAgICAgIGlmIChpcy5yZWYodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBERUZBVUxUICsgJ3JlbW92ZScpIHtcbiAgICAgICAgICAgIGlmICh0YXJnZXRQcm9wICYmIHRhcmdldFByb3AuY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIHByb3AgY29uc3RydWN0b3IgdG8gZmluZCB0aGUgZGVmYXVsdCBpdCBzaG91bGQgYmVcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyAodGFyZ2V0UHJvcC5jb25zdHJ1Y3RvciBhcyBOZ3RBbnlDb25zdHJ1Y3RvcikoLi4uKChtZW1vaXplZFsnYXJncyddIGFzIHVua25vd25bXSkgPz8gW10pKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudEluc3RhbmNlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZHVtbXlJbnN0YW5jZSA9IG5ldyAoY3VycmVudEluc3RhbmNlLmNvbnN0cnVjdG9yIGFzIE5ndEFueUNvbnN0cnVjdG9yKShcbiAgICAgICAgICAgICAgICAgICAgLi4uKChnZXRJbnN0YW5jZUxvY2FsU3RhdGUoY3VycmVudEluc3RhbmNlKT8ubWVtb2l6ZWQ/LlsnYXJncyddIGFzIHVua25vd25bXSkgfHwgW10pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGR1bW15SW5zdGFuY2VbdGFyZ2V0UHJvcCBhcyB1bmtub3duIGFzIHN0cmluZ107XG4gICAgICAgICAgICAgICAgLy8gZGVzdHJveSB0aGUgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBpZiAoZHVtbXlJbnN0YW5jZS5kaXNwb3NlKSBkdW1teUluc3RhbmNlLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3BlY2lhbCB0cmVhdG1lbnQgZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvciBzZXQvY29weSwgYW5kIGxheWVyc1xuICAgICAgICBpZiAodGFyZ2V0UHJvcCAmJiB0YXJnZXRQcm9wWydzZXQnXSAmJiAodGFyZ2V0UHJvcFsnY29weSddIHx8IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuICAgICAgICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gYXJyYXlcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXRQcm9wWydmcm9tQXJyYXknXSkgKHRhcmdldFByb3BbJ2Zyb21BcnJheSddIGFzIE5ndEFueUZ1bmN0aW9uKSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgZWxzZSAodGFyZ2V0UHJvcFsnc2V0J10gYXMgTmd0QW55RnVuY3Rpb24pKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRlc3QgYWdhaW4gdGFyZ2V0LmNvcHkoY2xhc3MpIG5leHQgLi4uXG4gICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB0YXJnZXRQcm9wWydjb3B5J10gJiZcbiAgICAgICAgICAgICAgICB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmNvbnN0cnVjdG9yICYmXG4gICAgICAgICAgICAgICAgdGFyZ2V0UHJvcC5jb25zdHJ1Y3Rvci5uYW1lID09PSB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAodGFyZ2V0UHJvcFsnY29weSddIGFzIE5ndEFueUZ1bmN0aW9uKSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFpcy5zdXBwb3J0Q29sb3JNYW5hZ2VtZW50KCkgJiYgIXJvb3RTdGF0ZS5saW5lYXIgJiYgaXNDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiBub3RoaW5nIGVsc2UgZml0cywganVzdCBzZXQgdGhlIHNpbmdsZSB2YWx1ZSwgaWdub3JlIHVuZGVmaW5lZFxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BtbmRycy9yZWFjdC10aHJlZS1maWJlci9pc3N1ZXMvMjc0XG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcbiAgICAgICAgICAgICAgICAvLyBBbGxvdyBzZXR0aW5nIGFycmF5IHNjYWxhcnNcbiAgICAgICAgICAgICAgICBpZiAoIWlzQ29sb3IgJiYgdGFyZ2V0UHJvcFsnc2V0U2NhbGFyJ10pICh0YXJnZXRQcm9wWydzZXRTY2FsYXInXSBhcyBOZ3RBbnlGdW5jdGlvbikodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIExheWVycyBoYXZlIG5vIGNvcHkgZnVuY3Rpb24sIHdlIG11c3QgdGhlcmVmb3JlIGNvcHkgdGhlIG1hc2sgcHJvcGVydHlcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXJnZXRQcm9wIGluc3RhbmNlb2YgVEhSRUUuTGF5ZXJzICYmIHZhbHVlIGluc3RhbmNlb2YgVEhSRUUuTGF5ZXJzKVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRQcm9wLm1hc2sgPSB2YWx1ZS5tYXNrO1xuICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHNldCAuLi5cbiAgICAgICAgICAgICAgICBlbHNlICh0YXJnZXRQcm9wWydzZXQnXSBhcyBOZ3RBbnlGdW5jdGlvbikodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEZvciB2ZXJzaW9ucyBvZiB0aHJlZSB3aGljaCBkb24ndCBzdXBwb3J0IFRIUkVFLkNvbG9yTWFuYWdlbWVudCxcbiAgICAgICAgICAgICAgICAvLyBBdXRvLWNvbnZlcnQgc1JHQiBjb2xvcnNcbiAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL2lzc3Vlcy8zNDRcbiAgICAgICAgICAgICAgICBpZiAoIWlzLnN1cHBvcnRDb2xvck1hbmFnZW1lbnQoKSAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEVsc2UsIGp1c3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKGN1cnJlbnRJbnN0YW5jZSBhcyBOZ3RBbnlSZWNvcmQpW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIC8vIEF1dG8tY29udmVydCBzUkdCIHRleHR1cmVzLCBmb3Igbm93IC4uLlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BtbmRycy9yZWFjdC10aHJlZS1maWJlci9pc3N1ZXMvMzQ0XG4gICAgICAgICAgICBpZiAoIXJvb3RTdGF0ZT8ubGluZWFyICYmIChjdXJyZW50SW5zdGFuY2UgYXMgTmd0QW55UmVjb3JkKVtrZXldIGluc3RhbmNlb2YgVEhSRUUuVGV4dHVyZSkge1xuICAgICAgICAgICAgICAgICgoY3VycmVudEluc3RhbmNlIGFzIE5ndEFueVJlY29yZClba2V5XSBhcyBOZ3RBbnlSZWNvcmQpWydlbmNvZGluZyddID0gVEhSRUUuc1JHQkVuY29kaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2hlY2tOZWVkc1VwZGF0ZSh0YXJnZXRQcm9wKTtcbiAgICAgICAgaW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAgIGxvY2FsU3RhdGUucGFyZW50UmVmICYmXG4gICAgICAgIHJvb3RTdGF0ZS5pbnRlcm5hbCAmJlxuICAgICAgICAoaW5zdGFuY2UgYXMgTmd0QW55UmVjb3JkKVsncmF5Y2FzdCddICYmXG4gICAgICAgIGluc3RhbmNlSGFuZGxlcnMgIT09IGxvY2FsU3RhdGUuZXZlbnRDb3VudFxuICAgICkge1xuICAgICAgICAvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuICAgICAgICByb290U3RhdGUucmVtb3ZlSW50ZXJhY3Rpb24oKGluc3RhbmNlIGFzIE5ndEFueVJlY29yZClbJ3V1aWQnXSBhcyBzdHJpbmcpO1xuICAgICAgICAvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcbiAgICAgICAgaWYgKGxvY2FsU3RhdGUuZXZlbnRDb3VudCkgcm9vdFN0YXRlLmFkZEludGVyYWN0aW9uKGluc3RhbmNlIGFzIHVua25vd24gYXMgVEhSRUUuT2JqZWN0M0QpO1xuICAgIH1cblxuICAgIHJldHVybiBpbnN0YW5jZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function buildGraph(object) {
|
|
2
|
+
const data = { nodes: {}, materials: {} };
|
|
3
|
+
if (object) {
|
|
4
|
+
object.traverse((obj) => {
|
|
5
|
+
if (obj.name)
|
|
6
|
+
data.nodes[obj.name] = obj;
|
|
7
|
+
if ('material' in obj && !data.materials[obj.material.name]) {
|
|
8
|
+
data.materials[obj.material.name] = obj
|
|
9
|
+
.material;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvdXRpbHMvYnVpbGQtZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFzQjtJQUMvQyxNQUFNLElBQUksR0FBaUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN4RCxJQUFJLE1BQU0sRUFBRTtRQUNWLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFtQixFQUFFLEVBQUU7WUFDdEMsSUFBSSxHQUFHLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDekMsSUFBSSxVQUFVLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxHQUFrQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9GLElBQUksQ0FBQyxTQUFTLENBQUcsR0FBa0IsQ0FBQyxRQUEyQixDQUFDLElBQUksQ0FBQyxHQUFJLEdBQWtCO3FCQUN4RixRQUEwQixDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0T2JqZWN0TWFwIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHcmFwaChvYmplY3Q6IFRIUkVFLk9iamVjdDNEKTogTmd0T2JqZWN0TWFwIHtcbiAgY29uc3QgZGF0YTogTmd0T2JqZWN0TWFwID0geyBub2Rlczoge30sIG1hdGVyaWFsczoge30gfTtcbiAgaWYgKG9iamVjdCkge1xuICAgIG9iamVjdC50cmF2ZXJzZSgob2JqOiBUSFJFRS5PYmplY3QzRCkgPT4ge1xuICAgICAgaWYgKG9iai5uYW1lKSBkYXRhLm5vZGVzW29iai5uYW1lXSA9IG9iajtcbiAgICAgIGlmICgnbWF0ZXJpYWwnIGluIG9iaiAmJiAhZGF0YS5tYXRlcmlhbHNbKChvYmogYXMgVEhSRUUuTWVzaCkubWF0ZXJpYWwgYXMgVEhSRUUuTWF0ZXJpYWwpLm5hbWVdKSB7XG4gICAgICAgIGRhdGEubWF0ZXJpYWxzWygob2JqIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSA9IChvYmogYXMgVEhSRUUuTWVzaClcbiAgICAgICAgICAubWF0ZXJpYWwgYXMgVEhSRUUuTWF0ZXJpYWw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { is } from './is';
|
|
3
|
+
export function updateCamera(camera, size) {
|
|
4
|
+
// https://github.com/pmndrs/react-three-fiber/issues/92
|
|
5
|
+
// Do not mess with the camera if it belongs to the user
|
|
6
|
+
if (!camera.manual) {
|
|
7
|
+
if (is.orthographic(camera)) {
|
|
8
|
+
camera.left = size.width / -2;
|
|
9
|
+
camera.right = size.width / 2;
|
|
10
|
+
camera.top = size.height / 2;
|
|
11
|
+
camera.bottom = size.height / -2;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
camera.aspect = size.width / size.height;
|
|
15
|
+
}
|
|
16
|
+
camera.updateProjectionMatrix();
|
|
17
|
+
// https://github.com/pmndrs/react-three-fiber/issues/178
|
|
18
|
+
// Update matrix world since the renderer is a frame late
|
|
19
|
+
camera.updateMatrixWorld();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function createDefaultCamera(isOrthographic, size) {
|
|
23
|
+
if (isOrthographic) {
|
|
24
|
+
return new THREE.OrthographicCamera(0, 0, 0, 0, 0.1, 1000);
|
|
25
|
+
}
|
|
26
|
+
return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3V0aWxzL2NhbWVyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBMkIsRUFBRSxJQUFhO0lBQ25FLHdEQUF3RDtJQUN4RCx3REFBd0Q7SUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDaEIsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM1QztRQUNELE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLHlEQUF5RDtRQUN6RCx5REFBeUQ7UUFDekQsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDOUI7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGNBQXVCLEVBQUUsSUFBYTtJQUN0RSxJQUFJLGNBQWMsRUFBRTtRQUNoQixPQUFPLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDOUQ7SUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndENhbWVyYVdpdGhNYW51YWwsIE5ndFNpemUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FtZXJhKGNhbWVyYTogTmd0Q2FtZXJhV2l0aE1hbnVhbCwgc2l6ZTogTmd0U2l6ZSkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QtdGhyZWUtZmliZXIvaXNzdWVzLzkyXG4gICAgLy8gRG8gbm90IG1lc3Mgd2l0aCB0aGUgY2FtZXJhIGlmIGl0IGJlbG9uZ3MgdG8gdGhlIHVzZXJcbiAgICBpZiAoIWNhbWVyYS5tYW51YWwpIHtcbiAgICAgICAgaWYgKGlzLm9ydGhvZ3JhcGhpYyhjYW1lcmEpKSB7XG4gICAgICAgICAgICBjYW1lcmEubGVmdCA9IHNpemUud2lkdGggLyAtMjtcbiAgICAgICAgICAgIGNhbWVyYS5yaWdodCA9IHNpemUud2lkdGggLyAyO1xuICAgICAgICAgICAgY2FtZXJhLnRvcCA9IHNpemUuaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIGNhbWVyYS5ib3R0b20gPSBzaXplLmhlaWdodCAvIC0yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL2lzc3Vlcy8xNzhcbiAgICAgICAgLy8gVXBkYXRlIG1hdHJpeCB3b3JsZCBzaW5jZSB0aGUgcmVuZGVyZXIgaXMgYSBmcmFtZSBsYXRlXG4gICAgICAgIGNhbWVyYS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRDYW1lcmEoaXNPcnRob2dyYXBoaWM6IGJvb2xlYW4sIHNpemU6IE5ndFNpemUpIHtcbiAgICBpZiAoaXNPcnRob2dyYXBoaWMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEoMCwgMCwgMCwgMCwgMC4xLCAxMDAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhKDc1LCBzaXplLndpZHRoIC8gc2l6ZS5oZWlnaHQsIDAuMSwgMTAwMCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function capitalize(str) {
|
|
2
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi91dGlscy9jYXBpdGFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVztJQUNsQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { is } from './is';
|
|
2
|
+
export function checkNeedsUpdate(value) {
|
|
3
|
+
if (value !== null && is.obj(value) && 'needsUpdate' in value) {
|
|
4
|
+
value['needsUpdate'] = true;
|
|
5
|
+
if ('uniformsNeedUpdate' in value) {
|
|
6
|
+
value['uniformsNeedUpdate'] = true;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export function checkUpdate(value) {
|
|
11
|
+
if (is.object3d(value)) {
|
|
12
|
+
value.updateMatrix();
|
|
13
|
+
}
|
|
14
|
+
else if (is.camera(value)) {
|
|
15
|
+
if (is.perspective(value) || is.orthographic(value)) {
|
|
16
|
+
value.updateProjectionMatrix();
|
|
17
|
+
}
|
|
18
|
+
value.updateMatrixWorld();
|
|
19
|
+
}
|
|
20
|
+
checkNeedsUpdate(value);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3V0aWxzL2NoZWNrLXVwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzNDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsSUFBSyxLQUFzQixFQUFFO1FBQzVFLEtBQXNCLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRTlDLElBQUksb0JBQW9CLElBQUssS0FBc0IsRUFBRTtZQUNoRCxLQUFzQixDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3hEO0tBQ0o7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3RDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNwQixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7S0FDeEI7U0FBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakQsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDbEM7UUFDRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztLQUM3QjtJQUVELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja05lZWRzVXBkYXRlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIGlzLm9iaih2YWx1ZSkgJiYgJ25lZWRzVXBkYXRlJyBpbiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKSkge1xuICAgICAgICAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVsnbmVlZHNVcGRhdGUnXSA9IHRydWU7XG5cbiAgICAgICAgaWYgKCd1bmlmb3Jtc05lZWRVcGRhdGUnIGluICh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpKSB7XG4gICAgICAgICAgICAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVsndW5pZm9ybXNOZWVkVXBkYXRlJ10gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tVcGRhdGUodmFsdWU6IHVua25vd24pIHtcbiAgICBpZiAoaXMub2JqZWN0M2QodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuICAgIH0gZWxzZSBpZiAoaXMuY2FtZXJhKHZhbHVlKSkge1xuICAgICAgICBpZiAoaXMucGVyc3BlY3RpdmUodmFsdWUpIHx8IGlzLm9ydGhvZ3JhcGhpYyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuICAgIH1cblxuICAgIGNoZWNrTmVlZHNVcGRhdGUodmFsdWUpO1xufVxuIl19
|