static buildFamily(minSize, maxSize, gateBuildFunc) {
        let gates = [];
        for (let span = minSize; span <= maxSize; span++) {
            let builder = new GateBuilder();
            builder.setHeight(span);
            gateBuildFunc(span, builder);
            builder.gate.gateFamily = gates;
            gates.push(builder.gate);
        }

        let ofSize = h => {
            for (let g of gates) {
                if (g.height === h) {
                    return g;
                }
            }
            return undefined;
        };

        return {all: gates, ofSize};
    }
Creates size-variants of a gate that can be resized between.
@param {!int} minSize
@param {!int} maxSize
@param {!function(span: !int, builder: !GateBuilder)} gateBuildFunc
@returns {!{all: !Array.<!Gate>, ofSize: !function(!int) : !Gate}}