public Compass getOctant() {
        if (isOrigin()) return Compass.CENTER;
        double angle = rep.arg();
        if (angle < OCT1) return Compass.W;
        if (angle < OCT2) return Compass.SW;
        if (angle < OCT3) return Compass.S;
        if (angle < OCT4) return Compass.SE;
        if (angle < OCT5) return Compass.E;
        if (angle < OCT6) return Compass.NE;
        if (angle < OCT7) return Compass.N;
        if (angle < OCT8) return Compass.NW;
        return Compass.W;
    }