NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

mapViewLegendConst.py (5250B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\controls\mapViewLegendConst.py
      2 import math
      3 from carbonui.util.color import Color
      4 from localization import GetByLabel
      5 
      6 class _LegendDefinition(object):
      7 
      8     def __init__(self, label = None, has_settings = False):
      9         self.label = label
     10         self.has_settings = has_settings
     11 
     12 
     13 class AbsoluteLegendDefinition(_LegendDefinition):
     14 
     15     def __init__(self, label = None, has_settings = False, value_color_pairs = None):
     16         super(AbsoluteLegendDefinition, self).__init__(label, has_settings)
     17         self.value_color_pairs = value_color_pairs if value_color_pairs else []
     18 
     19     def add_entry(self, label, color):
     20         self.value_color_pairs.append((label, color))
     21 
     22     def add_gradient_entry(self, label, color_list):
     23         self.value_color_pairs.append((label, color_list))
     24 
     25 
     26 class HeatmapLegendDefinition(_LegendDefinition):
     27 
     28     def __init__(self, label = None, has_settings = False, abs_min_value = 0, abs_max_value = 100, min_value = 0, max_value = 100, color_range_id = 1):
     29         super(HeatmapLegendDefinition, self).__init__(label, has_settings)
     30         self.abs_min_value = abs_min_value
     31         self.abs_max_value = abs_max_value
     32         self.min_value = min_value
     33         self.max_value = max_value
     34         self.color_range_id = color_range_id
     35         self.color_range = get_heatmap_color_range_by_id(color_range_id)
     36 
     37 
     38 class HeatmapColorRange(object):
     39 
     40     def __init__(self, range, min_color = None, max_color = None):
     41         if min_color:
     42             self.min_color = min_color
     43         else:
     44             self.min_color = range[0][:3] + (0.3,)
     45         if max_color:
     46             self.max_color = max_color
     47         else:
     48             self.max_color = range[-1][:3] + (0.3,)
     49         self.range = range
     50 
     51 
     52 COLOR_RANGE_SUNSET = 1
     53 COLOR_RANGE_NEON = 2
     54 COLOR_RANGE_JOKER = 3
     55 COLOR_RANGE_DEUTER = 4
     56 COLOR_RANGE_PHOTON = 5
     57 COLOR_RANGE_VIRIDIS = 6
     58 HEATMAP_RANGE_BY_ID = {COLOR_RANGE_SUNSET: HeatmapColorRange([Color.HextoRGBA('#FFFFB837'), Color.HextoRGBA('#FFFF0000')], min_color=Color.HextoRGBA('#FF755419'), max_color=Color.HextoRGBA('#FF5C1112')),
     59  COLOR_RANGE_NEON: HeatmapColorRange([Color.HextoRGBA('#FFFF4BED'), Color.HextoRGBA('#FF7CA3F4'), Color.HextoRGBA('#FF0DFFEB')], min_color=Color.HextoRGBA('#FF5E2E70'), max_color=Color.HextoRGBA('#FF28605B')),
     60  COLOR_RANGE_JOKER: HeatmapColorRange([Color.HextoRGBA('#FF8A37FF'), Color.HextoRGBA('#FF27B982'), Color.HextoRGBA('#FF2EE960')], min_color=Color.HextoRGBA('#FF4f2787'), max_color=Color.HextoRGBA('#FF104C1F')),
     61  COLOR_RANGE_DEUTER: HeatmapColorRange([Color.HextoRGBA('#FF00B2FF'), Color.HextoRGBA('#FFFF0026')], min_color=Color.HextoRGBA('#FF0F3C4F'), max_color=Color.HextoRGBA('#FF5D0714')),
     62  COLOR_RANGE_PHOTON: HeatmapColorRange([Color.HextoRGBA('#1D3C50'), Color.HextoRGBA('#FF58A7BF'), Color.HextoRGBA('#FFFFFFFF')], min_color=Color.HextoRGBA('#FF7C7C7C'), max_color=Color.HextoRGBA('#FF1E343D')),
     63  COLOR_RANGE_VIRIDIS: HeatmapColorRange([Color.HextoRGBA('#FF006245'), Color.HextoRGBA('#FF6FB80D'), Color.HextoRGBA('#FFF8E41C')], min_color=Color.HextoRGBA('#FF15332A'), max_color=Color.HextoRGBA('#FF635E29'))}
     64 HEATMAP_NAMES_BY_ID = {COLOR_RANGE_SUNSET: 'UI/Map/MapPallet/settingColorRangeSunset',
     65  COLOR_RANGE_NEON: 'UI/Map/MapPallet/settingColorRangeNeon',
     66  COLOR_RANGE_JOKER: 'UI/Map/MapPallet/settingColorRangeJester',
     67  COLOR_RANGE_DEUTER: 'UI/Map/MapPallet/settingColorRangeDeuter',
     68  COLOR_RANGE_PHOTON: 'UI/Map/MapPallet/settingColorRangePhoton',
     69  COLOR_RANGE_VIRIDIS: 'UI/Map/MapPallet/settingColorRangeViridis'}
     70 
     71 def scaling_linear(value):
     72     return value
     73 
     74 
     75 def scaling_quad(value):
     76     return value * (2 - value)
     77 
     78 
     79 def scaling_sine(value):
     80     return math.sin(value * math.pi / 2)
     81 
     82 
     83 def scaling_logarithmic(value):
     84     if value == 1:
     85         return 1
     86     return 1 - 2 ** (-10 * value)
     87 
     88 
     89 def scaling_ease_in_exponential(value, base = 2):
     90     return (base ** value - 1) / (base - 1)
     91 
     92 
     93 SCALING_TYPE_LINEAR = 1
     94 SCALING_TYPE_LOGARITHMIC = 2
     95 SCALING_TYPE_EXPONENTIAL = 3
     96 SCALING_METHOD_BY_TYPE = {SCALING_TYPE_LINEAR: scaling_linear,
     97  SCALING_TYPE_LOGARITHMIC: scaling_logarithmic,
     98  SCALING_TYPE_EXPONENTIAL: scaling_ease_in_exponential}
     99 
    100 def get_scaling_method_by_type(scaling_type):
    101     return SCALING_METHOD_BY_TYPE.get(scaling_type, scaling_linear)
    102 
    103 
    104 def get_color_ranges():
    105     return HEATMAP_RANGE_BY_ID.keys()
    106 
    107 
    108 def get_heatmap_color_range_by_id(range_id):
    109     return HEATMAP_RANGE_BY_ID.get(range_id, HEATMAP_RANGE_BY_ID[COLOR_RANGE_SUNSET])
    110 
    111 
    112 def get_heatmap_color_range_name_by_id(range_id):
    113     return GetByLabel(HEATMAP_NAMES_BY_ID.get(range_id, HEATMAP_NAMES_BY_ID[COLOR_RANGE_SUNSET]))
    114 
    115 
    116 def get_filter_heatmap_color_range(filter_id, item_id, default = COLOR_RANGE_SUNSET):
    117     from eve.client.script.ui.shared.mapView.filters.mapFilterSettings import get_filter_setting
    118     color_range_id = get_filter_setting(filter_id, item_id, 'colorRange', default)
    119     return get_heatmap_color_range_by_id(color_range_id)
    120 
    121 
    122 def set_filter_heatmap_color_range(filter_id, item_id, range_id):
    123     from eve.client.script.ui.shared.mapView.filters.mapFilterSettings import set_filter_setting
    124     set_filter_setting(filter_id, item_id, 'colorRange', range_id)