public static List <UEdge2i> All_InactiveEdges_InBounds_List(
            this PM_Maze maze
            )
        {
            int width  = maze.Q_Width();
            int height = maze.Q_Height();

            List <UEdge2i> inactiveEdges = new List <UEdge2i>();

            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    var newEdges = maze.Cell_InactiveEdges_InBounds_List(x, y);
                    foreach (var newEdge in newEdges)
                    {
                        if (inactiveEdges.Contains(newEdge) == false)
                        {
                            inactiveEdges.Add(newEdge);
                        }
                    }
                }
            }
            return(inactiveEdges);
        }
 public static List <UEdge2i> Cell_InactiveEdges_InBounds_List(
     this PM_Maze maze,
     int x,
     int y
     )
 {
     return(maze.Cell_InactiveEdges_InBounds_List(new Vec2i(x, y)));
 }