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); }
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); }
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); }