Exemplo n.º 1
0
        public void BoundingBox()
        {
            var s = new Plane();
            var b = s.BoundingBox;

            Assert.AreEqual(b.Min, Point(float.NegativeInfinity, 0, float.NegativeInfinity));
            Assert.AreEqual(b.Max, Point(float.PositiveInfinity, 0, float.PositiveInfinity));
        }
Exemplo n.º 2
0
        public void IntersectCoplanarRay()
        {
            var p  = new Plane();
            var r  = new Ray(0f, 0f, 0f, 0f, 0f, 1f);
            var xs = p.IntersectLocal(ref r);

            Assert.AreEqual(xs.Count, 0);
        }
Exemplo n.º 3
0
        public void IntersectPlaneFromBelow()
        {
            var p  = new Plane();
            var r  = new Ray(0f, -1f, 0f, 0f, 1f, 0f);
            var xs = p.IntersectLocal(ref r);

            Assert.AreEqual(xs.Count, 1);
            Assert.AreEqual(xs[0].Distance, 1f);
            Assert.AreEqual(xs[0].Object, p);
        }
Exemplo n.º 4
0
        public void PlaneNormalIsUpVector()
        {
            var p  = new Plane();
            var n1 = p.LocalNormal(Point(0f, 0f, 0f));
            var n2 = p.LocalNormal(Point(202f, 110f, 0f));
            var n3 = p.LocalNormal(Point(-202f, 1e10f, 99f));

            Assert.That.VectorsAreEqual(n1, Vector4.UnitY);
            Assert.That.VectorsAreEqual(n3, Vector4.UnitY);
            Assert.That.VectorsAreEqual(n2, Vector4.UnitY);
        }