@babylonjs/viewer
Version:
The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
3 lines (2 loc) • 3.53 kB
JavaScript
import{bo as e,bp as o}from"./index-BPURObVq.esm.min.js";import{c as n}from"./declarationMapper-D_filC93.esm.min.js";import{A as t}from"./objectModelMapping-ClgDmo5Q.esm.min.js";import"./spotLight.pure-5s2DDDIt.esm.min.js";const r="KHR_node_hoverability",a="targetMeshPointerOver_",i="targetMeshPointerOut_";class s{constructor(e){this.name=r,this._loader=e,this.enabled=e.isExtensionUsed(r)}async onReady(){this._loader.gltf.nodes?.forEach(e=>{e.extensions?.KHR_node_hoverability&&!1===e.extensions?.KHR_node_hoverability.hoverable&&e._babylonTransformNode?.getChildMeshes().forEach(e=>{e.pointerOverDisableMeshTesting=!0})})}dispose(){this._loader=null}}let l=!1;function d(){l||(l=!0,n("event/onHoverIn",r,{blocks:["FlowGraphPointerOverEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>a+e}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshUnderPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,o,n,t,r,i,s){const l=r[r.length-1];l.config=l.config||{},l.config.glTF=s;const d=e.configuration?.nodeIndex?.value?.[0];if(void 0===d||"number"!=typeof d)throw new Error("nodeIndex not found in configuration");const u=a+d;return r[1].config.variable=u,i._userVariables[u]={className:"Mesh",id:s?.nodes?.[d]._babylonTransformNode?.id,uniqueId:s?.nodes?.[d]._babylonTransformNode?.uniqueId},r}}),n("event/onHoverOut",r,{blocks:["FlowGraphPointerOutEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>i+e}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshOutOfPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,o,n,t,r,a,s){const l=r[r.length-1];l.config=l.config||{},l.config.glTF=s;const d=e.configuration?.nodeIndex?.value?.[0];if(void 0===d||"number"!=typeof d)throw new Error("nodeIndex not found in configuration");const u=i+d;return r[1].config.variable=u,a._userVariables[u]={className:"Mesh",id:s?.nodes?.[d]._babylonTransformNode?.id,uniqueId:s?.nodes?.[d]._babylonTransformNode?.uniqueId},r}}),t("/nodes/{}/extensions/KHR_node_hoverability/hoverable",{get:e=>{const o=e._babylonTransformNode;return!o||void 0===o.pointerOverDisableMeshTesting||o.pointerOverDisableMeshTesting},set:(e,o)=>{o._primitiveBabylonMeshes?.forEach(o=>{o.pointerOverDisableMeshTesting=!e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"pointerOverDisableMeshTesting"],type:"boolean"}),e(r),o(r,!0,e=>new s(e)))}d();export{s as KHR_node_hoverability,d as RegisterKHR_node_hoverability};
//# sourceMappingURL=KHR_node_hoverability-BJOZdkGg.esm.min.js.map