Much faster version of ``pyny.Space.explode()`` method for 
        previously locked ``pyny.Space``.
        
        :param map_: the points, and the same order, that appear at 
            ``pyny.Space.get_map()``. There is no need for the index if 
            locked.
        :type map_: ndarray (shape=(N, 3))
        :returns: The polygons, the holes and the points.
        :rtype: list
        
        .. seealso:: 
            
            * :func:`get_seed` 
            * :func:`get_map` 
            * :func:`map2pyny`
            * :func:`map2seed`

def explode_map(self, map_):
        """
        Much faster version of ``pyny.Space.explode()`` method for 
        previously locked ``pyny.Space``.
        
        :param map_: the points, and the same order, that appear at 
            ``pyny.Space.get_map()``. There is no need for the index if 
            locked.
        :type map_: ndarray (shape=(N, 3))
        :returns: The polygons, the holes and the points.
        :rtype: list
        
        .. seealso:: 
            
            * :func:`get_seed` 
            * :func:`get_map` 
            * :func:`map2pyny`
            * :func:`map2seed`
            
        """        
        if self.explode_map_schedule is None:
            index = map_[0]
            points = map_[1]
            
            # points
            k = index[:, 1] == -1
            sop = points[k] # Set of points
            index = index[np.logical_not(k)]
            points = points[np.logical_not(k)]
            
            # new index
            index_bool = np.diff(index[:, 2]*1e12
                                +index[:, 1]*1e8 
                                +index[:, 2]*1e4).astype(bool)

            # Dissemination loop
            polygons = []
            holes = []
            dif = np.arange(index_bool.shape[0], dtype=int)[index_bool]+1
            dif = np.append(dif, index_bool.shape[0]+1)
            i = 0
            for j in dif:
                if index[i, 2] < 0: # hole
                    holes.append(points[i:j, :])
                if index[i, 2] >= 0: # polygon
                    polygons.append(points[i:j, :])
                i = j
            return [polygons, holes, sop]
        else:
            # Only points (without index) allowed
            if type(map_) == list:
                points = map_[1]
            else:
                points = map_
            ex = self.explode_map_schedule
            polygons = [ points[p ,:] for p in ex[0] ]
            holes = [ points[p ,:] for p in ex[1] ]
            sop = points[ex[2] ,:]
            return [polygons, holes, sop]