@hology/core 0.0.154 → 0.0.155

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.
Files changed (45) hide show
  1. package/dist/gameplay/services/physics/physics-system.d.ts +1 -0
  2. package/dist/gameplay/services/physics/physics-system.d.ts.map +1 -1
  3. package/dist/gameplay/services/physics/physics-system.js +1 -1
  4. package/dist/rendering/ssr/SSRPass.d.ts +2 -2
  5. package/dist/rendering/ssr/SSRPass.d.ts.map +1 -1
  6. package/dist/rendering/ssr/SSRPass.js +1 -1
  7. package/dist/rendering.d.ts +1 -0
  8. package/dist/rendering.d.ts.map +1 -1
  9. package/dist/rendering.js +1 -1
  10. package/dist/scene/asset-resource-loader.d.ts.map +1 -1
  11. package/dist/scene/asset-resource-loader.js +1 -1
  12. package/dist/scene/batched-mesh-2.d.ts +10 -0
  13. package/dist/scene/batched-mesh-2.d.ts.map +1 -0
  14. package/dist/scene/batched-mesh-2.js +4 -0
  15. package/dist/scene/landscape/landscape-manager.d.ts.map +1 -1
  16. package/dist/scene/landscape/landscape-manager.js +1 -1
  17. package/dist/scene/materializer.d.ts +5 -0
  18. package/dist/scene/materializer.d.ts.map +1 -1
  19. package/dist/scene/materializer.js +1 -1
  20. package/dist/shader/builtin/decal-standard-shader.d.ts +2 -0
  21. package/dist/shader/builtin/decal-standard-shader.d.ts.map +1 -1
  22. package/dist/shader/builtin/decal-standard-shader.js +1 -1
  23. package/dist/shader/builtin/landscape-composite-shader.d.ts.map +1 -1
  24. package/dist/shader/builtin/landscape-composite-shader.js +1 -1
  25. package/dist/shader/builtin/standard-shader.d.ts.map +1 -1
  26. package/dist/shader/builtin/standard-shader.js +1 -1
  27. package/dist/shader/shader.d.ts +1 -0
  28. package/dist/shader/shader.d.ts.map +1 -1
  29. package/dist/shader-nodes/curve-sample.d.ts +11 -0
  30. package/dist/shader-nodes/curve-sample.d.ts.map +1 -0
  31. package/dist/shader-nodes/curve-sample.js +4 -0
  32. package/dist/shader-nodes/depth.d.ts +3 -0
  33. package/dist/shader-nodes/depth.d.ts.map +1 -1
  34. package/dist/shader-nodes/depth.js +1 -1
  35. package/dist/shader-nodes/index.d.ts +1 -0
  36. package/dist/shader-nodes/index.d.ts.map +1 -1
  37. package/dist/shader-nodes/index.js +1 -1
  38. package/dist/shader-nodes/pom.d.ts +7 -0
  39. package/dist/shader-nodes/pom.d.ts.map +1 -0
  40. package/dist/shader-nodes/pom.js +4 -0
  41. package/dist/utils/three/traverse.d.ts +2 -1
  42. package/dist/utils/three/traverse.d.ts.map +1 -1
  43. package/dist/utils/three/traverse.js +1 -1
  44. package/package.json +2 -2
  45. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/depth.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAA0C,SAAS,EAA2H,QAAQ,EAAkB,MAAM,oBAAoB,CAAC;AAI1O,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,aAAa,WAGpE;AAID,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AACxD,eAAO,MAAM,eAAe,uBAAuB,CAAA;AACnD,eAAO,MAAM,cAAc,sBAAsB,CAAA;AAEjD,eAAO,MAAM,YAAY,+CAAkE,CAAA;AA6G3F,eAAO,MAAM,sBAAsB,WAAkB,CAAA;AAGrD,eAAO,MAAM,UAAU,8CAA4D,CAAA;AAEnF,eAAO,MAAM,QAAQ,UAA+D,CAAA;AAEpF,eAAO,MAAM,cAAc,WAA+B,CAAA;AAgB1D;;GAEG;AACH,eAAO,MAAM,kBAAkB,uCAAkC,CAAA;AASjE;;GAEG;AACH,eAAO,MAAM,WAAW,uCAAyF,CAAA"}
