@zephyr3d/scene 0.9.4 → 0.9.6
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/dist/animation/animationmask.js +224 -0
- package/dist/animation/animationmask.js.map +1 -0
- package/dist/animation/animationset.js +268 -67
- package/dist/animation/animationset.js.map +1 -1
- package/dist/animation/animationtrack.js.map +1 -1
- package/dist/animation/eulerrotationtrack.js +3 -0
- package/dist/animation/eulerrotationtrack.js.map +1 -1
- package/dist/animation/fixed_geometry_cache_track.js +7 -0
- package/dist/animation/fixed_geometry_cache_track.js.map +1 -1
- package/dist/animation/ik_modifier.js.map +1 -1
- package/dist/animation/joint_dynamics/collision.js +6 -4
- package/dist/animation/joint_dynamics/collision.js.map +1 -1
- package/dist/animation/joint_dynamics/controller.js +390 -43
- package/dist/animation/joint_dynamics/controller.js.map +1 -1
- package/dist/animation/joint_dynamics/joint_dynamics_system.js +62 -3
- package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
- package/dist/animation/joint_dynamics/solver.js +4 -3
- package/dist/animation/joint_dynamics/solver.js.map +1 -1
- package/dist/animation/joint_dynamics/types.js.map +1 -1
- package/dist/animation/joint_dynamics_modifier.js +2 -0
- package/dist/animation/joint_dynamics_modifier.js.map +1 -1
- package/dist/animation/morphtarget.js +3 -72
- package/dist/animation/morphtarget.js.map +1 -1
- package/dist/animation/morphtrack.js +3 -0
- package/dist/animation/morphtrack.js.map +1 -1
- package/dist/animation/pca_geometry_cache_track.js +3 -0
- package/dist/animation/pca_geometry_cache_track.js.map +1 -1
- package/dist/animation/proptrack.js +3 -0
- package/dist/animation/proptrack.js.map +1 -1
- package/dist/animation/rotationtrack.js +3 -0
- package/dist/animation/rotationtrack.js.map +1 -1
- package/dist/animation/scaletrack.js +3 -0
- package/dist/animation/scaletrack.js.map +1 -1
- package/dist/animation/skeleton.js +254 -79
- package/dist/animation/skeleton.js.map +1 -1
- package/dist/animation/skeleton_modifier.js.map +1 -1
- package/dist/animation/spring_modifier.js.map +1 -1
- package/dist/animation/translationtrack.js +3 -0
- package/dist/animation/translationtrack.js.map +1 -1
- package/dist/app/engine.js +171 -107
- package/dist/app/engine.js.map +1 -1
- package/dist/app/scriptregistry.js +251 -80
- package/dist/app/scriptregistry.js.map +1 -1
- package/dist/asset/assetmanager.js +344 -365
- package/dist/asset/assetmanager.js.map +1 -1
- package/dist/asset/loaders/loader.js +1 -6
- package/dist/asset/loaders/loader.js.map +1 -1
- package/dist/asset/loaders/zabc/zabc_loader.js.map +1 -1
- package/dist/asset/model.js +1000 -131
- package/dist/asset/model.js.map +1 -1
- package/dist/avatar/wardrobe.js +474 -0
- package/dist/avatar/wardrobe.js.map +1 -0
- package/dist/index.d.ts +1126 -199
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +6 -3
- package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
- package/dist/material/mixins/pbr/common.js +72 -15
- package/dist/material/mixins/pbr/common.js.map +1 -1
- package/dist/material/msdf_text.js +3 -3
- package/dist/material/msdf_text.js.map +1 -1
- package/dist/material/msdf_text_sprite.js +4 -4
- package/dist/material/msdf_text_sprite.js.map +1 -1
- package/dist/material/pbrblueprint.js +102 -102
- package/dist/material/pbrblueprint.js.map +1 -1
- package/dist/render/envlight.js +54 -1
- package/dist/render/envlight.js.map +1 -1
- package/dist/render/sky.js +9 -0
- package/dist/render/sky.js.map +1 -1
- package/dist/scene/batchgroup.js +11 -13
- package/dist/scene/batchgroup.js.map +1 -1
- package/dist/scene/environment.js +15 -2
- package/dist/scene/environment.js.map +1 -1
- package/dist/scene/mesh.js +79 -16
- package/dist/scene/mesh.js.map +1 -1
- package/dist/scene/scene.js +1 -0
- package/dist/scene/scene.js.map +1 -1
- package/dist/scene/scene_node.js +203 -2
- package/dist/scene/scene_node.js.map +1 -1
- package/dist/text/font/cff_font.js +890 -0
- package/dist/text/font/cff_font.js.map +1 -0
- package/dist/text/font/font_asset.js +17 -3
- package/dist/text/font/font_asset.js.map +1 -1
- package/dist/text/msdf/generator.js.map +1 -1
- package/dist/text/msdf/shape.js +4 -1
- package/dist/text/msdf/shape.js.map +1 -1
- package/dist/text/runtime/msdf_text_atlas_manager.js +4 -1
- package/dist/text/runtime/msdf_text_atlas_manager.js.map +1 -1
- package/dist/utility/blueprint/material/inputs.js +1157 -1154
- package/dist/utility/blueprint/material/inputs.js.map +1 -1
- package/dist/utility/bounding_volume.js.map +1 -1
- package/dist/utility/pmrem.js +34 -8
- package/dist/utility/pmrem.js.map +1 -1
- package/dist/utility/serialization/manager.js +22 -9
- package/dist/utility/serialization/manager.js.map +1 -1
- package/dist/utility/serialization/scene/animation.js +700 -7
- package/dist/utility/serialization/scene/animation.js.map +1 -1
- package/dist/utility/serialization/scene/mesh.js +64 -4
- package/dist/utility/serialization/scene/mesh.js.map +1 -1
- package/dist/utility/serialization/scene/node.js +187 -8
- package/dist/utility/serialization/scene/node.js.map +1 -1
- package/dist/utility/serialization/types.js.map +1 -1
- package/dist/utility/textures/sheenlut.js +138 -0
- package/dist/utility/textures/sheenlut.js.map +1 -0
- package/package.json +2 -2
- package/dist/animation/ik/ik_chain_builder.js +0 -68
- package/dist/animation/ik/ik_chain_builder.js.map +0 -1
- package/dist/animation/ik/ik_pole_constraint.js +0 -123
- package/dist/animation/ik/ik_pole_constraint.js.map +0 -1
- package/dist/animation/ik/ik_track.js +0 -96
- package/dist/animation/ik/ik_track.js.map +0 -1
- package/dist/animation/ik_postprocessor.js +0 -71
- package/dist/animation/ik_postprocessor.js.map +0 -1
- package/dist/animation/joint_dynamics/math.js +0 -16
- package/dist/animation/joint_dynamics/math.js.map +0 -1
- package/dist/animation/manual_transform_processor.js +0 -156
- package/dist/animation/manual_transform_processor.js.map +0 -1
- package/dist/animation/skeleton_postprocessor.js +0 -50
- package/dist/animation/skeleton_postprocessor.js.map +0 -1
- package/dist/animation/spring2/collision.js +0 -469
- package/dist/animation/spring2/collision.js.map +0 -1
- package/dist/animation/spring2/constraints.js +0 -329
- package/dist/animation/spring2/constraints.js.map +0 -1
- package/dist/animation/spring2/controller.js +0 -434
- package/dist/animation/spring2/controller.js.map +0 -1
- package/dist/animation/spring2/math.js +0 -16
- package/dist/animation/spring2/math.js.map +0 -1
- package/dist/animation/spring2/solver.js +0 -624
- package/dist/animation/spring2/solver.js.map +0 -1
- package/dist/animation/spring2/spring_system.js +0 -118
- package/dist/animation/spring2/spring_system.js.map +0 -1
- package/dist/animation/spring2/types.js +0 -19
- package/dist/animation/spring2/types.js.map +0 -1
- package/dist/animation/spring_postprocessor.js +0 -54
- package/dist/animation/spring_postprocessor.js.map +0 -1
- package/dist/asset/loaders/gltf/gltf_loader.js +0 -1273
- package/dist/asset/loaders/gltf/gltf_loader.js.map +0 -1
- package/dist/asset/loaders/gltf/helpers.js +0 -331
- package/dist/asset/loaders/gltf/helpers.js.map +0 -1
- package/dist/material/sprite3d.js +0 -301
- package/dist/material/sprite3d.js.map +0 -1
- package/dist/material/sprite3d_std.js +0 -116
- package/dist/material/sprite3d_std.js.map +0 -1
- package/dist/material/sprite3dblueprint.js +0 -235
- package/dist/material/sprite3dblueprint.js.map +0 -1
- package/dist/material/sprite_sdf.js +0 -106
- package/dist/material/sprite_sdf.js.map +0 -1
- package/dist/material/terrainmaterial.js +0 -368
- package/dist/material/terrainmaterial.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +0 -38
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +0 -10
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +0 -127
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +0 -1
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +0 -263
- package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +0 -1
- package/dist/render/deferredlightpass.js +0 -510
- package/dist/render/deferredlightpass.js.map +0 -1
- package/dist/render/deferredshadowlightpass.js +0 -428
- package/dist/render/deferredshadowlightpass.js.map +0 -1
- package/dist/render/gbufferpass.js +0 -50
- package/dist/render/gbufferpass.js.map +0 -1
- package/dist/scene/sdftextsprite.js +0 -322
- package/dist/scene/sdftextsprite.js.map +0 -1
- package/dist/scene/sprite3d.js +0 -18
- package/dist/scene/sprite3d.js.map +0 -1
- package/dist/scene/terrain/grass.js +0 -280
- package/dist/scene/terrain/grass.js.map +0 -1
- package/dist/scene/terrain/heightfield.js +0 -475
- package/dist/scene/terrain/heightfield.js.map +0 -1
- package/dist/scene/terrain/patch.js +0 -532
- package/dist/scene/terrain/patch.js.map +0 -1
- package/dist/scene/terrain/quadtree.js +0 -461
- package/dist/scene/terrain/quadtree.js.map +0 -1
- package/dist/scene/terrain/terrain.js +0 -231
- package/dist/scene/terrain/terrain.js.map +0 -1
- package/dist/src/animation/animation.js +0 -127
- package/dist/src/animation/animation.js.map +0 -1
- package/dist/src/animation/animationset.js +0 -255
- package/dist/src/animation/animationset.js.map +0 -1
- package/dist/src/animation/animationtrack.js +0 -34
- package/dist/src/animation/animationtrack.js.map +0 -1
- package/dist/src/animation/eulerrotationtrack.js +0 -52
- package/dist/src/animation/eulerrotationtrack.js.map +0 -1
- package/dist/src/animation/morphtarget.js +0 -93
- package/dist/src/animation/morphtarget.js.map +0 -1
- package/dist/src/animation/morphtrack.js +0 -70
- package/dist/src/animation/morphtrack.js.map +0 -1
- package/dist/src/animation/proptrack.js +0 -161
- package/dist/src/animation/proptrack.js.map +0 -1
- package/dist/src/animation/rotationtrack.js +0 -51
- package/dist/src/animation/rotationtrack.js.map +0 -1
- package/dist/src/animation/scaletrack.js +0 -50
- package/dist/src/animation/scaletrack.js.map +0 -1
- package/dist/src/animation/skeleton.js +0 -204
- package/dist/src/animation/skeleton.js.map +0 -1
- package/dist/src/animation/translationtrack.js +0 -50
- package/dist/src/animation/translationtrack.js.map +0 -1
- package/dist/src/app/app.js +0 -129
- package/dist/src/app/app.js.map +0 -1
- package/dist/src/app/inputmgr.js +0 -267
- package/dist/src/app/inputmgr.js.map +0 -1
- package/dist/src/asset/assetmanager.js +0 -404
- package/dist/src/asset/assetmanager.js.map +0 -1
- package/dist/src/asset/builtin.js +0 -337
- package/dist/src/asset/builtin.js.map +0 -1
- package/dist/src/asset/loaders/dds/dds.js +0 -470
- package/dist/src/asset/loaders/dds/dds.js.map +0 -1
- package/dist/src/asset/loaders/dds/dds_loader.js +0 -28
- package/dist/src/asset/loaders/dds/dds_loader.js.map +0 -1
- package/dist/src/asset/loaders/gltf/gltf_loader.js +0 -1265
- package/dist/src/asset/loaders/gltf/gltf_loader.js.map +0 -1
- package/dist/src/asset/loaders/gltf/helpers.js +0 -327
- package/dist/src/asset/loaders/gltf/helpers.js.map +0 -1
- package/dist/src/asset/loaders/hdr/hdr.js +0 -180
- package/dist/src/asset/loaders/hdr/hdr.js.map +0 -1
- package/dist/src/asset/loaders/image/tga_Loader.js +0 -116
- package/dist/src/asset/loaders/image/tga_Loader.js.map +0 -1
- package/dist/src/asset/loaders/image/webimage_loader.js +0 -63
- package/dist/src/asset/loaders/image/webimage_loader.js.map +0 -1
- package/dist/src/asset/loaders/loader.js +0 -45
- package/dist/src/asset/loaders/loader.js.map +0 -1
- package/dist/src/asset/model.js +0 -414
- package/dist/src/asset/model.js.map +0 -1
- package/dist/src/blitter/bilateralblur.js +0 -221
- package/dist/src/blitter/bilateralblur.js.map +0 -1
- package/dist/src/blitter/blitter.js +0 -390
- package/dist/src/blitter/blitter.js.map +0 -1
- package/dist/src/blitter/box.js +0 -118
- package/dist/src/blitter/box.js.map +0 -1
- package/dist/src/blitter/copy.js +0 -22
- package/dist/src/blitter/copy.js.map +0 -1
- package/dist/src/blitter/gaussianblur.js +0 -228
- package/dist/src/blitter/gaussianblur.js.map +0 -1
- package/dist/src/camera/base.js +0 -92
- package/dist/src/camera/base.js.map +0 -1
- package/dist/src/camera/camera.js +0 -1005
- package/dist/src/camera/camera.js.map +0 -1
- package/dist/src/camera/fps.js +0 -238
- package/dist/src/camera/fps.js.map +0 -1
- package/dist/src/camera/orbit.js +0 -245
- package/dist/src/camera/orbit.js.map +0 -1
- package/dist/src/camera/orthocamera.js +0 -167
- package/dist/src/camera/orthocamera.js.map +0 -1
- package/dist/src/camera/perspectivecamera.js +0 -141
- package/dist/src/camera/perspectivecamera.js.map +0 -1
- package/dist/src/index.js +0 -120
- package/dist/src/index.js.map +0 -1
- package/dist/src/material/blinn.js +0 -81
- package/dist/src/material/blinn.js.map +0 -1
- package/dist/src/material/grassmaterial.js +0 -113
- package/dist/src/material/grassmaterial.js.map +0 -1
- package/dist/src/material/lambert.js +0 -92
- package/dist/src/material/lambert.js.map +0 -1
- package/dist/src/material/material.js +0 -301
- package/dist/src/material/material.js.map +0 -1
- package/dist/src/material/meshmaterial.js +0 -704
- package/dist/src/material/meshmaterial.js.map +0 -1
- package/dist/src/material/mixins/albedocolor.js +0 -76
- package/dist/src/material/mixins/albedocolor.js.map +0 -1
- package/dist/src/material/mixins/foliage.js +0 -47
- package/dist/src/material/mixins/foliage.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/blinnphong.js +0 -112
- package/dist/src/material/mixins/lightmodel/blinnphong.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/lambert.js +0 -58
- package/dist/src/material/mixins/lightmodel/lambert.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +0 -178
- package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +0 -1
- package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +0 -139
- package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +0 -1
- package/dist/src/material/mixins/lit.js +0 -476
- package/dist/src/material/mixins/lit.js.map +0 -1
- package/dist/src/material/mixins/pbr/common.js +0 -918
- package/dist/src/material/mixins/pbr/common.js.map +0 -1
- package/dist/src/material/mixins/texture.js +0 -172
- package/dist/src/material/mixins/texture.js.map +0 -1
- package/dist/src/material/mixins/vertexcolor.js +0 -56
- package/dist/src/material/mixins/vertexcolor.js.map +0 -1
- package/dist/src/material/particle.js +0 -178
- package/dist/src/material/particle.js.map +0 -1
- package/dist/src/material/pbrmr.js +0 -97
- package/dist/src/material/pbrmr.js.map +0 -1
- package/dist/src/material/pbrsg.js +0 -97
- package/dist/src/material/pbrsg.js.map +0 -1
- package/dist/src/material/shader/helper.js +0 -1209
- package/dist/src/material/shader/helper.js.map +0 -1
- package/dist/src/material/terrain-cm.js +0 -606
- package/dist/src/material/terrain-cm.js.map +0 -1
- package/dist/src/material/terrainmaterial.js +0 -375
- package/dist/src/material/terrainmaterial.js.map +0 -1
- package/dist/src/material/unlit.js +0 -41
- package/dist/src/material/unlit.js.map +0 -1
- package/dist/src/material/water.js +0 -417
- package/dist/src/material/water.js.map +0 -1
- package/dist/src/posteffect/bloom.js +0 -361
- package/dist/src/posteffect/bloom.js.map +0 -1
- package/dist/src/posteffect/compositor.js +0 -226
- package/dist/src/posteffect/compositor.js.map +0 -1
- package/dist/src/posteffect/fxaa.js +0 -273
- package/dist/src/posteffect/fxaa.js.map +0 -1
- package/dist/src/posteffect/grayscale.js +0 -69
- package/dist/src/posteffect/grayscale.js.map +0 -1
- package/dist/src/posteffect/motionblur.js +0 -96
- package/dist/src/posteffect/motionblur.js.map +0 -1
- package/dist/src/posteffect/posteffect.js +0 -126
- package/dist/src/posteffect/posteffect.js.map +0 -1
- package/dist/src/posteffect/sao.js +0 -324
- package/dist/src/posteffect/sao.js.map +0 -1
- package/dist/src/posteffect/ssr.js +0 -489
- package/dist/src/posteffect/ssr.js.map +0 -1
- package/dist/src/posteffect/taa.js +0 -172
- package/dist/src/posteffect/taa.js.map +0 -1
- package/dist/src/posteffect/tonemap.js +0 -94
- package/dist/src/posteffect/tonemap.js.map +0 -1
- package/dist/src/render/abuffer_oit.js +0 -361
- package/dist/src/render/abuffer_oit.js.map +0 -1
- package/dist/src/render/clipmap.js +0 -851
- package/dist/src/render/clipmap.js.map +0 -1
- package/dist/src/render/cluster_light.js +0 -333
- package/dist/src/render/cluster_light.js.map +0 -1
- package/dist/src/render/cull_visitor.js +0 -187
- package/dist/src/render/cull_visitor.js.map +0 -1
- package/dist/src/render/depthpass.js +0 -68
- package/dist/src/render/depthpass.js.map +0 -1
- package/dist/src/render/drawable_mixin.js +0 -227
- package/dist/src/render/drawable_mixin.js.map +0 -1
- package/dist/src/render/envlight.js +0 -463
- package/dist/src/render/envlight.js.map +0 -1
- package/dist/src/render/fbm_wavegenerator.js +0 -251
- package/dist/src/render/fbm_wavegenerator.js.map +0 -1
- package/dist/src/render/fft_wavegenerator.js +0 -1006
- package/dist/src/render/fft_wavegenerator.js.map +0 -1
- package/dist/src/render/fullscreenquad.js +0 -38
- package/dist/src/render/fullscreenquad.js.map +0 -1
- package/dist/src/render/gerstner_wavegenerator.js +0 -314
- package/dist/src/render/gerstner_wavegenerator.js.map +0 -1
- package/dist/src/render/globalbindgroup_allocator.js +0 -60
- package/dist/src/render/globalbindgroup_allocator.js.map +0 -1
- package/dist/src/render/hzb.js +0 -273
- package/dist/src/render/hzb.js.map +0 -1
- package/dist/src/render/lightpass.js +0 -172
- package/dist/src/render/lightpass.js.map +0 -1
- package/dist/src/render/objectcolorpass.js +0 -51
- package/dist/src/render/objectcolorpass.js.map +0 -1
- package/dist/src/render/primitive.js +0 -364
- package/dist/src/render/primitive.js.map +0 -1
- package/dist/src/render/render_queue.js +0 -467
- package/dist/src/render/render_queue.js.map +0 -1
- package/dist/src/render/renderbundle_wrapper.js +0 -152
- package/dist/src/render/renderbundle_wrapper.js.map +0 -1
- package/dist/src/render/renderer.js +0 -455
- package/dist/src/render/renderer.js.map +0 -1
- package/dist/src/render/renderpass.js +0 -200
- package/dist/src/render/renderpass.js.map +0 -1
- package/dist/src/render/shadowmap_pass.js +0 -56
- package/dist/src/render/shadowmap_pass.js.map +0 -1
- package/dist/src/render/sky.js +0 -1103
- package/dist/src/render/sky.js.map +0 -1
- package/dist/src/render/weightedblended_oit.js +0 -168
- package/dist/src/render/weightedblended_oit.js.map +0 -1
- package/dist/src/scene/batchgroup.js +0 -162
- package/dist/src/scene/batchgroup.js.map +0 -1
- package/dist/src/scene/environment.js +0 -209
- package/dist/src/scene/environment.js.map +0 -1
- package/dist/src/scene/graph_node.js +0 -72
- package/dist/src/scene/graph_node.js.map +0 -1
- package/dist/src/scene/light.js +0 -416
- package/dist/src/scene/light.js.map +0 -1
- package/dist/src/scene/mesh.js +0 -341
- package/dist/src/scene/mesh.js.map +0 -1
- package/dist/src/scene/octree.js +0 -649
- package/dist/src/scene/octree.js.map +0 -1
- package/dist/src/scene/particlesys.js +0 -738
- package/dist/src/scene/particlesys.js.map +0 -1
- package/dist/src/scene/raycast_visitor.js +0 -103
- package/dist/src/scene/raycast_visitor.js.map +0 -1
- package/dist/src/scene/scene.js +0 -284
- package/dist/src/scene/scene.js.map +0 -1
- package/dist/src/scene/scene_node.js +0 -732
- package/dist/src/scene/scene_node.js.map +0 -1
- package/dist/src/scene/terrain/grass.js +0 -278
- package/dist/src/scene/terrain/grass.js.map +0 -1
- package/dist/src/scene/terrain/heightfield.js +0 -475
- package/dist/src/scene/terrain/heightfield.js.map +0 -1
- package/dist/src/scene/terrain/patch.js +0 -530
- package/dist/src/scene/terrain/patch.js.map +0 -1
- package/dist/src/scene/terrain/quadtree.js +0 -461
- package/dist/src/scene/terrain/quadtree.js.map +0 -1
- package/dist/src/scene/terrain/terrain.js +0 -246
- package/dist/src/scene/terrain/terrain.js.map +0 -1
- package/dist/src/scene/terrain-cm/grass.js +0 -594
- package/dist/src/scene/terrain-cm/grass.js.map +0 -1
- package/dist/src/scene/terrain-cm/grassmaterial.js +0 -159
- package/dist/src/scene/terrain-cm/grassmaterial.js.map +0 -1
- package/dist/src/scene/terrain-cm/terrain-cm.js +0 -538
- package/dist/src/scene/terrain-cm/terrain-cm.js.map +0 -1
- package/dist/src/scene/water.js +0 -374
- package/dist/src/scene/water.js.map +0 -1
- package/dist/src/shaders/atmosphere.js +0 -957
- package/dist/src/shaders/atmosphere.js.map +0 -1
- package/dist/src/shaders/fog.js +0 -112
- package/dist/src/shaders/fog.js.map +0 -1
- package/dist/src/shaders/misc.js +0 -266
- package/dist/src/shaders/misc.js.map +0 -1
- package/dist/src/shaders/noise.js +0 -222
- package/dist/src/shaders/noise.js.map +0 -1
- package/dist/src/shaders/pbr.js +0 -51
- package/dist/src/shaders/pbr.js.map +0 -1
- package/dist/src/shaders/shadow.js +0 -636
- package/dist/src/shaders/shadow.js.map +0 -1
- package/dist/src/shaders/ssr.js +0 -490
- package/dist/src/shaders/ssr.js.map +0 -1
- package/dist/src/shaders/temporal.js +0 -215
- package/dist/src/shaders/temporal.js.map +0 -1
- package/dist/src/shaders/water.js +0 -756
- package/dist/src/shaders/water.js.map +0 -1
- package/dist/src/shadow/esm.js +0 -237
- package/dist/src/shadow/esm.js.map +0 -1
- package/dist/src/shadow/pcf_opt.js +0 -181
- package/dist/src/shadow/pcf_opt.js.map +0 -1
- package/dist/src/shadow/pcf_pd.js +0 -189
- package/dist/src/shadow/pcf_pd.js.map +0 -1
- package/dist/src/shadow/shader.js +0 -37
- package/dist/src/shadow/shader.js.map +0 -1
- package/dist/src/shadow/shadow_impl.js +0 -15
- package/dist/src/shadow/shadow_impl.js.map +0 -1
- package/dist/src/shadow/shadowmapper.js +0 -790
- package/dist/src/shadow/shadowmapper.js.map +0 -1
- package/dist/src/shadow/ssm.js +0 -159
- package/dist/src/shadow/ssm.js.map +0 -1
- package/dist/src/shadow/vsm.js +0 -297
- package/dist/src/shadow/vsm.js.map +0 -1
- package/dist/src/shapes/box.js +0 -386
- package/dist/src/shapes/box.js.map +0 -1
- package/dist/src/shapes/cylinder.js +0 -125
- package/dist/src/shapes/cylinder.js.map +0 -1
- package/dist/src/shapes/plane.js +0 -88
- package/dist/src/shapes/plane.js.map +0 -1
- package/dist/src/shapes/shape.js +0 -87
- package/dist/src/shapes/shape.js.map +0 -1
- package/dist/src/shapes/sphere.js +0 -114
- package/dist/src/shapes/sphere.js.map +0 -1
- package/dist/src/shapes/tetrahedron.js +0 -188
- package/dist/src/shapes/tetrahedron.js.map +0 -1
- package/dist/src/shapes/torus.js +0 -111
- package/dist/src/shapes/torus.js.map +0 -1
- package/dist/src/utility/aabbtree.js +0 -400
- package/dist/src/utility/aabbtree.js.map +0 -1
- package/dist/src/utility/bounding_volume.js +0 -29
- package/dist/src/utility/bounding_volume.js.map +0 -1
- package/dist/src/utility/debug.js +0 -28
- package/dist/src/utility/debug.js.map +0 -1
- package/dist/src/utility/draco/decoder.js +0 -116
- package/dist/src/utility/draco/decoder.js.map +0 -1
- package/dist/src/utility/misc.js +0 -105
- package/dist/src/utility/misc.js.map +0 -1
- package/dist/src/utility/panorama.js +0 -163
- package/dist/src/utility/panorama.js.map +0 -1
- package/dist/src/utility/pmrem.js +0 -354
- package/dist/src/utility/pmrem.js.map +0 -1
- package/dist/src/utility/rendermipmap.js +0 -115
- package/dist/src/utility/rendermipmap.js.map +0 -1
- package/dist/src/utility/serialization/json.js +0 -402
- package/dist/src/utility/serialization/json.js.map +0 -1
- package/dist/src/utility/serialization/manager.js +0 -623
- package/dist/src/utility/serialization/manager.js.map +0 -1
- package/dist/src/utility/serialization/scene/animation.js +0 -248
- package/dist/src/utility/serialization/scene/animation.js.map +0 -1
- package/dist/src/utility/serialization/scene/batch.js +0 -59
- package/dist/src/utility/serialization/scene/batch.js.map +0 -1
- package/dist/src/utility/serialization/scene/camera.js +0 -790
- package/dist/src/utility/serialization/scene/camera.js.map +0 -1
- package/dist/src/utility/serialization/scene/common.js +0 -222
- package/dist/src/utility/serialization/scene/common.js.map +0 -1
- package/dist/src/utility/serialization/scene/light.js +0 -575
- package/dist/src/utility/serialization/scene/light.js.map +0 -1
- package/dist/src/utility/serialization/scene/material.js +0 -1111
- package/dist/src/utility/serialization/scene/material.js.map +0 -1
- package/dist/src/utility/serialization/scene/mesh.js +0 -148
- package/dist/src/utility/serialization/scene/mesh.js.map +0 -1
- package/dist/src/utility/serialization/scene/misc.js +0 -39
- package/dist/src/utility/serialization/scene/misc.js.map +0 -1
- package/dist/src/utility/serialization/scene/node.js +0 -451
- package/dist/src/utility/serialization/scene/node.js.map +0 -1
- package/dist/src/utility/serialization/scene/particle.js +0 -425
- package/dist/src/utility/serialization/scene/particle.js.map +0 -1
- package/dist/src/utility/serialization/scene/primitive.js +0 -692
- package/dist/src/utility/serialization/scene/primitive.js.map +0 -1
- package/dist/src/utility/serialization/scene/scene.js +0 -704
- package/dist/src/utility/serialization/scene/scene.js.map +0 -1
- package/dist/src/utility/serialization/scene/terrain.js +0 -488
- package/dist/src/utility/serialization/scene/terrain.js.map +0 -1
- package/dist/src/utility/serialization/scene/water.js +0 -465
- package/dist/src/utility/serialization/scene/water.js.map +0 -1
- package/dist/src/utility/shprojector.js +0 -297
- package/dist/src/utility/shprojector.js.map +0 -1
- package/dist/src/utility/textures/ggxlut.js +0 -213
- package/dist/src/utility/textures/ggxlut.js.map +0 -1
- package/dist/src/utility/textures/gradientnoise.js +0 -62
- package/dist/src/utility/textures/gradientnoise.js.map +0 -1
- package/dist/src/utility/textures/randomnoise.js +0 -41
- package/dist/src/utility/textures/randomnoise.js.map +0 -1
- package/dist/src/values.js +0 -162
- package/dist/src/values.js.map +0 -1
- package/dist/utility/blueprint/material/common.js +0 -7
- package/dist/utility/blueprint/material/common.js.map +0 -1
- package/dist/utility/serialization/blueprint/constants.js +0 -255
- package/dist/utility/serialization/blueprint/constants.js.map +0 -1
- package/dist/utility/serialization/blueprint/material/constants.js +0 -203
- package/dist/utility/serialization/blueprint/material/constants.js.map +0 -1
- package/dist/utility/serialization/blueprint/material/texture.js +0 -165
- package/dist/utility/serialization/blueprint/material/texture.js.map +0 -1
- package/dist/utility/serialization/scene/cloth_script.js +0 -834
- package/dist/utility/serialization/scene/cloth_script.js.map +0 -1
- package/dist/utility/serialization/scene/spring_script.js +0 -596
- package/dist/utility/serialization/scene/spring_script.js.map +0 -1
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { GraphNode } from './graph_node.js';
|
|
2
|
-
import { Matrix4x4 } from '@zephyr3d/base';
|
|
3
|
-
import '../values.js';
|
|
4
|
-
import { InstanceBindGroupAllocator, RenderQueue } from '../render/render_queue.js';
|
|
5
|
-
import '../material/shader/helper.js';
|
|
6
|
-
import '../render/renderer.js';
|
|
7
|
-
import '@zephyr3d/device';
|
|
8
|
-
import '../render/sky.js';
|
|
9
|
-
import '../render/clipmap.js';
|
|
10
|
-
import '../material/lambert.js';
|
|
11
|
-
import '../material/blinn.js';
|
|
12
|
-
import '../material/unlit.js';
|
|
13
|
-
import '../material/particle.js';
|
|
14
|
-
import '../material/meshmaterial.js';
|
|
15
|
-
import '../material/grassmaterial.js';
|
|
16
|
-
import '../material/terrainmaterial.js';
|
|
17
|
-
import '../material/terrain-cm.js';
|
|
18
|
-
import '../material/pbrmr.js';
|
|
19
|
-
import '../material/pbrsg.js';
|
|
20
|
-
import '../shaders/atmosphere.js';
|
|
21
|
-
import { BoundingBox } from '../utility/bounding_volume.js';
|
|
22
|
-
|
|
23
|
-
const tmpMatrix = new Matrix4x4();
|
|
24
|
-
/**
|
|
25
|
-
* Batch group node
|
|
26
|
-
* @public
|
|
27
|
-
*/ class BatchGroup extends GraphNode {
|
|
28
|
-
_renderQueueMap;
|
|
29
|
-
_bindGroupAllocator;
|
|
30
|
-
_changeTag;
|
|
31
|
-
_staticBV;
|
|
32
|
-
/**
|
|
33
|
-
* Creates an instance of mesh node
|
|
34
|
-
* @param scene - The scene to which the mesh node belongs
|
|
35
|
-
*/ constructor(scene){
|
|
36
|
-
super(scene);
|
|
37
|
-
this._renderQueueMap = new Map();
|
|
38
|
-
this._changeTag = 0;
|
|
39
|
-
this._bindGroupAllocator = new InstanceBindGroupAllocator();
|
|
40
|
-
this._staticBV = false;
|
|
41
|
-
const bvCallback = (function() {
|
|
42
|
-
if (!this._staticBV) {
|
|
43
|
-
this.invalidateBoundingVolume();
|
|
44
|
-
}
|
|
45
|
-
}).bind(this);
|
|
46
|
-
this.on('visiblechanged', (node)=>{
|
|
47
|
-
node.iterate((child)=>{
|
|
48
|
-
if (child.isMesh()) {
|
|
49
|
-
this._changeTag++;
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
this.on('nodeattached', (node)=>{
|
|
56
|
-
node.iterate((child)=>{
|
|
57
|
-
if (child.isMesh()) {
|
|
58
|
-
child.placeToOctree = false;
|
|
59
|
-
if (!this._staticBV) {
|
|
60
|
-
this.invalidateBoundingVolume();
|
|
61
|
-
}
|
|
62
|
-
child.on('bvchanged', bvCallback);
|
|
63
|
-
this._changeTag++;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
this.on('noderemoved', (node)=>{
|
|
68
|
-
node.iterate((child)=>{
|
|
69
|
-
if (child.isMesh()) {
|
|
70
|
-
child.placeToOctree = true;
|
|
71
|
-
if (!this._staticBV) {
|
|
72
|
-
this.invalidateBoundingVolume();
|
|
73
|
-
}
|
|
74
|
-
child.off('bvchanged', bvCallback);
|
|
75
|
-
this._changeTag++;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* {@inheritDoc Drawable.getName}
|
|
82
|
-
*/ getName() {
|
|
83
|
-
return this._name;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* {@inheritDoc SceneNode.isBatchGroup}
|
|
87
|
-
*/ isBatchGroup() {
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
clone(method, recursive) {
|
|
91
|
-
const other = new BatchGroup(this.scene);
|
|
92
|
-
other.copyFrom(this, method, recursive);
|
|
93
|
-
other.parent = this.parent;
|
|
94
|
-
return other;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Force the batch state to be rebuilt
|
|
98
|
-
*/ invalidate() {
|
|
99
|
-
this._changeTag++;
|
|
100
|
-
}
|
|
101
|
-
/** @internal */ _onDetached() {
|
|
102
|
-
super._onDetached();
|
|
103
|
-
// Usually the node will be garbage collected after it is detached,
|
|
104
|
-
// We should reset the render queue to release the render bundles.
|
|
105
|
-
this._renderQueueMap.forEach((val)=>{
|
|
106
|
-
val.queue.reset();
|
|
107
|
-
});
|
|
108
|
-
this.invalidate();
|
|
109
|
-
}
|
|
110
|
-
/** @internal */ _onAttached() {
|
|
111
|
-
// Reset the render queue when attached to a new scene.
|
|
112
|
-
this.invalidate();
|
|
113
|
-
}
|
|
114
|
-
/** @internal */ computeBoundingVolume() {
|
|
115
|
-
const bv = new BoundingBox();
|
|
116
|
-
const invWorldMatrix = Matrix4x4.invertAffine(this.worldMatrix);
|
|
117
|
-
bv.beginExtend();
|
|
118
|
-
this.iterate((node)=>{
|
|
119
|
-
if (node.isMesh()) {
|
|
120
|
-
Matrix4x4.multiplyAffine(invWorldMatrix, node.worldMatrix, tmpMatrix);
|
|
121
|
-
const wb = node.getBoundingVolume().transform(tmpMatrix).toAABB();
|
|
122
|
-
bv.extend(wb.minPoint);
|
|
123
|
-
bv.extend(wb.maxPoint);
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
return bv.isValid() ? bv : null;
|
|
127
|
-
}
|
|
128
|
-
/** @internal */ setBoundingVolume(bv) {
|
|
129
|
-
this._staticBV = !!bv;
|
|
130
|
-
super.setBoundingVolume(bv);
|
|
131
|
-
}
|
|
132
|
-
/** @internal */ cull(cullVisitor) {
|
|
133
|
-
let queueInfo = this._renderQueueMap.get(cullVisitor.renderPass);
|
|
134
|
-
if (!queueInfo) {
|
|
135
|
-
queueInfo = {
|
|
136
|
-
queue: new RenderQueue(cullVisitor.renderPass, this._bindGroupAllocator),
|
|
137
|
-
tag: -1
|
|
138
|
-
};
|
|
139
|
-
this._renderQueueMap.set(cullVisitor.renderPass, queueInfo);
|
|
140
|
-
}
|
|
141
|
-
if (queueInfo.tag !== this._changeTag) {
|
|
142
|
-
queueInfo.tag = this._changeTag;
|
|
143
|
-
queueInfo.queue.reset();
|
|
144
|
-
const frustumCulling = cullVisitor.frustumCulling;
|
|
145
|
-
const renderQueue = cullVisitor.renderQueue;
|
|
146
|
-
cullVisitor.frustumCulling = false;
|
|
147
|
-
cullVisitor.renderQueue = queueInfo.queue;
|
|
148
|
-
this.iterate((node)=>{
|
|
149
|
-
if (node.isMesh()) {
|
|
150
|
-
cullVisitor.visit(node);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
queueInfo.queue.end(cullVisitor.camera, true);
|
|
154
|
-
cullVisitor.frustumCulling = frustumCulling;
|
|
155
|
-
cullVisitor.renderQueue = renderQueue;
|
|
156
|
-
}
|
|
157
|
-
cullVisitor.pushRenderQueue(queueInfo.queue);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
export { BatchGroup };
|
|
162
|
-
//# sourceMappingURL=batchgroup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batchgroup.js","sources":["../../../src/scene/batchgroup.ts"],"sourcesContent":["import { GraphNode } from './graph_node';\r\nimport type { CullVisitor, RenderPass } from '../render';\r\nimport { RenderQueue, InstanceBindGroupAllocator } from '../render';\r\nimport type { Scene } from './scene';\r\nimport { BoundingBox, type BoundingVolume } from '../utility/bounding_volume';\r\nimport { Matrix4x4 } from '@zephyr3d/base';\r\nimport type { NodeClonable, NodeCloneMethod } from '.';\r\n\r\nconst tmpMatrix = new Matrix4x4();\r\n\r\n/**\r\n * Batch group node\r\n * @public\r\n */\r\nexport class BatchGroup extends GraphNode implements NodeClonable<BatchGroup> {\r\n private readonly _renderQueueMap: Map<\r\n RenderPass,\r\n {\r\n queue: RenderQueue;\r\n tag: number;\r\n }\r\n >;\r\n private readonly _bindGroupAllocator: InstanceBindGroupAllocator;\r\n private _changeTag: number;\r\n private _staticBV: boolean;\r\n /**\r\n * Creates an instance of mesh node\r\n * @param scene - The scene to which the mesh node belongs\r\n */\r\n constructor(scene: Scene) {\r\n super(scene);\r\n this._renderQueueMap = new Map();\r\n this._changeTag = 0;\r\n this._bindGroupAllocator = new InstanceBindGroupAllocator();\r\n this._staticBV = false;\r\n const bvCallback = function (this: BatchGroup) {\r\n if (!this._staticBV) {\r\n this.invalidateBoundingVolume();\r\n }\r\n }.bind(this);\r\n this.on('visiblechanged', (node) => {\r\n node.iterate((child) => {\r\n if (child.isMesh()) {\r\n this._changeTag++;\r\n return true;\r\n }\r\n return false;\r\n });\r\n });\r\n this.on('nodeattached', (node) => {\r\n node.iterate((child) => {\r\n if (child.isMesh()) {\r\n child.placeToOctree = false;\r\n if (!this._staticBV) {\r\n this.invalidateBoundingVolume();\r\n }\r\n child.on('bvchanged', bvCallback);\r\n this._changeTag++;\r\n }\r\n });\r\n });\r\n this.on('noderemoved', (node) => {\r\n node.iterate((child) => {\r\n if (child.isMesh()) {\r\n child.placeToOctree = true;\r\n if (!this._staticBV) {\r\n this.invalidateBoundingVolume();\r\n }\r\n child.off('bvchanged', bvCallback);\r\n this._changeTag++;\r\n }\r\n });\r\n });\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getName}\r\n */\r\n getName(): string {\r\n return this._name;\r\n }\r\n /**\r\n * {@inheritDoc SceneNode.isBatchGroup}\r\n */\r\n isBatchGroup(): this is BatchGroup {\r\n return true;\r\n }\r\n clone(method: NodeCloneMethod, recursive: boolean): BatchGroup {\r\n const other = new BatchGroup(this.scene);\r\n other.copyFrom(this, method, recursive);\r\n other.parent = this.parent;\r\n return other;\r\n }\r\n /**\r\n * Force the batch state to be rebuilt\r\n */\r\n invalidate() {\r\n this._changeTag++;\r\n }\r\n /** @internal */\r\n protected _onDetached(): void {\r\n super._onDetached();\r\n // Usually the node will be garbage collected after it is detached,\r\n // We should reset the render queue to release the render bundles.\r\n this._renderQueueMap.forEach((val) => {\r\n val.queue.reset();\r\n });\r\n this.invalidate();\r\n }\r\n /** @internal */\r\n protected _onAttached(): void {\r\n // Reset the render queue when attached to a new scene.\r\n this.invalidate();\r\n }\r\n /** @internal */\r\n computeBoundingVolume(): BoundingVolume {\r\n const bv = new BoundingBox();\r\n const invWorldMatrix = Matrix4x4.invertAffine(this.worldMatrix);\r\n bv.beginExtend();\r\n this.iterate((node) => {\r\n if (node.isMesh()) {\r\n Matrix4x4.multiplyAffine(invWorldMatrix, node.worldMatrix, tmpMatrix);\r\n const wb = node.getBoundingVolume().transform(tmpMatrix).toAABB();\r\n bv.extend(wb.minPoint);\r\n bv.extend(wb.maxPoint);\r\n }\r\n });\r\n return bv.isValid() ? bv : null;\r\n }\r\n /** @internal */\r\n setBoundingVolume(bv: BoundingVolume): void {\r\n this._staticBV = !!bv;\r\n super.setBoundingVolume(bv);\r\n }\r\n /** @internal */\r\n cull(cullVisitor: CullVisitor) {\r\n let queueInfo = this._renderQueueMap.get(cullVisitor.renderPass);\r\n if (!queueInfo) {\r\n queueInfo = {\r\n queue: new RenderQueue(cullVisitor.renderPass, this._bindGroupAllocator),\r\n tag: -1\r\n };\r\n this._renderQueueMap.set(cullVisitor.renderPass, queueInfo);\r\n }\r\n if (queueInfo.tag !== this._changeTag) {\r\n queueInfo.tag = this._changeTag;\r\n queueInfo.queue.reset();\r\n const frustumCulling = cullVisitor.frustumCulling;\r\n const renderQueue = cullVisitor.renderQueue;\r\n cullVisitor.frustumCulling = false;\r\n cullVisitor.renderQueue = queueInfo.queue;\r\n this.iterate((node) => {\r\n if (node.isMesh()) {\r\n cullVisitor.visit(node);\r\n }\r\n });\r\n queueInfo.queue.end(cullVisitor.camera, true);\r\n cullVisitor.frustumCulling = frustumCulling;\r\n cullVisitor.renderQueue = renderQueue;\r\n }\r\n cullVisitor.pushRenderQueue(queueInfo.queue);\r\n }\r\n}\r\n"],"names":["tmpMatrix","Matrix4x4","BatchGroup","GraphNode","_renderQueueMap","_bindGroupAllocator","_changeTag","_staticBV","scene","Map","InstanceBindGroupAllocator","bvCallback","invalidateBoundingVolume","bind","on","node","iterate","child","isMesh","placeToOctree","off","getName","_name","isBatchGroup","clone","method","recursive","other","copyFrom","parent","invalidate","_onDetached","forEach","val","queue","reset","computeBoundingVolume","bv","BoundingBox","invWorldMatrix","invertAffine","worldMatrix","beginExtend","multiplyAffine","wb","getBoundingVolume","transform","toAABB","extend","minPoint","maxPoint","isValid","setBoundingVolume","cull","cullVisitor","queueInfo","get","renderPass","RenderQueue","tag","set","frustumCulling","renderQueue","visit","end","camera","pushRenderQueue"],"mappings":"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"}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { ObservableVector4, DRef, Vector3 } from '@zephyr3d/base';
|
|
2
|
-
import '../values.js';
|
|
3
|
-
import '@zephyr3d/device';
|
|
4
|
-
import '../material/shader/helper.js';
|
|
5
|
-
import '../material/lambert.js';
|
|
6
|
-
import '../material/blinn.js';
|
|
7
|
-
import '../material/unlit.js';
|
|
8
|
-
import '../material/particle.js';
|
|
9
|
-
import '../material/meshmaterial.js';
|
|
10
|
-
import '../material/grassmaterial.js';
|
|
11
|
-
import '../material/terrainmaterial.js';
|
|
12
|
-
import '../material/terrain-cm.js';
|
|
13
|
-
import '../material/pbrmr.js';
|
|
14
|
-
import '../material/pbrsg.js';
|
|
15
|
-
import '../render/renderer.js';
|
|
16
|
-
import { SkyRenderer } from '../render/sky.js';
|
|
17
|
-
import '../render/clipmap.js';
|
|
18
|
-
import { EnvIBL, EnvHemisphericAmbient, EnvConstantAmbient, EnvShIBL } from '../render/envlight.js';
|
|
19
|
-
import '../shaders/atmosphere.js';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Wrapper for environmant lighting
|
|
23
|
-
* @public
|
|
24
|
-
*/ class EnvLightWrapper {
|
|
25
|
-
_envLight;
|
|
26
|
-
_ambientColor;
|
|
27
|
-
_ambientDown;
|
|
28
|
-
_ambientUp;
|
|
29
|
-
_radianceMap;
|
|
30
|
-
_irradianceMap;
|
|
31
|
-
_irradianceSH;
|
|
32
|
-
_irradianceSHFB;
|
|
33
|
-
_irradianceWindow;
|
|
34
|
-
_strength;
|
|
35
|
-
/** @internal */ constructor(){
|
|
36
|
-
this._envLight = new EnvIBL();
|
|
37
|
-
this._ambientColor = new ObservableVector4(0.2, 0.2, 0.2, 1);
|
|
38
|
-
this._ambientColor.callback = ()=>{
|
|
39
|
-
if (this.type === 'constant') {
|
|
40
|
-
this._envLight.ambientColor.set(this._ambientColor);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
this._ambientDown = new ObservableVector4(0.2, 0.2, 0.2, 1);
|
|
44
|
-
this._ambientDown.callback = ()=>{
|
|
45
|
-
if (this.type === 'hemisphere') {
|
|
46
|
-
this._envLight.ambientDown.set(this._ambientDown);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
this._ambientUp = new ObservableVector4(0.3, 0.5, 0.8, 1);
|
|
50
|
-
this._ambientUp.callback = ()=>{
|
|
51
|
-
if (this.type === 'hemisphere') {
|
|
52
|
-
this._envLight.ambientUp.set(this._ambientUp);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
this._radianceMap = new DRef();
|
|
56
|
-
this._irradianceMap = new DRef();
|
|
57
|
-
this._irradianceSH = new DRef();
|
|
58
|
-
this._irradianceSHFB = new DRef();
|
|
59
|
-
this._irradianceWindow = new Vector3();
|
|
60
|
-
this._strength = 1;
|
|
61
|
-
}
|
|
62
|
-
/** @internal */ dispose() {
|
|
63
|
-
this._envLight?.dispose();
|
|
64
|
-
this._radianceMap.dispose();
|
|
65
|
-
this._irradianceMap.dispose();
|
|
66
|
-
this._irradianceSHFB.dispose();
|
|
67
|
-
this._irradianceSH.dispose();
|
|
68
|
-
}
|
|
69
|
-
/** @internal */ getHash(ctx) {
|
|
70
|
-
return !ctx || ctx.drawEnvLight ? `${this.type}:${this._envLight.hasRadiance() ? '1' : '0'}:${this._envLight.hasIrradiance() ? '1' : '0'}` : 'none';
|
|
71
|
-
}
|
|
72
|
-
/** @internal */ get envLight() {
|
|
73
|
-
return this._envLight;
|
|
74
|
-
}
|
|
75
|
-
/** The strength of environment lighting */ get strength() {
|
|
76
|
-
return this._strength;
|
|
77
|
-
}
|
|
78
|
-
set strength(val) {
|
|
79
|
-
this._strength = val;
|
|
80
|
-
}
|
|
81
|
-
/** Ambient light color for environment light type constant */ get ambientColor() {
|
|
82
|
-
return this._ambientColor;
|
|
83
|
-
}
|
|
84
|
-
set ambientColor(val) {
|
|
85
|
-
this._ambientColor.set(val);
|
|
86
|
-
}
|
|
87
|
-
/** Up color for environment light type hemisphere */ get ambientUp() {
|
|
88
|
-
return this._ambientUp;
|
|
89
|
-
}
|
|
90
|
-
set ambientUp(val) {
|
|
91
|
-
this._ambientUp.set(val);
|
|
92
|
-
}
|
|
93
|
-
/** Down color for environment light type hemisphere */ get ambientDown() {
|
|
94
|
-
return this._ambientDown;
|
|
95
|
-
}
|
|
96
|
-
set ambientDown(val) {
|
|
97
|
-
this._ambientDown.set(val);
|
|
98
|
-
}
|
|
99
|
-
/** Radiance map for environment light type ibl */ get radianceMap() {
|
|
100
|
-
return this._radianceMap.get();
|
|
101
|
-
}
|
|
102
|
-
set radianceMap(tex) {
|
|
103
|
-
this._radianceMap.set(tex);
|
|
104
|
-
if (this.type === 'ibl' || this.type === 'ibl-sh') {
|
|
105
|
-
this._envLight.radianceMap = this.radianceMap;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/** Irradiance map for environment light type ibl */ get irradianceMap() {
|
|
109
|
-
return this._irradianceMap.get();
|
|
110
|
-
}
|
|
111
|
-
set irradianceMap(tex) {
|
|
112
|
-
this._irradianceMap.set(tex);
|
|
113
|
-
if (this.type === 'ibl') {
|
|
114
|
-
this._envLight.irradianceMap = this.irradianceMap;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/** Irradiance SH buffer for environment light type ibl-sh */ get irradianceSH() {
|
|
118
|
-
return this._irradianceSH.get();
|
|
119
|
-
}
|
|
120
|
-
set irradianceSH(value) {
|
|
121
|
-
this._irradianceSH.set(value);
|
|
122
|
-
if (this.type === 'ibl-sh') {
|
|
123
|
-
this._envLight.irradianceSH = this.irradianceSH;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/** Irradiance SH texture for environment light type ibl-sh */ get irradianceSHFB() {
|
|
127
|
-
return this._irradianceSHFB.get();
|
|
128
|
-
}
|
|
129
|
-
set irradianceSHFB(value) {
|
|
130
|
-
this._irradianceSHFB.set(value);
|
|
131
|
-
if (this.type === 'ibl-sh') {
|
|
132
|
-
this._envLight.irradianceSHFB = this.irradianceSHFB;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/** Irradiance SH window for environment light type ibl-sh */ get irradianceWindow() {
|
|
136
|
-
return this._irradianceWindow;
|
|
137
|
-
}
|
|
138
|
-
set irradianceWindow(value) {
|
|
139
|
-
this._irradianceWindow.set(value);
|
|
140
|
-
if (this.type === 'ibl-sh') {
|
|
141
|
-
this._envLight.irradianceWindow = this._irradianceWindow;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/** The environment light type */ get type() {
|
|
145
|
-
return this._envLight?.getType() ?? 'none';
|
|
146
|
-
}
|
|
147
|
-
set type(val) {
|
|
148
|
-
switch(val){
|
|
149
|
-
case 'none':
|
|
150
|
-
this._envLight = null;
|
|
151
|
-
break;
|
|
152
|
-
case 'ibl':
|
|
153
|
-
if (this._envLight?.getType() !== val) {
|
|
154
|
-
this._envLight = new EnvIBL(this.radianceMap, this.irradianceMap);
|
|
155
|
-
}
|
|
156
|
-
this._envLight.radianceMap = this.radianceMap;
|
|
157
|
-
this._envLight.irradianceMap = this.irradianceMap;
|
|
158
|
-
break;
|
|
159
|
-
case 'ibl-sh':
|
|
160
|
-
if (this._envLight?.getType() !== val) {
|
|
161
|
-
this._envLight = new EnvShIBL(this.radianceMap, this.irradianceSH);
|
|
162
|
-
}
|
|
163
|
-
this._envLight.radianceMap = this.radianceMap;
|
|
164
|
-
this._envLight.irradianceSH = this.irradianceSH;
|
|
165
|
-
this._envLight.irradianceWindow = this.irradianceWindow;
|
|
166
|
-
break;
|
|
167
|
-
case 'constant':
|
|
168
|
-
if (this._envLight?.getType() !== val) {
|
|
169
|
-
this._envLight = new EnvConstantAmbient(this._ambientColor);
|
|
170
|
-
}
|
|
171
|
-
break;
|
|
172
|
-
case 'hemisphere':
|
|
173
|
-
if (this._envLight?.getType() !== val) {
|
|
174
|
-
this._envLight = new EnvHemisphericAmbient(this._ambientUp, this._ambientDown);
|
|
175
|
-
}
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Environment of scene
|
|
182
|
-
* @public
|
|
183
|
-
*/ class Environment {
|
|
184
|
-
_sky;
|
|
185
|
-
_light;
|
|
186
|
-
/** @internal */ constructor(){
|
|
187
|
-
this._sky = new SkyRenderer();
|
|
188
|
-
this._light = new EnvLightWrapper();
|
|
189
|
-
}
|
|
190
|
-
/** The sky renderer */ get sky() {
|
|
191
|
-
return this._sky;
|
|
192
|
-
}
|
|
193
|
-
/** The environment lighting renderer */ get light() {
|
|
194
|
-
return this._light;
|
|
195
|
-
}
|
|
196
|
-
/** @internal */ getHash(ctx) {
|
|
197
|
-
return `${this.light?.getHash(ctx)}:${this._sky?.getHash(ctx)}`;
|
|
198
|
-
}
|
|
199
|
-
/** @internal */ needSceneDepthTexture() {
|
|
200
|
-
return this._sky.fogType !== 'none';
|
|
201
|
-
}
|
|
202
|
-
/** @internal */ dispose() {
|
|
203
|
-
this._sky.dispose();
|
|
204
|
-
this._light.dispose();
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export { EnvLightWrapper, Environment };
|
|
209
|
-
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sources":["../../../src/scene/environment.ts"],"sourcesContent":["import type { Vector4 } from '@zephyr3d/base';\r\nimport { Vector3, DRef } from '@zephyr3d/base';\r\nimport { ObservableVector4 } from '@zephyr3d/base';\r\nimport type { DrawContext, EnvironmentLighting, EnvLightType } from '../render';\r\nimport { EnvShIBL } from '../render';\r\nimport { EnvConstantAmbient, EnvHemisphericAmbient, EnvIBL } from '../render';\r\nimport { SkyRenderer } from '../render/sky';\r\nimport type { FrameBuffer, GPUDataBuffer, TextureCube } from '@zephyr3d/device';\r\n\r\n/**\r\n * Wrapper for environmant lighting\r\n * @public\r\n */\r\nexport class EnvLightWrapper {\r\n private _envLight: EnvironmentLighting;\r\n private readonly _ambientColor: ObservableVector4;\r\n private readonly _ambientDown: ObservableVector4;\r\n private readonly _ambientUp: ObservableVector4;\r\n private readonly _radianceMap: DRef<TextureCube>;\r\n private readonly _irradianceMap: DRef<TextureCube>;\r\n private readonly _irradianceSH: DRef<GPUDataBuffer>;\r\n private readonly _irradianceSHFB: DRef<FrameBuffer>;\r\n private readonly _irradianceWindow: Vector3;\r\n private _strength: number;\r\n /** @internal */\r\n constructor() {\r\n this._envLight = new EnvIBL();\r\n this._ambientColor = new ObservableVector4(0.2, 0.2, 0.2, 1);\r\n this._ambientColor.callback = () => {\r\n if (this.type === 'constant') {\r\n (this._envLight as EnvConstantAmbient).ambientColor.set(this._ambientColor);\r\n }\r\n };\r\n this._ambientDown = new ObservableVector4(0.2, 0.2, 0.2, 1);\r\n this._ambientDown.callback = () => {\r\n if (this.type === 'hemisphere') {\r\n (this._envLight as EnvHemisphericAmbient).ambientDown.set(this._ambientDown);\r\n }\r\n };\r\n this._ambientUp = new ObservableVector4(0.3, 0.5, 0.8, 1);\r\n this._ambientUp.callback = () => {\r\n if (this.type === 'hemisphere') {\r\n (this._envLight as EnvHemisphericAmbient).ambientUp.set(this._ambientUp);\r\n }\r\n };\r\n this._radianceMap = new DRef();\r\n this._irradianceMap = new DRef();\r\n this._irradianceSH = new DRef();\r\n this._irradianceSHFB = new DRef();\r\n this._irradianceWindow = new Vector3();\r\n this._strength = 1;\r\n }\r\n /** @internal */\r\n dispose() {\r\n this._envLight?.dispose();\r\n this._radianceMap.dispose();\r\n this._irradianceMap.dispose();\r\n this._irradianceSHFB.dispose();\r\n this._irradianceSH.dispose();\r\n }\r\n /** @internal */\r\n getHash(ctx?: DrawContext): string {\r\n return !ctx || ctx.drawEnvLight\r\n ? `${this.type}:${this._envLight.hasRadiance() ? '1' : '0'}:${\r\n this._envLight.hasIrradiance() ? '1' : '0'\r\n }`\r\n : 'none';\r\n }\r\n /** @internal */\r\n get envLight(): EnvironmentLighting {\r\n return this._envLight;\r\n }\r\n /** The strength of environment lighting */\r\n get strength(): number {\r\n return this._strength;\r\n }\r\n set strength(val: number) {\r\n this._strength = val;\r\n }\r\n /** Ambient light color for environment light type constant */\r\n get ambientColor(): Vector4 {\r\n return this._ambientColor;\r\n }\r\n set ambientColor(val: Vector4) {\r\n this._ambientColor.set(val);\r\n }\r\n /** Up color for environment light type hemisphere */\r\n get ambientUp(): Vector4 {\r\n return this._ambientUp;\r\n }\r\n set ambientUp(val: Vector4) {\r\n this._ambientUp.set(val);\r\n }\r\n /** Down color for environment light type hemisphere */\r\n get ambientDown(): Vector4 {\r\n return this._ambientDown;\r\n }\r\n set ambientDown(val: Vector4) {\r\n this._ambientDown.set(val);\r\n }\r\n /** Radiance map for environment light type ibl */\r\n get radianceMap(): TextureCube {\r\n return this._radianceMap.get();\r\n }\r\n set radianceMap(tex: TextureCube) {\r\n this._radianceMap.set(tex);\r\n if (this.type === 'ibl' || this.type === 'ibl-sh') {\r\n (this._envLight as EnvIBL | EnvShIBL).radianceMap = this.radianceMap;\r\n }\r\n }\r\n /** Irradiance map for environment light type ibl */\r\n get irradianceMap(): TextureCube {\r\n return this._irradianceMap.get();\r\n }\r\n set irradianceMap(tex: TextureCube) {\r\n this._irradianceMap.set(tex);\r\n if (this.type === 'ibl') {\r\n (this._envLight as EnvIBL).irradianceMap = this.irradianceMap;\r\n }\r\n }\r\n /** Irradiance SH buffer for environment light type ibl-sh */\r\n get irradianceSH(): GPUDataBuffer {\r\n return this._irradianceSH.get();\r\n }\r\n set irradianceSH(value: GPUDataBuffer) {\r\n this._irradianceSH.set(value);\r\n if (this.type === 'ibl-sh') {\r\n (this._envLight as EnvShIBL).irradianceSH = this.irradianceSH;\r\n }\r\n }\r\n /** Irradiance SH texture for environment light type ibl-sh */\r\n get irradianceSHFB(): FrameBuffer {\r\n return this._irradianceSHFB.get();\r\n }\r\n set irradianceSHFB(value: FrameBuffer) {\r\n this._irradianceSHFB.set(value);\r\n if (this.type === 'ibl-sh') {\r\n (this._envLight as EnvShIBL).irradianceSHFB = this.irradianceSHFB;\r\n }\r\n }\r\n /** Irradiance SH window for environment light type ibl-sh */\r\n get irradianceWindow(): Vector3 {\r\n return this._irradianceWindow;\r\n }\r\n set irradianceWindow(value: Vector3) {\r\n this._irradianceWindow.set(value);\r\n if (this.type === 'ibl-sh') {\r\n (this._envLight as EnvShIBL).irradianceWindow = this._irradianceWindow;\r\n }\r\n }\r\n /** The environment light type */\r\n get type(): EnvLightType {\r\n return this._envLight?.getType() ?? 'none';\r\n }\r\n set type(val: EnvLightType) {\r\n switch (val) {\r\n case 'none':\r\n this._envLight = null;\r\n break;\r\n case 'ibl':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvIBL(this.radianceMap, this.irradianceMap);\r\n }\r\n (this._envLight as EnvIBL).radianceMap = this.radianceMap;\r\n (this._envLight as EnvIBL).irradianceMap = this.irradianceMap;\r\n break;\r\n case 'ibl-sh':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvShIBL(this.radianceMap, this.irradianceSH);\r\n }\r\n (this._envLight as EnvShIBL).radianceMap = this.radianceMap;\r\n (this._envLight as EnvShIBL).irradianceSH = this.irradianceSH;\r\n (this._envLight as EnvShIBL).irradianceWindow = this.irradianceWindow;\r\n break;\r\n case 'constant':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvConstantAmbient(this._ambientColor);\r\n }\r\n break;\r\n case 'hemisphere':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvHemisphericAmbient(this._ambientUp, this._ambientDown);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Environment of scene\r\n * @public\r\n */\r\nexport class Environment {\r\n private readonly _sky: SkyRenderer;\r\n private readonly _light: EnvLightWrapper;\r\n /** @internal */\r\n constructor() {\r\n this._sky = new SkyRenderer();\r\n this._light = new EnvLightWrapper();\r\n }\r\n /** The sky renderer */\r\n get sky(): SkyRenderer {\r\n return this._sky;\r\n }\r\n /** The environment lighting renderer */\r\n get light(): EnvLightWrapper {\r\n return this._light;\r\n }\r\n /** @internal */\r\n getHash(ctx: DrawContext) {\r\n return `${this.light?.getHash(ctx)}:${this._sky?.getHash(ctx)}`;\r\n }\r\n /** @internal */\r\n needSceneDepthTexture(): boolean {\r\n return this._sky.fogType !== 'none';\r\n }\r\n /** @internal */\r\n dispose() {\r\n this._sky.dispose();\r\n this._light.dispose();\r\n }\r\n}\r\n"],"names":["EnvLightWrapper","_envLight","_ambientColor","_ambientDown","_ambientUp","_radianceMap","_irradianceMap","_irradianceSH","_irradianceSHFB","_irradianceWindow","_strength","EnvIBL","ObservableVector4","callback","type","ambientColor","set","ambientDown","ambientUp","DRef","Vector3","dispose","getHash","ctx","drawEnvLight","hasRadiance","hasIrradiance","envLight","strength","val","radianceMap","get","tex","irradianceMap","irradianceSH","value","irradianceSHFB","irradianceWindow","getType","EnvShIBL","EnvConstantAmbient","EnvHemisphericAmbient","Environment","_sky","_light","SkyRenderer","sky","light","needSceneDepthTexture","fogType"],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { SceneNode } from './scene_node.js';
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
-
/**
|
|
5
|
-
* Graph scene node
|
|
6
|
-
*
|
|
7
|
-
* @remarks
|
|
8
|
-
* Graph node is the base class of any kind of scene node that will be placed into the octree
|
|
9
|
-
*
|
|
10
|
-
* @public
|
|
11
|
-
*/ class GraphNode extends SceneNode {
|
|
12
|
-
_octreeNode;
|
|
13
|
-
/**
|
|
14
|
-
* Creates a graph node
|
|
15
|
-
* @param scene - The scene to which the node belongs
|
|
16
|
-
*/ constructor(scene){
|
|
17
|
-
super(scene);
|
|
18
|
-
this._octreeNode = null;
|
|
19
|
-
}
|
|
20
|
-
clone(method, recursive) {
|
|
21
|
-
const other = new GraphNode(this.scene);
|
|
22
|
-
other.copyFrom(this, method, recursive);
|
|
23
|
-
other.parent = this.parent;
|
|
24
|
-
return other;
|
|
25
|
-
}
|
|
26
|
-
/** @internal */ get octreeNode() {
|
|
27
|
-
return this._octreeNode;
|
|
28
|
-
}
|
|
29
|
-
set octreeNode(node) {
|
|
30
|
-
this._octreeNode = node;
|
|
31
|
-
}
|
|
32
|
-
/** Gets the name */ getName() {
|
|
33
|
-
return this._name;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* {@inheritDoc SceneNode.isGraphNode}
|
|
37
|
-
* @override
|
|
38
|
-
*/ isGraphNode() {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* {@inheritDoc Drawable.getNode}
|
|
43
|
-
*/ getNode() {
|
|
44
|
-
return this;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* {@inheritDoc Drawable.getBoneMatrices}
|
|
48
|
-
*/ getBoneMatrices() {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* {@inheritDoc Drawable.getSortDistance}
|
|
53
|
-
*/ getSortDistance(camera) {
|
|
54
|
-
const cameraWorldMatrix = camera.worldMatrix;
|
|
55
|
-
const objectWorldMatrix = this.worldMatrix;
|
|
56
|
-
const dx = cameraWorldMatrix.m03 - objectWorldMatrix.m03;
|
|
57
|
-
const dy = cameraWorldMatrix.m13 - objectWorldMatrix.m13;
|
|
58
|
-
const dz = cameraWorldMatrix.m23 - objectWorldMatrix.m23;
|
|
59
|
-
return dx * dx + dy * dy * dz * dz;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* {@inheritDoc Drawable.isBatchable}
|
|
63
|
-
*/ isBatchable() {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
/** @internal */ _visibleChanged() {
|
|
67
|
-
this._scene?.invalidateNodePlacement(this);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export { GraphNode };
|
|
72
|
-
//# sourceMappingURL=graph_node.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph_node.js","sources":["../../../src/scene/graph_node.ts"],"sourcesContent":["import { SceneNode } from './scene_node';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { BatchDrawable } from '../render/drawable';\r\nimport type { Scene } from './scene';\r\nimport type { Camera } from '../camera/camera';\r\nimport type { NodeClonable, NodeCloneMethod, OctreeNode } from '.';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n/**\r\n * Graph scene node\r\n *\r\n * @remarks\r\n * Graph node is the base class of any kind of scene node that will be placed into the octree\r\n *\r\n * @public\r\n */\r\nexport class GraphNode extends SceneNode implements NodeClonable<GraphNode> {\r\n private _octreeNode: OctreeNode;\r\n /**\r\n * Creates a graph node\r\n * @param scene - The scene to which the node belongs\r\n */\r\n constructor(scene: Scene) {\r\n super(scene);\r\n this._octreeNode = null;\r\n }\r\n clone(method: NodeCloneMethod, recursive: boolean): GraphNode {\r\n const other = new GraphNode(this.scene);\r\n other.copyFrom(this, method, recursive);\r\n other.parent = this.parent;\r\n return other;\r\n }\r\n /** @internal */\r\n get octreeNode(): OctreeNode {\r\n return this._octreeNode;\r\n }\r\n set octreeNode(node: OctreeNode) {\r\n this._octreeNode = node;\r\n }\r\n /** Gets the name */\r\n getName(): string {\r\n return this._name;\r\n }\r\n /**\r\n * {@inheritDoc SceneNode.isGraphNode}\r\n * @override\r\n */\r\n isGraphNode(): this is GraphNode {\r\n return true;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getNode}\r\n */\r\n getNode(): SceneNode {\r\n return this;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getBoneMatrices}\r\n */\r\n getBoneMatrices(): Texture2D {\r\n return null;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getSortDistance}\r\n */\r\n getSortDistance(camera: Camera): number {\r\n const cameraWorldMatrix = camera.worldMatrix;\r\n const objectWorldMatrix = this.worldMatrix;\r\n const dx = cameraWorldMatrix.m03 - objectWorldMatrix.m03;\r\n const dy = cameraWorldMatrix.m13 - objectWorldMatrix.m13;\r\n const dz = cameraWorldMatrix.m23 - objectWorldMatrix.m23;\r\n return dx * dx + dy * dy * dz * dz;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.isBatchable}\r\n */\r\n isBatchable(): this is BatchDrawable {\r\n return false;\r\n }\r\n /** @internal */\r\n protected _visibleChanged(): void {\r\n this._scene?.invalidateNodePlacement(this);\r\n }\r\n}\r\n"],"names":["GraphNode","SceneNode","_octreeNode","scene","clone","method","recursive","other","copyFrom","parent","octreeNode","node","getName","_name","isGraphNode","getNode","getBoneMatrices","getSortDistance","camera","cameraWorldMatrix","worldMatrix","objectWorldMatrix","dx","m03","dy","m13","dz","m23","isBatchable","_scene","invalidateNodePlacement"],"mappings":";;AAOA;AACA;;;;;;;IAQO,MAAMA,SAAkBC,SAAAA,SAAAA,CAAAA;IACrBC,WAAwB;AAChC;;;MAIA,WAAA,CAAYC,KAAY,CAAE;AACxB,QAAA,KAAK,CAACA,KAAAA,CAAAA;QACN,IAAI,CAACD,WAAW,GAAG,IAAA;AACrB;IACAE,KAAMC,CAAAA,MAAuB,EAAEC,SAAkB,EAAa;AAC5D,QAAA,MAAMC,KAAQ,GAAA,IAAIP,SAAU,CAAA,IAAI,CAACG,KAAK,CAAA;AACtCI,QAAAA,KAAAA,CAAMC,QAAQ,CAAC,IAAI,EAAEH,MAAQC,EAAAA,SAAAA,CAAAA;AAC7BC,QAAAA,KAAAA,CAAME,MAAM,GAAG,IAAI,CAACA,MAAM;QAC1B,OAAOF,KAAAA;AACT;qBAEA,IAAIG,UAAyB,GAAA;QAC3B,OAAO,IAAI,CAACR,WAAW;AACzB;IACA,IAAIQ,UAAAA,CAAWC,IAAgB,EAAE;QAC/B,IAAI,CAACT,WAAW,GAAGS,IAAAA;AACrB;AACA,yBACAC,OAAkB,GAAA;QAChB,OAAO,IAAI,CAACC,KAAK;AACnB;AACA;;;AAGC,MACDC,WAAiC,GAAA;QAC/B,OAAO,IAAA;AACT;AACA;;AAEC,MACDC,OAAqB,GAAA;AACnB,QAAA,OAAO,IAAI;AACb;AACA;;AAEC,MACDC,eAA6B,GAAA;QAC3B,OAAO,IAAA;AACT;AACA;;MAGAC,eAAAA,CAAgBC,MAAc,EAAU;QACtC,MAAMC,iBAAAA,GAAoBD,OAAOE,WAAW;QAC5C,MAAMC,iBAAAA,GAAoB,IAAI,CAACD,WAAW;AAC1C,QAAA,MAAME,EAAKH,GAAAA,iBAAAA,CAAkBI,GAAG,GAAGF,kBAAkBE,GAAG;AACxD,QAAA,MAAMC,EAAKL,GAAAA,iBAAAA,CAAkBM,GAAG,GAAGJ,kBAAkBI,GAAG;AACxD,QAAA,MAAMC,EAAKP,GAAAA,iBAAAA,CAAkBQ,GAAG,GAAGN,kBAAkBM,GAAG;AACxD,QAAA,OAAOL,EAAKA,GAAAA,EAAAA,GAAKE,EAAKA,GAAAA,EAAAA,GAAKE,EAAKA,GAAAA,EAAAA;AAClC;AACA;;AAEC,MACDE,WAAqC,GAAA;QACnC,OAAO,KAAA;AACT;qBAEA,eAAkC,GAAA;AAChC,QAAA,IAAI,CAACC,MAAM,EAAEC,uBAAAA,CAAwB,IAAI,CAAA;AAC3C;AACF;;;;"}
|