public static void Filter_filterBass_auto(GRGEN_LGSP.LGSPGraphProcessingEnvironment procEnv, GRGEN_LIBGR.IMatchesExact <Rule_filterBass.IMatch_filterBass> matches)
        {
            if (matches.Count < 2)
            {
                return;
            }
            List <Rule_filterBass.IMatch_filterBass> matchesArray = matches.ToList();

            for (int i = 0; i < matchesArray.Count; ++i)
            {
                if (matchesArray[i] == null)
                {
                    continue;
                }
                for (int j = i + 1; j < matchesArray.Count; ++j)
                {
                    if (matchesArray[j] == null)
                    {
                        continue;
                    }
                    if (GRGEN_LIBGR.SymmetryChecker.AreSymmetric(matchesArray[i], matchesArray[j], procEnv.graph))
                    {
                        matchesArray[j] = null;
                    }
                }
            }
            matches.FromList();
        }
Пример #2
0
            public static void Filter_TransformSingle_orderAscendingBy_order(GRGEN_LGSP.LGSPGraphProcessingEnvironment procEnv, GRGEN_LIBGR.IMatchesExact <na.Rule_TransformSingle.IMatch_TransformSingle> matches)
            {
                List <na.Rule_TransformSingle.IMatch_TransformSingle> matchesArray = matches.ToList();

                matchesArray.Sort(new Comparer_TransformSingle_orderAscendingBy_order());
                matches.FromList();
            }
        public static void Filter_f3(GRGEN_LGSP.LGSPGraphProcessingEnvironment procEnv, GRGEN_LIBGR.IMatchesExact <Rule_filterBass.IMatch_filterBass> matches)
        {
            // inspect matches carefully and manipulate as needed,
            // transforming to a List<IMatch> for easier manipulation and back to an IMatchesExact if needed
            List <Rule_filterBass.IMatch_filterBass> matchesArray = matches.ToList();

            matchesArray.Reverse();
            Rule_filterBass.IMatch_filterBass match = matchesArray[matchesArray.Count - 1];
            matchesArray[matchesArray.Count - 1] = null; // setting to null is an efficient way to delete, better than List.RemoveAt
            ++match.node_n.i;
            matchesArray.Add(match);
            matchesArray.Reverse();
            matches.FromList();
        }
        public static void Filter_f4(GRGEN_LGSP.LGSPGraphProcessingEnvironment procEnv, GRGEN_LIBGR.IMatchesExact <Rule_filterHass.IMatch_filterHass> matches, System.Int32 i, System.String s)
        {
            // inspect matches carefully and manipulate as needed, depending on input parameters
            // transforming to a List<IMatch> for easier manipulation and back to an IMatchesExact if needed
            List <Rule_filterHass.IMatch_filterHass> matchesArray = matches.ToList();

            for (int j = 0; j < matchesArray.Count; ++j)
            {
                Rule_filterHass.IMatch_filterHass match = matchesArray[j];
                if (match.node_n.i < i)
                {
                    matchesArray[j] = null;                     // setting to null is an efficient way to delete, better than List.RemoveAt
                }
                if (match.node_n.s != s)
                {
                    match.node_n.s = s;
                }
            }
            matches.FromList();
        }