valueFrom() {
        const result = {};
        this.context.programInfo.inputNames.forEach((name, i) => {
            const layout = this.context.inputTextureLayouts[i];
            const shape = layout.unpackedShape.length > 0 ? layout.unpackedShape : layout.shape;
            const rank = shape.length;
            let funcName = `_${name}`;
            result[funcName] = new glsl_definitions_1.GlslLibRoutine(this.getValueFromSingle(name, rank, layout.width, layout.height, false), [`shapeUtils.indicesToOffset${funcName}`, 'coordinates.offsetToCoords', 'fragcolor.getColorAsFloat']);
            funcName = funcName + '_T';
            result[funcName] = new glsl_definitions_1.GlslLibRoutine(this.getValueFromSingle(name, rank, layout.width, layout.height, true), [`shapeUtils.indicesToOffset${funcName}`, 'coordinates.offsetToCoords', 'fragcolor.getColorAsFloat']);
        });
        return result;
    }
/**
     * These are value getter functions generated for each input
     * Each function is hardwired to the name and dimensions of the input
     * An '_T' variation is also produced which accesses values as if the
     * input was transposed
     */
These are value getter functions generated for each input
Each function is hardwired to the name and dimensions of the input
An '_T' variation is also produced which accesses values as if the
input was transposed
These are value getter functions generated for each input Each function is hardwired to the name and dimensions of the input An ' _T ' variation is also produced which accesses values as if the input was transposed
valueFrom() {
        const result = {};
        this.context.programInfo.inputNames.forEach((name, i) => {
            const layout = this.context.inputTextureLayouts[i];
            const shape = layout.unpackedShape.length > 0 ? layout.unpackedShape : layout.shape;
            const rank = shape.length;
            let funcName = `_${name}`;
            result[funcName] = new glsl_definitions_1.GlslLibRoutine(this.getValueFromSingle(name, rank, layout.width, layout.height, false), [`shapeUtils.indicesToOffset${funcName}`, 'coordinates.offsetToCoords', 'fragcolor.getColorAsFloat']);
            funcName = funcName + '_T';
            result[funcName] = new glsl_definitions_1.GlslLibRoutine(this.getValueFromSingle(name, rank, layout.width, layout.height, true), [`shapeUtils.indicesToOffset${funcName}`, 'coordinates.offsetToCoords', 'fragcolor.getColorAsFloat']);
        });
        return result;
    }
valueFrom ( ) { const result = { } ; this . context . programInfo . inputNames . forEach ( ( name , i ) => { const layout = this . context . inputTextureLayouts [ i ] ; const shape = layout . unpackedShape . length > 0 ? layout . unpackedShape : layout . shape ; const rank = shape . length ; let funcName = ` ${ name } ` ; result [ funcName ] = new glsl_definitions_1 . GlslLibRoutine ( this . getValueFromSingle ( name , rank , layout . width , layout . height , false ) , [ ` ${ funcName } ` , 'coordinates.offsetToCoords' , 'fragcolor.getColorAsFloat' ] ) ; funcName = funcName + '_T' ; result [ funcName ] = new glsl_definitions_1 . GlslLibRoutine ( this . getValueFromSingle ( name , rank , layout . width , layout . height , true ) , [ ` ${ funcName } ` , 'coordinates.offsetToCoords' , 'fragcolor.getColorAsFloat' ] ) ; } ) ; return result ; }
These are value getter functions generated for each input
 Each function is hardwired to the name and dimensions of the input
 An '_T' variation is also produced which accesses values as if the
 input was transposed
These are value getter functions generated for each input Each function is hardwired to the name and dimensions of the input An ' _T ' variation is also produced which accesses values as if the input was transposed