UNPKG

@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) 2.4 kB
import{bo as e,bp as o}from"./index-OM-TXt9s.esm.min.js";import{c as n}from"./declarationMapper-sl3auZpG.esm.min.js";import{A as t}from"./objectModelMapping-DA3c5cv8.esm.min.js";import"./spotLight.pure-guqQj5Iw.esm.min.js";const i="KHR_node_selectability";class a{constructor(e){this.name=i,this._loader=e,this.enabled=e.isExtensionUsed(i)}async onReady(){this._loader.gltf.nodes?.forEach(e=>{e.extensions?.KHR_node_selectability&&!1===e.extensions?.KHR_node_selectability.selectable&&e._babylonTransformNode?.getChildMeshes().forEach(e=>{e.isPickable=!1})})}dispose(){this._loader=null}}let s=!1;function l(){s||(s=!0,n("event/onSelect",i,{blocks:["FlowGraphMeshPickEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>"pickedMesh_"+e}},outputs:{values:{selectedNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},selectedNode:{name:"pickedMesh",toBlock:"FlowGraphMeshPickEventBlock"},controllerIndex:{name:"pointerId"},selectionPoint:{name:"pickedPoint"},selectionRayOrigin:{name:"pickOrigin"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"asset",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"pickedMesh",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,o,n,t,i,a,s){const l=i[i.length-1];l.config=l.config||{},l.config.glTF=s;const r=e.configuration?.nodeIndex?.value?.[0];if(void 0===r||"number"!=typeof r)throw new Error("nodeIndex not found in configuration");const c="pickedMesh_"+r;return i[1].config.variable=c,a._userVariables[c]={className:"Mesh",id:s?.nodes?.[r]._babylonTransformNode?.id,uniqueId:s?.nodes?.[r]._babylonTransformNode?.uniqueId},i}}),t("/nodes/{}/extensions/KHR_node_selectability/selectable",{get:e=>{const o=e._babylonTransformNode;return!o||void 0===o.isPickable||o.isPickable},set:(e,o)=>{o._primitiveBabylonMeshes?.forEach(o=>{o.isPickable=e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"isPickable"],type:"boolean"}),e(i),o(i,!0,e=>new a(e)))}l();export{a as KHR_node_selectability,l as RegisterKHR_node_selectability}; //# sourceMappingURL=KHR_node_selectability-BEWJWavb.esm.min.js.map