//==================================================
        //  PUBLIC METHODS
        //==================================================

        public void ToggleGroup(NODE_GROUP g, bool state)
        {
            foreach (var s in segments)
            {
                if (!s.isInhabited())
                {
                    if (s.nodeA.nodeGroup == g)
                    {
                        s.nodeA.bypassed = !state;
                    }
                    if (s.nodeB.nodeGroup == g)
                    {
                        s.nodeB.bypassed = !state;
                    }
                }
            }
            BuildPathFast();
        }
        public void ToggleGroup(NODE_GROUP g)
        {
            List <WPNode> toToggle = nodes.FindAll((n) => n.nodeGroup == g);

            foreach (var s in segments)
            {
                if (s.isInhabited())
                {
                    if (toToggle.Contains(s.nodeA))
                    {
                        toToggle.Remove(s.nodeA);
                    }
                    if (toToggle.Contains(s.nodeB))
                    {
                        toToggle.Remove(s.nodeB);
                    }
                }
            }
            toToggle.ForEach((n) => n.bypassed = !n.bypassed);
            BuildPathFast();
        }