@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
36 lines (32 loc) • 1.09 kB
text/typescript
import {ClonedStatesController} from './inputs/ClonedStatesController';
import {InputCloneMode} from '../../../../engine/poly/InputCloneMode';
import {BaseOperationContainer} from '../_Base';
import {NodeContext} from '../../../poly/NodeContext';
export class OperationInputsController<NC extends NodeContext> {
constructor(private operationContainer: BaseOperationContainer<NC>) {}
inputsCount() {
return this.operationContainer.inputsCount();
}
//
//
// CLONABLE STATES
//
//
private _clonedStatesController: ClonedStatesController<NC> | undefined;
initInputsClonedState(states: InputCloneMode | InputCloneMode[]) {
if (!this._clonedStatesController) {
this._clonedStatesController = new ClonedStatesController(this);
this._clonedStatesController.initInputsClonedState(states);
}
}
cloneRequired(index: number) {
const state = this._clonedStatesController?.clone_required_state(index);
if (state != null) {
return state;
}
return true;
}
override_cloned_state(state: boolean) {
this._clonedStatesController?.override_cloned_state(state);
}
}