private void ExpandClusterOrder(Point p) { var neighbors = db.Neighbors(p, Epsilon); p.Processed = true; p.ReachDistance = Globals.Undefined; // UNDEFINED p.SetCoreDistance(neighbors, Epsilon, MinPts); orderedList.Add(p); // core distance of pt is not undefined. (core object) if (p.CoreDistance.Equals(Globals.Undefined) == false) { var orderSeeds = new OrderSeeds(); // empty priority queue orderSeeds.update(neighbors, p); while (orderSeeds.Empty() == false) { var curPt = orderSeeds.Next(); var newNeighbors = db.Neighbors(curPt, Epsilon); curPt.Processed = true; curPt.SetCoreDistance(newNeighbors, Epsilon, MinPts); orderedList.Add(curPt); // core distance of current point is not undefined. (core object) if (curPt.CoreDistance.Equals(Globals.Undefined) == false) orderSeeds.update(newNeighbors, curPt); } } }