@woosh/meep-engine 2.164.0 → 2.165.0
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/build/bundle-worker-terrain.js +1 -1
- package/package.json +1 -1
- package/src/core/binary/BitImage2.d.ts +91 -0
- package/src/core/binary/BitImage2.d.ts.map +1 -0
- package/src/core/binary/BitImage2.js +242 -0
- package/src/core/geom/2d/oriented-box/min_area_rect_2d.d.ts +22 -0
- package/src/core/geom/2d/oriented-box/min_area_rect_2d.d.ts.map +1 -0
- package/src/core/geom/2d/oriented-box/min_area_rect_2d.js +69 -0
- package/src/core/geom/2d/packing/skyline.d.ts +116 -0
- package/src/core/geom/2d/packing/skyline.d.ts.map +1 -0
- package/src/core/geom/2d/packing/skyline.js +258 -0
- package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts +18 -0
- package/src/core/geom/2d/triangle/tri2_rasterize_conservative.d.ts.map +1 -0
- package/src/core/geom/2d/triangle/tri2_rasterize_conservative.js +86 -0
- package/src/core/geom/3d/atlas/ATLAS_PORT_PLAN.md +486 -0
- package/src/core/geom/3d/atlas/BFF_PLAN.md +174 -0
- package/src/core/geom/3d/atlas/Chart.d.ts +58 -0
- package/src/core/geom/3d/atlas/Chart.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/Chart.js +77 -0
- package/src/core/geom/3d/atlas/REVIEW_02.md +392 -0
- package/src/core/geom/3d/atlas/atlas_bench_lib.d.ts +73 -0
- package/src/core/geom/3d/atlas/atlas_bench_lib.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/atlas_bench_lib.js +315 -0
- package/src/core/geom/3d/atlas/atlas_chart_type.d.ts +17 -0
- package/src/core/geom/3d/atlas/atlas_chart_type.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/atlas_chart_type.js +16 -0
- package/src/core/geom/3d/atlas/atlas_compute_charts.d.ts +25 -0
- package/src/core/geom/3d/atlas/atlas_compute_charts.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/atlas_compute_charts.js +188 -0
- package/src/core/geom/3d/atlas/atlas_extract_chart.d.ts +17 -0
- package/src/core/geom/3d/atlas/atlas_extract_chart.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/atlas_extract_chart.js +107 -0
- package/src/core/geom/3d/atlas/atlas_generate.d.ts +39 -0
- package/src/core/geom/3d/atlas/atlas_generate.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/atlas_generate.js +43 -0
- package/src/core/geom/3d/atlas/atlas_test_fixtures.d.ts +84 -0
- package/src/core/geom/3d/atlas/atlas_test_fixtures.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/atlas_test_fixtures.js +266 -0
- package/src/core/geom/3d/atlas/atlas_write_chart_uvs.d.ts +25 -0
- package/src/core/geom/3d/atlas/atlas_write_chart_uvs.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/atlas_write_chart_uvs.js +36 -0
- package/src/core/geom/3d/atlas/data/atlas_build_edge_dihedrals.d.ts +22 -0
- package/src/core/geom/3d/atlas/data/atlas_build_edge_dihedrals.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/data/atlas_build_edge_dihedrals.js +62 -0
- package/src/core/geom/3d/atlas/data/atlas_build_edge_lengths.d.ts +9 -0
- package/src/core/geom/3d/atlas/data/atlas_build_edge_lengths.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/data/atlas_build_edge_lengths.js +33 -0
- package/src/core/geom/3d/atlas/data/atlas_build_face_areas.d.ts +9 -0
- package/src/core/geom/3d/atlas/data/atlas_build_face_areas.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/data/atlas_build_face_areas.js +50 -0
- package/src/core/geom/3d/atlas/io/atlas_mesh_weld_colocals.d.ts +27 -0
- package/src/core/geom/3d/atlas/io/atlas_mesh_weld_colocals.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/io/atlas_mesh_weld_colocals.js +39 -0
- package/src/core/geom/3d/atlas/io/bt_loop_uv.d.ts +22 -0
- package/src/core/geom/3d/atlas/io/bt_loop_uv.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/io/bt_loop_uv.js +57 -0
- package/src/core/geom/3d/atlas/pack/ChartPlacement.d.ts +36 -0
- package/src/core/geom/3d/atlas/pack/ChartPlacement.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/pack/ChartPlacement.js +46 -0
- package/src/core/geom/3d/atlas/pack/atlas_pack_charts.d.ts +62 -0
- package/src/core/geom/3d/atlas/pack/atlas_pack_charts.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/pack/atlas_pack_charts.js +551 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_param_validity.d.ts +22 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_param_validity.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_param_validity.js +73 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.d.ts +37 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_bff.js +270 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.d.ts +23 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_lscm.js +224 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_ortho.d.ts +14 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_ortho.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_parameterize_ortho.js +38 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_stretch_metric.d.ts +22 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_stretch_metric.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/param/atlas_chart_stretch_metric.js +86 -0
- package/src/core/geom/3d/atlas/param/atlas_piecewise_resegment.d.ts +20 -0
- package/src/core/geom/3d/atlas/param/atlas_piecewise_resegment.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/param/atlas_piecewise_resegment.js +183 -0
- package/src/core/geom/3d/atlas/param/fit_plane_basis.d.ts +27 -0
- package/src/core/geom/3d/atlas/param/fit_plane_basis.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/param/fit_plane_basis.js +66 -0
- package/src/core/geom/3d/atlas/segment/RegionGraph.d.ts +31 -0
- package/src/core/geom/3d/atlas/segment/RegionGraph.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/segment/RegionGraph.js +40 -0
- package/src/core/geom/3d/atlas/segment/atlas_build_region_graph.d.ts +23 -0
- package/src/core/geom/3d/atlas/segment/atlas_build_region_graph.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/segment/atlas_build_region_graph.js +136 -0
- package/src/core/geom/3d/atlas/segment/atlas_compute_planar_regions.d.ts +24 -0
- package/src/core/geom/3d/atlas/segment/atlas_compute_planar_regions.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/segment/atlas_compute_planar_regions.js +77 -0
- package/src/core/geom/3d/atlas/segment/atlas_merge_charts.d.ts +27 -0
- package/src/core/geom/3d/atlas/segment/atlas_merge_charts.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/segment/atlas_merge_charts.js +113 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts +44 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts.js +275 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts +22 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.d.ts.map +1 -0
- package/src/core/geom/3d/atlas/segment/atlas_segment_charts_atomic.js +199 -0
- package/src/core/geom/3d/line/line3_compute_point_segment_point_distance_unfolded.d.ts +32 -0
- package/src/core/geom/3d/line/line3_compute_point_segment_point_distance_unfolded.d.ts.map +1 -0
- package/src/core/geom/3d/line/line3_compute_point_segment_point_distance_unfolded.js +64 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts +20 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_from_rotation_translation_scale.js +66 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +13 -11
- package/src/core/geom/3d/sphere/sphere_compute_bounding_of_2_spheres.d.ts.map +1 -1
- package/src/core/geom/3d/sphere/sphere_compute_bounding_of_2_spheres.js +4 -3
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +4 -3
- package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.js +4 -3
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalty_to_vertex_quadrics.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/quadratic/apply_border_penalty_to_vertex_quadrics.js +10 -6
- package/src/core/geom/3d/topology/struct/TopoMesh.js +2 -2
- package/src/core/geom/3d/topology/struct/TopoTriangle.d.ts +0 -2
- package/src/core/geom/3d/topology/struct/TopoTriangle.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/TopoTriangle.js +2 -2
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/query/bt_mesh_face_find_path_polyanya.js +8 -27
- package/src/core/geom/vec3/v3_cotangent.d.ts +20 -0
- package/src/core/geom/vec3/v3_cotangent.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_cotangent.js +29 -0
- package/src/core/geom/vec3/v3_matrix3_multiply.d.ts +19 -0
- package/src/core/geom/vec3/v3_matrix3_multiply.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_matrix3_multiply.js +30 -0
- package/src/core/geom/vec3/v3_multiply.d.ts +16 -0
- package/src/core/geom/vec3/v3_multiply.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_multiply.js +19 -0
- package/src/core/math/linalg/cg/cg_solve.d.ts +24 -0
- package/src/core/math/linalg/cg/cg_solve.d.ts.map +1 -0
- package/src/core/math/linalg/cg/cg_solve.js +106 -0
- package/src/core/math/linalg/cg/cg_solve_normal_equations.d.ts +21 -0
- package/src/core/math/linalg/cg/cg_solve_normal_equations.d.ts.map +1 -0
- package/src/core/math/linalg/cg/cg_solve_normal_equations.js +59 -0
- package/src/core/math/linalg/eigen/matrix_symmetric_3x3_eigen.d.ts +19 -0
- package/src/core/math/linalg/eigen/matrix_symmetric_3x3_eigen.d.ts.map +1 -0
- package/src/core/math/linalg/eigen/matrix_symmetric_3x3_eigen.js +117 -0
- package/src/core/math/linalg/sparse/SparseMatrixCSR.d.ts +50 -0
- package/src/core/math/linalg/sparse/SparseMatrixCSR.d.ts.map +1 -0
- package/src/core/math/linalg/sparse/SparseMatrixCSR.js +88 -0
- package/src/core/math/linalg/sparse/spm_matvec.d.ts +9 -0
- package/src/core/math/linalg/sparse/spm_matvec.d.ts.map +1 -0
- package/src/core/math/linalg/sparse/spm_matvec.js +22 -0
- package/src/core/math/linalg/sparse/spm_matvec_transpose.d.ts +12 -0
- package/src/core/math/linalg/sparse/spm_matvec_transpose.d.ts.map +1 -0
- package/src/core/math/linalg/sparse/spm_matvec_transpose.js +29 -0
- package/src/core/math/physics/mie/MIE_PARTICLES_STANDARD_PRECOMPUTED.d.ts +39 -0
- package/src/core/math/physics/mie/MIE_PARTICLES_STANDARD_PRECOMPUTED.js +22 -1
- package/src/core/math/physics/mie/compute_mie_particle_properties_rgb.d.ts.map +1 -1
- package/src/core/math/physics/mie/compute_mie_particle_properties_rgb.js +32 -9
- package/src/core/math/physics/mie/compute_mie_phase.d.ts +2 -3
- package/src/core/math/physics/mie/compute_mie_phase.d.ts.map +1 -1
- package/src/core/math/physics/mie/compute_mie_phase.js +1 -3
- package/src/core/math/physics/mie/lorenz_mie_coefs.d.ts +0 -1
- package/src/core/math/physics/mie/lorenz_mie_coefs.d.ts.map +1 -1
- package/src/core/math/physics/mie/lorenz_mie_coefs.js +0 -7
- package/src/engine/ecs/attachment/TransformAttachmentBinding.js +3 -3
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +2 -2
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.js +4 -3
- package/src/engine/ecs/terrain/tiles/TerrainTile.js +2 -2
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTileManager.js +9 -8
- package/src/engine/graphics/GraphicsEngine.d.ts.map +1 -1
- package/src/engine/graphics/GraphicsEngine.js +2 -1
- package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +2 -2
- package/src/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +2 -2
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +2 -2
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +0 -1
- package/src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.d.ts.map +1 -1
- package/src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.js +8 -7
- package/src/engine/graphics/geometry/MikkT/AvgTSpace.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/AvgTSpace.js +11 -6
- package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js +2 -3
- package/src/engine/graphics/geometry/MikkT/CalcTexArea.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/CalcTexArea.js +3 -4
- package/src/engine/graphics/geometry/MikkT/DegenEpilogue.js +4 -4
- package/src/engine/graphics/geometry/MikkT/EvalTspace.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/EvalTspace.js +11 -8
- package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js +7 -8
- package/src/engine/graphics/geometry/MikkT/GenerateTSpaces.js +8 -8
- package/src/engine/graphics/geometry/MikkT/InitTriInfo.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/InitTriInfo.js +30 -25
- package/src/engine/graphics/geometry/MikkT/MikkTSpace.js +7 -7
- package/src/engine/graphics/geometry/MikkT/NormalizeSafe.d.ts +0 -1
- package/src/engine/graphics/geometry/MikkT/NormalizeSafe.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/NormalizeSafe.js +6 -4
- package/src/engine/graphics/geometry/MikkT/STSpace.d.ts +0 -2
- package/src/engine/graphics/geometry/MikkT/STSpace.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/STSpace.js +3 -3
- package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.d.ts +0 -2
- package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/v3_scale_dot_sub_normalize.js +0 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts +0 -2
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +4 -3
- package/src/engine/graphics/impostors/octahedral/grid/HemiOctahedralUvEncoder.js +2 -2
- package/src/engine/graphics/impostors/octahedral/grid/UvEncoder.d.ts +17 -7
- package/src/engine/graphics/impostors/voxel/VoxelImpostorBaker.js +2 -2
- package/src/engine/graphics/particles/particular/engine/utils/volume/ParticleVolume.js +3 -3
- package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +4 -3
- package/src/engine/graphics/render/forward_plus/LightManager.js +2 -2
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts +0 -2
- package/src/engine/graphics/render/forward_plus/model/Decal.d.ts.map +1 -1
- package/src/engine/graphics/render/forward_plus/model/Decal.js +3 -3
- package/src/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +4 -3
- package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +6 -4
- package/src/engine/graphics/sh3/lightmap/ARTIFACTS_PLAN.md +146 -0
- package/src/engine/graphics/sh3/lightmap/CODE_REVIEW.md +121 -0
- package/src/engine/graphics/sh3/lightmap/LIGHTMAPPER_REVIEW.md +183 -0
- package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.d.ts +90 -0
- package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.js +678 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_build_geometry.d.ts +32 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_build_geometry.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_build_geometry.js +155 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_denoise.d.ts +49 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_denoise.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_denoise.js +136 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts +19 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_dilate.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_dilate.js +89 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_gather.d.ts +54 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_gather.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_gather.js +168 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_rasterize_triangle.d.ts +30 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_rasterize_triangle.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_rasterize_triangle.js +145 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_seam_fix.d.ts +38 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_seam_fix.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/lightmap_seam_fix.js +152 -0
- package/src/engine/graphics/sh3/lightmap/prototypeLightmapBaker.d.ts +2 -0
- package/src/engine/graphics/sh3/lightmap/prototypeLightmapBaker.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lightmap/prototypeLightmapBaker.js +186 -0
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.js +2 -2
- package/src/engine/graphics/sh3/path_tracer/PathTracer.js +2 -2
- package/src/engine/graphics/sh3/path_tracer/prepare_scene_gltf.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/prepare_scene_gltf.js +6 -4
- package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +3 -3
- package/src/engine/graphics/sh3/path_tracer/texture/sample_material.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +5 -4
- package/src/engine/graphics/sh3/sky/hosek/prototype_hosek.js +2 -2
- package/src/engine/input/devices/KeyboardDevice.d.ts +61 -14
- package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
- package/src/engine/input/devices/KeyboardDevice.js +41 -15
- package/src/engine/input/devices/isHTMLElementFocusable.d.ts.map +1 -1
- package/src/engine/input/devices/isHTMLElementFocusable.js +2 -9
- package/src/engine/sound/simulation/prototypeAcousticSolver.js +261 -143
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m4_multiply } from "../../../core/geom/3d/mat4/m4_multiply.js";
|
|
2
2
|
import { AttachmentBinding } from "./AttachmentBinding.js";
|
|
3
3
|
|
|
4
4
|
const scratch_m4_0 = new Float32Array(16);
|
|
@@ -16,10 +16,10 @@ export class TransformAttachmentBinding extends AttachmentBinding {
|
|
|
16
16
|
this.parentTransform.toMatrix(scratch_m4_1);
|
|
17
17
|
this.attachment.transform.toMatrix(scratch_m4_2);
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
m4_multiply(
|
|
20
20
|
scratch_m4_0, scratch_m4_1, scratch_m4_0
|
|
21
21
|
);
|
|
22
|
-
|
|
22
|
+
m4_multiply(
|
|
23
23
|
scratch_m4_0, scratch_m4_0, scratch_m4_2
|
|
24
24
|
);
|
|
25
25
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m4_multiply } from "../../../../core/geom/3d/mat4/m4_multiply.js";
|
|
2
2
|
import { ResourceAccessKind } from "../../../../core/model/ResourceAccessKind.js";
|
|
3
3
|
import { ResourceAccessSpecification } from "../../../../core/model/ResourceAccessSpecification.js";
|
|
4
4
|
import { GraphicsEngine } from "../../../graphics/GraphicsEngine.js";
|
|
@@ -187,7 +187,7 @@ class HeadsUpDisplaySystem extends System {
|
|
|
187
187
|
*/
|
|
188
188
|
const camera = this.graphics.camera;
|
|
189
189
|
|
|
190
|
-
|
|
190
|
+
m4_multiply(projection, camera.projectionMatrix.elements, camera.matrixWorldInverse.elements);
|
|
191
191
|
|
|
192
192
|
const visibilityPredicate = this.__visibility_predicate;
|
|
193
193
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terrain.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/ecs/Terrain.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Terrain.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/ecs/Terrain.js"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m4_allocate } from "../../../../core/geom/3d/mat4/m4_allocate.js";
|
|
2
|
+
import { array_copy } from "../../../../core/collection/array/array_copy.js";
|
|
2
3
|
import {
|
|
3
4
|
ClampToEdgeWrapping,
|
|
4
5
|
DataTexture,
|
|
@@ -184,7 +185,7 @@ class Terrain {
|
|
|
184
185
|
* @private
|
|
185
186
|
* @type {Float32Array}
|
|
186
187
|
*/
|
|
187
|
-
this.__transform_matrix =
|
|
188
|
+
this.__transform_matrix = m4_allocate();
|
|
188
189
|
|
|
189
190
|
|
|
190
191
|
/**
|
|
@@ -651,7 +652,7 @@ class Terrain {
|
|
|
651
652
|
* @param {mat4|Float32Array|number[]} m4
|
|
652
653
|
*/
|
|
653
654
|
set transform(m4) {
|
|
654
|
-
|
|
655
|
+
array_copy(m4, 0, this.__transform_matrix, 0, 16);
|
|
655
656
|
|
|
656
657
|
this.__tiles.transform = m4;
|
|
657
658
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m4_invert } from "../../../../core/geom/3d/mat4/m4_invert.js";
|
|
2
2
|
import {
|
|
3
3
|
Box3 as ThreeBox3,
|
|
4
4
|
BufferAttribute as ThreeBufferAttribute,
|
|
@@ -170,7 +170,7 @@ class TerrainTile {
|
|
|
170
170
|
|
|
171
171
|
const m4 = this.transform;
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
m4_invert(m4_tmp, m4);
|
|
174
174
|
|
|
175
175
|
ray3_compose_array(
|
|
176
176
|
ray_tmp,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerrainTileManager.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/tiles/TerrainTileManager.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"TerrainTileManager.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/tiles/TerrainTileManager.js"],"names":[],"mappings":";AA6BA;IA6DI;;;;;;;;OAQG;IACH,uDAPW,OAAO,EA2CjB;IAzGD;;;OAGG;IACH,OAFU,WAAW,EAAE,CAEZ;IAEX;;;MAGE;IAEF;;;OAGG;IACH,UAFU,OAAO,CAEc;IAE/B;;;OAGG;IACH,WAFU,OAAO,CAEa;IAC9B;;;OAGG;IACH,YAFU,eAAe,CAEW;IAEpC;;;OAGG;IACH,OAFU,OAAO,CAES;IAG1B;;;;OAIG;IACH,oBAAmC;IAEnC;;;OAGG;IACH,cAFU,GAAG,CAEG;IAEhB;;;OAGG;IACH,aAFU,eAAe,CAEe;IAExC;;;OAGG;IACH,yBAFU,OAAO,CAEe;IAyB5B,wBAA2C;IAE3C;;;;;;OAMG;IACH,eAFU,WAAS,IAAI,CAEW;IAGlC;;;OAGG;IACH,yBAA8B;IAQlC,iCAWC;IAED,8BAEC;IAED;;;;OAIG;IACH,2BAHW,MAAM,cACN,MAAM,QAiChB;IAED,mBAIC;IAED;;;OAGG;IACH,yBAFW,WAAW,QAuBrB;IAED;;;;OAIG;IACH,6CASC;IAED,qBAqBC;IAED;;OAEG;IACH,gBAIC;IAED;;;;;;OAMG;IACH,qBALW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAuBhB;IAGD;;;;;;;OAOG;IACH,oCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,WAAW,EAAE,CAgCzB;IAED,wBAgDC;IAED;;;;;OAKG;IACH,oBAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAYlB;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,GACJ,WAAW,GAAC,SAAS,CAiBjC;IAED;;;;;OAKG;IACH,wBAJW,MAAM,KACN,MAAM,GACJ,WAAW,CAavB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,KACN,MAAM,GACL,WAAW,GAAC,SAAS,CAahC;IAED;;;;;OAKG;IACH,+BAJW,MAAM,KACN,MAAM,GACJ,QAAQ,WAAW,CAAC,CAYhC;IAED;;;;;;OAMG;IACH,UALW,MAAM,KACN,MAAM,GACJ,QAAQ,WAAW,CAAC,CA4BhC;IAED;;;OAGG;IACH,cAFW,WAAW,QAcrB;IAED,gBASC;IAED;;;;;;OAMG;IACH,cAJW,MAAM,KACN,MAAM,QACN,WAAW,QAsCrB;IAED;;;;;;;;;;OAUG;IACH,yBATW,aAAa,WACb,MAAM,WACN,MAAM,WACN,MAAM,cACN,MAAM,cACN,MAAM,cACN,MAAM,GACJ,OAAO,CAuDnB;IAED;;;;;;OAMG;IACH,kCALW,aAAa,KACb,MAAM,KACN,MAAM,GACL,OAAO,CAOlB;IAED;;;;;;OAMG;IACH,SALW,MAAM,KACN,MAAM,mCAuFhB;CACJ;wBA9uBuB,kBAAkB;mBAVvB,0CAA0C;oBAGzC,kCAAkC;4BAG1B,2CAA2C;oBAVnD,mCAAmC;gCAQvB,mDAAmD;0BAGzD,yCAAyC;8BALrC,2CAA2C"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { mat4, vec3 } from "gl-matrix";
|
|
2
|
-
|
|
3
|
-
|
|
4
1
|
import { MeshPhongMaterial } from 'three';
|
|
2
|
+
import { m4_allocate } from "../../../../core/geom/3d/mat4/m4_allocate.js";
|
|
3
|
+
import { m4_invert } from "../../../../core/geom/3d/mat4/m4_invert.js";
|
|
4
|
+
import { v3_matrix4_multiply } from "../../../../core/geom/vec3/v3_matrix4_multiply.js";
|
|
5
|
+
import { array_copy } from "../../../../core/collection/array/array_copy.js";
|
|
5
6
|
import { assert } from "../../../../core/assert.js";
|
|
6
7
|
import { BVH } from "../../../../core/bvh2/bvh3/BVH.js";
|
|
7
8
|
import { bvh_query_leaves_ray } from "../../../../core/bvh2/bvh3/query/bvh_query_leaves_ray.js";
|
|
@@ -140,7 +141,7 @@ class TerrainTileManager {
|
|
|
140
141
|
return;
|
|
141
142
|
}
|
|
142
143
|
|
|
143
|
-
|
|
144
|
+
array_copy(m4, 0, this.__transform, 0, 16);
|
|
144
145
|
|
|
145
146
|
this.traverse(t => {
|
|
146
147
|
t.transform = m4;
|
|
@@ -458,14 +459,14 @@ class TerrainTileManager {
|
|
|
458
459
|
* @return {TerrainTile|undefined}
|
|
459
460
|
*/
|
|
460
461
|
getTileByWorldPosition2D(x, y) {
|
|
461
|
-
const v3 =
|
|
462
|
+
const v3 = Float32Array.of(x, 0, y);
|
|
462
463
|
|
|
463
|
-
const world_inverse =
|
|
464
|
+
const world_inverse = m4_allocate();
|
|
464
465
|
|
|
465
|
-
|
|
466
|
+
m4_invert(world_inverse, this.transform);
|
|
466
467
|
|
|
467
468
|
|
|
468
|
-
|
|
469
|
+
v3_matrix4_multiply(v3, 0, v3, 0, world_inverse);
|
|
469
470
|
|
|
470
471
|
return this.getRawTileByPosition(v3[0], v3[1]);
|
|
471
472
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphicsEngine.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics/GraphicsEngine.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GraphicsEngine.d.ts","sourceRoot":"","sources":["../../../../src/engine/graphics/GraphicsEngine.js"],"names":[],"mappings":"AAiEA;IAOI;;;;;OAKG;IACH,+BAJW,MAAM,EAgLhB;IAtLD,gCAEC;IAgBG;;;;OAIG;IACH,2BAA+C;IAK/C;;;;;QAOI;;WAEG;;QAEH;;WAEG;;;;;MAMN;IAED;;OAEG;IACH,YAFU,OAAO,CAEe;IAEhC;;;;;;OAMG;IACH,4BAFU,OAAO,CAEyB;IAE1C;;;OAGG;IACH,QAFU,kBAAkB,CAEU;IAWtC;;;OAGG;IACH,aAAkB;IAGlB;;;OAGG;IACH,cAFU,KAAK,CAEgB;IAK/B;;;OAGG;IACH,QAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,UAFU,aAAa,CAEH;IAGpB,+BAA0C;IAU1C;;OAEG;IACH,eAA+B;IAI/B;;;OAGG;IACH,uBAFU,kBAAkB,CAEgB;IAE5C;;;OAGG;IACH,oBAFU,iBAAiB,CAEsB;IAEjD;;;OAGG;IACH,gBAFU,iBAAiB,CAES;IAEpC;;;OAGG;IACH,sBAAoC;IAGpC;;;;OAIG;IACH,UAFU,OAAO,CAEG;IAEpB;;;OAGG;IACH,UAFU,OAAO,CAEG;IAEpB;;;OAGG;IACH,YAFU,MAAM,CAEG;IACnB,kKAcI;IAGR;;;OAGG;IACH,sBAFa,eAAe,CAI3B;IAED;;;OAGG;IACH,eAFa,aAAa,CAIzB;IAED;;;;;;;;;;;;;OAaG;IACH,iCAHW,MAAM,OAAO,eACb,4BAA4B,QAkCtC;IAED,mBA8BC;IAED;;;;OAIG;IACH,iCAEC;IAED;;;OAGG;IACH,0BAFa,MAAM,CAIlB;IAED,+BAcC;IAED,cAgEC;IAzBsB,8BAA0C;IA2BjE;;;OAGG;IACH,cAFa,MAAM,CAYlB;IAED;;OAEG;IACH,aAQC;IAED;;OAEG;IACH,yBAQC;IAED;;;;;;OAMG;IACH,yBALW,MAAM,KACN,MAAM,6CAMhB;IAED;;;;OAIG;IACH,8BAHW,OAAO,UAAQ,UACf,OAAO,UAAQ,QAczB;IAED;;;;;OAKG;IACH,8BAQC;IAED,0BAEC;IAED;;;OAGG;IACH,4BAFW,cAAc,QA8BxB;IAED;;OAEG;IACH,qBAqBC;IAED;;OAEG;IACH,0BAeC;IAED;;OAEG;IACH,eA8CC;;CACJ;mBA7oBkB,oCAAoC;oBACnC,4BAA4B;wBACxB,4BAA4B;mCAajB,uCAAuC;sBAlBnE,OAAO;uBAaS,wBAAwB;8BAbxC,OAAO;4BAYc,+BAA+B;mCAKxB,uCAAuC;kCAKxC,gCAAgC;kCADhC,oCAAoC;gCAPtC,uCAAuC;6CAW1B,2CAA2C;+BANzD,4BAA4B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
ACESFilmicToneMapping,
|
|
2
3
|
CubeReflectionMapping,
|
|
3
4
|
EquirectangularReflectionMapping,
|
|
4
5
|
Group,
|
|
@@ -46,7 +47,7 @@ function configureThreeRenderer(webGLRenderer) {
|
|
|
46
47
|
webGLRenderer.autoClear = false;
|
|
47
48
|
webGLRenderer.setClearColor(0xBBBBFF, 0.0);
|
|
48
49
|
webGLRenderer.outputEncoding = LinearEncoding;
|
|
49
|
-
webGLRenderer.toneMapping =
|
|
50
|
+
webGLRenderer.toneMapping = ACESFilmicToneMapping;
|
|
50
51
|
webGLRenderer.toneMappingExposure = 1;
|
|
51
52
|
|
|
52
53
|
webGLRenderer.state.setFlipSided(false);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m4_invert } from "../../../../../core/geom/3d/mat4/m4_invert.js";
|
|
2
2
|
import { assert } from "../../../../../core/assert.js";
|
|
3
3
|
import { BVH } from "../../../../../core/bvh2/bvh3/BVH.js";
|
|
4
4
|
import { BvhClient } from "../../../../../core/bvh2/bvh3/BvhClient.js";
|
|
@@ -439,7 +439,7 @@ export class FPDecalSystem extends AbstractContextSystem {
|
|
|
439
439
|
|
|
440
440
|
|
|
441
441
|
// get transform in local space
|
|
442
|
-
|
|
442
|
+
m4_invert(scratch_m4, transform.matrix);
|
|
443
443
|
|
|
444
444
|
// transform ray into decal's local space
|
|
445
445
|
ray3_array_apply_matrix4(scratch_ray_0, 0, scratch_ray_0, 0, scratch_m4);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { v3_negate_array } from "../../../../../core/geom/vec3/v3_negate_array.js";
|
|
2
2
|
import { DoubleSide, LineBasicMaterial, MeshStandardMaterial } from "three";
|
|
3
3
|
import '../../../../../../../../../css/game.scss';
|
|
4
4
|
import { makeHelperBoxGeometry } from "../../../../../../editor/process/symbolic/makeHelperBoxGeometry.js";
|
|
@@ -294,7 +294,7 @@ function makeNormalTestGridDecal(ecd, root_transform = new Transform()) {
|
|
|
294
294
|
|
|
295
295
|
uv.uv_to_unit(direction, [i / (GRID_SIZE - 1), j / (GRID_SIZE - 1)]);
|
|
296
296
|
|
|
297
|
-
|
|
297
|
+
v3_negate_array(direction, 0, direction, 0);
|
|
298
298
|
|
|
299
299
|
const decal = new Decal();
|
|
300
300
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m4_invert } from "../../../../core/geom/3d/mat4/m4_invert.js";
|
|
2
2
|
import { BvhClient } from "../../../../core/bvh2/bvh3/BvhClient.js";
|
|
3
3
|
import { AABB3 } from "../../../../core/geom/3d/aabb/AABB3.js";
|
|
4
4
|
import { aabb3_from_three_geometry } from "../../../../core/geom/3d/aabb/aabb3_from_three_geometry.js";
|
|
@@ -271,7 +271,7 @@ export class ShadedGeometry {
|
|
|
271
271
|
query_raycast_nearest(contact, ray, transform_matrix4) {
|
|
272
272
|
|
|
273
273
|
// get transform in local space
|
|
274
|
-
|
|
274
|
+
m4_invert(scratch_m4, transform_matrix4);
|
|
275
275
|
|
|
276
276
|
// transform ray to local space
|
|
277
277
|
if (!ray3_array_apply_matrix4(scratch_ray_0, 0, ray, 0, scratch_m4)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadedGeometrySystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShadedGeometrySystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js"],"names":[],"mappings":"AA6DA;IACI;;;OAGG;IACH,4BAmEC;IAjEG,2DAA+C;IAE/C;;;;OAIG;IACH,iBAAsB;IAEtB;;;;OAIG;IACH,uBAA0B;IAE1B;;;;OAIG;IACH,wBAAgC;IAEhC;;;;OAIG;IACH,4BAAoC;IAEpC;;;;OAIG;IACH,kCAA0C;IAE1C;;;;OAIG;IACH,qBAA6B;IAI7B,0BAYE;IAEF,yBAIC;IAIL;;;OAGG;IACH,eAEC;IAED;;;OAGG;IACH,4BAFa,IAAI,MAAM,EAAC,MAAM,CAAC,CAI9B;IAED;;;;OAIG;IACH,+BAHW,MAAM,+CAsBhB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GACL,OAAO,CAmBlB;IAED;;;;OAIG;IACH,4BASC;IAED;;;;OAIG;IACH,8BAMC;IAED,2CAqCC;IAED,4CAcC;IAED;;;;;OAKG;IACH,SAJW,cAAc,KACd,SAAS,UACT,MAAM,QAqBhB;IAED;;;;;OAKG;IACH,WAJW,cAAc,KACd,SAAS,UACT,MAAM,QAsBhB;IAED;;;;;;OAMG;IACH,4BALW,MAAM,EAAE,iBACR,MAAM,UACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GACxB,MAAM,CAQlB;IAED;;;;;;;;;;;OAWG;IACH,kBAVW,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,uEAGJ;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,cAAc,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAC,EAAE,CA8D1E;IAGD;;;;;;;;;;;;OAYG;IACH,wBAXW,aAAa,YACb,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,uEAGJ;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,IAAI,EAAC,cAAc,CAAA;KAAC,GAAC,SAAS,CAmF1D;CACJ;uBA7fsB,wBAAwB;0BACrB,qCAAqC;+BAGhC,qBAAqB;iBARnC,uCAAuC;oBAZpC,mCAAmC;2BAQ5B,yCAAyC;8BAEtC,2CAA2C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeFrenetFrames.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"computeFrenetFrames.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/ecs/path/tube/build/computeFrenetFrames.js"],"names":[],"mappings":"AA2CA;;;;;;GAMG;AACH,4CALW,YAAY,GAAC,MAAM,EAAE,WACrB,OAAO,gBACP,OAAO;aACI,OAAO,EAAE;eAAY,OAAO,EAAE;cAAW,OAAO,EAAE;EA+IvE;wBA/LgC,OAAO"}
|
|
@@ -2,7 +2,8 @@ import { Matrix4, Vector3 } from "three";
|
|
|
2
2
|
import { max2 } from "../../../../../../core/math/max2.js";
|
|
3
3
|
import { min2 } from "../../../../../../core/math/min2.js";
|
|
4
4
|
import { clamp } from "../../../../../../core/math/clamp.js";
|
|
5
|
-
import {
|
|
5
|
+
import { v3_subtract } from "../../../../../../core/geom/vec3/v3_subtract.js";
|
|
6
|
+
import { v3_normalize_array } from "../../../../../../core/geom/vec3/v3_normalize_array.js";
|
|
6
7
|
import { array_copy } from "../../../../../../core/collection/array/array_copy.js";
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -83,14 +84,14 @@ export function computeFrenetFrames(points, closed = false, normal_hint) {
|
|
|
83
84
|
|
|
84
85
|
// get points along the lines close to the reference
|
|
85
86
|
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
v3_subtract(v3_0, 0, p0_a[0], p0_a[1], p0_a[2], pR_a[0], pR_a[1], pR_a[2]);
|
|
88
|
+
v3_normalize_array(v3_0, 0, v3_0, 0);
|
|
88
89
|
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
v3_subtract(v3_1, 0, p1_a[0], p1_a[1], p1_a[2], pR_a[0], pR_a[1], pR_a[2]);
|
|
91
|
+
v3_normalize_array(v3_1, 0, v3_1, 0);
|
|
91
92
|
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
v3_subtract(v3_1, 0, v3_1[0], v3_1[1], v3_1[2], v3_0[0], v3_0[1], v3_0[2]);
|
|
94
|
+
v3_normalize_array(v3_1, 0, v3_1, 0);
|
|
94
95
|
|
|
95
96
|
// write out
|
|
96
97
|
const tangent_x = v3_1[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvgTSpace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/AvgTSpace.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AvgTSpace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/AvgTSpace.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,0EAFa,IAAI,CAgChB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { v3_equals_array } from "../../../../core/geom/vec3/v3_equals_array.js";
|
|
2
|
+
import { v3_copy_array } from "../../../../core/geom/vec3/v3_copy_array.js";
|
|
3
|
+
import { v3_add_array } from "../../../../core/geom/vec3/v3_add_array.js";
|
|
2
4
|
import { NormalizeSafe } from "./NormalizeSafe.js";
|
|
3
5
|
|
|
4
6
|
/**
|
|
@@ -15,21 +17,24 @@ export function AvgTSpace(ts_res, pTS0, pTS1) {
|
|
|
15
17
|
// which results in tangent space splits later on
|
|
16
18
|
if (
|
|
17
19
|
pTS0.fMagS === pTS1.fMagS && pTS0.fMagT === pTS1.fMagT &&
|
|
18
|
-
|
|
20
|
+
v3_equals_array(pTS0.vOs, 0, pTS1.vOs, 0) && v3_equals_array(pTS0.vOt, 0, pTS1.vOt, 0)
|
|
19
21
|
) {
|
|
20
22
|
|
|
21
23
|
ts_res.fMagS = pTS0.fMagS;
|
|
22
24
|
ts_res.fMagT = pTS0.fMagT;
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
v3_copy_array(ts_res.vOs, 0, pTS0.vOs, 0);
|
|
27
|
+
v3_copy_array(ts_res.vOt, 0, pTS0.vOt, 0);
|
|
26
28
|
|
|
27
29
|
} else {
|
|
28
30
|
ts_res.fMagS = 0.5 * (pTS0.fMagS + pTS1.fMagS);
|
|
29
31
|
ts_res.fMagT = 0.5 * (pTS0.fMagT + pTS1.fMagT);
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
v3_copy_array(ts_res.vOs, 0, pTS0.vOs, 0);
|
|
34
|
+
v3_add_array(ts_res.vOs, 0, pTS1.vOs, 0);
|
|
35
|
+
|
|
36
|
+
v3_copy_array(ts_res.vOt, 0, pTS0.vOt, 0);
|
|
37
|
+
v3_add_array(ts_res.vOt, 0, pTS1.vOt, 0);
|
|
33
38
|
|
|
34
39
|
NormalizeSafe(ts_res.vOs, ts_res.vOs);
|
|
35
40
|
NormalizeSafe(ts_res.vOt, ts_res.vOt);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildNeighborsFast.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BuildNeighborsFast.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/BuildNeighborsFast.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,8CANW,UAAU,UACV,MAAM,EAAE,GAAC,YAAY,eACrB,MAAM,EAAE,kBACR,MAAM,GACJ,IAAI,CA6HhB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { INTERNAL_RND_SORT_SEED } from "./constants/INTERNAL_RND_SORT_SEED.js";
|
|
2
2
|
import { QuickSortEdges } from "./QuickSortEdges.js";
|
|
3
|
-
import { vec3 } from "gl-matrix";
|
|
4
3
|
import { GetEdge } from "./GetEdge.js";
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -71,8 +70,8 @@ export function BuildNeighborsFast(pTriInfos, pEdges, piTriListIn, iNrTrianglesI
|
|
|
71
70
|
|
|
72
71
|
}
|
|
73
72
|
|
|
74
|
-
const temp_edge_A =
|
|
75
|
-
const temp_edge_B =
|
|
73
|
+
const temp_edge_A = new Float32Array(3);
|
|
74
|
+
const temp_edge_B = new Float32Array(3);
|
|
76
75
|
|
|
77
76
|
// pair up, adjacent triangles
|
|
78
77
|
for (let i = 0; i < iEntries; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalcTexArea.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/CalcTexArea.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CalcTexArea.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/CalcTexArea.js"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,mEAJW,MAAM,EAAE,kBACR,MAAM,GACJ,MAAM,CAiBlB"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { vec3 } from "gl-matrix";
|
|
2
1
|
import { GetTexCoord } from "./GetTexCoord.js";
|
|
3
2
|
|
|
4
|
-
const t1 =
|
|
5
|
-
const t2 =
|
|
6
|
-
const t3 =
|
|
3
|
+
const t1 = new Float32Array(3);
|
|
4
|
+
const t2 = new Float32Array(3);
|
|
5
|
+
const t3 = new Float32Array(3);
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* returns the texture area times 2
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QUAD_ONE_DEGEN_TRI } from "./constants/QUAD_ONE_DEGEN_TRI.js";
|
|
2
|
-
import {
|
|
2
|
+
import { v3_equals_array } from "../../../../core/geom/vec3/v3_equals_array.js";
|
|
3
3
|
import { GetPosition } from "./GetPosition.js";
|
|
4
4
|
import { MakeIndex } from "./MakeIndex.js";
|
|
5
5
|
import { assert } from "../../../../core/assert.js";
|
|
@@ -7,8 +7,8 @@ import { assert } from "../../../../core/assert.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* @type {vec3}
|
|
9
9
|
*/
|
|
10
|
-
const vDstP =
|
|
11
|
-
const vSrcP =
|
|
10
|
+
const vDstP = new Float32Array(3);
|
|
11
|
+
const vSrcP = new Float32Array(3);
|
|
12
12
|
|
|
13
13
|
class VertReverseLookupContext {
|
|
14
14
|
/**
|
|
@@ -199,7 +199,7 @@ export function DegenEpilogue(psTspace, pTriInfos, piTriListIn, pContext, iNrTri
|
|
|
199
199
|
const iVert = pV[i];
|
|
200
200
|
GetPosition(vSrcP, 0, pContext, MakeIndex(iOrgF, iVert));
|
|
201
201
|
|
|
202
|
-
if (
|
|
202
|
+
if (v3_equals_array(vSrcP, 0, vDstP, 0)) {
|
|
203
203
|
|
|
204
204
|
const iOffs = tri.iTSpacesOffs;
|
|
205
205
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EvalTspace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/EvalTspace.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EvalTspace.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/EvalTspace.js"],"names":[],"mappings":"AA+BA;;;;;;;;;GASG;AACH,gCARW,OAAO,gBACP,MAAM,EAAE,GAAC,WAAW,GAAC,UAAU,UAC/B,MAAM,eACN,MAAM,EAAE,aACR,UAAU,uDAEV,MAAM,QA2FhB;wBAlIuB,cAAc"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { STSpace } from "./STSpace.js";
|
|
2
|
-
import {
|
|
2
|
+
import { v3_subtract } from "../../../../core/geom/vec3/v3_subtract.js";
|
|
3
|
+
import { v3_scale } from "../../../../core/geom/vec3/v3_scale.js";
|
|
4
|
+
import { v3_dot } from "../../../../core/geom/vec3/v3_dot.js";
|
|
5
|
+
import { v3_add_array } from "../../../../core/geom/vec3/v3_add_array.js";
|
|
3
6
|
import { GROUP_WITH_ANY } from "./constants/GROUP_WITH_ANY.js";
|
|
4
7
|
import { assert } from "../../../../core/assert.js";
|
|
5
8
|
import { GetNormal } from "./GetNormal.js";
|
|
@@ -88,8 +91,8 @@ export function EvalTspace(res, face_indices, iFaces, piTriListIn, pTriInfos, pC
|
|
|
88
91
|
GetPosition(p1, 0, pContext, i1);
|
|
89
92
|
GetPosition(p2, 0, pContext, i2);
|
|
90
93
|
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
v3_subtract(p0, 0, p0[0], p0[1], p0[2], p1[0], p1[1], p1[2]);
|
|
95
|
+
v3_subtract(p1, 0, p2[0], p2[1], p2[2], p1[0], p1[1], p1[2]);
|
|
93
96
|
|
|
94
97
|
// project
|
|
95
98
|
v3_scale_dot_sub_normalize(p0, n, p0);
|
|
@@ -98,16 +101,16 @@ export function EvalTspace(res, face_indices, iFaces, piTriListIn, pTriInfos, pC
|
|
|
98
101
|
// weight contribution by the angle
|
|
99
102
|
// between the two edge vectors
|
|
100
103
|
|
|
101
|
-
const fCos = clamp01(
|
|
104
|
+
const fCos = clamp01(v3_dot(p0[0], p0[1], p0[2], p1[0], p1[1], p1[2]));
|
|
102
105
|
const fAngle = Math.acos(fCos);
|
|
103
106
|
const fMagS = tri_info.fMagS;
|
|
104
107
|
const fMagT = tri_info.fMagT;
|
|
105
108
|
|
|
106
|
-
|
|
107
|
-
|
|
109
|
+
v3_scale(p2, 0, vOs[0], vOs[1], vOs[2], fAngle);
|
|
110
|
+
v3_add_array(res.vOs, 0, p2, 0);
|
|
108
111
|
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
v3_scale(p2, 0, vOt[0], vOt[1], vOt[2], fAngle);
|
|
113
|
+
v3_add_array(res.vOt, 0, p2, 0);
|
|
111
114
|
|
|
112
115
|
res.fMagS += (fAngle * fMagS);
|
|
113
116
|
res.fMagT += (fAngle * fMagT);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateSharedVerticesIndexList.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GenerateSharedVerticesIndexList.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/GenerateSharedVerticesIndexList.js"],"names":[],"mappings":"AAmGA;;;;;;GAMG;AACH,sEALW,MAAM,EAAE,GAAC,UAAU,gDAEnB,MAAM,GACJ,IAAI,CAuGhB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { vec3 } from "gl-matrix";
|
|
2
1
|
import { computeHashFloat } from "../../../../core/primitives/numbers/computeHashFloat.js";
|
|
3
2
|
import { GetNormal } from "./GetNormal.js";
|
|
4
3
|
import { GetPosition } from "./GetPosition.js";
|
|
@@ -119,7 +118,7 @@ export function GenerateSharedVerticesIndexList(
|
|
|
119
118
|
const temp_hashes = new Uint32Array(_buffer, numVertices * 2 * 4, numVertices);
|
|
120
119
|
const temp_indices = new Int32Array(_buffer, numVertices * 3 * 4, numVertices);
|
|
121
120
|
|
|
122
|
-
const v =
|
|
121
|
+
const v = new Float32Array(3);
|
|
123
122
|
|
|
124
123
|
for (let i = 0; i < numVertices; i++) {
|
|
125
124
|
const index = piTriList_in_and_out[i];
|
|
@@ -143,14 +142,14 @@ export function GenerateSharedVerticesIndexList(
|
|
|
143
142
|
// free(temp_indices);
|
|
144
143
|
|
|
145
144
|
|
|
146
|
-
const vT =
|
|
147
|
-
const vP =
|
|
145
|
+
const vT = new Float32Array(3);
|
|
146
|
+
const vP = new Float32Array(3);
|
|
148
147
|
|
|
149
|
-
const vT2 =
|
|
150
|
-
const vP2 =
|
|
148
|
+
const vT2 = new Float32Array(3);
|
|
149
|
+
const vP2 = new Float32Array(3);
|
|
151
150
|
|
|
152
|
-
const vN =
|
|
153
|
-
const vN2 =
|
|
151
|
+
const vN = new Float32Array(3);
|
|
152
|
+
const vN2 = new Float32Array(3);
|
|
154
153
|
|
|
155
154
|
/*
|
|
156
155
|
* Process blocks of vertices with the same hash.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { malloc } from "./malloc.js";
|
|
2
2
|
import { STSpace } from "./STSpace.js";
|
|
3
3
|
import { SSubGroup } from "./SSubGroup.js";
|
|
4
|
-
import {
|
|
4
|
+
import { v3_dot } from "../../../../core/geom/vec3/v3_dot.js";
|
|
5
5
|
import { assert } from "../../../../core/assert.js";
|
|
6
6
|
import { GetNormal } from "./GetNormal.js";
|
|
7
7
|
import { GROUP_WITH_ANY } from "./constants/GROUP_WITH_ANY.js";
|
|
@@ -14,15 +14,15 @@ import { ORIENT_PRESERVING } from "./constants/ORIENT_PRESERVING.js";
|
|
|
14
14
|
import { AvgTSpace } from "./AvgTSpace.js";
|
|
15
15
|
import { v3_scale_dot_sub_normalize } from "./v3_scale_dot_sub_normalize.js";
|
|
16
16
|
|
|
17
|
-
const vOs =
|
|
18
|
-
const vOt =
|
|
17
|
+
const vOs = new Float32Array(3);
|
|
18
|
+
const vOt = new Float32Array(3);
|
|
19
19
|
|
|
20
|
-
const vOs2 =
|
|
21
|
-
const vOt2 =
|
|
20
|
+
const vOs2 = new Float32Array(3);
|
|
21
|
+
const vOt2 = new Float32Array(3);
|
|
22
22
|
/**
|
|
23
23
|
* @type {vec3}
|
|
24
24
|
*/
|
|
25
|
-
const n =
|
|
25
|
+
const n = new Float32Array(3);
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* @type {SSubGroup}
|
|
@@ -129,8 +129,8 @@ export function GenerateTSpaces(psTspace, pTriInfos, pGroups, iNrActiveGroups, p
|
|
|
129
129
|
// make sure triangles which belong to the same quad are joined.
|
|
130
130
|
const bSameOrgFace = iOF_1 === iOF_2;
|
|
131
131
|
|
|
132
|
-
const fCosS =
|
|
133
|
-
const fCosT =
|
|
132
|
+
const fCosS = v3_dot(vOs[0], vOs[1], vOs[2], vOs2[0], vOs2[1], vOs2[2]);
|
|
133
|
+
const fCosT = v3_dot(vOt[0], vOt[1], vOt[2], vOt2[0], vOt2[1], vOt2[2]);
|
|
134
134
|
|
|
135
135
|
assert(f !== t || bSameOrgFace); // sanity check
|
|
136
136
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitTriInfo.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/InitTriInfo.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InitTriInfo.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/geometry/MikkT/InitTriInfo.js"],"names":[],"mappings":"AA+BA;;;;;;;GAOG;AACH,uCANW,UAAU,eACV,MAAM,EAAE,GAAC,UAAU,gDAEnB,MAAM,GACJ,IAAI,CAiJhB"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { v3_subtract } from "../../../../core/geom/vec3/v3_subtract.js";
|
|
2
|
+
import { v3_scale } from "../../../../core/geom/vec3/v3_scale.js";
|
|
3
|
+
import { v3_add_array } from "../../../../core/geom/vec3/v3_add_array.js";
|
|
4
|
+
import { v3_copy_array } from "../../../../core/geom/vec3/v3_copy_array.js";
|
|
5
|
+
import { v3_length } from "../../../../core/geom/vec3/v3_length.js";
|
|
2
6
|
import { BuildNeighborsFast } from "./BuildNeighborsFast.js";
|
|
3
7
|
import { CalcTexArea } from "./CalcTexArea.js";
|
|
4
8
|
import { GROUP_WITH_ANY } from "./constants/GROUP_WITH_ANY.js";
|
|
@@ -8,22 +12,22 @@ import { GetPosition } from "./GetPosition.js";
|
|
|
8
12
|
import { GetTexCoord } from "./GetTexCoord.js";
|
|
9
13
|
import { NotZero } from "./NotZero.js";
|
|
10
14
|
|
|
11
|
-
const t1 =
|
|
12
|
-
const t2 =
|
|
13
|
-
const t3 =
|
|
15
|
+
const t1 = new Float32Array(3);
|
|
16
|
+
const t2 = new Float32Array(3);
|
|
17
|
+
const t3 = new Float32Array(3);
|
|
14
18
|
|
|
15
|
-
const d1 =
|
|
16
|
-
const d2 =
|
|
19
|
+
const d1 = new Float32Array(3);
|
|
20
|
+
const d2 = new Float32Array(3);
|
|
17
21
|
|
|
18
|
-
const vOs =
|
|
19
|
-
const vOt =
|
|
22
|
+
const vOs = new Float32Array(3);
|
|
23
|
+
const vOt = new Float32Array(3);
|
|
20
24
|
|
|
21
|
-
const v1 =
|
|
22
|
-
const v2 =
|
|
23
|
-
const v3 =
|
|
25
|
+
const v1 = new Float32Array(3);
|
|
26
|
+
const v2 = new Float32Array(3);
|
|
27
|
+
const v3 = new Float32Array(3);
|
|
24
28
|
|
|
25
|
-
const v_temp_0 =
|
|
26
|
-
const v_temp_1 =
|
|
29
|
+
const v_temp_0 = new Float32Array(3);
|
|
30
|
+
const v_temp_1 = new Float32Array(3);
|
|
27
31
|
|
|
28
32
|
/**
|
|
29
33
|
*
|
|
@@ -82,20 +86,21 @@ export function InitTriInfo(pTriInfos, piTriListIn, pContext, iNrTrianglesIn) {
|
|
|
82
86
|
const t31x = t3[0] - t1[0];
|
|
83
87
|
const t31y = t3[1] - t1[1];
|
|
84
88
|
|
|
85
|
-
|
|
86
|
-
|
|
89
|
+
v3_subtract(d1, 0, v2[0], v2[1], v2[2], v1[0], v1[1], v1[2]);
|
|
90
|
+
v3_subtract(d2, 0, v3[0], v3[1], v3[2], v1[0], v1[1], v1[2]);
|
|
87
91
|
|
|
88
92
|
const fSignedAreaSTx2 = t21x * t31y - t21y * t31x;
|
|
89
93
|
//assert(fSignedAreaSTx2!=0);
|
|
90
94
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
v3_scale(v_temp_0, 0, d1[0], d1[1], d1[2], t31y);
|
|
96
|
+
v3_scale(v_temp_1, 0, d2[0], d2[1], d2[2], t21y);
|
|
97
|
+
v3_subtract(vOs, 0, v_temp_0[0], v_temp_0[1], v_temp_0[2], v_temp_1[0], v_temp_1[1], v_temp_1[2]); // eq 18
|
|
94
98
|
|
|
95
99
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
v3_scale(v_temp_0, 0, d1[0], d1[1], d1[2], -t31x);
|
|
101
|
+
v3_scale(v_temp_1, 0, d2[0], d2[1], d2[2], t21x);
|
|
102
|
+
v3_copy_array(vOt, 0, v_temp_0, 0);
|
|
103
|
+
v3_add_array(vOt, 0, v_temp_1, 0); // eq 19
|
|
99
104
|
|
|
100
105
|
const tri_info = pTriInfos[f];
|
|
101
106
|
tri_info.iFlag |= (fSignedAreaSTx2 > 0 ? ORIENT_PRESERVING : 0);
|
|
@@ -103,17 +108,17 @@ export function InitTriInfo(pTriInfos, piTriListIn, pContext, iNrTrianglesIn) {
|
|
|
103
108
|
if (NotZero(fSignedAreaSTx2)) {
|
|
104
109
|
const fAbsArea = Math.abs(fSignedAreaSTx2);
|
|
105
110
|
|
|
106
|
-
const fLenOs =
|
|
107
|
-
const fLenOt =
|
|
111
|
+
const fLenOs = v3_length(vOs[0], vOs[1], vOs[2]);
|
|
112
|
+
const fLenOt = v3_length(vOt[0], vOt[1], vOt[2]);
|
|
108
113
|
|
|
109
114
|
const fS = (tri_info.iFlag & ORIENT_PRESERVING) === 0 ? (-1.0) : 1.0;
|
|
110
115
|
|
|
111
116
|
if (NotZero(fLenOs)) {
|
|
112
|
-
|
|
117
|
+
v3_scale(tri_info.vOs, 0, vOs[0], vOs[1], vOs[2], fS / fLenOs);
|
|
113
118
|
}
|
|
114
119
|
|
|
115
120
|
if (NotZero(fLenOt)) {
|
|
116
|
-
|
|
121
|
+
v3_scale(tri_info.vOt, 0, vOt[0], vOt[1], vOt[2], fS / fLenOt);
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
// evaluate magnitudes prior to normalization of vOs and vOt
|