protected override void drawSceneGUI()
        {
            BoundCFG[] list = mTarget.list;
            if (list.Length <= 0)
            {
                return;
            }

            int  len       = list.Length;
            bool isCurrent = false;

            for (int i = 0; i < len; i++)
            {
                BoundCFG cfg = list[i];
                isCurrent = i == selectedIndex;
                if (isCurrent == false)
                {
                    continue;
                }
                int j = 0;
                foreach (Segment segment in cfg.segments)
                {
                    Handles.Label(segment.start, "seg_" + j);
                    segment.start = Handles.PositionHandle(segment.start, Quaternion.identity);
                    j++;
                }
            }
        }
        public void Connect(BoundCFG cfg)
        {
            Undo.RecordObject(mTarget, "transform position");
            List <Segment> segments = cfg.segments;

            for (int i = 0; i < segments.Count - 1; i++)
            {
                segments[i].end = segments[i + 1].start;
            }

            if (cfg.isClosed && segments.Count > 2)
            {
                segments[segments.Count - 1].end = segments[0].start;
            }
        }