
OBJECT_DICT = {'Apple_Fruit_obj': 'Apple_Fruit_obj_POV_geom',
 'Apricot_obj': 'Apricot_obj_POV_geom',
 'BAHRAIN': 'BAHRAIN_POV_geom',
 'Beetle': 'Beetle_POV_geom',
 'CGTG_L': 'CGTG_L_POV_geom',
 'DTUG_L': 'DTUG_L_POV_geom',
 'ELEPHANT_M': 'ELEPHANT_M_POV_geom',
 'GORILLA': 'GORILLA_POV_geom',
 'LIONESS': 'LIONESS_POV_geom',
 'MQUEEN_L': 'MQUEEN_L_POV_geom',
 'Peach_obj': 'Peach_obj_POV_geom',
 'Pear_obj': 'Pear_obj_POV_geom',
 'SISTER_L': 'SISTER_L_POV_geom',
 'Strawberry_obj': 'Strawberry_obj_POV_geom',
 'TURTLE_L': 'TURTLE_L_POV_geom',
 '_001': '001_POV_geom',
 '_004': '004_POV_geom',
 '_008': '008_POV_geom',
 '_010': '010_POV_geom',
 '_011': '011_POV_geom',
 '_014': '014_POV_geom',
 '_01_Airliner_2jetEngines': '01_Airliner_2jetEngines_POV_geom',
 '_031': '031_POV_geom',
 '_033': '033_POV_geom',
 '_05_future': '05_future_POV_geom',
 '_08': '08_POV_geom',
 '_10': '10_POV_geom',
 '_11': '11_POV_geom',
 '_12': '12_POV_geom',
 '_18': '18_POV_geom',
 '_19_flyingBoat': '19_flyingBoat_POV_geom',
 '_37': '37_POV_geom',
 '_38': '38_POV_geom',
 '_44': '44_POV_geom',
 'alfa155': 'alfa155_POV_geom',
 'astra': 'astra_POV_geom',
 'bear': 'bear_POV_geom',
 'blCow': 'blCow_POV_geom',
 'bmw325': 'bmw325_POV_geom',
 'bora_a': 'bora_a_POV_geom',
 'breed_pug': 'breed_pug_POV_geom',
 'celica': 'celica_POV_geom',
 'clio': 'clio_POV_geom',
 'cruiser': 'cruiser_POV_geom',
 'f16': 'f16_POV_geom',
 'face0001': 'face0001',
 'face0002': 'face0002',
 'face0003': 'face0003',
 'face0004': 'face0004',
 'face0005': 'face0005',
 'face0006': 'face0006',
 'face0007': 'face0007',
 'face0008': 'face0008',
 'hedgehog': 'hedgehog_POV_geom',
 'junkers88': 'junkers88_POV_geom',
 'mig29': 'mig29_POV_geom',
 'motoryacht': 'motoryacht_POV_geom',
 'raspberry_obj': 'raspberry_obj_POV_geom',
 'rdbarren': 'rdbarren_POV_geom',
 'sopwith': 'sopwith_POV_geom',
 'support': 'support_POV_geom',
 'walnut_obj': 'walnut_obj_POV_geom',
 'watermelon_obj': 'watermelon_obj_POV_geom',
 'z3': 'z3_POV_geom'}

REVERSED_OBJECT_DICT = {v: k for k, v in OBJECT_DICT.items()}

