//id는 입력된 Side가 소속된 공간 private bool IsOutterSide(Guid id, Data.Side side, Space.RelationLevel level) { foreach (Space.RoomRelationShip other in this.Relations[level]) { if (id != other.Origin.id) { foreach (Data.SideCardinalDirection othersideDirection in Enum.GetValues(typeof(Data.SideCardinalDirection))) { foreach (Data.Side otherSide in other.Origin.Sides[othersideDirection]) { if (side.IsContact(otherSide)) { return(false); } } } } } return(true); }
private Space.RoomRelationShip CreateWaitingList <Initial>(List <Guid> PlacedRelList, Dictionary <Space.RelationLevel, List <Space.RoomRelationShip> > NotPlacedRelList, Space.RelationLevel lv) { Space.RoomRelationShip init = new Space.RoomRelationShip(new Space.Room(), lv); foreach (Space.RoomRelationShip rel in Relationships.Values) { if (rel.Level == lv && rel.Origin is Initial) { init = rel; } } if (init.Relations.Count == 0) { throw new System.Exception("Not Found initial start point at func CreateWaitingList"); } PlacedRelList.Add(init.Origin.id); foreach (Guid id in init.Relations.Keys) { if (Relationships[id].Level == lv) { NotPlacedRelList[lv].Add(Relationships[id]); } } NotPlacedRelList[lv].Sort(); return(init); }