Exemple #1
0
        public void TrimmedCellProfile()
        {
            var outer = new Polygon(new List <Vector3> {
                new Vector3(0, 0, 0), new Vector3(10, 0, 0), new Vector3(10, 0, 10), new Vector3(0, 0, 10)
            });
            var inner1 = new Polygon(new List <Vector3> {
                new Vector3(3, 0, 9), new Vector3(3, 0, 7), new Vector3(1, 0, 7), new Vector3(1, 0, 9)
            });
            var inner2 = new Polygon(new List <Vector3> {
                new Vector3(9, 0, 3), new Vector3(9, 0, 1), new Vector3(7, 0, 1), new Vector3(7, 0, 3)
            });
            var inner3 = new Polygon(new List <Vector3> {
                new Vector3(6, 0, 6), new Vector3(6, 0, 3), new Vector3(3, 0, 3), new Vector3(3, 0, 6)
            });

            var polygons = new List <Polygon>();

            polygons.Add(outer);
            polygons.Add(inner1);
            polygons.Add(inner2);
            polygons.Add(inner3);

            var grid     = new Grid2d(polygons);
            var profiles = grid.GetTrimmedCellProfiles();

            Assert.Single(profiles);
            var profile = profiles.FirstOrDefault();

            Assert.Equal(3, profile.Voids.Count());
            Assert.Equal(100, profile.Perimeter.Area());
            Assert.Equal(4, profile.Voids[0].Area());
            Assert.Equal(9, profile.Voids[1].Area());
            Assert.Equal(4, profile.Voids[2].Area());
        }