public List <ComponentNode> GetAllEdgeNodes()
    {
        List <ComponentNode> edgeNodes = new List <ComponentNode>();

        foreach (ComponentSubGrid grid in grids)
        {
            foreach (ComponentNode node in grid.grid)
            {
                if (node.gridX == 0)
                {
                    if (!dm.CheckAgainstList(node, edgeNodes))
                    {
                        edgeNodes.Add(node);
                        node.componentEdge = true;
                    }
                }
                if (node.gridX == grid.gridSizeX - 1)
                {
                    if (!dm.CheckAgainstList(node, edgeNodes))
                    {
                        edgeNodes.Add(node);
                        node.componentEdge = true;
                    }
                }
                if (node.gridY == 0)
                {
                    if (!dm.CheckAgainstList(node, edgeNodes))
                    {
                        edgeNodes.Add(node);
                        node.componentEdge = true;
                    }
                }
                if (node.gridY == grid.gridSizeY - 1)
                {
                    if (!dm.CheckAgainstList(node, edgeNodes))
                    {
                        edgeNodes.Add(node);
                        node.componentEdge = true;
                    }
                }
            }
        }
        return(edgeNodes);
    }