public void DirectionsTest(string p1s, string p2s, string evs) { var l = LineSegment3D.Parse(p1s, p2s); var excpected = UnitVector3D.Parse(evs, tolerance: 1); AssertGeometry.AreEqual(excpected, l.Direction); }
public void IsParallelToWithinAngleTol(string s1, string e1, string s2, string e2, double degreesTol, bool expected) { var line1 = LineSegment3D.Parse(s1, e1); var line2 = LineSegment3D.Parse(s2, e2); Assert.AreEqual(expected, line1.IsParallelTo(line2, Angle.FromDegrees(degreesTol))); }
public void ClosestPointTo(string start, string end, string point, string expected) { var line = LineSegment3D.Parse(start, end); var p = Point3D.Parse(point); var e = Point3D.Parse(expected); Assert.AreEqual(e, line.ClosestPointTo(p)); }
public void TranslateBy(string spoint1, string spoint2, string svector, string spoint3, string spoint4) { var line = LineSegment3D.Parse(spoint1, spoint2); var expected = LineSegment3D.Parse(spoint3, spoint4); var vector = Vector3D.Parse(svector); Assert.AreEqual(expected.Length, line.Length); Assert.AreEqual(expected, line.TranslateBy(vector)); }
[TestCase("6.0241017,5.1715162,5.7250655", "5.6868388,6.0031583,1.2902594", "3.4800129,9.7922534,2.4761596", "0.0589551,3.4081038,0.9383102", "5.6945715,5.9840905,1.3919397", "2.3316866,7.6493234,1.9599588")] // projection between segments, generated in GOM Inspect Professional V8 public void ClosestPointsBetweenOnSegment(string s1, string e1, string s2, string e2, string cp1, string cp2) { var l1 = LineSegment3D.Parse(s1, e1); var l2 = LineSegment3D.Parse(s2, e2); Assert.AreEqual(true, l1.TryShortestLineTo(l2, Angle.FromRadians(0.00001), out var result)); AssertGeometry.AreEqual(Point3D.Parse(cp1), result.StartPoint); AssertGeometry.AreEqual(Point3D.Parse(cp2), result.EndPoint); }