def directly_covered_by_adding_face(last_covered_intervals, face, q, f):
    """
    Computes incrementally new covered_intervals by adding a new face.
    Consider only directly covered and symmetry reflection regarding f.

    EXAMPLES::

        sage: from cutgeneratingfunctionology.igp import *
        sage: last_covered_intervals = [set([0,2]), set([3,4])]
        sage: face = (1, 1, 1)
        sage: directly_covered_by_adding_face(last_covered_intervals, face, 5, 3)
        [{0, 2}, {1, 3, 4}]
    """
    covered_intervals = []
    x, y, w = face
    z = (x + y + w) % q
    newly_covered = set([x, y, z, (f - x - 1) % q, (f - y - 1) % q, (f - z -
        1) % q])
    for component in last_covered_intervals:
        if component & newly_covered:
            newly_covered.update(component)
        else:
            covered_intervals.append(component)
    covered_intervals.append(newly_covered)
    return covered_intervals
