public ZoneClusterMemberConsumption( BaseZoneClusterConsumption parentBaseZoneClusterConsumption, Func <ZoneInfoFinder> createZoneInfoFinderFunc, string name, int relativeToParentCenterX, int relativeToParentCenterY, Color color, int positionInClusterX, int positionInClusterY ) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (parentBaseZoneClusterConsumption == null) { throw new ArgumentNullException(nameof(parentBaseZoneClusterConsumption)); } ParentBaseZoneClusterConsumption = parentBaseZoneClusterConsumption; Name = name; RelativeToParentCenterX = relativeToParentCenterX; RelativeToParentCenterY = relativeToParentCenterY; Color = color; PositionInClusterX = positionInClusterX; PositionInClusterY = positionInClusterY; _zoneInfoFinder = createZoneInfoFinderFunc(); PositionInCluster = new Point(PositionInClusterX - 1, PositionInClusterY - 1); }
protected BaseNetworkZoneConsumption(ZoneInfoFinder neighborNavigator) { if (neighborNavigator == null) { throw new ArgumentNullException(nameof(neighborNavigator)); } NeighborNavigator = neighborNavigator; }
public IntersectingZoneConsumption(ZoneInfoFinder zoneInfoFinder, BaseInfrastructureNetworkZoneConsumption eastWestZoneConsumption, BaseInfrastructureNetworkZoneConsumption northSouthZoneConsumption) { if (eastWestZoneConsumption == null) { throw new ArgumentNullException(nameof(eastWestZoneConsumption)); } if (northSouthZoneConsumption == null) { throw new ArgumentNullException(nameof(northSouthZoneConsumption)); } if (eastWestZoneConsumption.GetType() == northSouthZoneConsumption.GetType()) { throw new InvalidOperationException("An intersecting zone consumption must consist of two differing types."); } _zoneInfoFinder = zoneInfoFinder ?? throw new ArgumentNullException(nameof(zoneInfoFinder)); EastWestZoneConsumption = eastWestZoneConsumption; NorthSouthZoneConsumption = northSouthZoneConsumption; }
protected BaseInfrastructureNetworkZoneConsumption(ZoneInfoFinder neighborNavigator) : base(neighborNavigator) { }