Ejemplo n.º 1
0
        public void RayMissCylinder(double pX, double pY, double pZ, double vX, double vY, double vZ)
        {
            var origin    = pt.Point(pX, pY, pZ);
            var direction = pt.Vector(vX, vY, vZ).Normalize();
            var cyl       = new shape.Cylinder();
            var ray       = new Ray(origin, direction);
            var xs        = cyl.Intersect(ray);

            Assert.Empty(xs);
        }
Ejemplo n.º 2
0
        public void RayStrikeCylinder(double pX, double pY, double pZ, double vX, double vY, double vZ, double t0, double t1)
        {
            var cyl = new shape.Cylinder();

            var origin    = pt.Point(pX, pY, pZ);
            var direction = pt.Vector(vX, vY, vZ).Normalize();

            var ray = new Ray(origin, direction);
            var xs  = cyl.Intersect(ray);

            Assert.Equal(2, xs.Length);
            Assert.Equal(t0, xs[0].T, 5);
            Assert.Equal(t1, xs[1].T, 5);
        }
Ejemplo n.º 3
0
        public void IntersectingConstrainedCylinder(double pX, double pY, double pZ, double vX, double vY, double vZ, int count)
        {
            var point     = pt.Point(pX, pY, pZ);
            var direction = pt.Vector(vX, vY, vZ).Normalize();

            var cyl = new shape.Cylinder
            {
                Minimum = 1,
                Maximum = 2
            };

            var r  = new Ray(point, direction);
            var xs = cyl.Intersect(r);

            Assert.Equal(count, xs.Length);
        }