def METHOD_NAME(inurbs, verbose=False):
    """
    Create :class:`IGDomain <sfepy.discrete.iga.domain.IGDomain>` data from a
    given igakit NURBS object.
    Parameters
    ----------
    inurbs : igakit.nurbs.NURBS instance
        The igakit NURBS object.
    Returns
    -------
    nurbs : NurbsPatch instance
        The NURBS data. The igakit NURBS object is stored as `nurbs` attribute.
    bmesh : Struct instance
        The Bezier mesh data.
    regions : dict
        The patch surface regions.
    """
    # Compute Bezier extraction data.
    output('computing Bezier mesh...', verbose=verbose)
    cs = iga.compute_bezier_extraction(inurbs.knots, inurbs.degree)
    n_els = [len(ii) for ii in cs]
    conn, bconn = iga.create_connectivity(n_els, inurbs.knots, inurbs.degree)
    ccs = iga.combine_bezier_extraction(cs)
    dim = len(inurbs.shape)
    cps = inurbs.points[..., :dim].copy()
    cps = cps.reshape((-1, dim))
    bcps, bweights = iga.compute_bezier_control(cps, inurbs.weights.ravel(),
                                                ccs, conn, bconn)
    nurbs = NurbsPatch(inurbs.knots, inurbs.degree, cps,
                       inurbs.weights.ravel(), cs, conn)
    nurbs.nurbs = inurbs
    bmesh = Struct(name='bmesh', cps=bcps, weights=bweights, conn=bconn)
    output('...done', verbose=verbose)
    output('defining regions...', verbose=verbose)
    regions = iga.get_patch_box_regions(n_els, inurbs.degree)
    output('...done', verbose=verbose)
    return nurbs, bmesh, regions