private void drawRobotArm() {
        Mass shoulder = null;
        Mass elbow = null;
        Mass hand = null;

        for (Mass mass : networkGraph.getMasses()) {
            switch (mass.getType()) {
                case SHOULDER:
                    shoulder = mass;
                    break;
                case ELBOW:
                    elbow = mass;
                    break;
                case HAND:
                    hand = mass;
            }
        }

        g2.setColor(ARM_COLOR);
        g2.setStroke(ARM_STROKE);

        if (shoulder != null && elbow != null) {
            int shoulderX = (int) (xScale * shoulder.getX());
            int shoulderY = (int) (yScale * shoulder.getY() * MASS_AND_SPRING_Y_SCALING);
            int elbowX = (int) (xScale * elbow.getX());
            int elbowY = (int) (yScale * elbow.getY() * MASS_AND_SPRING_Y_SCALING);
            g2.drawLine(shoulderX, shoulderY, elbowX, elbowY);
        }

        if (elbow != null && hand != null) {
            int elbowX = (int) (xScale * elbow.getX());
            int elbowY = (int) (yScale * elbow.getY() * MASS_AND_SPRING_Y_SCALING);
            int handX = (int) (xScale * hand.getX());
            int handY = (int) (yScale * hand.getY() * MASS_AND_SPRING_Y_SCALING);
            g2.drawLine(elbowX, elbowY, handX, handY);
        }
    }