CANONICAL_ANGLES = {('clio_POV_geom', 'z3_POV_geom', 'celica_POV_geom', 'bmw325_POV_geom', 'astra_POV_geom', 'alfa155_POV_geom', 'Beetle_POV_geom'): {'rxz': 0,
                         'rxy': -180,
                         'ryz': 0},
                    ('watermelon_obj_POV_geom', 'walnut_obj_POV_geom'): {'rxz': -90,
                         'rxy': 0,
                         'ryz': 0},
                    ('support_POV_geom', 'motoryacht_POV_geom', 'cruiser_POV_geom', 'rdbarren_POV_geom', 'junkers88_POV_geom', 'mig29_POV_geom', 'sopwith_POV_geom', 'f16_POV_geom', 'breed_pug_POV_geom', 'bora_a_POV_geom', 'blCow_POV_geom', 'bear_POV_geom', 'hedgehog_POV_geom'): {'rxz': 0, 'rxy': -90, 'ryz': 0},
                    ('raspberry_obj_POV_geom',): {'rxz': -90,
                                         'rxy': 0,
                                         'ryz': 180},
                    ('face0006', 'face0005', 'face0003', 'face0002', 'face0001'): {'rxz': 0, 'rxy': 90, 'ryz': 20},
                    ('19_flyingBoat_POV_geom', '05_future_POV_geom', '01_Airliner_2jetEngines_POV_geom', 'TURTLE_L_POV_geom', 'SISTER_L_POV_geom', 'MQUEEN_L_POV_geom', 'GORILLA_POV_geom', 'ELEPHANT_M_POV_geom', 'DTUG_L_POV_geom', 'CGTG_L_POV_geom', 'BAHRAIN_POV_geom'): {'rxz': -90,'rxy': -90, 'ryz': 0},
                    ('Strawberry_obj_POV_geom', 'Pear_obj_POV_geom'): {'rxz': -90, 'rxy': 180, 'ryz': 0},
                    ('Peach_obj_POV_geom', 'Apricot_obj_POV_geom', 'Apple_Fruit_obj_POV_geom'): {'rxz': -90, 'rxy': -65, 'ryz': 0},
                    ('LIONESS_POV_geom',): {'rxz': 0, 'rxy': 90, 'ryz': 0}
                    }

CANONICAL_SIZES = {'Apple_Fruit_obj': 98,
 'Apricot_obj': 101,
 'BAHRAIN': 102,
 'Beetle': 101,
 'CGTG_L': 101,
 'DTUG_L': 101,
 'ELEPHANT_M': 101,
 'GORILLA': 103,
 'LIONESS': 101,
 'MQUEEN_L': 100,
 'Peach_obj': 102,
 'Pear_obj': 101,
 'SISTER_L': 102,
 'Strawberry_obj': 102,
 'TURTLE_L': 102,
 '_001': 101,
 '_004': 101,
 '_008': 102,
 '_010': 101,
 '_011': 101,
 '_014': 102,
 '_01_Airliner_2jetEngines': 101,
 '_031': 101,
 '_033': 101,
 '_05_future': 74,
 '_08': 103,
 '_10': 102,
 '_11': 101,
 '_12': 103,
 '_18': 103,
 '_19_flyingBoat': 101,
 '_37': 102,
 '_38': 100,
 '_44': 101,
 'alfa155': 101,
 'astra': 101,
 'bear': 102,
 'blCow': 101,
 'bmw325': 101,
 'bora_a': 101,
 'breed_pug': 102,
 'celica': 101,
 'clio': 101,
 'cruiser': 101,
 'f16': 98,
 'face0001': 97,
 'face0002': 96,
 'face0003': 96,
 'face0004': 102,
 'face0005': 96,
 'face0006': 97,
 'face0007': 102,
 'face0008': 102,
 'hedgehog': 102,
 'junkers88': 78,
 'mig29': 95,
 'motoryacht': 101,
 'raspberry_obj': 101,
 'rdbarren': 79,
 'sopwith': 70,
 'support': 101,
 'walnut_obj': 101,
 'watermelon_obj': 101,
 'z3': 102}


def get_canonical_angle_hvm(objn):
    canonkeys = CANONICAL_ANGLES.keys()
    angles = [CANONICAL_ANGLES[cobj] for cobj in canonkeys if objn in cobj]
    if len(angles) == 0:
        return {'rxy':0, 'ryz':0, 'rxz':0}
    else:
        return angles[0]
    
def get_obj_name_hvm(obj_oi):
    return [OBJECT_DICT[objn] for objn in obj_oi]
