39 lines
1.6 KiB
C#
39 lines
1.6 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using NavisworksTransport.Utils.CoordinateSystem;
|
|
using System.Numerics;
|
|
|
|
namespace NavisworksTransport.UnitTests.CoordinateSystem
|
|
{
|
|
[TestClass]
|
|
public class ProjectReferenceFrameTests
|
|
{
|
|
[TestMethod]
|
|
public void DefaultForYUp_ShouldUseCanonicalUpAndYUpModelConvention()
|
|
{
|
|
ProjectReferenceFrame frame = ProjectReferenceFrame.CreateDefault(CoordinateSystemType.YUp);
|
|
|
|
Assert.AreEqual(0.0, frame.SphereCenterInCanonical3.X, 1e-9);
|
|
Assert.AreEqual(0.0, frame.SphereCenterInCanonical3.Y, 1e-9);
|
|
Assert.AreEqual(0.0, frame.SphereCenterInCanonical3.Z, 1e-9);
|
|
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.X, 1e-9);
|
|
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.Y, 1e-9);
|
|
Assert.AreEqual(1.0, frame.ProjectUpInCanonical3.Z, 1e-9);
|
|
Assert.AreEqual(LocalAxisDirection.PositiveX, frame.DefaultModelAxisConvention.ForwardAxis);
|
|
Assert.AreEqual(LocalAxisDirection.PositiveY, frame.DefaultModelAxisConvention.UpAxis);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Constructor_ShouldNormalizeProjectUp()
|
|
{
|
|
var frame = new ProjectReferenceFrame(
|
|
new Vector3(1, 2, 3),
|
|
new Vector3(0, 0, 10),
|
|
ModelAxisConvention.CreateDefaultForHost(CoordinateSystemType.ZUp));
|
|
|
|
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.X, 1e-9);
|
|
Assert.AreEqual(0.0, frame.ProjectUpInCanonical3.Y, 1e-9);
|
|
Assert.AreEqual(1.0, frame.ProjectUpInCanonical3.Z, 1e-9);
|
|
}
|
|
}
|
|
}
|