1
+ {"version":3,"file":"depth.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/depth.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,aAAa,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAA0C,SAAS,EAA8I,QAAQ,EAAkB,MAAM,oBAAoB,CAAC;AAI7P,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,aAAa,WAGpE;AAID,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAClD,eAAO,MAAM,qBAAqB,sBAAsB,CAAA;AACxD,eAAO,MAAM,eAAe,uBAAuB,CAAA;AACnD,eAAO,MAAM,cAAc,sBAAsB,CAAA;AACjD,eAAO,MAAM,sBAAsB,4BAA4B,CAAA;AAE/D,eAAO,MAAM,YAAY,+CAAkE,CAAA;AA6G3F,eAAO,MAAM,sBAAsB,WAAkB,CAAA;AAGrD,eAAO,MAAM,UAAU,8CAA4D,CAAA;AAEnF,eAAO,MAAM,QAAQ,UAA+D,CAAA;AAEpF,eAAO,MAAM,cAAc,WAA+B,CAAA;AAgB1D;;GAEG;AACH,eAAO,MAAM,kBAAkB,uCAAkC,CAAA;AASjE;;GAEG;AACH,eAAO,MAAM,WAAW,uCAAyF,CAAA;AAEjH,eAAO,MAAM,kBAAkB,+CAAgE,CAAA;AAC/F,eAAO,MAAM,WAAW,uCAA6D,CAAA"}
@@ -1,4 +1,4 @@
1
- import*as t from"three";import{Vector2 as e}from"three";import{cross as o,dot as r,float as n,FloatExpressionNode as s,FloatNode as c,inverse as a,normalize as i,texture2d as p,uniformFloat as l,uniforms as h,uniformSampler2d as u,uniformVec2 as d,varying as m,vec2 as x,Vec2ExpressionNode as f,vec4 as _,Vec4Node as U}from"three-shader-graph";export function supportsDepthTextureExtension(t){return!0}export const depthUniformName="hology_depth_map";export const resolutionUniformName="hology_resolution";export const nearUniformName="hology_camera_near";export const farUniformName="hology_camera_far";export const depthSampler=u(depthUniformName,new t.DepthTexture(1,1));const g=l(nearUniformName,.5),k=l(farUniformName,500);class y extends c{compile(t){const e=t.variable();var o=t.get(g),r=t.get(k);return{chunk:`\n float depth_${e} = 2.0 * ${o} * ${r} / (${r} + ${o} - (2.0 * ${t.get(this.depth)} - 1.0) * (${r} - ${o}));\n `,out:`depth_${e}`}}constructor(t){super(),this.depth=t}}function $(t){return new y(t)}new class extends U{constructor(){super(...arguments),this.k="31u50"}compile(t){return{pars:`\n const float UnpackDownscale_${this.k} = 255. / 256.; // 0..1 -> fraction (excluding 1)\n const vec4 PackFactors_${this.k} = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\n const vec4 UnpackFactors_${this.k} = vec4( UnpackDownscale_${this.k} / PackFactors_${this.k}.rgb, 1.0 / PackFactors_${this.k}.a );\n `,out:`UnpackFactors_${this.k}`}}};function v(t){return p(depthSampler,t).r}const w=new s("gl_FragCoord.z");export const fragmentLinearEyeDepth=$(w);export const resolution=d("hology_resolution",new e(250,1e3));export const screenUV=new f("gl_FragCoord.xy").divide(resolution);export const linearEyeDepth=$(v(screenUV));const N=m(a(h.projectionMatrix)),V=m(a(h.viewMatrix));function F(t=screenUV){const e=v(t).multiply(2).subtract(1),o=t.multiplyScalar(2).subtractScalar(1),r=_(o.x,o.y,e,1),n=N.multiplyVec(r),s=n.xyz.divideScalar(n.w);return V.multiplyVec(_(s,1)).xyz}export const depthWorldPosition=F(screenUV);const b=n(1).divide(resolution.x),D=n(1).divide(resolution.y),P=F(screenUV.add(x(b,n(0)))),S=F(screenUV.add(x(n(0),D)));export const depthNormal=i(o(P.subtract(depthWorldPosition),S.subtract(depthWorldPosition)));/*
1
+ import*as e from"three";import{Vector2 as t}from"three";import{cross as o,dot as r,float as n,FloatExpressionNode as s,FloatNode as c,inverse as a,normalize as i,texture2d as p,uniformFloat as l,uniforms as m,uniformSampler2d as h,uniformVec2 as u,unpackRGBToNormal as d,varying as x,vec2 as f,Vec2ExpressionNode as _,vec4 as U,Vec4Node as g}from"three-shader-graph";export function supportsDepthTextureExtension(e){return!0}export const depthUniformName="hology_depth_map";export const resolutionUniformName="hology_resolution";export const nearUniformName="hology_camera_near";export const farUniformName="hology_camera_far";export const sceneNormalUniformName="hology_scene_normal_map";export const depthSampler=h(depthUniformName,new e.DepthTexture(1,1));const y=l(nearUniformName,.5),k=l(farUniformName,500);class $ extends c{compile(e){const t=e.variable();var o=e.get(y),r=e.get(k);return{chunk:`\n float depth_${t} = 2.0 * ${o} * ${r} / (${r} + ${o} - (2.0 * ${e.get(this.depth)} - 1.0) * (${r} - ${o}));\n `,out:`depth_${t}`}}constructor(e){super(),this.depth=e}}function N(e){return new $(e)}new class extends g{constructor(){super(...arguments),this.k="31u50"}compile(e){return{pars:`\n const float UnpackDownscale_${this.k} = 255. / 256.; // 0..1 -> fraction (excluding 1)\n const vec4 PackFactors_${this.k} = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\n const vec4 UnpackFactors_${this.k} = vec4( UnpackDownscale_${this.k} / PackFactors_${this.k}.rgb, 1.0 / PackFactors_${this.k}.a );\n `,out:`UnpackFactors_${this.k}`}}};function v(e){return p(depthSampler,e).r}const w=new s("gl_FragCoord.z");export const fragmentLinearEyeDepth=N(w);export const resolution=u("hology_resolution",new t(250,1e3));export const screenUV=new _("gl_FragCoord.xy").divide(resolution);export const linearEyeDepth=N(v(screenUV));const V=x(a(m.projectionMatrix)),b=x(a(m.viewMatrix));function F(e=screenUV){const t=v(e).multiply(2).subtract(1),o=e.multiplyScalar(2).subtractScalar(1),r=U(o.x,o.y,t,1),n=V.multiplyVec(r),s=n.xyz.divideScalar(n.w);return b.multiplyVec(U(s,1)).xyz}export const depthWorldPosition=F(screenUV);const S=n(1).divide(resolution.x),D=n(1).divide(resolution.y),P=F(screenUV.add(f(S,n(0)))),z=F(screenUV.add(f(n(0),D)));export const depthNormal=i(o(P.subtract(depthWorldPosition),z.subtract(depthWorldPosition)));export const sceneNormalSampler=h(sceneNormalUniformName,new e.Texture);export const sceneNormal=d(sceneNormalSampler.sample(screenUV).rgb);/*
2
2
  * Copyright (©) 2025 Hology Interactive AB. All rights reserved.
3
3
  * See the LICENSE.md file for details.
4
4
  */
