@woosh/meep-engine 2.109.6 → 2.109.8
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/build/meep.cjs +203 -174
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +203 -174
- package/editor/tools/v2/TransformControls.js +39 -33
- package/package.json +1 -1
- package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/BVH.js +8 -0
- 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 +11 -9
- package/src/core/geom/3d/Ray3.js +1 -1
- package/src/core/geom/3d/aabb/AABB3.js +1 -1
- package/src/core/geom/3d/normal/octahedron/decode_octahedron_to_unit.d.ts +4 -4
- 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 +15 -11
- package/src/core/geom/3d/normal/octahedron/encode_unit_to_octahedron.d.ts.map +1 -1
- package/src/core/geom/3d/normal/octahedron/encode_unit_to_octahedron.js +13 -7
- package/src/core/geom/3d/normal/octahedron/encoding.spec.js +26 -1
- package/src/core/geom/3d/normal/octahedron/prototype.d.ts +2 -0
- package/src/core/geom/3d/normal/octahedron/prototype.d.ts.map +1 -0
- package/src/core/geom/3d/normal/octahedron/prototype.js +226 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.d.ts +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_bl.js +4 -4
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +3 -3
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +10 -5
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts +7 -1
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/triangle/triangle_encode_rasterized_depth.js +6 -0
- package/src/core/geom/vec3/v3_distance.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_distance.js +5 -5
- package/src/core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.d.ts +10 -0
- package/src/core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.d.ts.map +1 -0
- package/src/core/geometry/3d/tetrahedra/tetrahedral_mesh_find_tets_attached_to_vertex.js +34 -0
- package/src/core/model/node-graph/DataType.d.ts.map +1 -1
- package/src/core/model/node-graph/DataType.js +16 -10
- package/src/core/model/node-graph/ParametricDataType.d.ts +34 -0
- package/src/core/model/node-graph/ParametricDataType.d.ts.map +1 -0
- package/src/core/model/node-graph/ParametricDataType.js +63 -0
- package/src/core/model/node-graph/json/serializeNodeGraphToJSON.d.ts +5 -1
- package/src/core/model/node-graph/json/serializeNodeGraphToJSON.d.ts.map +1 -1
- package/src/core/model/node-graph/json/serializeNodeGraphToJSON.js +11 -6
- package/src/engine/asset/loaders/AssetLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/AssetLoader.js +1 -1
- package/src/engine/asset/loaders/material/computeTextureEquality.d.ts.map +1 -1
- package/src/engine/asset/loaders/material/computeTextureEquality.js +6 -1
- package/src/engine/asset/loaders/material/computeTextureHash.d.ts.map +1 -1
- package/src/engine/asset/loaders/material/computeTextureHash.js +8 -3
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.d.ts.map +1 -1
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +9 -15
- package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts +7 -0
- package/src/engine/graphics/geometry/instancing/geometry_copy.d.ts.map +1 -0
- package/src/engine/graphics/geometry/instancing/geometry_copy.js +15 -0
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorBaker.js +28 -20
- package/src/engine/graphics/impostors/octahedral/ImpostorCaptureType.d.ts +1 -0
- package/src/engine/graphics/impostors/octahedral/ImpostorCaptureType.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/ImpostorCaptureType.js +4 -0
- package/src/engine/graphics/impostors/octahedral/grid/OctahedralUvEncoder.js +6 -6
- package/src/engine/graphics/impostors/octahedral/prototypeBaker.js +16 -7
- package/src/engine/graphics/impostors/octahedral/util/build_cutout_from_atlas_by_alpha.d.ts +3 -2
- package/src/engine/graphics/impostors/octahedral/util/build_cutout_from_atlas_by_alpha.d.ts.map +1 -1
- package/src/engine/graphics/impostors/octahedral/util/build_cutout_from_atlas_by_alpha.js +25 -14
- package/src/engine/graphics/render/visibility/hiz/buildCanvasViewFromTexture.js +1 -0
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +59 -37
- package/src/engine/graphics/sh3/gi/material/common.glsl +484 -0
- package/src/engine/graphics/sh3/gi/material/makeLookupTexture3D.d.ts +8 -0
- package/src/engine/graphics/sh3/gi/material/makeLookupTexture3D.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/makeLookupTexture3D.js +35 -0
- package/src/engine/graphics/sh3/gi/material/makeOctahedralDepthAtlas.d.ts +8 -0
- package/src/engine/graphics/sh3/gi/material/makeOctahedralDepthAtlas.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/makeOctahedralDepthAtlas.js +28 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_fragment_shader.js +51 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/build_vertex_shader.js +29 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/space_fragment_transform_shader.d.ts +9 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/space_fragment_transform_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_fragment/space_fragment_transform_shader.js +12 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_fragment_shader.js +26 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/build_vertex_shader.js +62 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/preable.frag.glsl +43 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/preable.vert.glsl +9 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/space_vertex_transform_shader.d.ts +9 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/space_vertex_transform_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/space_vertex/space_vertex_transform_shader.js +12 -0
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts +2 -0
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/LightProbeVolume.js +35 -3
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/LightProbeVolumeBaker.js +26 -9
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts +11 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +27 -61
- 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 +8 -6
- package/src/engine/graphics/sh3/lpv/depth/octahedral/OctahedralDepthDebuggerWidget.d.ts +17 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/OctahedralDepthDebuggerWidget.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/OctahedralDepthDebuggerWidget.js +100 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.d.ts +12 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.js +58 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/OctahedralDepthVisualizationMaterial.d.ts +11 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/OctahedralDepthVisualizationMaterial.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/OctahedralDepthVisualizationMaterial.js +45 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/visualize.frag.glsl +126 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/shader/visualize.vert.glsl +10 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.d.ts +13 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/VLPDepthMapVisualisation.js +149 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/visualise.frag.glsl +161 -0
- package/src/engine/graphics/sh3/lpv/depth/octahedral/v2/visualise.vert.glsl +13 -0
- package/src/engine/graphics/sh3/lpv/depth/sh3_bake_depth.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/{sh3_bake_depth.js → depth/sh3_bake_depth.js} +7 -7
- package/src/engine/graphics/sh3/lpv/find_max_depth_radius_for_point.d.ts +8 -0
- package/src/engine/graphics/sh3/lpv/find_max_depth_radius_for_point.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpv/find_max_depth_radius_for_point.js +50 -0
- package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts +3 -6
- package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/probe_volume_to_textures.js +34 -58
- package/src/engine/graphics/sh3/lpv/serialization/LightProbeVolumeSerializationAdapter.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lpv/serialization/LightProbeVolumeSerializationAdapter.js +8 -0
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts +2 -2
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/BufferedGeometryBVH.js +8 -5
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts +7 -0
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.d.ts.map +1 -0
- package/src/engine/graphics/sh3/path_tracer/populate_path_traced_scene_from_ecd.js +50 -0
- package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +40 -3
- package/src/engine/graphics/sh3/path_tracer/sorting/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 → sorting/build_bvh_nodes_distances_along_ray.js} +2 -2
- package/src/engine/graphics/sh3/path_tracer/sorting/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 → sorting/build_bvh_nodes_distances_sqr_to_point.js} +2 -2
- package/src/engine/graphics/sh3/path_tracer/sorting/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 → sorting/sort_bvh_nodes_by_distance_to_point.js} +3 -3
- package/src/engine/graphics/sh3/prototypeSH3Probe.js +41 -8
- package/src/engine/graphics/sh3/shader/SH3VisualisationMaterial.d.ts.map +1 -0
- package/src/engine/graphics/sh3/shader/SH3VisualisationMaterial.js +29 -0
- package/src/engine/graphics/sh3/shader/visualize.frag.glsl +41 -0
- package/src/engine/graphics/sh3/shader/visualize.vert.glsl +9 -0
- package/src/engine/graphics/sh3/visualise_spherical_harmonic_sphere.js +1 -1
- package/src/engine/graphics/texture/debug_preview_texture.d.ts +8 -0
- package/src/engine/graphics/texture/debug_preview_texture.d.ts.map +1 -0
- package/src/engine/graphics/texture/debug_preview_texture.js +38 -0
- package/src/view/View.d.ts.map +1 -1
- package/src/view/View.js +2 -0
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.d.ts +0 -8
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.d.ts.map +0 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_rotate_filament.js +0 -32
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts +0 -8
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.d.ts.map +0 -1
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band1.js +0 -44
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts +0 -8
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.d.ts.map +0 -1
- package/src/core/geom/3d/sphere/harmonics/sh_rotate_band2.js +0 -86
- package/src/engine/graphics/sh3/SH3VisualisationMaterial.d.ts.map +0 -1
- package/src/engine/graphics/sh3/SH3VisualisationMaterial.js +0 -83
- package/src/engine/graphics/sh3/gi/material/build_fragment_shader.d.ts.map +0 -1
- package/src/engine/graphics/sh3/gi/material/build_fragment_shader.js +0 -71
- package/src/engine/graphics/sh3/gi/material/build_vertex_shader.d.ts.map +0 -1
- package/src/engine/graphics/sh3/gi/material/build_vertex_shader.js +0 -256
- package/src/engine/graphics/sh3/lpv/sh3_bake_depth.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_along_ray.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/build_bvh_nodes_distances_sqr_to_point.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/ray_reflect.d.ts +0 -2
- package/src/engine/graphics/sh3/path_tracer/ray_reflect.d.ts.map +0 -1
- package/src/engine/graphics/sh3/path_tracer/ray_reflect.js +0 -27
- package/src/engine/graphics/sh3/path_tracer/sort_bvh_nodes_by_distance_to_point.d.ts.map +0 -1
- /package/src/engine/graphics/sh3/gi/material/{build_fragment_shader.d.ts → space_fragment/build_fragment_shader.d.ts} +0 -0
- /package/src/engine/graphics/sh3/gi/material/{build_vertex_shader.d.ts → space_fragment/build_vertex_shader.d.ts} +0 -0
- /package/src/engine/graphics/sh3/lpv/{sh3_bake_depth.d.ts → depth/sh3_bake_depth.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{build_bvh_nodes_distances_along_ray.d.ts → sorting/build_bvh_nodes_distances_along_ray.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{build_bvh_nodes_distances_sqr_to_point.d.ts → sorting/build_bvh_nodes_distances_sqr_to_point.d.ts} +0 -0
- /package/src/engine/graphics/sh3/path_tracer/{sort_bvh_nodes_by_distance_to_point.d.ts → sorting/sort_bvh_nodes_by_distance_to_point.d.ts} +0 -0
- /package/src/engine/graphics/sh3/{SH3VisualisationMaterial.d.ts → shader/SH3VisualisationMaterial.d.ts} +0 -0
package/build/meep.module.js
CHANGED
|
@@ -52160,6 +52160,14 @@ class BVH {
|
|
|
52160
52160
|
return this.__root;
|
|
52161
52161
|
}
|
|
52162
52162
|
|
|
52163
|
+
/**
|
|
52164
|
+
* Make sure you understand what you're doing before using this
|
|
52165
|
+
* @param {number} v
|
|
52166
|
+
*/
|
|
52167
|
+
set root(v) {
|
|
52168
|
+
this.__root = v;
|
|
52169
|
+
}
|
|
52170
|
+
|
|
52163
52171
|
/**
|
|
52164
52172
|
*
|
|
52165
52173
|
* @returns {number}
|
|
@@ -56720,7 +56728,7 @@ class AABB3 {
|
|
|
56720
56728
|
|
|
56721
56729
|
/**
|
|
56722
56730
|
* Get center position of the box
|
|
56723
|
-
* @param {Vector3} target where to write result
|
|
56731
|
+
* @param {Vector3} [target] where to write result
|
|
56724
56732
|
*/
|
|
56725
56733
|
getCenter(target = new Vector3$1()) {
|
|
56726
56734
|
const x = this.getCenterX();
|
|
@@ -68007,7 +68015,7 @@ class AssetLoader {
|
|
|
68007
68015
|
*
|
|
68008
68016
|
* @param {AssetRequestScope} scope
|
|
68009
68017
|
* @param {string} path
|
|
68010
|
-
* @param {function(Asset)} success
|
|
68018
|
+
* @param {function(asset:Asset)} success
|
|
68011
68019
|
* @param {function} failure
|
|
68012
68020
|
* @param {function(current:number, total:number)} progress
|
|
68013
68021
|
*/
|
|
@@ -75811,6 +75819,125 @@ class GenericRendererAdapter extends AbstractRenderAdapter {
|
|
|
75811
75819
|
|
|
75812
75820
|
}
|
|
75813
75821
|
|
|
75822
|
+
/**
|
|
75823
|
+
*
|
|
75824
|
+
* @param {Plane} plane
|
|
75825
|
+
* @returns {number}
|
|
75826
|
+
*/
|
|
75827
|
+
function planeHash(plane) {
|
|
75828
|
+
return mortonEncode_magicbits(plane.normal.x, plane.normal.y, plane.normal.z) ^ plane.constant;
|
|
75829
|
+
}
|
|
75830
|
+
|
|
75831
|
+
/**
|
|
75832
|
+
* @template T
|
|
75833
|
+
* @param {T[]} array
|
|
75834
|
+
* @param {function(T):number} elementHashFunction
|
|
75835
|
+
* @returns {number}
|
|
75836
|
+
*/
|
|
75837
|
+
function computeHashArray(array, elementHashFunction) {
|
|
75838
|
+
|
|
75839
|
+
const numArguments = array.length;
|
|
75840
|
+
let hash = numArguments;
|
|
75841
|
+
|
|
75842
|
+
for (let i = 0; i < numArguments; i++) {
|
|
75843
|
+
|
|
75844
|
+
const singleValue = array[i];
|
|
75845
|
+
|
|
75846
|
+
const elementHash = elementHashFunction(singleValue);
|
|
75847
|
+
|
|
75848
|
+
hash = ((hash << 5) - hash) + elementHash;
|
|
75849
|
+
hash |= 0; // Convert to 32bit integer
|
|
75850
|
+
}
|
|
75851
|
+
|
|
75852
|
+
return hash;
|
|
75853
|
+
}
|
|
75854
|
+
|
|
75855
|
+
/**
|
|
75856
|
+
*
|
|
75857
|
+
* @param {THREE.Texture} texture
|
|
75858
|
+
* @return {number}
|
|
75859
|
+
*/
|
|
75860
|
+
function textureHashById(texture) {
|
|
75861
|
+
if (texture === undefined || texture === null) {
|
|
75862
|
+
return 0;
|
|
75863
|
+
}
|
|
75864
|
+
|
|
75865
|
+
return texture.id;
|
|
75866
|
+
}
|
|
75867
|
+
|
|
75868
|
+
/**
|
|
75869
|
+
*
|
|
75870
|
+
* @param {THREE.Color} c
|
|
75871
|
+
*/
|
|
75872
|
+
function computeHashColor(c) {
|
|
75873
|
+
return c.getHex();
|
|
75874
|
+
}
|
|
75875
|
+
|
|
75876
|
+
/**
|
|
75877
|
+
*
|
|
75878
|
+
* @param {Material|MeshStandardMaterial|ShaderMaterial} material
|
|
75879
|
+
* @returns {number}
|
|
75880
|
+
*/
|
|
75881
|
+
function computeMaterialHash(material) {
|
|
75882
|
+
|
|
75883
|
+
let hash = computeHashIntegerArray(
|
|
75884
|
+
computeHashFloat(material.alphaTest),
|
|
75885
|
+
material.blendDst,
|
|
75886
|
+
material.blendDstAlpha === null ? 0 : computeHashFloat(material.blendDstAlpha),
|
|
75887
|
+
material.blendEquation,
|
|
75888
|
+
material.blendEquationAlpha === null ? 0 : computeHashFloat(material.blendEquationAlpha),
|
|
75889
|
+
material.blending,
|
|
75890
|
+
material.blendSrc,
|
|
75891
|
+
material.blendSrcAlpha === null ? 0 : computeHashFloat(material.blendSrcAlpha),
|
|
75892
|
+
material.clipIntersection ? 0 : 1,
|
|
75893
|
+
material.clippingPlanes === null ? 0 : computeHashArray(material.clippingPlanes, planeHash),
|
|
75894
|
+
material.clipShadows ? 0 : 1,
|
|
75895
|
+
material.colorWrite ? 0 : 1,
|
|
75896
|
+
material.depthFunc,
|
|
75897
|
+
material.depthTest ? 0 : 1,
|
|
75898
|
+
material.depthWrite ? 0 : 1,
|
|
75899
|
+
material.fog ? 0 : 1,
|
|
75900
|
+
computeHashFloat(material.opacity),
|
|
75901
|
+
material.polygonOffset ? 0 : 1,
|
|
75902
|
+
computeHashFloat(material.polygonOffsetFactor),
|
|
75903
|
+
computeHashFloat(material.polygonOffsetUnits),
|
|
75904
|
+
computeStringHash(material.precision),
|
|
75905
|
+
material.premultipliedAlpha ? 0 : 1,
|
|
75906
|
+
material.dithering ? 0 : 1,
|
|
75907
|
+
material.flatShading ? 0 : 1,
|
|
75908
|
+
material.side,
|
|
75909
|
+
material.transparent ? 0 : 1,
|
|
75910
|
+
computeStringHash(material.type),
|
|
75911
|
+
material.vertexColors ? 0 : 1,
|
|
75912
|
+
material.visible ? 0 : 1,
|
|
75913
|
+
);
|
|
75914
|
+
|
|
75915
|
+
|
|
75916
|
+
if (material.isMeshStandardMaterial) {
|
|
75917
|
+
hash = computeHashIntegerArray(
|
|
75918
|
+
hash,
|
|
75919
|
+
computeHashColor(material.color),
|
|
75920
|
+
computeHashFloat(material.roughness),
|
|
75921
|
+
computeHashFloat(material.metalness),
|
|
75922
|
+
textureHashById(material.map),
|
|
75923
|
+
textureHashById(material.lightMap),
|
|
75924
|
+
computeHashFloat(material.lightMapIntensity),
|
|
75925
|
+
textureHashById(material.aoMap),
|
|
75926
|
+
computeHashFloat(material.aoMapIntensity),
|
|
75927
|
+
computeHashColor(material.emissive),
|
|
75928
|
+
computeHashFloat(material.emissiveIntensity),
|
|
75929
|
+
textureHashById(material.emissiveMap),
|
|
75930
|
+
computeHashFloat(material.envMapIntensity),
|
|
75931
|
+
textureHashById(material.bumpMap),
|
|
75932
|
+
textureHashById(material.normalMap),
|
|
75933
|
+
);
|
|
75934
|
+
} else if (material.isShaderMaterial) {
|
|
75935
|
+
hash ^= material.lights ? 0 : 1;
|
|
75936
|
+
}
|
|
75937
|
+
|
|
75938
|
+
return hash;
|
|
75939
|
+
}
|
|
75940
|
+
|
|
75814
75941
|
class TextureAttachment {
|
|
75815
75942
|
/**
|
|
75816
75943
|
* @template T
|
|
@@ -75972,6 +76099,46 @@ const TextureAttachmentsByMaterialType = {
|
|
|
75972
76099
|
|
|
75973
76100
|
TextureAttachmentsByMaterialType.MeshPhysicalMaterial = TextureAttachmentsByMaterialType.MeshStandardMaterial;
|
|
75974
76101
|
|
|
76102
|
+
/**
|
|
76103
|
+
* NOTE: based on https://github.com/garycourt/murmurhash-js/blob/master/murmurhash3_gc.js
|
|
76104
|
+
* @param {Uint32Array} key
|
|
76105
|
+
* @param {number} seed
|
|
76106
|
+
* @returns {number}
|
|
76107
|
+
*/
|
|
76108
|
+
function murmur3_32(key, seed) {
|
|
76109
|
+
let h1 = seed;
|
|
76110
|
+
let k1;
|
|
76111
|
+
let i = 0;
|
|
76112
|
+
|
|
76113
|
+
const key_length = key.length;
|
|
76114
|
+
|
|
76115
|
+
while (i < key_length) {
|
|
76116
|
+
k1 = key[i];
|
|
76117
|
+
++i;
|
|
76118
|
+
|
|
76119
|
+
k1 = ((((k1 & 0xffff) * 0xcc9e2d51) + ((((k1 >>> 16) * 0xcc9e2d51) & 0xffff) << 16)));
|
|
76120
|
+
k1 = (k1 << 15) | (k1 >>> 17);
|
|
76121
|
+
k1 = ((((k1 & 0xffff) * 0x1b873593) + ((((k1 >>> 16) * 0x1b873593) & 0xffff) << 16)));
|
|
76122
|
+
|
|
76123
|
+
h1 ^= k1;
|
|
76124
|
+
h1 = (h1 << 13) | (h1 >>> 19);
|
|
76125
|
+
h1 = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16)));
|
|
76126
|
+
h1 = (((h1 & 0xffff) + 0x6b64) + ((((h1 >>> 16) + 0xe654) & 0xffff) << 16));
|
|
76127
|
+
}
|
|
76128
|
+
|
|
76129
|
+
// mix in array length
|
|
76130
|
+
h1 ^= key_length;
|
|
76131
|
+
|
|
76132
|
+
h1 ^= h1 >>> 16;
|
|
76133
|
+
h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16));
|
|
76134
|
+
h1 ^= h1 >>> 13;
|
|
76135
|
+
h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16)));
|
|
76136
|
+
h1 ^= h1 >>> 16;
|
|
76137
|
+
|
|
76138
|
+
// cast to uint32
|
|
76139
|
+
return h1 >>> 0;
|
|
76140
|
+
}
|
|
76141
|
+
|
|
75975
76142
|
/**
|
|
75976
76143
|
* Transfer bitmap contents to Sampler2D, effectively moving data to CPU, making it readable
|
|
75977
76144
|
* @param {WebGL2RenderingContext} gl
|
|
@@ -76163,46 +76330,6 @@ function computeImageBitmapHash(bitmap) {
|
|
|
76163
76330
|
return hash;
|
|
76164
76331
|
}
|
|
76165
76332
|
|
|
76166
|
-
/**
|
|
76167
|
-
* NOTE: based on https://github.com/garycourt/murmurhash-js/blob/master/murmurhash3_gc.js
|
|
76168
|
-
* @param {Uint32Array} key
|
|
76169
|
-
* @param {number} seed
|
|
76170
|
-
* @returns {number}
|
|
76171
|
-
*/
|
|
76172
|
-
function murmur3_32(key, seed) {
|
|
76173
|
-
let h1 = seed;
|
|
76174
|
-
let k1;
|
|
76175
|
-
let i = 0;
|
|
76176
|
-
|
|
76177
|
-
const key_length = key.length;
|
|
76178
|
-
|
|
76179
|
-
while (i < key_length) {
|
|
76180
|
-
k1 = key[i];
|
|
76181
|
-
++i;
|
|
76182
|
-
|
|
76183
|
-
k1 = ((((k1 & 0xffff) * 0xcc9e2d51) + ((((k1 >>> 16) * 0xcc9e2d51) & 0xffff) << 16)));
|
|
76184
|
-
k1 = (k1 << 15) | (k1 >>> 17);
|
|
76185
|
-
k1 = ((((k1 & 0xffff) * 0x1b873593) + ((((k1 >>> 16) * 0x1b873593) & 0xffff) << 16)));
|
|
76186
|
-
|
|
76187
|
-
h1 ^= k1;
|
|
76188
|
-
h1 = (h1 << 13) | (h1 >>> 19);
|
|
76189
|
-
h1 = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16)));
|
|
76190
|
-
h1 = (((h1 & 0xffff) + 0x6b64) + ((((h1 >>> 16) + 0xe654) & 0xffff) << 16));
|
|
76191
|
-
}
|
|
76192
|
-
|
|
76193
|
-
// mix in array length
|
|
76194
|
-
h1 ^= key_length;
|
|
76195
|
-
|
|
76196
|
-
h1 ^= h1 >>> 16;
|
|
76197
|
-
h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16));
|
|
76198
|
-
h1 ^= h1 >>> 13;
|
|
76199
|
-
h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16)));
|
|
76200
|
-
h1 ^= h1 >>> 16;
|
|
76201
|
-
|
|
76202
|
-
// cast to uint32
|
|
76203
|
-
return h1 >>> 0;
|
|
76204
|
-
}
|
|
76205
|
-
|
|
76206
76333
|
/**
|
|
76207
76334
|
*
|
|
76208
76335
|
* @param {Vector2} v
|
|
@@ -76234,7 +76361,12 @@ function computeImageDataHash(image) {
|
|
|
76234
76361
|
|
|
76235
76362
|
let result = 0;
|
|
76236
76363
|
|
|
76237
|
-
if (
|
|
76364
|
+
if (
|
|
76365
|
+
// check that browser/environment has the class at all to avoid potential exceptions
|
|
76366
|
+
// Required for Safari below version 15.6
|
|
76367
|
+
ImageBitmap !== undefined
|
|
76368
|
+
&& (image instanceof ImageBitmap)
|
|
76369
|
+
) {
|
|
76238
76370
|
result = computeImageBitmapHash(image);
|
|
76239
76371
|
} else if (image instanceof HTMLImageElement) {
|
|
76240
76372
|
result = computeStringHash(image.src);
|
|
@@ -76430,7 +76562,12 @@ function textureImagesEqual(a, b) {
|
|
|
76430
76562
|
return false;
|
|
76431
76563
|
}
|
|
76432
76564
|
|
|
76433
|
-
if (
|
|
76565
|
+
if (
|
|
76566
|
+
// check that browser/environment has the class at all to avoid potential exceptions
|
|
76567
|
+
// Required for Safari below version 15.6
|
|
76568
|
+
ImageBitmap !== undefined
|
|
76569
|
+
&& (a instanceof ImageBitmap && b instanceof ImageBitmap)
|
|
76570
|
+
) {
|
|
76434
76571
|
return computeImageBitmapEquality(a, b);
|
|
76435
76572
|
}
|
|
76436
76573
|
|
|
@@ -76534,125 +76671,6 @@ function textureMipmapEqual(a, b) {
|
|
|
76534
76671
|
return fastArrayEquals(aData, bData);
|
|
76535
76672
|
}
|
|
76536
76673
|
|
|
76537
|
-
/**
|
|
76538
|
-
*
|
|
76539
|
-
* @param {Plane} plane
|
|
76540
|
-
* @returns {number}
|
|
76541
|
-
*/
|
|
76542
|
-
function planeHash(plane) {
|
|
76543
|
-
return mortonEncode_magicbits(plane.normal.x, plane.normal.y, plane.normal.z) ^ plane.constant;
|
|
76544
|
-
}
|
|
76545
|
-
|
|
76546
|
-
/**
|
|
76547
|
-
* @template T
|
|
76548
|
-
* @param {T[]} array
|
|
76549
|
-
* @param {function(T):number} elementHashFunction
|
|
76550
|
-
* @returns {number}
|
|
76551
|
-
*/
|
|
76552
|
-
function computeHashArray(array, elementHashFunction) {
|
|
76553
|
-
|
|
76554
|
-
const numArguments = array.length;
|
|
76555
|
-
let hash = numArguments;
|
|
76556
|
-
|
|
76557
|
-
for (let i = 0; i < numArguments; i++) {
|
|
76558
|
-
|
|
76559
|
-
const singleValue = array[i];
|
|
76560
|
-
|
|
76561
|
-
const elementHash = elementHashFunction(singleValue);
|
|
76562
|
-
|
|
76563
|
-
hash = ((hash << 5) - hash) + elementHash;
|
|
76564
|
-
hash |= 0; // Convert to 32bit integer
|
|
76565
|
-
}
|
|
76566
|
-
|
|
76567
|
-
return hash;
|
|
76568
|
-
}
|
|
76569
|
-
|
|
76570
|
-
/**
|
|
76571
|
-
*
|
|
76572
|
-
* @param {THREE.Texture} texture
|
|
76573
|
-
* @return {number}
|
|
76574
|
-
*/
|
|
76575
|
-
function textureHashById(texture) {
|
|
76576
|
-
if (texture === undefined || texture === null) {
|
|
76577
|
-
return 0;
|
|
76578
|
-
}
|
|
76579
|
-
|
|
76580
|
-
return texture.id;
|
|
76581
|
-
}
|
|
76582
|
-
|
|
76583
|
-
/**
|
|
76584
|
-
*
|
|
76585
|
-
* @param {THREE.Color} c
|
|
76586
|
-
*/
|
|
76587
|
-
function computeHashColor(c) {
|
|
76588
|
-
return c.getHex();
|
|
76589
|
-
}
|
|
76590
|
-
|
|
76591
|
-
/**
|
|
76592
|
-
*
|
|
76593
|
-
* @param {Material|MeshStandardMaterial|ShaderMaterial} material
|
|
76594
|
-
* @returns {number}
|
|
76595
|
-
*/
|
|
76596
|
-
function computeMaterialHash(material) {
|
|
76597
|
-
|
|
76598
|
-
let hash = computeHashIntegerArray(
|
|
76599
|
-
computeHashFloat(material.alphaTest),
|
|
76600
|
-
material.blendDst,
|
|
76601
|
-
material.blendDstAlpha === null ? 0 : computeHashFloat(material.blendDstAlpha),
|
|
76602
|
-
material.blendEquation,
|
|
76603
|
-
material.blendEquationAlpha === null ? 0 : computeHashFloat(material.blendEquationAlpha),
|
|
76604
|
-
material.blending,
|
|
76605
|
-
material.blendSrc,
|
|
76606
|
-
material.blendSrcAlpha === null ? 0 : computeHashFloat(material.blendSrcAlpha),
|
|
76607
|
-
material.clipIntersection ? 0 : 1,
|
|
76608
|
-
material.clippingPlanes === null ? 0 : computeHashArray(material.clippingPlanes, planeHash),
|
|
76609
|
-
material.clipShadows ? 0 : 1,
|
|
76610
|
-
material.colorWrite ? 0 : 1,
|
|
76611
|
-
material.depthFunc,
|
|
76612
|
-
material.depthTest ? 0 : 1,
|
|
76613
|
-
material.depthWrite ? 0 : 1,
|
|
76614
|
-
material.fog ? 0 : 1,
|
|
76615
|
-
computeHashFloat(material.opacity),
|
|
76616
|
-
material.polygonOffset ? 0 : 1,
|
|
76617
|
-
computeHashFloat(material.polygonOffsetFactor),
|
|
76618
|
-
computeHashFloat(material.polygonOffsetUnits),
|
|
76619
|
-
computeStringHash(material.precision),
|
|
76620
|
-
material.premultipliedAlpha ? 0 : 1,
|
|
76621
|
-
material.dithering ? 0 : 1,
|
|
76622
|
-
material.flatShading ? 0 : 1,
|
|
76623
|
-
material.side,
|
|
76624
|
-
material.transparent ? 0 : 1,
|
|
76625
|
-
computeStringHash(material.type),
|
|
76626
|
-
material.vertexColors ? 0 : 1,
|
|
76627
|
-
material.visible ? 0 : 1,
|
|
76628
|
-
);
|
|
76629
|
-
|
|
76630
|
-
|
|
76631
|
-
if (material.isMeshStandardMaterial) {
|
|
76632
|
-
hash = computeHashIntegerArray(
|
|
76633
|
-
hash,
|
|
76634
|
-
computeHashColor(material.color),
|
|
76635
|
-
computeHashFloat(material.roughness),
|
|
76636
|
-
computeHashFloat(material.metalness),
|
|
76637
|
-
textureHashById(material.map),
|
|
76638
|
-
textureHashById(material.lightMap),
|
|
76639
|
-
computeHashFloat(material.lightMapIntensity),
|
|
76640
|
-
textureHashById(material.aoMap),
|
|
76641
|
-
computeHashFloat(material.aoMapIntensity),
|
|
76642
|
-
computeHashColor(material.emissive),
|
|
76643
|
-
computeHashFloat(material.emissiveIntensity),
|
|
76644
|
-
textureHashById(material.emissiveMap),
|
|
76645
|
-
computeHashFloat(material.envMapIntensity),
|
|
76646
|
-
textureHashById(material.bumpMap),
|
|
76647
|
-
textureHashById(material.normalMap),
|
|
76648
|
-
);
|
|
76649
|
-
} else if (material.isShaderMaterial) {
|
|
76650
|
-
hash ^= material.lights ? 0 : 1;
|
|
76651
|
-
}
|
|
76652
|
-
|
|
76653
|
-
return hash;
|
|
76654
|
-
}
|
|
76655
|
-
|
|
76656
76674
|
/**
|
|
76657
76675
|
*
|
|
76658
76676
|
* @param {Plane} a
|
|
@@ -77004,6 +77022,22 @@ function composeCompile(previous, next) {
|
|
|
77004
77022
|
return result_function;
|
|
77005
77023
|
}
|
|
77006
77024
|
|
|
77025
|
+
/**
|
|
77026
|
+
*
|
|
77027
|
+
* @param {BufferGeometry} target
|
|
77028
|
+
* @param {BufferGeometry} source
|
|
77029
|
+
*/
|
|
77030
|
+
function geometry_copy(target, source) {
|
|
77031
|
+
target.index = source.index;
|
|
77032
|
+
for (let attributeName in source.attributes) {
|
|
77033
|
+
if (!source.attributes.hasOwnProperty(attributeName)) {
|
|
77034
|
+
continue;
|
|
77035
|
+
}
|
|
77036
|
+
|
|
77037
|
+
target.attributes[attributeName] = source.attributes[attributeName];
|
|
77038
|
+
}
|
|
77039
|
+
}
|
|
77040
|
+
|
|
77007
77041
|
const SHADER_PREAMBLE = `
|
|
77008
77042
|
#define USE_COLOR_ALPHA
|
|
77009
77043
|
#define USE_INSTANCING_COLOR
|
|
@@ -77574,14 +77608,7 @@ class InstancedMeshGroup {
|
|
|
77574
77608
|
geometry.dynamic = true;
|
|
77575
77609
|
|
|
77576
77610
|
//copy instance attributes
|
|
77577
|
-
geometry
|
|
77578
|
-
for (let attributeName in instance.attributes) {
|
|
77579
|
-
if (!instance.attributes.hasOwnProperty(attributeName)) {
|
|
77580
|
-
continue;
|
|
77581
|
-
}
|
|
77582
|
-
|
|
77583
|
-
geometry.attributes[attributeName] = instance.attributes[attributeName];
|
|
77584
|
-
}
|
|
77611
|
+
geometry_copy(geometry, instance);
|
|
77585
77612
|
|
|
77586
77613
|
//build instanced attributes
|
|
77587
77614
|
const newTransformArray = new Float32Array(this.capacity * 16);
|
|
@@ -106383,9 +106410,11 @@ function v3_morton_encode_transformed(x, y, z, matrix) {
|
|
|
106383
106410
|
* @param {number} z1
|
|
106384
106411
|
* @returns {number}
|
|
106385
106412
|
*/
|
|
106386
|
-
function v3_distance(
|
|
106387
|
-
|
|
106388
|
-
|
|
106413
|
+
function v3_distance(
|
|
106414
|
+
x0, y0, z0,
|
|
106415
|
+
x1, y1, z1
|
|
106416
|
+
) {
|
|
106417
|
+
return Math.hypot(x1 - x0, y1 - y0, z1 - z0);
|
|
106389
106418
|
}
|
|
106390
106419
|
|
|
106391
106420
|
class AbstractTextureAtlas {
|
|
@@ -68,6 +68,15 @@ function TranslateHelperGeometry() {
|
|
|
68
68
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* @enum {string}
|
|
73
|
+
*/
|
|
74
|
+
const TransformMode = {
|
|
75
|
+
Scale: 'scale',
|
|
76
|
+
Translate: 'translate',
|
|
77
|
+
Rotate: 'rotate'
|
|
78
|
+
};
|
|
79
|
+
|
|
71
80
|
class GizmoNode extends EntityNode {
|
|
72
81
|
constructor() {
|
|
73
82
|
super();
|
|
@@ -221,7 +230,7 @@ class TransformControls extends GizmoNode {
|
|
|
221
230
|
defineProperty('object', undefined);
|
|
222
231
|
defineProperty('enabled', true);
|
|
223
232
|
defineProperty('axis', null);
|
|
224
|
-
defineProperty('mode',
|
|
233
|
+
defineProperty('mode', TransformMode.Translate);
|
|
225
234
|
defineProperty('translationSnap', null);
|
|
226
235
|
defineProperty('rotationSnap', null);
|
|
227
236
|
defineProperty('scaleSnap', null);
|
|
@@ -393,7 +402,7 @@ class TransformControls extends GizmoNode {
|
|
|
393
402
|
|
|
394
403
|
let space = this.space;
|
|
395
404
|
|
|
396
|
-
if (mode ===
|
|
405
|
+
if (mode === TransformMode.Scale) {
|
|
397
406
|
|
|
398
407
|
space = 'local';
|
|
399
408
|
|
|
@@ -415,7 +424,7 @@ class TransformControls extends GizmoNode {
|
|
|
415
424
|
|
|
416
425
|
this.pointEnd.copy(planeIntersect.contact.position).sub(this.worldPositionStart);
|
|
417
426
|
|
|
418
|
-
if (mode ===
|
|
427
|
+
if (mode === TransformMode.Translate) {
|
|
419
428
|
|
|
420
429
|
// Apply translate
|
|
421
430
|
|
|
@@ -513,7 +522,7 @@ class TransformControls extends GizmoNode {
|
|
|
513
522
|
// write
|
|
514
523
|
object_transform.position.copy(_tempTransform.position);
|
|
515
524
|
|
|
516
|
-
} else if (mode ===
|
|
525
|
+
} else if (mode === TransformMode.Scale) {
|
|
517
526
|
|
|
518
527
|
if (axis.search('XYZ') !== -1) {
|
|
519
528
|
|
|
@@ -584,7 +593,7 @@ class TransformControls extends GizmoNode {
|
|
|
584
593
|
|
|
585
594
|
object_transform.scale.copy(_tempTransform.scale);
|
|
586
595
|
|
|
587
|
-
} else if (mode ===
|
|
596
|
+
} else if (mode === TransformMode.Rotate) {
|
|
588
597
|
|
|
589
598
|
this._offset.copy(this.pointEnd).sub(this.pointStart);
|
|
590
599
|
|
|
@@ -1329,40 +1338,40 @@ class TransformControlsGizmo extends GizmoNode {
|
|
|
1329
1338
|
*/
|
|
1330
1339
|
this.helper = {};
|
|
1331
1340
|
|
|
1332
|
-
this.addChild(this.gizmo[
|
|
1333
|
-
this.addChild(this.gizmo[
|
|
1334
|
-
this.addChild(this.gizmo[
|
|
1335
|
-
this.addChild(this.picker[
|
|
1336
|
-
this.addChild(this.picker[
|
|
1337
|
-
this.addChild(this.picker[
|
|
1338
|
-
this.addChild(this.helper[
|
|
1339
|
-
this.addChild(this.helper[
|
|
1340
|
-
this.addChild(this.helper[
|
|
1341
|
+
this.addChild(this.gizmo[TransformMode.Translate] = setupGizmo(gizmoTranslate));
|
|
1342
|
+
this.addChild(this.gizmo[TransformMode.Rotate] = setupGizmo(gizmoRotate));
|
|
1343
|
+
this.addChild(this.gizmo[TransformMode.Scale] = setupGizmo(gizmoScale));
|
|
1344
|
+
this.addChild(this.picker[TransformMode.Translate] = setupGizmo(pickerTranslate));
|
|
1345
|
+
this.addChild(this.picker[TransformMode.Rotate] = setupGizmo(pickerRotate));
|
|
1346
|
+
this.addChild(this.picker[TransformMode.Scale] = setupGizmo(pickerScale));
|
|
1347
|
+
this.addChild(this.helper[TransformMode.Translate] = setupGizmo(helperTranslate));
|
|
1348
|
+
this.addChild(this.helper[TransformMode.Rotate] = setupGizmo(helperRotate));
|
|
1349
|
+
this.addChild(this.helper[TransformMode.Scale] = setupGizmo(helperScale));
|
|
1341
1350
|
|
|
1342
1351
|
// Pickers should be hidden always
|
|
1343
1352
|
|
|
1344
|
-
this.picker[
|
|
1345
|
-
this.picker[
|
|
1346
|
-
this.picker[
|
|
1353
|
+
this.picker[TransformMode.Translate].visible = false;
|
|
1354
|
+
this.picker[TransformMode.Rotate].visible = false;
|
|
1355
|
+
this.picker[TransformMode.Scale].visible = false;
|
|
1347
1356
|
}
|
|
1348
1357
|
|
|
1349
1358
|
// updateMatrixWorld will update transformations and appearance of individual handles
|
|
1350
1359
|
|
|
1351
1360
|
update(force) {
|
|
1352
1361
|
|
|
1353
|
-
const space = (this.mode ===
|
|
1362
|
+
const space = (this.mode === TransformMode.Scale) ? 'local' : this.space; // scale always oriented to local rotation
|
|
1354
1363
|
|
|
1355
1364
|
const quaternion = (space === 'local') ? this.worldQuaternion : _identityQuaternion;
|
|
1356
1365
|
|
|
1357
1366
|
// Show only gizmos for current transform mode
|
|
1358
1367
|
|
|
1359
|
-
this.gizmo[
|
|
1360
|
-
this.gizmo[
|
|
1361
|
-
this.gizmo[
|
|
1368
|
+
this.gizmo[TransformMode.Translate].visible = this.mode === TransformMode.Translate;
|
|
1369
|
+
this.gizmo[TransformMode.Rotate].visible = this.mode === TransformMode.Rotate;
|
|
1370
|
+
this.gizmo[TransformMode.Scale].visible = this.mode === TransformMode.Scale;
|
|
1362
1371
|
|
|
1363
|
-
this.helper[
|
|
1364
|
-
this.helper[
|
|
1365
|
-
this.helper[
|
|
1372
|
+
this.helper[TransformMode.Translate].visible = this.mode === TransformMode.Translate;
|
|
1373
|
+
this.helper[TransformMode.Rotate].visible = this.mode === TransformMode.Rotate;
|
|
1374
|
+
this.helper[TransformMode.Scale].visible = this.mode === TransformMode.Scale;
|
|
1366
1375
|
|
|
1367
1376
|
/**
|
|
1368
1377
|
*
|
|
@@ -1521,7 +1530,7 @@ class TransformControlsGizmo extends GizmoNode {
|
|
|
1521
1530
|
|
|
1522
1531
|
handle.transform.rotation.copy(quaternion);
|
|
1523
1532
|
|
|
1524
|
-
if (this.mode ===
|
|
1533
|
+
if (this.mode === TransformMode.Translate || this.mode === TransformMode.Scale) {
|
|
1525
1534
|
|
|
1526
1535
|
// Hide translate and scale axis facing the camera
|
|
1527
1536
|
|
|
@@ -1594,7 +1603,7 @@ class TransformControlsGizmo extends GizmoNode {
|
|
|
1594
1603
|
|
|
1595
1604
|
}
|
|
1596
1605
|
|
|
1597
|
-
} else if (this.mode ===
|
|
1606
|
+
} else if (this.mode === TransformMode.Rotate) {
|
|
1598
1607
|
|
|
1599
1608
|
// Align handles to current local or world rotation
|
|
1600
1609
|
|
|
@@ -1696,9 +1705,6 @@ class TransformControlsPlane extends GizmoNode {
|
|
|
1696
1705
|
this.isTransformControlsPlane = true;
|
|
1697
1706
|
|
|
1698
1707
|
this.type = 'TransformControlsPlane';
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
this.transform.rotation.onChanged.add(console.warn);
|
|
1702
1708
|
}
|
|
1703
1709
|
|
|
1704
1710
|
update() {
|
|
@@ -1709,7 +1715,7 @@ class TransformControlsPlane extends GizmoNode {
|
|
|
1709
1715
|
|
|
1710
1716
|
transform.position.copy(this.worldPosition);
|
|
1711
1717
|
|
|
1712
|
-
if (this.mode ===
|
|
1718
|
+
if (this.mode === TransformMode.Scale) space = 'local'; // scale always oriented to local rotation
|
|
1713
1719
|
|
|
1714
1720
|
_v1.copy(_unitX).applyQuaternion(space === 'local' ? this.worldQuaternion : _identityQuaternion);
|
|
1715
1721
|
_v2.copy(_unitY).applyQuaternion(space === 'local' ? this.worldQuaternion : _identityQuaternion);
|
|
@@ -1721,8 +1727,8 @@ class TransformControlsPlane extends GizmoNode {
|
|
|
1721
1727
|
|
|
1722
1728
|
switch (this.mode) {
|
|
1723
1729
|
|
|
1724
|
-
case
|
|
1725
|
-
case
|
|
1730
|
+
case TransformMode.Translate:
|
|
1731
|
+
case TransformMode.Scale:
|
|
1726
1732
|
switch (this.axis) {
|
|
1727
1733
|
|
|
1728
1734
|
case 'X':
|
|
@@ -1755,7 +1761,7 @@ class TransformControlsPlane extends GizmoNode {
|
|
|
1755
1761
|
}
|
|
1756
1762
|
|
|
1757
1763
|
break;
|
|
1758
|
-
case
|
|
1764
|
+
case TransformMode.Rotate:
|
|
1759
1765
|
default:
|
|
1760
1766
|
// special case for rotate
|
|
1761
1767
|
_dirVector.set(0, 0, 0);
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BVH.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/BVH.js"],"names":[],"mappings":"AAQA,8BAA+B;AAC/B,+BAAgC;AAChC,+BAAgC;AAChC,8BAA+B;AAE/B;;;;;GAKG;AACH,+BAFU,MAAM,CAE+B;AAE/C;;;GAGG;AACH,wBAFU,MAAM,CAEoB;AAcpC;;;;;GAKG;AACH,iCAFU,MAAM,CAEqB;AAgBrC;;;;;;GAMG;AACH;IAEI;;;;OAIG;IACH,sBAA2E;IAE3E;;;;OAIG;IACH,uBAAsD;IAEtD;;;;OAIG;IACH,sBAAoD;IAEpD;;;;OAIG;IACH,mBAA8B;IAE9B;;;;OAIG;IACH,eAAW;IAEX;;;;OAIG;IACH,eAAY;IAEZ;;;;OAIG;IACH,uBAAmB;IAEnB;;;;OAIG;IACH,eAAmB;
|
|
1
|
+
{"version":3,"file":"BVH.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/BVH.js"],"names":[],"mappings":"AAQA,8BAA+B;AAC/B,+BAAgC;AAChC,+BAAgC;AAChC,8BAA+B;AAE/B;;;;;GAKG;AACH,+BAFU,MAAM,CAE+B;AAE/C;;;GAGG;AACH,wBAFU,MAAM,CAEoB;AAcpC;;;;;GAKG;AACH,iCAFU,MAAM,CAEqB;AAgBrC;;;;;;GAMG;AACH;IAEI;;;;OAIG;IACH,sBAA2E;IAE3E;;;;OAIG;IACH,uBAAsD;IAEtD;;;;OAIG;IACH,sBAAoD;IAEpD;;;;OAIG;IACH,mBAA8B;IAE9B;;;;OAIG;IACH,eAAW;IAEX;;;;OAIG;IACH,eAAY;IAEZ;;;;OAIG;IACH,uBAAmB;IAEnB;;;;OAIG;IACH,eAAmB;IAUnB;;;OAGG;IACH,sBAEC;IAdD;;;OAGG;IACH,mBAEC;IAkBD;;;OAGG;IACH,+BAMC;IAlBD;;;OAGG;IACH,4BAEC;IAcD,wBAgBC;IAED;;;;OAIG;IACH,uBAqBC;IAED;;OAEG;IACH,aAIC;IAED;;;OAGG;IACH,iBAFa,MAAM,CAqDlB;IAED;;;;OAIG;IACH,iBAFW,MAAM,QAMhB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,OAAO,CAOnB;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,uBAHW,MAAM,SACN,MAAM,QAOhB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;IAGD;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,oBAHW,MAAM,UACN,MAAM,QAKhB;IAED;;;;OAIG;IACH,kBAHW,MAAM,UACN,MAAM,EAAE,GAAC,YAAY,QAe/B;IAED;;;;OAIG;IACH,kBAHW,MAAM,QACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,QAAM,QAsB1C;IAED;;;;OAIG;IACH,mBAHW,MAAM,QACN,MAAM,EAAE,QAWlB;IAED;;;;;;;;;OASG;IACH,4BARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAmBhB;IAED;;;;OAIG;IACH,0BAHW,MAAM,GACJ,MAAM,CAoBlB;IAED;;;;;OAKG;IACH,wCAJW,MAAM,WACN,MAAM,GACJ,MAAM,CAoClB;IAED;;;;;OAKG;IACH,oCAJW,MAAM,WACN,MAAM,WACN,MAAM,QAwChB;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACJ,IAAI,CA0GhB;IAED;;;;;OAKG;IACH,wBAqBC;IAED;;;;OAIG;IACH,yBA4BC;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACJ,IAAI,CA6ChB;IAED;;;;;;OAMG;IACH,gBAoMC;IAED;;;OAGG;IACH,oBAIC;IAED;;;;OAIG;IACH,yCA8BC;IAED;;;;;OAKG;IACH,+BAJW,MAAM,EAAE,sBACR,MAAM,GACJ,MAAM,CAWlB;IAED;;;;;OAKG;IACH,0BA6BC;IAED;;;;;OAKG;IACH,cAJW,MAAM,KACN,MAAM,GACJ,OAAO,CAsCnB;CACJ"}
|
|
@@ -132,6 +132,14 @@ export class BVH {
|
|
|
132
132
|
return this.__root;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Make sure you understand what you're doing before using this
|
|
137
|
+
* @param {number} v
|
|
138
|
+
*/
|
|
139
|
+
set root(v) {
|
|
140
|
+
this.__root = v;
|
|
141
|
+
}
|
|
142
|
+
|
|
135
143
|
/**
|
|
136
144
|
*
|
|
137
145
|
* @returns {number}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ebvh_build_for_geometry_morton.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AACH,sEALW,MAAM,EAAE,GAAC,YAAY,kBACrB,MAAM,EAAE,GAAC,YAAY,iBACrB,WAAW,WACX,KAAK,
|
|
1
|
+
{"version":3,"file":"ebvh_build_for_geometry_morton.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AACH,sEALW,MAAM,EAAE,GAAC,YAAY,kBACrB,MAAM,EAAE,GAAC,YAAY,iBACrB,WAAW,WACX,KAAK,QA4Ff;sBA3GqB,6BAA6B"}
|