public void Params_Test() { var a = new Vector3D(0, 0, 0); var b = new Vector3D(1, 1, 1); var ls = new LineSegment3D(a, b); Assert.AreEqual(1, ls.l); Assert.AreEqual(1, ls.m); Assert.AreEqual(1, ls.n); Assert.IsTrue(ls.Contains(a)); Assert.IsTrue(ls.Contains(b)); a = new Vector3D(-1, -1, -1); b = new Vector3D(1, 1, 1); ls = new LineSegment3D(a, b); Assert.AreEqual(2, ls.l); Assert.AreEqual(2, ls.m); Assert.AreEqual(2, ls.n); Assert.IsTrue(ls.Contains(a)); Assert.IsTrue(ls.Contains(b)); Assert.IsTrue(ls.Contains(new Vector3D(0, 0, 0))); a = new Vector3D(-1, 24, 56); b = new Vector3D(45, -67, 33); ls = new LineSegment3D(a, b); Assert.AreEqual(46, ls.l); Assert.AreEqual(-91, ls.m); Assert.AreEqual(-23, ls.n); Assert.IsTrue(ls.Contains(a)); Assert.IsTrue(ls.Contains(b)); }
void LineCrossTest(Plane plane) { var min = -5; var max = 5; for (int x1 = min; x1 < max; x1++) { for (int y1 = min; y1 < max; y1++) { for (int z1 = min; z1 < max; z1++) { for (int x2 = min; x2 < max; x2++) { for (int y2 = min; y2 < max; y2++) { for (int z2 = min; z2 < max; z2++) { if (x1 != x2 && y1 != y2 && z1 != z2) { var p1 = new Vector3D(x1, y1, z1); var p2 = new Vector3D(x2, y2, z2); var ls = new LineSegment3D(p1, p2); var crossPoint = plane.PointOfLineSegment3DCross(ls); if (crossPoint != null) { Assert.IsTrue(plane.Contains(crossPoint)); Assert.IsTrue(ls.Contains(crossPoint)); } } } } } } } } }