예제 #1
0
        IEnumerable <Node> PushByNodeAndReportPushedAsFixed(Node pushingNode)
        {
            var ret            = new List <Node>();
            var pushingNodeBox = GetPaddedBoxOfNode(pushingNode);

            foreach (var rectNode in rtree.GetAllLeavesIntersectingRectangle(pushingNodeBox))
            {
                if (fixedNodes.Contains(rectNode.UserData))
                {
                    continue;
                }
                if (PushNodeAndUpdateRTree(pushingNode, rectNode))
                {
                    ret.Add(rectNode.UserData);
                }
            }
            return(ret);
        }