import numpy as np import importlib.util from modules import shared def get_opt(key, default=False): try: return shared.opts.__getattr__(key) or default except Exception: return default def expand_polygon(points, distance): center = np.mean(points, axis=0) new_points = [] for point in points: vec = point - center vec = vec / np.linalg.norm(vec) new_points.append(point + vec * distance) return new_points def calculate_distance(p1, p2): x1, y1 = p1 x2, y2 = p2 return ((x1 - x2)**2 + (y1 - y2)**2)**0.5 def load_module_from_file(module_name, file_path): spec = importlib.util.spec_from_file_location(module_name, file_path) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module def index(list, element): if element not in list: return -1 return list.index(element) def removeEmptyStringValues(dct): return { k: v for k, v in dct.items() if v }