import { F as FlowGraphBlock } from './KHR_interactivity-VqtS29i9.esm.js';
import { R as RichTypeAny } from './declarationMapper-CZ6AxirO.esm.js';
import './index-Cl9U4nB-.esm.js';
import './objectModelMapping-ghOGfUOh.esm.js';

/**
 * a glTF-based FlowGraph block that provides arrays with babylon object, based on the glTF tree
 * Can be used, for example, to get animation index from a glTF animation
 */
class FlowGraphGLTFDataProvider extends FlowGraphBlock {
    constructor(config) {
        super(config);
        const glTF = config.glTF;
        // glTF may be undefined when the block is re-created from serialized data
        // (e.g. in the Flow Graph Editor) where the live glTF parse tree is unavailable.
        const animationGroups = glTF?.animations?.map((a) => a._babylonAnimationGroup) || [];
        this.animationGroups = this.registerDataOutput("animationGroups", RichTypeAny, animationGroups);
        const nodes = glTF?.nodes?.map((n) => n._babylonTransformNode) || [];
        this.nodes = this.registerDataOutput("nodes", RichTypeAny, nodes);
    }
    getClassName() {
        return "FlowGraphGLTFDataProvider";
    }
}

export { FlowGraphGLTFDataProvider };
//# sourceMappingURL=flowGraphGLTFDataProvider-D3dllj7g.esm.js.map
