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.82 kB
import{R as t}from"./index-Bw2N6w1y.esm.min.js";import{k as i}from"./KHR_interactivity-CKt1TdMW.esm.min.js";import{k as e,b as s}from"./declarationMapper-13w1YGqM.esm.min.js";import"./objectModelMapping-DX92iJ8M.esm.min.js";class n extends i{constructor(t){super(t),this.config=t,this.outputSignals=[],this.reset=this._registerSignalInput("reset"),this.lastIndex=this.registerDataOutput("lastIndex",e,new s(-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 s(-1),t);const e=t._getExecutionVariable(this,"indexesUsed",[]),n=this._getNextIndex(e);n>-1&&(this.lastIndex.setValue(new s(n),t),e[n]=!0,t._setExecutionVariable(this,"indexesUsed",e),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}}t("FlowGraphMultiGateBlock",n);export{n as FlowGraphMultiGateBlock}; //# sourceMappingURL=flowGraphMultiGateBlock-DNPb_XUL.esm.min.js.map