public void ComputeClipPlaneDistances_ClosestObjectCoincidentWithCamera_NearClipDistance_IsDefault() { double near, far; var planeOrigin = farPoint.Bounds().Minimum; var planeNormal = new Vector3(1, 0, 0); var geometry = new GeometryModel3D[] { closePoint, farPoint, cube }; HelixWatch3DViewModel.ComputeClipPlaneDistances(planeOrigin, planeNormal, geometry, 0.001, out near, out far, HelixWatch3DViewModel.DefaultNearClipDistance, HelixWatch3DViewModel.DefaultFarClipDistance); Assert.AreEqual(near, HelixWatch3DViewModel.DefaultNearClipDistance); }
public void ComputeClipPlaneDistances_ObjectsInFrontAndBehind_ClipDistance_IsCorrect() { double near, far; var planeOrigin = new Vector3(-10, 0, 0); var planeNormal = new Vector3(1, 0, 0); var geometry = new GeometryModel3D[] { closePoint, farPoint, cube }; HelixWatch3DViewModel.ComputeClipPlaneDistances(planeOrigin, planeNormal, geometry, 0.001, out near, out far, HelixWatch3DViewModel.DefaultNearClipDistance, HelixWatch3DViewModel.DefaultFarClipDistance); Assert.Less(near, closePoint.Bounds().GetCorners().Min(c => c.DistanceToPlane(planeOrigin, planeNormal))); Assert.Greater(far, farPoint.Bounds().GetCorners().Max(c => c.DistanceToPlane(planeOrigin, planeNormal))); }
public void ComputeClipPlaneDistances_AllObjectsBehind__ClipDistances_AreDefault() { double near, far; var planeOrigin = new Vector3(50000, 0, 0); var planeNormal = new Vector3(1, 0, 0); var geometry = new GeometryModel3D[] { closePoint, farPoint, cube }; HelixWatch3DViewModel.ComputeClipPlaneDistances(planeOrigin, planeNormal, geometry, 0.001, out near, out far, HelixWatch3DViewModel.DefaultNearClipDistance, HelixWatch3DViewModel.DefaultFarClipDistance); Assert.AreEqual(near, HelixWatch3DViewModel.DefaultNearClipDistance); Assert.AreEqual(far, HelixWatch3DViewModel.DefaultFarClipDistance); }