Example #1
0
        public void BasicTest()
        {
            var sor = new SurfaceOfRevolution();

            Check.That(sor.Name).IsNull();
            Check.That(sor.Sturm).IsNull();
            Check.That(sor.NbPoints).IsEqualTo(0);
        }
Example #2
0
        public void ConstructorTest()
        {
            var sor = new SurfaceOfRevolution("MySor")
            {
                Sturm = SurfaceOfRevolution.SturmFlag.sturm,
            };

            Check.That(sor.Name).IsEqualTo("MySor");
            Check.That(sor.Sturm).IsEqualTo(SurfaceOfRevolution.SturmFlag.sturm);
        }
Example #3
0
        public void ToPovCodeTest()
        {
            var sor = new SurfaceOfRevolution("MySor")
            {
                Open  = SurfaceOfRevolution.OpenFlag.open,
                Sturm = SurfaceOfRevolution.SturmFlag.sturm,
            };

            sor.Add(0, 0).Add(6, 0).Add(6, 8).Add(0, 8).Add(0, 0)  //outer rim
            .Add(1, 1).Add(5, 1).Add(5, 7).Add(1, 7).Add(1, 1);    //inner rim

            var povCode = sor.ToPovCode();

            Check.That(povCode).IsEqualTo("sor {\n 10\n < 0, 0>, < 6, 0>, < 6, 8>, < 0, 8>, < 0, 0>, < 1, 1>, < 5, 1>, < 5, 7>, < 1, 7>, < 1, 1>\n open\n sturm\n}");
        }
Example #4
0
        public SurfaceOfRevolutionScene()
        {
            DefaultFloor();
            Light(1, 1, -1);

            double Radius(double u, double v)
            {
                double r = Math.Exp(-u);
                double m = (1 + Math.Abs(Math.Cos(2 * Math.PI * 1.5 * u)));

                return(r * m);
            }

            var mesh = new SurfaceOfRevolution(50, 50, Radius);
            var triangleMeshFactory = new TriangleMeshFactory(true, false);

            Add(triangleMeshFactory.Build(mesh).Scale(sy: 0.5, sx: 0.1, sz: 0.1).Translate(tx: 0, tz: 0));
        }
Example #5
0
        public void DemoObjectsTest()
        {
            scene.Name = "DemoObjects";
            AddBlueSphere();

            var cone = new Cone()
                       .AddModifiers(new Pigment()
            {
                Color = _Magenta
            })
                       .Translate(2, 0, 0);

            scene.Add(cone);

            var cylinder = new Cylinder()
                           .AddModifiers(new Pigment()
            {
                Color = _Cyan
            })
                           .Translate(-2, 0, 0);

            scene.Add(cylinder);

            var ovus = new Ovus()
                       .AddModifiers(new Pigment()
            {
                Color = _Yellow
            })
                       .Translate(0, 0, 2);

            scene.Add(ovus);

            var torus = new Torus()
                        .AddModifiers(new Pigment()
            {
                Color = _Green
            })
                        .Translate(0, 0, 5);

            scene.Add(torus);

            var box = new Box()
                      .AddModifiers(new Pigment()
            {
                Color = _Red
            })
                      .Translate(0, 0, -2);

            scene.Add(box);

            var plane = new Plane()
            {
                Distance = -1
            };

            plane.AddModifiers(new Pigment()
            {
                Color = _RGB(1, 0.5, 0.25)
            });
            scene.Add(plane);

            var lathe = new Lathe()
                        .Add(2, 0).Add(3, 0).Add(3, 1).Add(2, 5).Add(2, 0)
                        .AddModifiers(new Pigment()
            {
                Color = _RGB(1, 1, 0.5)
            })
                        .Scale(0.25, 0.25, 0.25)
                        .Translate(2, 0, -2);

            scene.Add(lathe);

            var sor = new SurfaceOfRevolution()
                      .Add(2, 0).Add(3, 0).Add(1, 1).Add(2, 5).Add(2, 0)
                      .AddModifiers(new Pigment()
            {
                Color = _RGB(0.5, 1, 0.5)
            })
                      .Scale(0.25, 0.25, 0.25)
                      .Translate(2, 0, 2);

            scene.Add(sor);

            var path = engine.Render(scene, options, false);
        }