# Path: geomdl/_utilities.py
# def export(fn):
#     """ Export decorator
# 
#     Please refer to the following SO article for details: https://stackoverflow.com/a/35710527
#     """
#     mod = sys.modules[fn.__module__]
#     if hasattr(mod, '__all__'):
#         mod.__all__.append(fn.__name__)
#     else:
#         mod.__all__ = [fn.__name__]
#     return fn


import random
import warnings
from ._utilities import export
        if not uv_list:
            return True

        # Check the input point or its surroundings are close to the existing ones
        for uv in uv_list:
            u = to_be_checked_uv[0]
            v = to_be_checked_uv[1]
            check_list = []
            for ur in range(-(base_extent + 1 + padding), base_extent + 2 + padding):
                for vr in range(-(base_extent + 1 + padding), base_extent + 2 + padding):
                    check_list.append([u + ur, v + vr])
            for check in check_list:
                if abs(uv[0] - check[0]) < self._delta and abs(uv[1] - check[1]) < self._delta:
                    return False

        # Otherwise, return true
        return True

    def _create_bump(self, u, v, jump, height):
        # Find corner
        start_u = u - jump
        stop_u = u + jump + 1
        start_v = v - jump
        stop_v = v + jump + 1

        for i in range(start_u, stop_u):
            for j in range(start_v, stop_v):
                    self._grid_points[i][j][2] = height



# Path: geomdl/_utilities.py
# def export(fn):
#     """ Export decorator
# 
#     Please refer to the following SO article for details: https://stackoverflow.com/a/35710527
#     """
#     mod = sys.modules[fn.__module__]
#     if hasattr(mod, '__all__'):
#         mod.__all__.append(fn.__name__)
#     else:
#         mod.__all__ = [fn.__name__]
#     return fn


# Path: geomdl/CPGen.py
import random
import warnings
from ._utilities import export

        if not uv_list:
            return True

        # Check the input point or its surroundings are close to the existing ones
        for uv in uv_list:
            u = to_be_checked_uv[0]
            v = to_be_checked_uv[1]
            check_list = []
            for ur in range(-(base_extent + 1 + padding), base_extent + 2 + padding):
                for vr in range(-(base_extent + 1 + padding), base_extent + 2 + padding):
                    check_list.append([u + ur, v + vr])
            for check in check_list:
                if abs(uv[0] - check[0]) < self._delta and abs(uv[1] - check[1]) < self._delta:
                    return False

        # Otherwise, return true
        return True

    def _create_bump(self, u, v, jump, height):
        # Find corner
        start_u = u - jump
        stop_u = u + jump + 1
        start_v = v - jump
        stop_v = v + jump + 1

        for i in range(start_u, stop_u):
            for j in range(start_v, stop_v):
                    self._grid_points[i][j][2] = height



@export