@@ -12,4 +12,5 @@ export * from './bulge.js';
12
12
  export * from './texture-sequence.js';
13
13
  export * from './decal.js';
14
14
  export * from './scene-sample.js';
15
+ export * from './curve-sample.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3H,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3H,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
@@ -1,4 +1,4 @@
1
- export*from"three-shader-graph";export{linearEyeDepth,fragmentLinearEyeDepth,depthSampler,resolution,screenUV,depthWorldPosition}from"./depth.js";export{timeUniforms}from"./time.js";export{particleUniforms}from"./particle.js";export*from"./layers.js";export*from"./landscape.js";export*from"./shapes.js";export*from"./voronoi.js";export*from"./effects.js";export*from"./math.js";export*from"./bulge.js";export*from"./texture-sequence.js";export*from"./decal.js";export*from"./scene-sample.js";/*
1
+ export*from"three-shader-graph";export{linearEyeDepth,fragmentLinearEyeDepth,depthSampler,resolution,screenUV,depthWorldPosition}from"./depth.js";export{timeUniforms}from"./time.js";export{particleUniforms}from"./particle.js";export*from"./layers.js";export*from"./landscape.js";export*from"./shapes.js";export*from"./voronoi.js";export*from"./effects.js";export*from"./math.js";export*from"./bulge.js";export*from"./texture-sequence.js";export*from"./decal.js";export*from"./scene-sample.js";export*from"./curve-sample.js";/*
2
2
  * Copyright (©) 2025 Hology Interactive AB. All rights reserved.
3
3
  * See the LICENSE.md file for details.
4
4
  */
