public void TestGetTransformBetweenVectorsAroundPointAllDirs() { var comp = new DoubleEqualityComparerWithTolerance(); var mathServ = new SwVectorMathService(Sw.SldWorks.IGetMathUtility()); var transform = mathServ.GetTransformBetweenVectorsAroundPoint( new Vector(-0.86064621310564815, -0.45399049973946992, -0.230609457770521), new Vector(0, 1, 0), new Point(0, 0, 0)); //TestDisplayOnBody(transform, "Data\\t2.sldprt", "Body-Move/Copy2"); foreach (var d in transform.Rotation.ToArray()) { Debug.Print(d.ToString()); } Assert.IsTrue(transform.Translation.ToArray().SequenceEqual(new double[] { 0, 0, 0 }, comp)); Assert.IsTrue(transform.Rotation.ToArray().SequenceEqual(new double[] { -0.356591604687574, -0.860646213105648, -0.363497624934811, 0.860646213105648, -0.45399049973947, 0.230609457770521, -0.363497624934811, -0.230609457770521, 0.902601104948104 } , comp)); Assert.AreEqual(1, transform.Scale); }
public void TestGetTransformBetweenVectorsAroundPointYZ90Deg() { var comp = new DoubleEqualityComparerWithTolerance(); var mathServ = new SwVectorMathService(Sw.SldWorks.IGetMathUtility()); var transform = mathServ.GetTransformBetweenVectorsAroundPoint(new Vector(0, 0, 1), new Vector(0, 1, 0), new Point(0, 0, 0)); //TestDisplayOnBody(transform, "Data\\t5.sldprt", "Boss-Extrude2"); Assert.IsTrue(transform.Translation.ToArray().SequenceEqual(new double[] { 0, 0, 0 }, comp)); Assert.IsTrue(transform.Rotation.ToArray().SequenceEqual(new double[] { 1, 0, 0, 0, 0, -1, 0, 1, 0 }, comp)); Assert.AreEqual(1, transform.Scale); }