public void setPoints() {
        super.setPoints();
        if (dn > 150 && this == sim.getDragElm()) {
            setSize(2);
        }
        int hs = gheight;
        int i;
        ww = gwidth2; // was 24
        if (ww > dn / 2) {
            ww = (int) (dn / 2);
        }
        if (isInverting() && ww + 8 > dn / 2) {
            ww = (int) (dn / 2 - 8);
        }
        calcLeads(ww * 2);
        inPosts = new Point[inputCount];
        inGates = new Point[inputCount];
        allocNodes();
        int i0 = -inputCount / 2;
        for (i = 0; i != inputCount; i++, i0++) {
            if (i0 == 0 && (inputCount & 1) == 0) {
                i0++;
            }
            inPosts[i] = interpPoint(point1, point2, 0, hs * i0);
            inGates[i] = interpPoint(lead1, lead2, 0, hs * i0);
            volts[i] = (lastOutput ^ isInverting()) ? 5 : 0;
        }
        hs2 = gwidth * (inputCount / 2 + 1);
        setBbox(point1, point2, hs2);
    }