Example #1
0
        protected static IRuleSystem CreateModel(IEnumerable <Packet> trainPackets)
        {
            var trainObj = Factory.ParseToHyperbox(trainPackets);
            var bvolume  = new AABB(trainObj);

            _progress = new List <long[]>();
            var duration = new Stopwatch();

            duration.Start();

            do
            {
                duration.Stop();
                _progress.Add(new[] { bvolume.Collisions, bvolume.Objects.Count, duration.ElapsedMilliseconds });
                duration.Restart();

                Debug.WriteLine("#{0}: {1} collisions ({2} boxes)", _progress.Count, bvolume.Collisions, bvolume.Objects.Count);

                bvolume.DetectCollision();
            } while (bvolume.Collisions > 0);

            duration.Stop();
            _progress.Add(new[] { bvolume.Collisions, bvolume.Objects.Count, duration.ElapsedMilliseconds });

            var rules = new BoxRuleSystem(bvolume.Objects);

            //var rules = new RangedRuleSystem(bvolume.Objects);
            return(rules);
        }