Beispiel #1
0
        public void ParcellingRespectsAreaRule()
        {
            _parceller.AddTerminationRule(new AreaRule(15, 50, 0f));
            var parcels = _parceller.GenerateParcels(new Parcel(new Vector2[] { new Vector2(0, 0), new Vector2(10, 0), new Vector2(10, 10), new Vector2(0, 10) }, new string[] { "edge" }), _random.NextDouble, new NamedBoxCollection()).ToArray();

            Assert.IsTrue(parcels.All(a => a.Area() <= 50));
        }
        public override IEnumerable <Parcel> GenerateParcels(Parcel root, Func <double> random, INamedDataCollection metadata)
        {
            var p = new ObbParceller(_splitPointSelection, _nonOptimalOabbChance, _nonOptimalOabbMaxRatio);

            foreach (var rule in _rules)
            {
                p.AddTerminationRule(rule.Rule(random, metadata));
            }

            return(p.GenerateParcels(root, random, metadata));
        }
 protected override IEnumerable <Parcel> GenerateParcels(IEnumerable <Vector2> footprint)
 {
     return(_parceller.GenerateParcels(new Parcel(footprint, new[] {
         "road"
     }), Random, HierarchicalParameters).ToArray());
 }