# coding: utf-8

def get_settings() -> dict[str: int]:
    return {"Inner circle threshold": 120,
            "Outer circle threshold": 20,
            "Findings petal threshold": 120,
            "Noise threshold": 80}


def get_settings_order() -> tuple[str, ...]:
    # linked with GDV_feature_shows.process.update_feature_extractor_with_settings
    # This cannot be changed, only appending
    return ("Inner circle threshold", "Outer circle threshold", "Findings petal threshold",
            "Noise threshold")


def get_visualization() -> tuple[str, ...]:
    return "General", "Circles", "Petals 1", "Petals 2", "Noised petals", "Noises", "Extra", "FFT"


def get_feature_names() -> dict[int: str]:
    return {
        -1: "Mass_center",
        -2: "Inner_circle_center",
        -3: "Outer_circle_center",
        -4: "Pentals",
        -5: "Pentals_with_noises",
        -6: "Projections l",
        -7: "Projections w",
        -8: "petal lens",
        -9: "petal widths",
        -10: "petal peak points",
        -11: "petal d=[point: l projections]",
        -12: "central petal segment",
        -13: "Image processor version",
        # General
        1: "Количество пикселей",
        2: "Количество пикселей без \"шума\"",
        3: "Средняя яркость изображения",
        4: "Стандартное отклонение яркости",
        5: "Разность между пик и минимум",
        # Circles
        7: "Радиус внутренней окружности",
        8: "Радиус внешней окружности",
        9: "Разница между центром масс и центром внутренней окружности",
        10: "Разница между центром внутренней и внешней окружностей",
        # Petals 1
        11: "Количество лепестков",
        12: "Средний размер лепестка (M)",
        13: "Разброс размеров лепестка (S)",
        14: "Средняя длина лепестка (M)",
        15: "Разброс длин лепестков (S)",
        16: "Средняя ширина лепестка (M)",
        17: "Разброс ширины лепестков (S)",
        18: "Размер самого большого лепестка",
        19: "Максимальная длина лепестка",
        20: "Максимальная ширина лепестка",
        # Petals 2
        21: "Среднее расстояние между лепестками (M)",
        22: "Разброс расстояний между лепестками (S)",
        23: "Средний угол между лепестками (M)",
        24: "Разброс углов между лепестками (S)",
        25: "Самое большое расстояние между лепестками",
        26: "Самый большой угол между лепестками",
        27: "Размер \"центрального лепестка\"",
        # Noised petals
        28: "Средний размер лепестка (M) (вместе с шумом)",
        29: "Разброс размеров лепестка (S) (вместе с шумом)",
        30: "Средняя длина лепестка (M) (вместе с шумом)",
        31: "Разброс длин лепестков (S) (вместе с шумом)",
        32: "Средняя ширина лепестка (M) (вместе с шумом)",
        33: "Разброс ширины лепестков (S) (вместе с шумом)",
        34: "Размер самого большого лепестка (вместе с шумом)",
        35: "Максимальная длина лепестка (вместе с шумом)",
        36: "Максимальная ширина лепестка (вместе с шумом)",
        # Noises
        37: "Общая зашумлённость (косинусное преобразование)",
        38: "Шум внутри окружности",
        45: "Взвешанный шум внутри окружности",
        39: "Средний шум вокруг лепестков",
        44: "Распределение шума вокруг лепестков",
        # Extra
        40: "Количество \"островков\" у лепестков",
        41: "Соотношение площади изображения (пиксели) к площади внешней окружности с шумом",
        42: "Соотношение площади изображения (пиксели) к площади внешней окружности без шума",
        43: "Среднее распределение интенсивности вдоль вектора от центра до лепестка",
    }
