# from path_finding import createGraph
from triangulation import triangulate_advanced
import numpy as np
import networkx as nx
from triangle_utils import triangle_center
from triangle_relation import printRels
from scenario_reader import loadScenario

# scenario_file = './scenarios/s3.json'
file_name = 's2p2'
scenario_width, scenario_height, immobile_objs, mobile_objs, manipulatable_obj, target_obj = loadScenario(
    './scenarios/' + file_name + '.json')
scenario = SG(scenario_width, scenario_height, immobile_objs, mobile_objs, manipulatable_obj, target_obj,
              showRender=False)
## get objects
game_objects = scenario.getGameObjects()
tri = []
graph, edges_index, edges_dirs, edges_by_tri, vertices_of_edges, edges_surface_dic, tri_by_surface, surface_rel_dic, tri_neighbor_by_edge, edges_by_object_id, objects_id_by_edge, edges_length, zones = triangulate_advanced(
    game_objects, scenario_width, scenario_height, tri)

plot.plot(plt.axes(), **(tri[0]))

################### Arrange graph according to the position of triangles #########

# triangles_by_vertices = tri["vertices"][tri["triangles"]]
pos = {}
for index, triangle in enumerate(zones):
    pos[index] = (triangle.centroid.x, triangle.centroid.y)

edge_text_labels = {}
edge_lists = []