@@ -0,0 +1,7 @@
1
+ import { FloatNode, Sampler2DNode, Vec2Node } from "three-shader-graph";
2
+ /**
3
+ * Offsets UV to use parallax occlusion mapping
4
+ * @param uv
5
+ */
6
+ export declare function parallaxOcclusionMapping(uv: Vec2Node, heightMap: Sampler2DNode, heightScale: FloatNode, minLayers?: number, maxLayers?: number): Vec2Node;
7
+ //# sourceMappingURL=pom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pom.d.ts","sourceRoot":"","sources":["../../src/shader-nodes/pom.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,SAAS,EAAmB,aAAa,EAAuC,QAAQ,EAA0D,MAAM,oBAAoB,CAAC;AAenO;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAE,MAAW,EAAE,SAAS,GAAE,MAAW,GAAG,QAAQ,CAkDjK"}
@@ -0,0 +1,4 @@
1
+ import{attributes as e,AttributeVec4Node as t,cross as a,float as r,mat3 as i,normalize as n,transformed as l,uniforms as f,varying as m,Vec2Node as o}from"three-shader-graph";import{glslFunction as v}from"./glsl-node";const u=e.normal,s=new t("tangent"),p=n(f.normalMatrix.multiplyVec(u)),S=n(f.normalMatrix.multiplyVec(s.xyz)),h=i(S,a(p,S).multiplyScalar(s.w),p),c=m(h),g=f.cameraPosition.subtract(f.modelMatrix.multiplyVec(l.position).xyz),y=n(m(n(h.multiplyVec(g)))),C=m(l.mvPosition.xyz.multiplyScalar(-1));export function parallaxOcclusionMapping(e,t,a,i=10,n=32){return v(o,{uv:e,heightScale:a,heightMap:t,minLayers:r(i),maxLayers:r(n),vTBN:c,vViewDirTS:y,vViewPosition:C},"\n vec3 viewDir = normalize(vViewPosition);\n vec3 vv = -viewDir * vTBN;\n float parallaxLimit = -length(vv.xy) / vv.z;\n parallaxLimit *= heightScale;\n\n vec2 vOffsetDir = normalize(vv.xy);\n vec2 vMaxOffset = vOffsetDir * parallaxLimit;\n\n // Probably should use actual normal but it might not matter\n vec3 nNormal = vec3(0.0, 1.0, 0.0);\n float nNumSamples = mix(float(maxLayers), float(minLayers), dot(viewDir, nNormal));\n float fStepSize = 1.0 / nNumSamples;\n\n float fCurrRayHeight = 1.0;\n vec2 vCurrOffset = vec2(0.0);\n vec2 vLastOffset = vec2(0.0);\n float fLastSampledHeight = 1.0;\n float fCurrSampledHeight = 1.0;\n\n for (int nCurrSample = 0; nCurrSample < 50; nCurrSample++) {\n if (float(nCurrSample) > nNumSamples) break;\n\n fCurrSampledHeight = texture2D(heightMap, uv + vCurrOffset).r;\n if (fCurrSampledHeight > fCurrRayHeight) {\n float delta1 = fCurrSampledHeight - fCurrRayHeight;\n float delta2 = (fCurrRayHeight + fStepSize) - fLastSampledHeight;\n float ratio = delta1 / (delta1 + delta2);\n vCurrOffset = ratio * vLastOffset + (1.0 - ratio) * vCurrOffset;\n break;\n } else {\n fCurrRayHeight -= fStepSize;\n vLastOffset = vCurrOffset;\n vCurrOffset += fStepSize * vMaxOffset;\n fLastSampledHeight = fCurrSampledHeight;\n }\n }\n\n return uv + vCurrOffset;\n ")}/*
2
+ * Copyright (©) 2025 Hology Interactive AB. All rights reserved.
3
+ * See the LICENSE.md file for details.
4
+ */
@@ -1,7 +1,8 @@
1
- import { Object3D, Vector3 } from 'three';
1
+ import { Mesh, Object3D, Vector3 } from 'three';
2
2
  type ObjectPredicate<T> = (obj: T) => boolean;
