示例#1
0
        private static List <DScanGroup> MergeCloseGroups(IEnumerable <DScanGroup> groups)
        {
            var result = new List <DScanGroup>();

            DScanGroup lastGroup = null;

            foreach (var curGroup in groups)
            {
                if (lastGroup == null)
                {
                    lastGroup = curGroup;
                }
                else
                {
                    if (curGroup.Boundary.Upper - lastGroup.Boundary.Upper <= KM_OFFSET)
                    {
                        lastGroup.Boundary = new Boundary(lastGroup.Boundary.Lower, curGroup.Boundary.Upper);
                        lastGroup.Items    = lastGroup.Items.Union(curGroup.Items).ToList();
                    }
                    else
                    {
                        result.Add(lastGroup);
                        lastGroup = curGroup;
                    }
                }
            }

            result.Add(lastGroup);

            return(result);
        }
示例#2
0
        protected virtual void OnSuccess(DScanGroup obj)
        {
            Action <DScanGroup> handler = Success;

            if (handler != null)
            {
                handler(obj);
            }
        }
示例#3
0
        protected virtual void OnPotentiallyFoundAtDScanItemGroup(DScanGroup obj)
        {
            Action <DScanGroup> handler = PotentiallyFoundAtDScanItemGroup;

            if (handler != null)
            {
                handler(obj);
            }
        }