Coordinate drawOrbitalSubject(final Subject subject, final Coordinate parentPos, Coordinate relPos) {

        if (subject.meta.type == SubjectType.PLANET) {
            drawOrbit(subject, parentPos);
        } else if (subject == Main.SELECTED_SUBJECT) {
            drawOrbit(subject, parentPos);
        }

        Coordinate sgc = new Coordinate(parentPos.x - relPos.x, parentPos.y - relPos.y);


        if (subject instanceof Ship) {
            drawShip((Ship) subject, sgc);
            return sgc;
        }


        final double sSize = subject.size * sizeScale * subject.meta.scale;
        final int x = (int) (sgc.x - sSize);
        final int y = (int) (sgc.y - sSize);
        double diameter = 2 * sSize;

        if (diameter < 0.005) {

            if (subject == Main.SELECTED_SUBJECT) {
                drawSelected(x, y, diameter, diameter);
            }

            return sgc;
        }

        if (diameter < 1) {
            diameter = 1;
        }

//        if (subject == Main.SELECTED_SUBJECT) {
//            drawSelected(x, y, diameter, diameter);
//        }

        g.setStroke(new BasicStroke());
        g.setColor(subject.meta.color);
        g.fillOval(x, y, (int) diameter, (int) diameter);

        return sgc;
    }