import math
import numpy as np
import json

def bbox_2d(data_sample):

    center = data_sample['bbox']['center']
    size = data_sample['bbox']['size']
    bbox_res = []
    top_left_x, top_left_y = center[0] - (size[0] / 2), center[1] - (size[1] / 2)
    bbox_res.append(top_left_x)
    bbox_res.append(top_left_y)

    bottom_right_x, bottom_right_y = center[0] + (size[0] / 2), center[1] + (size[1] / 2)
    bbox_res.append(bottom_right_x)
    bbox_res.append(bottom_right_y)

    return bbox_res


# def generate_2d_bbox(data_name, Nb_camera, Nb_world, list_categories, occ_target):

#     cont1, cont2, cont3 = 0, 0, 0
#     num_arr = 0


#     for i in range(1, Nb_world + 1): # worlds

#         catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id = compute_categories_id(data_name, i)
        
#         for j in range(1, Nb_camera+1): # cameras
#             p = ((i-1)*Nb_camera) + j

#             catergories_occ_array = compute_id_good_occ(data_name, p, catergories_instance_array_id_to_cat, catergories_instance_array_cat_to_id, occ_target)
            
#             with open(f"{data_name}/Bbox_2d/{p}.json", 'r') as f:
#                 data_Bbox_2d = json.load(f)

#             for k in range(len(data_Bbox_2d)):

#                 for categories in list_categories:
                    
#                     if len(catergories_occ_array[categories]) == 1 and data_Bbox_2d[k]['id'] == catergories_occ_array[categories][0]:

#                         cont1 += 1
#                         bbox = bbox_2d(data_Bbox_2d[k])
#                         np.savetxt(f'{data_name}/Generated/Bbox/{categories}/{p}.txt', np.array(bbox).reshape((1, 4)))  # save
#                     else:
#                         continue
#     print(cont1, cont2, cont3)