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) 1.94 kB
import{f as t}from"./KHR_interactivity-D4lwBSW9.esm.min.js";import{j as i,F as e}from"./declarationMapper-D_filC93.esm.min.js";import{u as s}from"./index-BPURObVq.esm.min.js";import"./objectModelMapping-ClgDmo5Q.esm.min.js";import"./spotLight.pure-5s2DDDIt.esm.min.js";class n extends t{constructor(t){super(t),this.config=t,this.outputSignals=[],this.reset=this._registerSignalInput("reset"),this.lastIndex=this.registerDataOutput("lastIndex",i,new e(-1)),this.setNumberOfOutputSignals(t?.outputSignalCount)}_getNextIndex(t){if(t.includes(!1)||this.config.isLoop&&t.fill(!1),this.config.isRandom){const i=t.map((t,i)=>t?-1:i).filter(t=>-1!==t);return i.length?i[Math.floor(Math.random()*i.length)]:-1}return t.indexOf(!1)}setNumberOfOutputSignals(t=1){for(;this.outputSignals.length>t;){const t=this.outputSignals.pop();t&&(t.disconnectFromAll(),this._unregisterSignalOutput(t.name))}for(;this.outputSignals.length<t;)this.outputSignals.push(this._registerSignalOutput(`out_${this.outputSignals.length}`))}_execute(t,i){if(t._hasExecutionVariable(this,"indexesUsed")||t._setExecutionVariable(this,"indexesUsed",this.outputSignals.map(()=>!1)),i===this.reset)return t._deleteExecutionVariable(this,"indexesUsed"),void this.lastIndex.setValue(new e(-1),t);const s=t._getExecutionVariable(this,"indexesUsed",[]),n=this._getNextIndex(s);n>-1&&(this.lastIndex.setValue(new e(n),t),s[n]=!0,t._setExecutionVariable(this,"indexesUsed",s),this.outputSignals[n]._activateSignal(t))}getClassName(){return"FlowGraphMultiGateBlock"}serialize(t){super.serialize(t),t.config.outputSignalCount=this.config.outputSignalCount,t.config.isRandom=this.config.isRandom,t.config.loop=this.config.isLoop,t.config.startIndex=this.config.startIndex}}let o=!1;function a(){o||(o=!0,s("FlowGraphMultiGateBlock",n))}a();export{n as FlowGraphMultiGateBlock,a as RegisterFlowGraphMultiGateBlock}; //# sourceMappingURL=flowGraphMultiGateBlock-D612jcgP.esm.min.js.map