public DynamicFlatLodGRingNodeTerrain(INewGRingListenersCreator listenersCreator, FlatLodCalculator flatLodCalculator, Ring1Node node) { _listenersCreator = listenersCreator; _flatLodCalculator = flatLodCalculator; _node = node; }
public IAsyncGRingNodeListener CreateNewListener(Ring1Node node, FlatLod lod) { var creatorsFilteredList = _creatorsList .Where(c => c.PositionLimiter == null || c.PositionLimiter.IsAccepted(node)) .Where(c => c.MaximumLod.ScalarValue >= lod.ScalarValue) .OrderBy(c => c.MaximumLod.ScalarValue).Select(c => c.Creator).ToList(); INewGRingListenersCreator creator = null; if (creatorsFilteredList.Any()) { creator = creatorsFilteredList.First(); } else { creator = _creatorsList.Where(c => c.IsFallthroughCreator).Select(c => c.Creator).First(); } return(creator.CreateNewListener(node, lod)); }
public DynamicFlatLodGRingNodeTerrainCreator(INewGRingListenersCreator subCreator, FlatLodCalculator flatLodCalculator) { _subCreator = subCreator; _flatLodCalculator = flatLodCalculator; }