void ResetAllNodes()
    {
        int[] searchArray = new int[] { oc1, oc2, oc3, oc4 };
        bool  searched    = false;

        //trackingRouters;
        for (int i = 0; i < 4; i++)
        {
            // switch search/filter modes.
            if (searchArray[i] != -1)
            {
                searched = true;
            }
        }

        // reset everything to default!
        if (!searched)
        {
            var hngo    = loadNetworkDataV2.Nodes;
            var rtNodes = hngo.Where(p => p.deviceType == GraphStructureV1.BROADBAND_ROUTER);

            foreach (var r in rtNodes)
            {
                r.AssignedGameObject.SetActive(true);
                RouterNodeTracker rnt = r.AssignedGameObject.GetComponent <RouterNodeTracker>();
                rnt.gameObject.GetComponent <LineRenderer>().enabled = false;
                rnt.SetNewPosiiton(rnt.InitPos);
                foreach (var p in rnt.childrenLines)
                {
                    p.gameObject.SetActive(true);
                }
                foreach (var p in rnt.connectionLines)
                {
                    p.gameObject.SetActive(true);
                }
            }

            var pcNodes = hngo.Where(p => p.deviceType == GraphStructureV1.GENERAL_PURPOSE);
            foreach (var h in pcNodes)
            {
                h.AssignedGameObject.SetActive(true);
            }
        }
        else
        {
            //begin the search!
            UpdateNetworkRender();
        }
    }
    void SwitchFilterModes(IEnumerable <HostNode2> hngo, int[] searchArray)
    {
        if (filterMode == FilterSearchMode.All)
        {
            foreach (var h in hngo)
            {
                SearchAll(h, searchArray);
            }
        }

        if (filterMode == FilterSearchMode.PCNodeOnly)
        {
            var rtNodes = hngo.Where(p => p.deviceType == GraphStructureV1.BROADBAND_ROUTER);
            //disable all uneeded nodes.
            foreach (var r in rtNodes)
            {
                r.AssignedGameObject.SetActive(false);
                RouterNodeTracker rnt = r.AssignedGameObject.GetComponent <RouterNodeTracker>();
                foreach (var p in rnt.childrenLines)
                {
                    p.gameObject.SetActive(false);
                }

                foreach (var p in rnt.connectionLines)
                {
                    p.gameObject.SetActive(false);
                }
            }

            var pcNodes = hngo.Where(p => p.deviceType == GraphStructureV1.GENERAL_PURPOSE);
            foreach (var h in pcNodes)
            {
                var pcNode = h.AssignedGameObject.GetComponent <PCNodeTracker>();
                SearchPCNode(h, searchArray, pcNode);
            }
        }

        if (filterMode == FilterSearchMode.RouterNodeOnly)
        {
            var rtNodes = hngo.Where(p => p.deviceType == GraphStructureV1.BROADBAND_ROUTER);
            foreach (var h in rtNodes)
            {
                var routerNode = h.AssignedGameObject.GetComponent <RouterNodeTracker>();
                SearchAll(h, searchArray);
            }
        }
    }