class_docstr: Rendering class for the 2D cutting env.
  
  The ``Cutting2DRenderer`` will show the selected piece (the maze_action) on the left,
  plus the current state of the inventory on the right
class_docstr_tok: ["Rendering","class","for","the","2D","cutting","env",".","The","``","Cutting2DRenderer","``","will","show","the","selected","piece","(","the","maze_action",")","on","the","left",",","plus","the","current","state","of","the","inventory","on","the","right"]
code: def _plot_maze_action(
      self,
      maze_action: Cutting2DMazeAction,
      title: str,
      maze_state: Cutting2DMazeState,
  ):
      piece_to_cut = maze_state.inventory[maze_action.piece_id]
      if maze_action.rotate:
          piece_to_cut = piece_to_cut[::-1]
  
      plt.xlim([0, maze_state.raw_piece_size[0]])
      plt.ylim([0, maze_state.raw_piece_size[1]])
  
      self._draw_piece(piece_to_cut)
      self._draw_piece(maze_state.current_demand, highlight=True)
      self._draw_cutting_lines(
          maze_state.current_demand,
          piece_to_cut,
          maze_action.reverse_cutting_order,
      )
      self._add_title(title)
  
file_path: maze/tutorials/tutorial_maze_env/part03_maze_env/env/renderer.py
imports: from typing import Tuple, Optional
  import numpy
  import matplotlib.patches
  import matplotlib.pyplot
  from maze.core.annotations import override
  from maze.core.log_events.step_event_log import StepEventLog
  from maze.core.rendering.renderer import Renderer
  from .maze_action import Cutting2DMazeAction
  from .maze_state import Cutting2DMazeState
label_desc: Use image node_id 2 for calling the Cutting2DRenderer obj's underlying member method code with example usage: obj._plot_maze_action(maze_action, title, maze_state) without return types