public Provinces(MultiPoly[] boundaries, ISet<int> waterProvinces, NodeGraph<int> graph,
     BiDictionary<int, string> tagIdMapping)
 {
     Boundaries = boundaries;
     WaterProvinces = waterProvinces;
     Graph = graph;
     TagIdMapping = tagIdMapping;
     Ownership = new Dictionary<int, int>();
 }
        public static RenderInstruction[] MultiPolygon(MultiPoly multiPoly, Color color, Color holeColor)
        {
			List<RenderInstruction> instructions = new List<RenderInstruction>(multiPoly.Polys.Length);

            foreach (IPoly poly in multiPoly.Polys)
            {
                instructions.Add(RenderInstruction.Polygon(poly, color));

                foreach (IPoly hole in poly.Holes)
                {
                    instructions.Add(RenderInstruction.Polygon(hole, holeColor));
                }
            }

            return instructions.ToArray();
        }