3
3
  export declare function filterScene(scene: Object3D, predicate: ObjectPredicate<Object3D>): Object3D<import("three").Object3DEventMap>[];
4
4
  export declare function findFirstVisibleObject(scene: Object3D, predicate: ObjectPredicate<Object3D>): Object3D;
5
+ export declare function findFirstVisibleMesh(scene: Object3D): Mesh;
5
6
  /**
6
7
  * Only continue traverse through children if it has not yet matched.
7
8
  * Use a traverse predicate to know if it chould event continue
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/utils/three/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,OAAO,EAAE,MAAM,OAAO,CAAC;AAGjD,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAA;AAE7C,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,gDAShF;AAGD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAatG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAEnJ;AAGD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;CAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAczK;AAID,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,QAAQ,WAMpD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,KAAK,GAAC,IAAI,GAAC,SAAS,OAW9F"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/utils/three/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAS,OAAO,EAAE,MAAM,OAAO,CAAC;AAIvD,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAA;AAE7C,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,gDAShF;AAGD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAatG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAE1D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAEnJ;AAGD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;CAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAczK;AAID,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,QAAQ,WAMpD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,KAAK,GAAC,IAAI,GAAC,SAAS,OAW9F"}
@@ -1,4 +1,4 @@
1
- import{Scene as e,Vector3 as n}from"three";export function filterScene(e,n){const t=[];return e.traverse(e=>{n(e)&&t.push(e)}),t}export function findFirstVisibleObject(e,n){const t=[e];for(;t.length>0;){const e=t.pop();if(n(e))return e;e.visible&&null!=e.children&&t.push(...e.children)}return null}export function filterSceneShallow(e,n,t){return filterChildrenShallow(e,n,t)}export function filterChildrenShallow(n,t,r){const l=[],o=[n];for(;o.length>0;){const n=o.pop();t(n)?l.push(n):(null==r||r(n)||n instanceof e)&&null!=n.children&&o.push(...n.children)}return l}const t=new n;export function calculateEffectiveScale(e){return t.copy(e.scale),e.traverseAncestors(e=>{t.multiply(e.scale)}),t}export function traverseVisibleStop(e,n){const t=[e];for(;t.length>0;){const e=t.pop();e.visible&&!1!==n(e)&&null!=e.children&&t.push(...e.children)}return null}/*
1
+ import{Mesh as e,Scene as n,Vector3 as t}from"three";import{isCollisionMesh as r}from"../../scene/collision/collision-shape-import.js";export function filterScene(e,n){const t=[];return e.traverse(e=>{n(e)&&t.push(e)}),t}export function findFirstVisibleObject(e,n){const t=[e];for(;t.length>0;){const e=t.pop();if(n(e))return e;e.visible&&null!=e.children&&t.push(...e.children)}return null}export function findFirstVisibleMesh(n){return findFirstVisibleObject(n,n=>!r(n)&&n instanceof e&&null!=n.geometry)}export function filterSceneShallow(e,n,t){return filterChildrenShallow(e,n,t)}export function filterChildrenShallow(e,t,r){const l=[],i=[e];for(;i.length>0;){const e=i.pop();t(e)?l.push(e):(null==r||r(e)||e instanceof n)&&null!=e.children&&i.push(...e.children)}return l}const l=new t;export function calculateEffectiveScale(e){return l.copy(e.scale),e.traverseAncestors(e=>{l.multiply(e.scale)}),l}export function traverseVisibleStop(e,n){const t=[e];for(;t.length>0;){const e=t.pop();e.visible&&!1!==n(e)&&null!=e.children&&t.push(...e.children)}return null}/*
2
2
  * Copyright (©) 2025 Hology Interactive AB. All rights reserved.
3
3
  * See the LICENSE.md file for details.
4
4
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hology/core",
3
- "version": "0.0.154",
3
+ "version": "0.0.155",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -174,7 +174,7 @@
174
174
  "recast-navigation": "0.39.0",
175
175
  "rxjs": "7.8.1",
176
176
  "three-mesh-bvh": "^0.7.5",
177
- "three-shader-graph": "^0.2.21",
177
+ "three-shader-graph": "^0.2.24",
178
178
  "three-stdlib": "2.34.0",
179
179
  "ts-key-enum": "^2.0.12",
180
180
  "typedi": "^0.10.0"