def name_from_hcs_orient_vcs(hcs, orient=None, vcs=None):
    """
    Construct a coordinate system name from an hcs, orientation and vcs.  If orient or vcs are None or
    empty, the name will not include these parts.

    :param hcs:     horizontal coordinate system string
    :param orient:  orientation string
    :param vcs:     vertical coordinate system string
    :returns: "hcs <orient> [vcs]"

    .. versionadded:: 9.2
    """
    if orient:
        orient = ' <' + orient + '>'
    else:
        orient = ''
    if vcs:
        vcs = ' [' + vcs + ']'
    else:
        vcs = ''
    return hcs + orient + vcs
