@woosh/meep-engine 2.109.1 → 2.109.2
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/meep.cjs +122 -186
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +122 -186
- package/package.json +1 -1
- package/src/core/binary/ctz32.d.ts.map +1 -1
- package/src/core/binary/ctz32.js +12 -11
- package/src/core/binary/reinterpret_int32_as_float32.d.ts +7 -0
- package/src/core/binary/reinterpret_int32_as_float32.d.ts.map +1 -0
- package/src/core/binary/reinterpret_int32_as_float32.js +14 -0
- package/src/core/binary/reverse_bits_uint32.d.ts +8 -0
- package/src/core/binary/reverse_bits_uint32.d.ts.map +1 -0
- package/src/core/binary/reverse_bits_uint32.js +17 -0
- package/src/core/binary/reverse_bits_uint32.spec.d.ts +2 -0
- package/src/core/binary/reverse_bits_uint32.spec.d.ts.map +1 -0
- package/src/core/binary/reverse_bits_uint32.spec.js +18 -0
- package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.js +13 -18
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_incremental.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_incremental.js +3 -1
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js +6 -7
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_hierarchy.js +4 -0
- package/src/core/bvh2/bvh3/query/backtracking/bvh_backtracking_query_leaves_ray.d.ts +16 -0
- package/src/core/bvh2/bvh3/query/backtracking/bvh_backtracking_query_leaves_ray.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/backtracking/bvh_backtracking_query_leaves_ray.js +130 -0
- package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts +2 -0
- package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.js +1 -0
- package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts +9 -0
- package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts.map +1 -0
- package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.js +31 -0
- package/src/core/collection/array/array_quick_sort_by_lookup_map.d.ts +9 -0
- package/src/core/collection/array/array_quick_sort_by_lookup_map.d.ts.map +1 -0
- package/src/core/collection/array/array_quick_sort_by_lookup_map.js +79 -0
- package/src/core/collection/array/array_quick_sort_by_lookup_uint.d.ts +8 -0
- package/src/core/collection/array/array_quick_sort_by_lookup_uint.d.ts.map +1 -0
- package/src/core/collection/array/{array_quick_sort_by_lookup.js → array_quick_sort_by_lookup_uint.js} +1 -1
- package/src/core/collection/array/array_shuffle.js +1 -1
- package/src/core/collection/array/array_swap_one.d.ts.map +1 -1
- package/src/core/collection/array/array_swap_one.js +6 -0
- package/src/core/events/signal/Signal.d.ts.map +1 -1
- package/src/core/events/signal/Signal.js +10 -10
- package/src/core/geom/2d/compute_triangle_area_2d.d.ts.map +1 -1
- package/src/core/geom/2d/compute_triangle_area_2d.js +5 -3
- package/src/core/geom/3d/Ray3.d.ts +6 -0
- package/src/core/geom/3d/Ray3.d.ts.map +1 -1
- package/src/core/geom/3d/Ray3.js +24 -0
- package/src/core/geom/3d/aabb/aabb3_compute_distance_above_plane_min.d.ts +16 -0
- package/src/core/geom/3d/aabb/aabb3_compute_distance_above_plane_min.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_compute_distance_above_plane_min.js +29 -0
- package/src/core/geom/3d/aabb/aabb3_from_v3_array_transformed.d.ts +2 -2
- package/src/core/geom/3d/aabb/aabb3_from_v3_array_transformed.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_from_v3_array_transformed.js +6 -6
- package/src/core/geom/3d/aabb/aabb3_overlaps_ray_segment.d.ts +11 -0
- package/src/core/geom/3d/aabb/aabb3_overlaps_ray_segment.d.ts.map +1 -0
- package/src/core/geom/3d/aabb/aabb3_overlaps_ray_segment.js +61 -0
- package/src/core/geom/3d/eulerAnglesFromMatrix.d.ts +2 -2
- package/src/core/geom/3d/eulerAnglesFromMatrix.d.ts.map +1 -1
- package/src/core/geom/3d/eulerAnglesFromMatrix.js +28 -25
- package/src/core/geom/3d/morton/v3_morton_encode_bounded.d.ts +2 -2
- package/src/core/geom/3d/morton/v3_morton_encode_bounded.d.ts.map +1 -1
- package/src/core/geom/3d/morton/v3_morton_encode_bounded.js +1 -1
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.d.ts +2 -2
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.d.ts.map +1 -1
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.js +1 -1
- package/src/core/geom/3d/ray/ray3_shift_origin_along_direction.js +2 -2
- package/src/core/geom/3d/sphere/sphere_intersects_ray.js +1 -1
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.js +24 -188
- package/src/core/geom/3d/tetrahedra/triangle/prototype.js +1 -1
- package/src/core/geom/3d/tetrahedra/visualize_tetrahedral_mesh.d.ts +11 -0
- package/src/core/geom/3d/tetrahedra/visualize_tetrahedral_mesh.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/visualize_tetrahedral_mesh.js +42 -0
- package/src/core/geom/3d/topology/samples/sampleFloodFill.js +2 -2
- package/src/core/geom/3d/topology/tm_face_area.js +2 -2
- package/src/core/geom/3d/triangle/{computeTriangleSurfaceArea.d.ts → compute_triangle_area_3d.d.ts} +2 -2
- package/src/core/geom/3d/triangle/compute_triangle_area_3d.d.ts.map +1 -0
- package/src/core/geom/3d/triangle/{computeTriangleSurfaceArea.js → compute_triangle_area_3d.js} +2 -4
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +13 -102
- package/src/core/geom/Quaternion.spec.js +2 -2
- package/src/core/geom/Vector1.d.ts.map +1 -1
- package/src/core/geom/Vector1.js +14 -6
- package/src/core/geom/vec3/v3_array_displace_in_direction.d.ts +14 -0
- package/src/core/geom/vec3/v3_array_displace_in_direction.d.ts.map +1 -0
- package/src/core/geom/vec3/{v3_shift_along_direction.js → v3_array_displace_in_direction.js} +1 -1
- package/src/core/geom/vec3/v3_displace_in_direction.d.ts +7 -7
- package/src/core/geom/vec3/v3_displace_in_direction.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_displace_in_direction.js +20 -17
- package/src/core/geom/vec3/v3_displace_in_direction.spec.d.ts +2 -0
- package/src/core/geom/vec3/v3_displace_in_direction.spec.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_displace_in_direction.spec.js +80 -0
- package/src/core/geom/vec4/v4_length.d.ts +10 -0
- package/src/core/geom/vec4/v4_length.d.ts.map +1 -0
- package/src/core/geom/vec4/v4_length.js +13 -0
- package/src/core/geom/vec4/v4_length_sqr.js +2 -1
- package/src/core/graph/eigen/matrix_eigenvalues_in_place.spec.js +31 -1
- package/src/core/math/FLT_EPSILON_64.d.ts +6 -0
- package/src/core/math/FLT_EPSILON_64.d.ts.map +1 -0
- package/src/core/math/FLT_EPSILON_64.js +5 -0
- package/src/core/math/gaussian.d.ts +2 -2
- package/src/core/math/gaussian.js +2 -2
- package/src/core/math/linalg/README.md +1 -0
- package/src/core/math/linalg/lu_factor_linear_system.d.ts +13 -0
- package/src/core/math/linalg/lu_factor_linear_system.d.ts.map +1 -0
- package/src/core/math/linalg/lu_factor_linear_system.js +112 -0
- package/src/core/math/linalg/lu_solve_linear_system.d.ts +14 -0
- package/src/core/math/linalg/lu_solve_linear_system.d.ts.map +1 -0
- package/src/core/math/linalg/lu_solve_linear_system.js +51 -0
- package/src/core/math/linalg/solve_linear_system.d.ts +14 -0
- package/src/core/math/linalg/solve_linear_system.d.ts.map +1 -0
- package/src/core/math/linalg/solve_linear_system.js +52 -0
- package/src/core/math/linalg/solve_linear_system.spec.d.ts +2 -0
- package/src/core/math/linalg/solve_linear_system.spec.d.ts.map +1 -0
- package/src/core/math/linalg/solve_linear_system.spec.js +70 -0
- package/src/core/math/linalg/solve_linear_system_GEPP_2x2.d.ts +10 -0
- package/src/core/math/linalg/solve_linear_system_GEPP_2x2.d.ts.map +1 -0
- package/src/core/math/linalg/solve_linear_system_GEPP_2x2.js +91 -0
- package/src/core/math/solveQuadratic.d.ts.map +1 -1
- package/src/core/math/solveQuadratic.js +2 -0
- package/src/core/math/statistics/gaussian_amplitude.d.ts +8 -0
- package/src/core/math/statistics/gaussian_amplitude.d.ts.map +1 -0
- package/src/core/math/statistics/gaussian_amplitude.js +13 -0
- package/src/core/math/statistics/halton_sequence.js +3 -3
- package/src/core/math/statistics/halton_sequence.spec.js +18 -0
- package/src/core/math/statistics/hammersley_sequence.d.ts +9 -0
- package/src/core/math/statistics/hammersley_sequence.d.ts.map +1 -0
- package/src/core/math/statistics/hammersley_sequence.js +25 -0
- package/src/core/math/statistics/hammersley_sequence_2d.d.ts +9 -0
- package/src/core/math/statistics/hammersley_sequence_2d.d.ts.map +1 -0
- package/src/core/math/statistics/hammersley_sequence_2d.js +17 -0
- package/src/core/math/statistics/radical_inverse_VdC_base_2.d.ts +8 -0
- package/src/core/math/statistics/radical_inverse_VdC_base_2.d.ts.map +1 -0
- package/src/core/math/statistics/radical_inverse_VdC_base_2.js +15 -0
- package/src/core/math/statistics/radical_inverse_VdC_base_2.spec.d.ts +2 -0
- package/src/core/math/statistics/radical_inverse_VdC_base_2.spec.d.ts.map +1 -0
- package/src/core/math/statistics/radical_inverse_VdC_base_2.spec.js +9 -0
- package/src/core/model/node-graph/node/NodeInstance.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeInstance.js +26 -12
- package/src/core/model/node-graph/node/NodeInstance.spec.d.ts +2 -0
- package/src/core/model/node-graph/node/NodeInstance.spec.d.ts.map +1 -0
- package/src/core/model/node-graph/node/NodeInstance.spec.js +82 -0
- package/src/core/model/node-graph/node/NodeInstancePortReference.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeInstancePortReference.js +9 -0
- package/src/core/model/node-graph/node/NodeInstancePortReference.spec.js +20 -0
- package/src/core/model/node-graph/node/Port.d.ts.map +1 -1
- package/src/core/model/node-graph/node/Port.js +5 -12
- package/src/core/model/node-graph/node/PortDirection.d.ts.map +1 -1
- package/src/core/model/node-graph/node/PortDirection.js +7 -1
- package/src/engine/asset/CORS/CrossOriginConfig.d.ts.map +1 -1
- package/src/engine/asset/CORS/CrossOriginConfig.js +6 -4
- package/src/engine/graphics/geometry/computeMeshSurfaceArea.js +2 -2
- package/src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.js +33 -3
- package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +9 -7
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts +6 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts.map +1 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.js +18 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.d.ts +6 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.d.ts.map +1 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.js +266 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_VIRIDIS.d.ts +7 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_VIRIDIS.d.ts.map +1 -0
- package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_VIRIDIS.js +19 -0
- package/src/engine/graphics/sh3/SH3VisualisationMaterial.js +9 -9
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +0 -2
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts +4 -27
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +36 -158
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.d.ts +13 -0
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.js +63 -0
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +1 -0
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +25 -1
- package/src/engine/graphics/sh3/lpv/build_probes_for_scene.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/build_probes_for_scene.js +4 -29
- package/src/engine/graphics/sh3/lpv/{LightProbeVolumeSerializationAdapter.d.ts → serialization/LightProbeVolumeSerializationAdapter.d.ts} +2 -2
- package/src/engine/graphics/sh3/lpv/serialization/LightProbeVolumeSerializationAdapter.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/{LightProbeVolumeSerializationAdapter.js → serialization/LightProbeVolumeSerializationAdapter.js} +2 -2
- package/src/engine/graphics/sh3/lpv/sh3_bake_depth.d.ts +13 -0
- package/src/engine/graphics/sh3/lpv/sh3_bake_depth.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/sh3_bake_depth.js +71 -0
- package/src/engine/graphics/sh3/lpv/worker/lpv_build_worker.d.ts +2 -0
- package/src/engine/graphics/sh3/lpv/worker/lpv_build_worker.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/worker/lpv_build_worker.js +38 -0
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts +1 -7
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.js +58 -147
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts +13 -9
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.js +74 -54
- package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts +23 -5
- package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +211 -59
- package/src/engine/graphics/sh3/path_tracer/PathTracer.js +1 -1
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_along_ray.d.ts +15 -0
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_along_ray.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_along_ray.js +46 -0
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_sqr_to_point.d.ts +14 -0
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_sqr_to_point.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_sqr_to_point.js +43 -0
- package/src/engine/graphics/sh3/path_tracer/geometry/compute_triangle_group_aabb3.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/{compute_triangle_group_aabb3.js → geometry/compute_triangle_group_aabb3.js} +2 -2
- package/src/engine/graphics/sh3/path_tracer/geometry/construct_ray_hit_from_geometry.d.ts +12 -0
- package/src/engine/graphics/sh3/path_tracer/geometry/construct_ray_hit_from_geometry.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/geometry/construct_ray_hit_from_geometry.js +72 -0
- package/src/engine/graphics/sh3/path_tracer/geometry/sample_triangle_attribute.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/geometry/sort_triangles_by_distance_to_point.d.ts +13 -0
- package/src/engine/graphics/sh3/path_tracer/geometry/sort_triangles_by_distance_to_point.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/geometry/sort_triangles_by_distance_to_point.js +48 -0
- package/src/engine/graphics/sh3/path_tracer/material/StandardMaterial.d.ts +1 -0
- package/src/engine/graphics/sh3/path_tracer/material/StandardMaterial.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/material/StandardMaterial.js +4 -0
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts +1 -0
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/material/StandardTexture.js +8 -5
- package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +24 -18
- package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.d.ts +2 -2
- package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/ray_hit_apply_transform.js +1 -1
- package/src/engine/graphics/sh3/path_tracer/sampling/getBiasedNormalSample.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/{getBiasedNormalSample.js → sampling/getBiasedNormalSample.js} +1 -1
- package/src/engine/graphics/sh3/path_tracer/sampling/random_in_hemisphere.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/{random_in_hemisphere.js → sampling/random_in_hemisphere.js} +1 -1
- package/src/engine/graphics/sh3/path_tracer/sort_bvh_nodes_by_distance_to_point.d.ts +12 -0
- package/src/engine/graphics/sh3/path_tracer/sort_bvh_nodes_by_distance_to_point.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/sort_bvh_nodes_by_distance_to_point.js +46 -0
- package/src/engine/graphics/sh3/path_tracer/texture/sample_material.js +2 -2
- package/src/engine/graphics/sh3/path_tracer/three_object_to_path_traced_scene.d.ts +7 -0
- package/src/engine/graphics/sh3/path_tracer/three_object_to_path_traced_scene.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/three_object_to_path_traced_scene.js +69 -0
- package/src/engine/graphics/sh3/prototypeSH3Probe.js +29 -7
- package/src/engine/graphics/texture/formatToChannelCount.d.ts.map +1 -1
- package/src/engine/graphics/texture/formatToChannelCount.js +14 -1
- package/src/engine/graphics/three/three_object_replace_materials.d.ts +7 -0
- package/src/engine/graphics/three/three_object_replace_materials.d.ts.map +1 -0
- package/src/engine/graphics/three/three_object_replace_materials.js +13 -0
- package/src/core/collection/array/array_quick_sort_by_lookup.d.ts +0 -8
- package/src/core/collection/array/array_quick_sort_by_lookup.d.ts.map +0 -1
- package/src/core/geom/3d/triangle/computeTriangleSurfaceArea.d.ts.map +0 -1
- package/src/core/geom/vec3/v3_shift_along_direction.d.ts +0 -14
- package/src/core/geom/vec3/v3_shift_along_direction.d.ts.map +0 -1
- package/src/engine/graphics/filter/FlipArrayViaCanvas.d.ts +0 -2
- package/src/engine/graphics/filter/FlipArrayViaCanvas.d.ts.map +0 -1
- package/src/engine/graphics/filter/FlipArrayViaCanvas.js +0 -13
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeSerializationAdapter.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/compute_triangle_group_aabb3.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/getBiasedNormalSample.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/random_in_hemisphere.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/sample_triangle_attribute.d.ts.map +0 -1
- /package/src/engine/graphics/sh3/path_tracer/{compute_triangle_group_aabb3.d.ts → geometry/compute_triangle_group_aabb3.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{sample_triangle_attribute.d.ts → geometry/sample_triangle_attribute.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{sample_triangle_attribute.js → geometry/sample_triangle_attribute.js} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{getBiasedNormalSample.d.ts → sampling/getBiasedNormalSample.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{random_in_hemisphere.d.ts → sampling/random_in_hemisphere.d.ts} +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Low discrepancy sequence
|
|
3
|
+
* @param {number} i index of sequence element
|
|
4
|
+
* @param {number} R a prime number
|
|
5
|
+
* @param {number} count how many elements in the sequence
|
|
6
|
+
* @returns {number}
|
|
7
|
+
*/
|
|
8
|
+
export function hammersley_sequence(i, R, count) {
|
|
9
|
+
|
|
10
|
+
let t = i / count;
|
|
11
|
+
|
|
12
|
+
for (let j = 0; j < i; j++) {
|
|
13
|
+
const x = 1 - t;
|
|
14
|
+
let y = 1 / R;
|
|
15
|
+
|
|
16
|
+
while (x <= y) {
|
|
17
|
+
y = y / R;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
t += (R + 1) * y - 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return t;
|
|
24
|
+
}
|
|
25
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {number[]|Float32Array|Float64Array} output
|
|
4
|
+
* @param {number} output_offset
|
|
5
|
+
* @param {number} i
|
|
6
|
+
* @param {number} N sequence size
|
|
7
|
+
*/
|
|
8
|
+
export function hammersley_sequence_2d(output: number[] | Float32Array | Float64Array, output_offset: number, i: number, N: number): void;
|
|
9
|
+
//# sourceMappingURL=hammersley_sequence_2d.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hammersley_sequence_2d.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/statistics/hammersley_sequence_2d.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,+CALW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,KACN,MAAM,KACN,MAAM,QAShB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { radical_inverse_VdC_base_2 } from "./radical_inverse_VdC_base_2.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param {number[]|Float32Array|Float64Array} output
|
|
6
|
+
* @param {number} output_offset
|
|
7
|
+
* @param {number} i
|
|
8
|
+
* @param {number} N sequence size
|
|
9
|
+
*/
|
|
10
|
+
export function hammersley_sequence_2d(
|
|
11
|
+
output, output_offset,
|
|
12
|
+
i, N
|
|
13
|
+
) {
|
|
14
|
+
|
|
15
|
+
output[output_offset] = i / N;
|
|
16
|
+
output[output_offset + 1] = radical_inverse_VdC_base_2(i);
|
|
17
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base-2 radical inverse Van der Corput
|
|
3
|
+
* @see [warren01] Hacker's Delight, Henry S. Warren, 2001, ISBN:0201914654
|
|
4
|
+
* @param {number} i
|
|
5
|
+
* @returns {number}
|
|
6
|
+
*/
|
|
7
|
+
export function radical_inverse_VdC_base_2(i: number): number;
|
|
8
|
+
//# sourceMappingURL=radical_inverse_VdC_base_2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radical_inverse_VdC_base_2.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/statistics/radical_inverse_VdC_base_2.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,8CAHW,MAAM,GACJ,MAAM,CAQlB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { reverse_bits_uint32 } from "../../binary/reverse_bits_uint32.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Base-2 radical inverse Van der Corput
|
|
5
|
+
* @see [warren01] Hacker's Delight, Henry S. Warren, 2001, ISBN:0201914654
|
|
6
|
+
* @param {number} i
|
|
7
|
+
* @returns {number}
|
|
8
|
+
*/
|
|
9
|
+
export function radical_inverse_VdC_base_2(i) {
|
|
10
|
+
const reverse_int32 = reverse_bits_uint32(i) >>> 0;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
// / 0x100000000 or / 4294967296
|
|
14
|
+
return reverse_int32 * 2.3283064365386963e-10;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radical_inverse_VdC_base_2.spec.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/statistics/radical_inverse_VdC_base_2.spec.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { radical_inverse_VdC_base_2 } from "./radical_inverse_VdC_base_2.js";
|
|
2
|
+
|
|
3
|
+
test("sample values",()=>{
|
|
4
|
+
|
|
5
|
+
expect(radical_inverse_VdC_base_2(31)).toBeCloseTo(31/32);
|
|
6
|
+
expect(radical_inverse_VdC_base_2(32)).toBeCloseTo(1/64);
|
|
7
|
+
expect(radical_inverse_VdC_base_2(33)).toBeCloseTo(33/64);
|
|
8
|
+
|
|
9
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeInstance.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/NodeInstance.js"],"names":[],"mappings":"AAcA;;;;GAIG;AACH;IAEI;;;;OAIG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,6BAAmB;IAEnB;;;OAGG;IACH,WAFU,yBAAyB,EAAE,CAEtB;IAEf;;;OAGG;IACH,gBAAgB;IAEhB;;;OAGG;IACH,qBAAmB;IAEnB;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"NodeInstance.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/NodeInstance.js"],"names":[],"mappings":"AAcA;;;;GAIG;AACH;IAEI;;;;OAIG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,6BAAmB;IAEnB;;;OAGG;IACH,WAFU,yBAAyB,EAAE,CAEtB;IAEf;;;OAGG;IACH,gBAAgB;IAEhB;;;OAGG;IACH,qBAAmB;IAEnB;;;OAGG;IACH,sBAFU,gBAAgB,CAED;IAEzB;;;;;;OAMG;IACH,wBAFU,MAAM,CAEE;IAElB;;OAEG;IACH;QACI;;;WAGG;mCADO,OAAO,MAAM,WAAO;QAG9B;;;WAGG;iCADO,OAAO,MAAM,MAAI;QAG3B;;;WAGG;mCADO,OAAO,MAAM,MAAI;QAI3B;;;;WAIG;qCADO,yCAAyC,YAAY,CAAC;MAGlE;IAEF;;;;;;OAMG;IACH,8BALW,MAAM,aACN,aAAa,UACb,YAAY,GACV,MAAM,CAsBlB;IAED;;;OAGG;IACH,gDAEC;IAED;;;OAGG;IACH,+CAEC;IAGD;;;OAGG;IACH,mCAEC;IAED;;;;OAIG;IACH,kCAEC;IAED;;;;OAIG;IACH,mBAHW,MAAM,oBAKhB;IAED;;;;OAIG;IACH,mBAHW,MAAM,OAKhB;IAED;;;;OAIG;IACH,yBAHW,MAAM,KAOhB;IAED;;;;OAIG;IACH,2BAHW,MAAM,oBAmChB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,OAAO,CAkBnB;IAED;;;OAGG;IACH,uCAQC;IAED,wBAIC;IAED;;;OAGG;IACH,mDAoCC;IAED;;;;OAIG;IACH,qBAHW,MAAM,GACJ,yBAAyB,GAAC,SAAS,CAoB/C;IAED;;;;OAIG;IACH,6BAHW,MAAM,GACJ,SAAS,GAAC,yBAAyB,CAa/C;IAED,eAEC;IAED;;;;OAIG;IACH,cAHW,YAAY,GACV,OAAO,CAQnB;IAED,mBAEC;IAIL;;;OAGG;IACH,yBAFU,OAAO,CAEoB;CAPpC;0CA1XyC,gCAAgC;iBAHzD,kCAAkC;mBAChC,kCAAkC;8BAGvB,oBAAoB"}
|
|
@@ -51,7 +51,7 @@ export class NodeInstance {
|
|
|
51
51
|
outputsValues = [];
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
54
|
+
* @readonly
|
|
55
55
|
* @type {List<Connection>}
|
|
56
56
|
*/
|
|
57
57
|
connections = new List();
|
|
@@ -95,12 +95,12 @@ export class NodeInstance {
|
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
97
|
*
|
|
98
|
-
* @param {number}
|
|
98
|
+
* @param {number} port_id
|
|
99
99
|
* @param {PortDirection} direction
|
|
100
100
|
* @param {Connection[]} result
|
|
101
101
|
* @returns {number} number of connections matched
|
|
102
102
|
*/
|
|
103
|
-
getConnectionsByPort(
|
|
103
|
+
getConnectionsByPort(port_id, direction, result) {
|
|
104
104
|
let count = 0;
|
|
105
105
|
|
|
106
106
|
const connections = this.connections;
|
|
@@ -110,8 +110,8 @@ export class NodeInstance {
|
|
|
110
110
|
const connection = connections.get(i);
|
|
111
111
|
|
|
112
112
|
if (
|
|
113
|
-
(direction === PortDirection.In && connection.target.port.id ===
|
|
114
|
-
|| (direction === PortDirection.Out && connection.source.port.id ===
|
|
113
|
+
(direction === PortDirection.In && connection.target.port.id === port_id)
|
|
114
|
+
|| (direction === PortDirection.Out && connection.source.port.id === port_id)
|
|
115
115
|
) {
|
|
116
116
|
result[count] = connection;
|
|
117
117
|
|
|
@@ -224,6 +224,15 @@ export class NodeInstance {
|
|
|
224
224
|
this.on.parameterChanged.send3(id, value, old_value);
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
/**
|
|
228
|
+
*
|
|
229
|
+
* @param {string} id
|
|
230
|
+
* @returns {boolean}
|
|
231
|
+
*/
|
|
232
|
+
hasParameter(id) {
|
|
233
|
+
return this.parameters.hasOwnProperty(id)
|
|
234
|
+
}
|
|
235
|
+
|
|
227
236
|
/**
|
|
228
237
|
*
|
|
229
238
|
* @param {string} id
|
|
@@ -232,12 +241,12 @@ export class NodeInstance {
|
|
|
232
241
|
deleteParameter(id) {
|
|
233
242
|
assert.isString(id, 'id');
|
|
234
243
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if (!parameters.hasOwnProperty(id)) {
|
|
244
|
+
if (!this.hasParameter(id)) {
|
|
238
245
|
return false;
|
|
239
246
|
}
|
|
240
247
|
|
|
248
|
+
const parameters = this.parameters;
|
|
249
|
+
|
|
241
250
|
const existing = parameters[id];
|
|
242
251
|
|
|
243
252
|
delete parameters[id];
|
|
@@ -287,10 +296,15 @@ export class NodeInstance {
|
|
|
287
296
|
description.configureNode(this);
|
|
288
297
|
|
|
289
298
|
//generate endpoints
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
299
|
+
const ports = description.getPorts();
|
|
300
|
+
const port_count = ports.length;
|
|
301
|
+
this.endpoints = new Array(port_count);
|
|
302
|
+
|
|
303
|
+
for (let i = 0; i < port_count; i++) {
|
|
304
|
+
const port = ports[i];
|
|
305
|
+
|
|
306
|
+
this.endpoints[i] = NodeInstancePortReference.from(this, port);
|
|
307
|
+
}
|
|
294
308
|
|
|
295
309
|
//clear parameters
|
|
296
310
|
this.clearParameters();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeInstance.spec.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/NodeInstance.spec.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jest } from "@jest/globals";
|
|
2
|
+
import { DataType } from "../DataType.js";
|
|
3
|
+
import { NodeGraph } from "../NodeGraph.js";
|
|
4
|
+
import { NodeDescription } from "./NodeDescription.js";
|
|
5
|
+
import { NodeInstance } from "./NodeInstance.js";
|
|
6
|
+
import { PortDirection } from "./PortDirection.js";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
test("getConnectionsByPort", () => {
|
|
10
|
+
const type = DataType.from(7, "x");
|
|
11
|
+
|
|
12
|
+
const graph = new NodeGraph();
|
|
13
|
+
|
|
14
|
+
const description = new NodeDescription();
|
|
15
|
+
|
|
16
|
+
const p_in = description.createPort(type, "in", PortDirection.In);
|
|
17
|
+
const p_out = description.createPort(type, "out", PortDirection.Out);
|
|
18
|
+
|
|
19
|
+
const n_0 = graph.createNode(description);
|
|
20
|
+
const n_1 = graph.createNode(description);
|
|
21
|
+
|
|
22
|
+
const c_id = graph.createConnection(n_0, p_out, n_1, p_in);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @type {Connection[]}
|
|
27
|
+
*/
|
|
28
|
+
const connections = [];
|
|
29
|
+
|
|
30
|
+
const result_count = graph.getNode(n_0).getConnectionsByPort(p_out, PortDirection.Out, connections);
|
|
31
|
+
|
|
32
|
+
expect(result_count).toEqual(result_count);
|
|
33
|
+
expect(connections).toEqual([
|
|
34
|
+
graph.getConnection(c_id)
|
|
35
|
+
]);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test("setParameterValue", () => {
|
|
39
|
+
|
|
40
|
+
const instance = new NodeInstance();
|
|
41
|
+
|
|
42
|
+
const cb_added = jest.fn();
|
|
43
|
+
const cb_changed = jest.fn();
|
|
44
|
+
|
|
45
|
+
instance.on.parameterAdded.add(cb_added);
|
|
46
|
+
instance.on.parameterChanged.add(cb_changed);
|
|
47
|
+
|
|
48
|
+
instance.setParameterValue("x", 42);
|
|
49
|
+
|
|
50
|
+
expect(instance.hasParameter("x")).toBe(true);
|
|
51
|
+
|
|
52
|
+
expect(instance.getParameterValue("x")).toEqual(42);
|
|
53
|
+
|
|
54
|
+
expect(cb_added).toHaveBeenCalledTimes(1);
|
|
55
|
+
expect(cb_added).toHaveBeenLastCalledWith("x", 42);
|
|
56
|
+
|
|
57
|
+
expect(cb_changed).toHaveBeenCalledTimes(1);
|
|
58
|
+
expect(cb_changed).toHaveBeenLastCalledWith("x", 42, undefined);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test("deleteParameter", () => {
|
|
62
|
+
|
|
63
|
+
const instance = new NodeInstance();
|
|
64
|
+
|
|
65
|
+
const cb_deleted = jest.fn();
|
|
66
|
+
|
|
67
|
+
instance.on.parameterRemoved.add(cb_deleted);
|
|
68
|
+
|
|
69
|
+
expect(instance.deleteParameter("x")).toEqual(false);
|
|
70
|
+
|
|
71
|
+
expect(cb_deleted).not.toHaveBeenCalled();
|
|
72
|
+
|
|
73
|
+
instance.setParameterValue("x", 42);
|
|
74
|
+
|
|
75
|
+
expect(instance.deleteParameter("x")).toEqual(true);
|
|
76
|
+
|
|
77
|
+
expect(cb_deleted).toHaveBeenCalledTimes(1);
|
|
78
|
+
expect(cb_deleted).toHaveBeenLastCalledWith("x", 42);
|
|
79
|
+
|
|
80
|
+
expect(instance.hasParameter("x")).toBe(false);
|
|
81
|
+
|
|
82
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeInstancePortReference.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/NodeInstancePortReference.js"],"names":[],"mappings":"AASA;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"NodeInstancePortReference.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/NodeInstancePortReference.js"],"names":[],"mappings":"AASA;;GAEG;AACH;IAgFI;;;;;OAKG;IACH,iDAFa,yBAAyB,CAkBrC;IApGD;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,gCAAgB;IAEhB;;;OAGG;IACH,oBAAY;IAEZ;;;;;OAKG;IACH,sBAFU,YAAY,CAEL;IAEjB;;;OAGG;IACH,mCAEC;IAED;;;OAGG;IACH,kCAEC;IAED;;;OAGG;IACH,kBAFY,OAAO,CAIlB;IAED;;;;;OAKG;IACH,oCAHW,MAAM,GACJ,OAAO,CAqBnB;IA2BD;;;;OAIG;IACH,8CAWC;IAED,eAKC;IAED;;;;OAIG;IACH,cAHW,yBAAyB,GACvB,OAAO,CAMnB;IAED,mBAEC;IAGL;;;OAGG;IACH,sCAFU,OAAO,CAE8C;CAN9D"}
|
|
@@ -64,10 +64,17 @@ export class NodeInstancePortReference {
|
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* Checks if a connection exists from this endpoint to a specific node instance
|
|
67
|
+
* Also returns true when parameter refers to instance that the port is attached to
|
|
67
68
|
* @param {number} node_instance_id
|
|
68
69
|
* @returns {boolean}
|
|
69
70
|
*/
|
|
70
71
|
isConnectedToNode(node_instance_id) {
|
|
72
|
+
assert.isNonNegativeInteger(node_instance_id, 'node_instance_id');
|
|
73
|
+
|
|
74
|
+
if (this.instance.id === node_instance_id) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
|
|
71
78
|
const connections = this.connections;
|
|
72
79
|
const connection_count = connections.length;
|
|
73
80
|
|
|
@@ -115,9 +122,11 @@ export class NodeInstancePortReference {
|
|
|
115
122
|
set(instance, port) {
|
|
116
123
|
assert.defined(instance, 'instance');
|
|
117
124
|
assert.notNull(instance, 'instance');
|
|
125
|
+
assert.equal(instance.isNodeInstance, true, 'instance.isNodeInstance !== true');
|
|
118
126
|
|
|
119
127
|
assert.defined(port, 'port');
|
|
120
128
|
assert.notNull(port, 'port');
|
|
129
|
+
assert.equal(port.isPort, true, 'port.isPort !== true');
|
|
121
130
|
|
|
122
131
|
this.instance = instance;
|
|
123
132
|
this.port = port;
|
|
@@ -49,6 +49,26 @@ test("incoming connections", () => {
|
|
|
49
49
|
expect(port_b_ref.inConnections).toEqual([connection]);
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
+
test("isConnectedToNode", () => {
|
|
53
|
+
const nd = new NodeDescription();
|
|
54
|
+
|
|
55
|
+
const port_in_id = nd.createPort(DUMMY_TYPE, "in", PortDirection.In);
|
|
56
|
+
const port_out_id = nd.createPort(DUMMY_TYPE, "out", PortDirection.Out);
|
|
57
|
+
|
|
58
|
+
const graph = new NodeGraph();
|
|
59
|
+
const node_a_id = graph.createNode(nd);
|
|
60
|
+
const node_b_id = graph.createNode(nd);
|
|
61
|
+
|
|
62
|
+
const endpoint_a_out = graph.getNode(node_a_id).getEndpoint(port_out_id);
|
|
63
|
+
|
|
64
|
+
expect(endpoint_a_out.isConnectedToNode(node_a_id)).toBe(true);
|
|
65
|
+
expect(endpoint_a_out.isConnectedToNode(node_b_id)).toBe(false);
|
|
66
|
+
|
|
67
|
+
graph.createConnection(node_a_id, port_out_id, node_b_id, port_in_id);
|
|
68
|
+
|
|
69
|
+
expect(endpoint_a_out.isConnectedToNode(node_b_id)).toBe(true);
|
|
70
|
+
|
|
71
|
+
});
|
|
52
72
|
|
|
53
73
|
/**
|
|
54
74
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Port.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/Port.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Port.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/Port.js"],"names":[],"mappings":"AAUA;IAmHI;;;;;OAKG;IACH,iDAFa,IAAI,CAQhB;IA9HD;;;OAGG;IACH,aAAU;IAEV;;;OAGG;IACH,IAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,WAFU,aAAa,GAAC,MAAM,CAEQ;IAEtC;;;OAGG;IACH,UAFU,QAAQ,CAEF;IAEhB;;;OAGG;IACH,UAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CAenB;IAED,mBAEC;IAED;;;;;MAOC;IAED;;;;;;;OAOG;IACH,4CANW,MAAM,iCAuChB;IAiBL;;;OAGG;IACH,iBAFU,OAAO,CAEI;CANpB;8BAvI6B,oBAAoB;yBADzB,gBAAgB"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { assert } from "../../../assert.js";
|
|
2
|
-
import { computeHashIntegerArray } from "../../../collection/array/computeHashIntegerArray.js";
|
|
3
|
-
import { computeStringHash } from "../../../primitives/strings/computeStringHash.js";
|
|
4
2
|
import { objectKeyByValue } from "../../object/objectKeyByValue.js";
|
|
5
3
|
import { DataType } from "../DataType.js";
|
|
6
4
|
import { PortDirection } from "./PortDirection.js";
|
|
@@ -41,17 +39,12 @@ export class Port {
|
|
|
41
39
|
*/
|
|
42
40
|
metadata = {};
|
|
43
41
|
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @returns {number}
|
|
45
|
+
*/
|
|
44
46
|
hash() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const type_hash = dataType !== null ? dataType.id : 0;
|
|
48
|
-
|
|
49
|
-
return computeHashIntegerArray(
|
|
50
|
-
computeStringHash(this.name),
|
|
51
|
-
this.id,
|
|
52
|
-
this.direction,
|
|
53
|
-
type_hash
|
|
54
|
-
);
|
|
47
|
+
return this.id;
|
|
55
48
|
}
|
|
56
49
|
|
|
57
50
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortDirection.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/PortDirection.js"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PortDirection.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/node-graph/node/PortDirection.js"],"names":[],"mappings":"4BAEU,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrossOriginConfig.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/CORS/CrossOriginConfig.js"],"names":[],"mappings":"AAEA;
|
|
1
|
+
{"version":3,"file":"CrossOriginConfig.d.ts","sourceRoot":"","sources":["../../../../../src/engine/asset/CORS/CrossOriginConfig.js"],"names":[],"mappings":"AAEA;IACI,sBAAiC;CACpC;;kBAMS,SAAS,iBAAiB,CAAC;;;gCAVL,sBAAsB"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { CrossOriginKind } from "./CrossOriginKind.js";
|
|
2
2
|
|
|
3
3
|
export class CrossOriginConfig {
|
|
4
|
-
|
|
5
|
-
this.kind = CrossOriginKind.Anonymous;
|
|
6
|
-
}
|
|
7
|
-
|
|
4
|
+
kind = CrossOriginKind.Anonymous;
|
|
8
5
|
}
|
|
9
6
|
|
|
10
7
|
const default_coc = new CrossOriginConfig();
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @readonly
|
|
11
|
+
* @type {Readonly<CrossOriginConfig>}
|
|
12
|
+
*/
|
|
11
13
|
CrossOriginConfig.default = Object.freeze(default_coc);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assert } from "../../../core/assert.js";
|
|
2
|
-
import {
|
|
2
|
+
import { compute_triangle_area_3d } from "../../../core/geom/3d/triangle/compute_triangle_area_3d.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
@@ -40,7 +40,7 @@ export function computeMeshSurfaceArea(result, points, indices, polygon_count =
|
|
|
40
40
|
const y2 = points[c3 + 2];
|
|
41
41
|
const z2 = points[c3 + 2];
|
|
42
42
|
|
|
43
|
-
const area =
|
|
43
|
+
const area = compute_triangle_area_3d(x0, y0, z0, x1, y1, z1, x2, y2, z2);
|
|
44
44
|
|
|
45
45
|
assert.notNaN(area, "area");
|
|
46
46
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OctahedralUvEncoder.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OctahedralUvEncoder.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.js"],"names":[],"mappings":"AAKA;IACI,0CAkBC;IAED,0CA2BC;CACJ;0BAnDyB,gBAAgB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { UvEncoder } from "./UvEncoder.js";
|
|
2
1
|
import { vec3 } from "gl-matrix";
|
|
2
|
+
import { v3_dot } from "../../../../../core/geom/vec3/v3_dot.js";
|
|
3
|
+
import { sign } from "../../../../../core/math/sign.js";
|
|
4
|
+
import { UvEncoder } from "./UvEncoder.js";
|
|
3
5
|
|
|
4
6
|
export class OctahedralUvEncoder extends UvEncoder {
|
|
5
7
|
uv_to_unit(output, input) {
|
|
@@ -11,8 +13,8 @@ export class OctahedralUvEncoder extends UvEncoder {
|
|
|
11
13
|
const py = 1 - abs_x - abs_z;
|
|
12
14
|
|
|
13
15
|
if (py < 0) {
|
|
14
|
-
px = (px
|
|
15
|
-
pz = (pz
|
|
16
|
+
px = sign(px) * (1 - abs_z);
|
|
17
|
+
pz = sign(pz) * (1 - abs_x);
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
output[0] = px;
|
|
@@ -22,4 +24,32 @@ export class OctahedralUvEncoder extends UvEncoder {
|
|
|
22
24
|
vec3.normalize(output, output);
|
|
23
25
|
}
|
|
24
26
|
|
|
27
|
+
unit_to_uv(output, input) {
|
|
28
|
+
|
|
29
|
+
const input_x = input[0];
|
|
30
|
+
const input_y = input[1];
|
|
31
|
+
const input_z = input[2];
|
|
32
|
+
|
|
33
|
+
const octant_x = sign(input_x);
|
|
34
|
+
const octant_y = sign(input_y);
|
|
35
|
+
const octant_z = sign(input_z);
|
|
36
|
+
|
|
37
|
+
// |x| + |y| + |z| = 1
|
|
38
|
+
const sum = v3_dot(input_x, input_y, input_z, octant_x, octant_y, octant_z);
|
|
39
|
+
|
|
40
|
+
let octahedron_x = input_x / sum;
|
|
41
|
+
const octahedron_y = input_y / sum;
|
|
42
|
+
let octahedron_z = input_z / sum;
|
|
43
|
+
|
|
44
|
+
if (octahedron_y < 0) {
|
|
45
|
+
const absolute_x = Math.abs(octahedron_x);
|
|
46
|
+
const absolute_z = Math.abs(octahedron_z);
|
|
47
|
+
|
|
48
|
+
octahedron_x = octant_x * (1 - absolute_z);
|
|
49
|
+
octahedron_z = octant_z * (1 - absolute_x);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
output[0] = octahedron_x;
|
|
53
|
+
output[1] = octahedron_z;
|
|
54
|
+
}
|
|
25
55
|
}
|
|
@@ -65,9 +65,9 @@ async function main(engine) {
|
|
|
65
65
|
// console.profile('bake');
|
|
66
66
|
const id = baker.bake({
|
|
67
67
|
objects,
|
|
68
|
-
frames:
|
|
69
|
-
resolution:
|
|
70
|
-
type: ImpostorCaptureType.
|
|
68
|
+
frames: 12,
|
|
69
|
+
resolution: 1024,
|
|
70
|
+
type: ImpostorCaptureType.FullSphere
|
|
71
71
|
});
|
|
72
72
|
// console.profileEnd('bake');
|
|
73
73
|
|
|
@@ -76,15 +76,17 @@ async function main(engine) {
|
|
|
76
76
|
const ctrl = makeImpostorAtlasPreview({
|
|
77
77
|
impostor: id,
|
|
78
78
|
renderer,
|
|
79
|
-
mode: '
|
|
79
|
+
mode: 'normal'
|
|
80
80
|
});
|
|
81
81
|
|
|
82
|
+
ctrl.scale.setScalar(0.5);
|
|
83
|
+
|
|
82
84
|
new Entity()
|
|
83
85
|
.add(ViewportPosition.fromJSON({
|
|
84
86
|
offset: new Vector2(0, 0)
|
|
85
87
|
}))
|
|
86
88
|
.add(GUIElement.fromView(ctrl))
|
|
87
|
-
|
|
89
|
+
.build(ecd);
|
|
88
90
|
|
|
89
91
|
// build out preview scene with impostor and the original
|
|
90
92
|
const t0 = Transform.fromJSON({
|
|
@@ -98,8 +100,8 @@ async function main(engine) {
|
|
|
98
100
|
const entity_impostor = make_impostor_entity(id, t0);
|
|
99
101
|
entity_impostor.build(ecd);
|
|
100
102
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
const entity_impostor_wireframe = make_impostor_wireframe(id, t0);
|
|
104
|
+
entity_impostor_wireframe.build(ecd);
|
|
103
105
|
|
|
104
106
|
const t1 = new Transform();
|
|
105
107
|
t1.copy(t0);
|
package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RGB_LUT_INFERNO.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_INFERNO.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,mDAYG;qCAjBkC,4BAA4B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ParameterLookupTable } from "../ParameterLookupTable.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 11 value approximation of INFERNO colormap
|
|
5
|
+
*/
|
|
6
|
+
export const RGB_LUT_INFERNO = ParameterLookupTable.from(3, [
|
|
7
|
+
0, 0, 3,
|
|
8
|
+
22, 11, 57,
|
|
9
|
+
65, 9, 103,
|
|
10
|
+
106, 23, 110,
|
|
11
|
+
147, 37, 103,
|
|
12
|
+
186, 54, 85,
|
|
13
|
+
220, 80, 57,
|
|
14
|
+
242, 117, 26,
|
|
15
|
+
251, 164, 10,
|
|
16
|
+
246, 213, 66,
|
|
17
|
+
252, 254, 164
|
|
18
|
+
]);
|
package/src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RGB_LUT_TURBO.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/engine/graphics/particles/particular/engine/parameter/sample/RGB_LUT_TURBO.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,iDAoQE;qCAzQmC,4BAA4B"}
|