From 3581033a3ba654489e575a953cef95773442937d Mon Sep 17 00:00:00 2001 From: "Egli Adrian (IT-SCI-API-PFI)" <adrian.egli@sbb.ch> Date: Thu, 25 Jul 2019 07:14:03 +0200 Subject: [PATCH] rendering prediction path and refactored layering --- flatland/utils/graphics_pil.py | 18 ++++++++++-------- flatland/utils/rendertools.py | 3 --- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/flatland/utils/graphics_pil.py b/flatland/utils/graphics_pil.py index 7408e76c..09dab97c 100644 --- a/flatland/utils/graphics_pil.py +++ b/flatland/utils/graphics_pil.py @@ -38,10 +38,11 @@ class PILGL(GraphicsLayer): window = tk.Tk() RAIL_LAYER = 0 - AGENT_LAYER = 1 - PREDICTION_PATH_LAYER = 2 - SELECTED_AGENT_LAYER = 3 - SELECTED_TARGET_LAYER = 4 + PREDICTION_PATH_LAYER = 1 + TARGET_LAYER = 2 + AGENT_LAYER = 3 + SELECTED_AGENT_LAYER = 4 + SELECTED_TARGET_LAYER = 5 def __init__(self, width, height, jupyter=False): self.yxBase = (0, 0) @@ -187,6 +188,7 @@ class PILGL(GraphicsLayer): def begin_frame(self): # Create a new agent layer self.create_layer(iLayer=PILGL.AGENT_LAYER, clear=True) + self.create_layer(iLayer=PILGL.PREDICTION_PATH_LAYER, clear=True) def show(self, block=False): img = self.alpha_composite_layers() @@ -263,6 +265,7 @@ class PILGL(GraphicsLayer): def create_layers(self, clear=True): self.create_layer(PILGL.RAIL_LAYER, clear=clear) # rail / background (scene) self.create_layer(PILGL.AGENT_LAYER, clear=clear) # agents + self.create_layer(PILGL.TARGET_LAYER, clear=clear) # agents self.create_layer(PILGL.PREDICTION_PATH_LAYER, clear=clear) # drawing layer for agent's prediction path self.create_layer(PILGL.SELECTED_AGENT_LAYER, clear=clear) # drawing layer for selected agent self.create_layer(PILGL.SELECTED_TARGET_LAYER, clear=clear) # drawing layer for selected agent's target @@ -492,9 +495,6 @@ class PILSVG(PILGL): return pil - def clear_set_predicion_path_layer(self): - self.clear_layer(PILGL.PREDICTION_PATH_LAYER, 0) - def set_predicion_path_at(self, row, col, binary_trans, agent_rail_color): colored_rail = self.recolor_image(self.pil_rail_org[binary_trans], [61, 61, 61], [agent_rail_color], @@ -505,7 +505,9 @@ class PILSVG(PILGL): if binary_trans in self.pil_rail: pil_track = self.pil_rail[binary_trans] if target is not None: - pil_track = Image.alpha_composite(pil_track, self.station_colors[target % len(self.station_colors)]) + target_img = self.station_colors[target % len(self.station_colors)] + target_img = Image.alpha_composite(pil_track, target_img) + self.draw_image_row_col(target_img, (row, col), layer=PILGL.TARGET_LAYER) if binary_trans == 0: if self.background_grid[col][row] <= 4: diff --git a/flatland/utils/rendertools.py b/flatland/utils/rendertools.py index 14c49add..984357a1 100644 --- a/flatland/utils/rendertools.py +++ b/flatland/utils/rendertools.py @@ -292,9 +292,6 @@ class RenderTool(object): """ rt = self.__class__ - if type(self.gl) is PILSVG: - self.gl.clear_set_predicion_path_layer() - for agent in agent_handles: color = self.gl.get_agent_color(agent) for visited_cell in prediction_dict[agent]: -- GitLab