Ejemplo n.º 1
0
        public void SubdividingGroupWithTooFewChildren()
        {
            var s1       = new shape.Sphere(transform.Translation(-2, 0, 0));
            var s2       = new shape.Sphere(transform.Translation(2, 1, 0));
            var s3       = new shape.Sphere(transform.Translation(2, -1, 4));
            var subgroup = new shape.Group(new List <shape.Shape>()
            {
                s1, s2, s3
            });
            var s4 = new shape.Sphere();
            var g  = new shape.Group(new List <shape.Shape>()
            {
                subgroup, s4
            });

            g.Divide(3);

            Assert.Equal(subgroup, g[0]);
            Assert.Equal(s4, g[1]);
            var sg = (g[0] as shape.Group);

            Assert.Equal(2, sg.Count());

            Assert.IsType <shape.Group>(sg[0]);
            Assert.Single((sg[0] as shape.Group).Children);
            Assert.Equal(s1, (sg[0] as shape.Group)[0]);

            Assert.IsType <shape.Group>(sg[1]);
            Assert.Equal(2, (sg[1] as shape.Group).Count());
            Assert.Equal(new List <shape.Shape>()
            {
                s2, s3
            }, (sg[1] as shape.Group).Children);
        }
Ejemplo n.º 2
0
        public void SubdividingGroupPartitionsItsChildren()
        {
            var s1 = new shape.Sphere(transform.Translation(-2, -2, 0));
            var s2 = new shape.Sphere(transform.Translation(-2, 2, 0));
            var s3 = new shape.Sphere(transform.Scaling(4, 4, 4));
            var g  = new shape.Group(new List <shape.Shape>()
            {
                s1, s2, s3
            });

            g.Divide(1);

            Assert.Equal(s3, g[0]);
            var subgroup = g[1];

            Assert.IsType <shape.Group>(subgroup);

            var sg = subgroup as shape.Group;

            Assert.Equal(2, sg.Count());

            Assert.IsType <shape.Group>(sg[0]);
            Assert.Single((sg[0] as shape.Group).Children);
            Assert.Equal(s1, (sg[0] as shape.Group)[0]);

            Assert.IsType <shape.Group>(sg[1]);
            Assert.Single((sg[1] as shape.Group).Children);
            Assert.Equal(s2, (sg[1] as shape.Group)[0]);
        }