public ThreeD negate() {
        switch (this) {
            case Zpos:
                return Zneg;
            case Zneg:
                return Zpos;
            case Ypos:
                return Yneg;
            case Yneg:
                return Ypos;
            case Xpos:
                return Xneg;
            case Xneg:
                return Xpos;
        }
        return null;
    }