diff --git a/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj b/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj
index fc485849..300b4651 100644
--- a/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj
+++ b/ANX.Framework.TestCenter/ANX.Framework.TestCenter.csproj
@@ -60,9 +60,11 @@
+
+
diff --git a/ANX.Framework.TestCenter/AssertHelper.cs b/ANX.Framework.TestCenter/AssertHelper.cs
index d65ed3bc..fb7ab827 100644
--- a/ANX.Framework.TestCenter/AssertHelper.cs
+++ b/ANX.Framework.TestCenter/AssertHelper.cs
@@ -72,6 +72,12 @@ using ANXBoundingBox = ANX.Framework.BoundingBox;
using XNABoundingSphere = Microsoft.Xna.Framework.BoundingSphere;
using ANXBoundingSphere = ANX.Framework.BoundingSphere;
+using XNABoundingFrustum = Microsoft.Xna.Framework.BoundingFrustum;
+using ANXBoundingFrustum = ANX.Framework.BoundingFrustum;
+
+using XNAPlane = Microsoft.Xna.Framework.Plane;
+using ANXPlane = ANX.Framework.Plane;
+
using XNARect = Microsoft.Xna.Framework.Rectangle;
using ANXRect = ANX.Framework.Rectangle;
@@ -203,5 +209,46 @@ namespace ANX.Framework.TestCenter
}
}
+ public static void ConvertEquals(XNABoundingFrustum xna, ANXBoundingFrustum anx, String test)
+ {
+ if (xna.Matrix.M11 == anx.Matrix.M11 &&
+ xna.Matrix.M12 == anx.Matrix.M12 &&
+ xna.Matrix.M13 == anx.Matrix.M13 &&
+ xna.Matrix.M14 == anx.Matrix.M14 &&
+ xna.Matrix.M21 == anx.Matrix.M21 &&
+ xna.Matrix.M22 == anx.Matrix.M22 &&
+ xna.Matrix.M23 == anx.Matrix.M23 &&
+ xna.Matrix.M24 == anx.Matrix.M24 &&
+ xna.Matrix.M31 == anx.Matrix.M31 &&
+ xna.Matrix.M32 == anx.Matrix.M32 &&
+ xna.Matrix.M33 == anx.Matrix.M33 &&
+ xna.Matrix.M34 == anx.Matrix.M34 &&
+ xna.Matrix.M41 == anx.Matrix.M41 &&
+ xna.Matrix.M42 == anx.Matrix.M42 &&
+ xna.Matrix.M43 == anx.Matrix.M43 &&
+ xna.Matrix.M44 == anx.Matrix.M44)
+ {
+ Assert.Pass(test + " passed");
+ }
+ else
+ {
+ Assert.Fail(String.Format("{0} failed: xna({1}) anx({2})", test, xna.ToString(), anx.ToString()));
+ }
+ }
+
+ public static void ConvertEquals(XNAPlane xna, ANXPlane anx, String test)
+ {
+ if (xna.D == anx.D &&
+ xna.Normal.X == anx.Normal.X &&
+ xna.Normal.Y == anx.Normal.Y &&
+ xna.Normal.Z == anx.Normal.Z)
+ {
+ Assert.Pass(test + " passed");
+ }
+ else
+ {
+ Assert.Fail(String.Format("{0} failed: xna({1}) anx({2})", test, xna.ToString(), anx.ToString()));
+ }
+ }
}
}
diff --git a/ANX.Framework.TestCenter/DataFactory.cs b/ANX.Framework.TestCenter/DataFactory.cs
index 8263a7e5..e0e0bb35 100644
--- a/ANX.Framework.TestCenter/DataFactory.cs
+++ b/ANX.Framework.TestCenter/DataFactory.cs
@@ -80,7 +80,7 @@ namespace ANX.Framework.TestCenter
{
get
{
- return 1.0f / MathHelper.Clamp(RandomFloat, 0f, float.MaxValue);
+ return 1.0f / MathHelper.Clamp(RandomFloat, float.Epsilon, float.MaxValue);
}
}
diff --git a/ANX.Framework.TestCenter/Strukturen/BoundingBoxTest.cs b/ANX.Framework.TestCenter/Strukturen/BoundingBoxTest.cs
index 4c57229f..d82d7119 100644
--- a/ANX.Framework.TestCenter/Strukturen/BoundingBoxTest.cs
+++ b/ANX.Framework.TestCenter/Strukturen/BoundingBoxTest.cs
@@ -65,7 +65,7 @@ namespace ANX.Framework.TestCenter.Strukturen
class BoundingBoxTest
{
#region Helper
- static object[] sixfloat =
+ static object[] sixfloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -74,7 +74,7 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
};
- static object[] ninefloat =
+ static object[] ninefloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -83,7 +83,7 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
};
- static object[] tenfloat =
+ static object[] tenfloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -92,7 +92,7 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
};
- static object[] twelvefloat =
+ static object[] twelvefloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -101,7 +101,7 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
};
- static object[] twentytwofloat =
+ static object[] twentytwofloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -128,7 +128,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "constructor0");
}
- [Test, TestCaseSource("sixfloat")]
+ [Test, TestCaseSource("sixfloats")]
public void constructor1(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
XNABoundingBox xna = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -140,16 +140,16 @@ namespace ANX.Framework.TestCenter.Strukturen
#endregion
#region Methods
- [Test, TestCaseSource("twelvefloat")]
+ [Test, TestCaseSource("twelvefloats")]
public void ContainsBoundingBox(
float xMin1, float yMin1, float zMin1, float xMax1, float yMax1, float zMax1,
- float xRay, float yRay, float zRay, float xDir, float yDir, float zDir)
+ float xMin2, float yMin2, float zMin2, float xMax2, float yMax2, float zMax2)
{
XNABoundingBox xnaBox1 = new XNABoundingBox(new XNAVector3(xMin1, yMin1, zMin1), new XNAVector3(xMax1, yMax1, zMax1));
- XNABoundingBox xnaBox2 = new XNABoundingBox(new XNAVector3(xRay, yRay, zRay), new XNAVector3(xDir, yDir, zDir));
+ XNABoundingBox xnaBox2 = new XNABoundingBox(new XNAVector3(xMin2, yMin2, zMin2), new XNAVector3(xMax2, yMax2, zMax2));
ANXBoundingBox anxBox1 = new ANXBoundingBox(new ANXVector3(xMin1, yMin1, zMin1), new ANXVector3(xMax1, yMax1, zMax1));
- ANXBoundingBox anxBox2 = new ANXBoundingBox(new ANXVector3(xRay, yRay, zRay), new ANXVector3(xDir, yDir, zDir));
+ ANXBoundingBox anxBox2 = new ANXBoundingBox(new ANXVector3(xMin2, yMin2, zMin2), new ANXVector3(xMax2, yMax2, zMax2));
Microsoft.Xna.Framework.ContainmentType containsXNA = xnaBox1.Contains(xnaBox2);
ANX.Framework.ContainmentType containsANX = anxBox1.Contains(anxBox2);
@@ -160,8 +160,9 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsBoundingBox failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("twentytwofloat")]
- public void ContainsBoundingFrustum(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ [Test, TestCaseSource("twentytwofloats")]
+ public void ContainsBoundingFrustum(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -181,7 +182,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsBoundingFrustum failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void ContainsBoundingSphere(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, float xS, float yS, float zS, float rS)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -199,7 +200,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsBoundingSphere failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("ninefloat")]
+ [Test, TestCaseSource("ninefloats")]
public void ContainsPoint(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, float xP, float yP, float zP)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -217,7 +218,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsPoint failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("ninefloat")]
+ [Test, TestCaseSource("ninefloats")]
public void CreateFromPointsStatic(
float x1, float y1, float z1,
float x2, float y2, float z2,
@@ -239,7 +240,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "CreateFromPointsStatic");
}
- [Test, TestCaseSource("ninefloat")]
+ [Test, TestCaseSource("ninefloats")]
public void CreateFromSphereStatic(
float x, float y, float z, float radius,
float a, float b, float c, float d, float e)
@@ -256,7 +257,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "CreateFromSphereStatic");
}
- [Test, TestCaseSource("twelvefloat")]
+ [Test, TestCaseSource("twelvefloats")]
public void CreateMergedStatic(
float xMin1, float yMin1, float zMin1, float xMax1, float yMax1, float zMax1,
float xMin2, float yMin2, float zMin2, float xMax2, float yMax2, float zMax2)
@@ -273,7 +274,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "CreateMergedStatic");
}
- [Test, TestCaseSource("sixfloat")]
+ [Test, TestCaseSource("sixfloats")]
public void GetCorners(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -289,7 +290,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("GetCorners failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("twelvefloat")]
+ [Test, TestCaseSource("twelvefloats")]
public void IntersectsBoundingBox(
float xMin1, float yMin1, float zMin1, float xMax1, float yMax1, float zMax1,
float xMin2, float yMin2, float zMin2, float xMax2, float yMax2, float zMax2)
@@ -309,7 +310,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsBoundingBox failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("twentytwofloat")]
+ [Test, TestCaseSource("twentytwofloats")]
public void IntersctsFrustum(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
@@ -330,7 +331,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersctsFrustum failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void IntersectsBoundingSphere(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, float xS, float yS, float zS, float rS)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -348,7 +349,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsBoundingSphere failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void IntersectsPlane(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, float xP, float yP, float zP, float dP)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -366,7 +367,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsPlane failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("twelvefloat")]
+ [Test, TestCaseSource("twelvefloats")]
public void IntersectsRay(
float xMin1, float yMin1, float zMin1, float xMax1, float yMax1, float zMax1,
float xRay, float yRay, float zRay, float xDir, float yDir, float zDir)
@@ -388,7 +389,7 @@ namespace ANX.Framework.TestCenter.Strukturen
#endregion
#region Properties
- [Test, TestCaseSource("sixfloat")]
+ [Test, TestCaseSource("sixfloats")]
public void Min(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -406,7 +407,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("Min failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("sixfloat")]
+ [Test, TestCaseSource("sixfloats")]
public void Max(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
XNABoundingBox xnaBox = new XNABoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
@@ -424,5 +425,47 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("Max failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
#endregion
+
+ #region Operators
+ [Test, TestCaseSource("twelvefloats")]
+ public void EqualsOperator(
+ float xMin1, float yMin1, float zMin1, float xMax1, float yMax1, float zMax1,
+ float xMin2, float yMin2, float zMin2, float xMax2, float yMax2, float zMax2)
+ {
+ XNABoundingBox xnaBox1 = new XNABoundingBox(new XNAVector3(xMin1, yMin1, zMin1), new XNAVector3(xMax1, yMax1, zMax1));
+ XNABoundingBox xnaBox2 = new XNABoundingBox(new XNAVector3(xMin2, yMin2, zMin2), new XNAVector3(xMax2, yMax2, zMax2));
+
+ ANXBoundingBox anxBox1 = new ANXBoundingBox(new ANXVector3(xMin1, yMin1, zMin1), new ANXVector3(xMax1, yMax1, zMax1));
+ ANXBoundingBox anxBox2 = new ANXBoundingBox(new ANXVector3(xMin2, yMin2, zMin2), new ANXVector3(xMax2, yMax2, zMax2));
+
+ bool xna = xnaBox1 == xnaBox2;
+ bool anx = anxBox1 == anxBox2;
+
+ if (xna.Equals(anx))
+ Assert.Pass("EqualsOperator passed");
+ else
+ Assert.Fail(String.Format("EqualsOperator failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+
+ [Test, TestCaseSource("twelvefloats")]
+ public void UnequalsOperator(
+ float xMin1, float yMin1, float zMin1, float xMax1, float yMax1, float zMax1,
+ float xMin2, float yMin2, float zMin2, float xMax2, float yMax2, float zMax2)
+ {
+ XNABoundingBox xnaBox1 = new XNABoundingBox(new XNAVector3(xMin1, yMin1, zMin1), new XNAVector3(xMax1, yMax1, zMax1));
+ XNABoundingBox xnaBox2 = new XNABoundingBox(new XNAVector3(xMin2, yMin2, zMin2), new XNAVector3(xMax2, yMax2, zMax2));
+
+ ANXBoundingBox anxBox1 = new ANXBoundingBox(new ANXVector3(xMin1, yMin1, zMin1), new ANXVector3(xMax1, yMax1, zMax1));
+ ANXBoundingBox anxBox2 = new ANXBoundingBox(new ANXVector3(xMin2, yMin2, zMin2), new ANXVector3(xMax2, yMax2, zMax2));
+
+ bool xna = xnaBox1 != xnaBox2;
+ bool anx = anxBox1 != anxBox2;
+
+ if (xna.Equals(anx))
+ Assert.Pass("UnequalsOperator passed");
+ else
+ Assert.Fail(String.Format("UnequalsOperator failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+ #endregion
}
}
diff --git a/ANX.Framework.TestCenter/Strukturen/BoundingFrustumTest.cs b/ANX.Framework.TestCenter/Strukturen/BoundingFrustumTest.cs
new file mode 100644
index 00000000..50adc5a0
--- /dev/null
+++ b/ANX.Framework.TestCenter/Strukturen/BoundingFrustumTest.cs
@@ -0,0 +1,497 @@
+#region UsingStatements
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+#endregion
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+using XNABoundingFrustum = Microsoft.Xna.Framework.BoundingFrustum;
+using XNAVector3 = Microsoft.Xna.Framework.Vector3;
+using ANXBoundingFrustum = ANX.Framework.BoundingFrustum;
+using ANXVector3 = ANX.Framework.Vector3;
+
+using NUnit.Framework;
+
+namespace ANX.Framework.TestCenter.Strukturen
+{
+ [TestFixture]
+ class BoundingFrustumTest
+ {
+ #region Helper
+ static object[] thirtytwofloats =
+ {
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
+ DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
+ };
+ #endregion
+
+ #region Constructors
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void constructor0(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ AssertHelper.ConvertEquals(xnaFrustum, anxFrustum, "constructor0");
+ }
+ #endregion
+
+ #region Methods
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void ContainsBoundingBox(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float xMin, float yMin, float zMin, float xMax, float yMax, float zMax,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+ Microsoft.Xna.Framework.BoundingBox xnaBox = new Microsoft.Xna.Framework.BoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+ ANX.Framework.BoundingBox anxBox = new ANX.Framework.BoundingBox(new ANXVector3(xMin, yMin, zMin), new ANXVector3(xMax, yMax, zMax));
+
+ Microsoft.Xna.Framework.ContainmentType containsXNA = xnaFrustum.Contains(xnaBox);
+ ANX.Framework.ContainmentType containsANX = anxFrustum.Contains(anxBox);
+
+ if (containsXNA.Equals(containsANX))
+ Assert.Pass("ContainsBoundingBox passed");
+ else
+ Assert.Fail(String.Format("ContainsBoundingBox failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void ContainsBoundingFrustum(
+ float m11_1, float m12_1, float m13_1, float m14_1, float m21_1, float m22_1, float m23_1, float m24_1, float m31_1, float m32_1, float m33_1, float m34_1, float m41_1, float m42_1, float m43_1, float m44_1,
+ float m11_2, float m12_2, float m13_2, float m14_2, float m21_2, float m22_2, float m23_2, float m24_2, float m31_2, float m32_2, float m33_2, float m34_2, float m41_2, float m42_2, float m43_2, float m44_2)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix1 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum1 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix1);
+ Microsoft.Xna.Framework.Matrix xnaMatrix2 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum2 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix2);
+
+ ANX.Framework.Matrix anxMatrix1 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum1 = new ANX.Framework.BoundingFrustum(anxMatrix1);
+ ANX.Framework.Matrix anxMatrix2 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum2 = new ANX.Framework.BoundingFrustum(anxMatrix2);
+
+ Microsoft.Xna.Framework.ContainmentType containsXNA = xnaFrustum1.Contains(xnaFrustum2);
+ ANX.Framework.ContainmentType containsANX = anxFrustum1.Contains(anxFrustum2);
+
+ if (containsXNA.Equals(containsANX))
+ Assert.Pass("ContainsBoundingFrustum passed");
+ else
+ Assert.Fail(String.Format("ContainsBoundingFrustum failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void ContainsBoundingSphere(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float xS, float yS, float zS, float rS,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+ Microsoft.Xna.Framework.BoundingSphere xnaSphere = new Microsoft.Xna.Framework.BoundingSphere(new XNAVector3(xS, yS, zS), rS);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+ ANX.Framework.BoundingSphere anxSphere = new ANX.Framework.BoundingSphere(new ANXVector3(xS, yS, zS), rS);
+
+ Microsoft.Xna.Framework.ContainmentType containsXNA = xnaFrustum.Contains(xnaSphere);
+ ANX.Framework.ContainmentType containsANX = anxFrustum.Contains(anxSphere);
+
+ if (containsXNA.Equals(containsANX))
+ Assert.Pass("ContainsBoundingSphere passed");
+ else
+ Assert.Fail(String.Format("ContainsBoundingSphere failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void ContainsPoint(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float xP, float yP, float zP,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+ XNAVector3 xnaPoint = new XNAVector3(xP, yP, zP);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+ ANXVector3 anxPoint = new ANXVector3(xP, yP, zP);
+
+ Microsoft.Xna.Framework.ContainmentType containsXNA = xnaFrustum.Contains(xnaPoint);
+ ANX.Framework.ContainmentType containsANX = anxFrustum.Contains(anxPoint);
+
+ if (containsXNA.Equals(containsANX))
+ Assert.Pass("ContainsPoint passed");
+ else
+ Assert.Fail(String.Format("ContainsPoint failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void GetCorners(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ XNAVector3[] xna = xnaFrustum.GetCorners();
+ ANXVector3[] anx = anxFrustum.GetCorners();
+
+ if (xna.Equals(anx))
+ Assert.Pass("GetCorners passed");
+ else
+ Assert.Fail(String.Format("GetCorners failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void IntersectsBoundingBox(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float xMin, float yMin, float zMin, float xMax, float yMax, float zMax,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+ Microsoft.Xna.Framework.BoundingBox xnaBox = new Microsoft.Xna.Framework.BoundingBox(new XNAVector3(xMin, yMin, zMin), new XNAVector3(xMax, yMax, zMax));
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+ ANX.Framework.BoundingBox anxBox = new ANX.Framework.BoundingBox(new ANXVector3(xMin, yMin, zMin), new ANXVector3(xMax, yMax, zMax));
+
+ bool containsXNA = xnaFrustum.Intersects(xnaBox);
+ bool containsANX = anxFrustum.Intersects(anxBox);
+
+ if (containsXNA.Equals(containsANX))
+ Assert.Pass("IntersectsBoundingBox passed");
+ else
+ Assert.Fail(String.Format("IntersectsBoundingBox failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void IntersectsBoundingFrustum(
+ float m11_1, float m12_1, float m13_1, float m14_1, float m21_1, float m22_1, float m23_1, float m24_1, float m31_1, float m32_1, float m33_1, float m34_1, float m41_1, float m42_1, float m43_1, float m44_1,
+ float m11_2, float m12_2, float m13_2, float m14_2, float m21_2, float m22_2, float m23_2, float m24_2, float m31_2, float m32_2, float m33_2, float m34_2, float m41_2, float m42_2, float m43_2, float m44_2)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix1 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum1 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix1);
+ Microsoft.Xna.Framework.Matrix xnaMatrix2 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum2 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix2);
+
+ ANX.Framework.Matrix anxMatrix1 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum1 = new ANX.Framework.BoundingFrustum(anxMatrix1);
+ ANX.Framework.Matrix anxMatrix2 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum2 = new ANX.Framework.BoundingFrustum(anxMatrix2);
+
+ bool xna = xnaFrustum1.Intersects(xnaFrustum2);
+ bool anx = anxFrustum1.Intersects(anxFrustum2);
+
+ if (xna.Equals(anx))
+ Assert.Pass("IntersectsBoundingFrustum passed");
+ else
+ Assert.Fail(String.Format("IntersectsBoundingFrustum failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void IntersectsBoundingSphere(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float xS, float yS, float zS, float rS,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+ Microsoft.Xna.Framework.BoundingSphere xnaSphere = new Microsoft.Xna.Framework.BoundingSphere(new XNAVector3(xS, yS, zS), rS);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+ ANX.Framework.BoundingSphere anxSphere = new ANX.Framework.BoundingSphere(new ANXVector3(xS, yS, zS), rS);
+
+ bool xna = xnaFrustum.Intersects(xnaSphere);
+ bool anx = anxFrustum.Intersects(anxSphere);
+
+ if (xna.Equals(anx))
+ Assert.Pass("IntersectsBoundingSphere passed");
+ else
+ Assert.Fail(String.Format("IntersectsBoundingSphere failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void IntersectsPlane(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float xP, float yP, float zP, float dP,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+ Microsoft.Xna.Framework.Plane xnaPlane = new Microsoft.Xna.Framework.Plane(xP, yP, zP, dP);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+ ANX.Framework.Plane anxPlane = new ANX.Framework.Plane(xP, yP, zP, dP);
+
+ Microsoft.Xna.Framework.PlaneIntersectionType xna = xnaFrustum.Intersects(xnaPlane);
+ ANX.Framework.PlaneIntersectionType anx = anxFrustum.Intersects(anxPlane);
+
+ if (xna.Equals(anx))
+ Assert.Pass("IntersectsPlane passed");
+ else
+ Assert.Fail(String.Format("IntersectsPlane failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void IntersectsRay(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float xRay, float yRay, float zRay, float xDir, float yDir, float zDir,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+ Microsoft.Xna.Framework.Ray xnaRay = new Microsoft.Xna.Framework.Ray(new XNAVector3(xRay, yRay, zRay), new XNAVector3(xDir, yDir, zDir));
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+ ANX.Framework.Ray anxRay = new ANX.Framework.Ray(new ANXVector3(xRay, yRay, zRay), new ANXVector3(xDir, yDir, zDir));
+
+ float? xna = xnaFrustum.Intersects(xnaRay);
+ float? anx = anxFrustum.Intersects(anxRay);
+
+ if (xna.Equals(anx))
+ Assert.Pass("IntersectsRay passed");
+ else
+ Assert.Fail(String.Format("IntersectsRay failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+ #endregion
+
+ #region Properties
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void Bottom(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ Microsoft.Xna.Framework.Plane xna = xnaFrustum.Bottom;
+ ANX.Framework.Plane anx = anxFrustum.Bottom;
+
+ AssertHelper.ConvertEquals(xnaFrustum, anxFrustum, "Bottom");
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void Left(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ Microsoft.Xna.Framework.Plane xna = xnaFrustum.Left;
+ ANX.Framework.Plane anx = anxFrustum.Left;
+
+ AssertHelper.ConvertEquals(xnaFrustum, anxFrustum, "Left");
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void Right(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ Microsoft.Xna.Framework.Plane xna = xnaFrustum.Right;
+ ANX.Framework.Plane anx = anxFrustum.Right;
+
+ AssertHelper.ConvertEquals(xnaFrustum, anxFrustum, "Right");
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void Top(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ Microsoft.Xna.Framework.Plane xna = xnaFrustum.Top;
+ ANX.Framework.Plane anx = anxFrustum.Top;
+
+ AssertHelper.ConvertEquals(xnaFrustum, anxFrustum, "Top");
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void Near(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ Microsoft.Xna.Framework.Plane xna = xnaFrustum.Near;
+ ANX.Framework.Plane anx = anxFrustum.Near;
+
+ AssertHelper.ConvertEquals(xnaFrustum, anxFrustum, "Near");
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void Far(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ float nop0, float nop1, float nop2, float nop3, float nop4, float nop5, float nop6, float nop7, float nop8, float nop9, float nop10, float nop11, float nop12, float nop13, float nop14, float nop15)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix = new Microsoft.Xna.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix);
+
+ ANX.Framework.Matrix anxMatrix = new ANX.Framework.Matrix(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44);
+ ANX.Framework.BoundingFrustum anxFrustum = new ANX.Framework.BoundingFrustum(anxMatrix);
+
+ Microsoft.Xna.Framework.Plane xna = xnaFrustum.Far;
+ ANX.Framework.Plane anx = anxFrustum.Far;
+
+ AssertHelper.ConvertEquals(xnaFrustum, anxFrustum, "Far");
+ }
+ #endregion
+
+ #region Operators
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void EqualsOperator(
+ float m11_1, float m12_1, float m13_1, float m14_1, float m21_1, float m22_1, float m23_1, float m24_1, float m31_1, float m32_1, float m33_1, float m34_1, float m41_1, float m42_1, float m43_1, float m44_1,
+ float m11_2, float m12_2, float m13_2, float m14_2, float m21_2, float m22_2, float m23_2, float m24_2, float m31_2, float m32_2, float m33_2, float m34_2, float m41_2, float m42_2, float m43_2, float m44_2)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix1 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum1 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix1);
+ Microsoft.Xna.Framework.Matrix xnaMatrix2 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum2 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix2);
+
+ ANX.Framework.Matrix anxMatrix1 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum1 = new ANX.Framework.BoundingFrustum(anxMatrix1);
+ ANX.Framework.Matrix anxMatrix2 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum2 = new ANX.Framework.BoundingFrustum(anxMatrix2);
+
+ bool xna = xnaFrustum1 == xnaFrustum2;
+ bool anx = anxFrustum1 == anxFrustum2;
+
+ if (xna.Equals(anx))
+ {
+ Assert.Pass("EqualsOperator passed");
+ }
+ else
+ {
+ Assert.Fail(String.Format("EqualsOperator failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+ }
+
+ [Test, TestCaseSource("thirtytwofloats")]
+ public void UnequalsOperator(
+ float m11_1, float m12_1, float m13_1, float m14_1, float m21_1, float m22_1, float m23_1, float m24_1, float m31_1, float m32_1, float m33_1, float m34_1, float m41_1, float m42_1, float m43_1, float m44_1,
+ float m11_2, float m12_2, float m13_2, float m14_2, float m21_2, float m22_2, float m23_2, float m24_2, float m31_2, float m32_2, float m33_2, float m34_2, float m41_2, float m42_2, float m43_2, float m44_2)
+ {
+ Microsoft.Xna.Framework.Matrix xnaMatrix1 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum1 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix1);
+ Microsoft.Xna.Framework.Matrix xnaMatrix2 = new Microsoft.Xna.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ Microsoft.Xna.Framework.BoundingFrustum xnaFrustum2 = new Microsoft.Xna.Framework.BoundingFrustum(xnaMatrix2);
+
+ ANX.Framework.Matrix anxMatrix1 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum1 = new ANX.Framework.BoundingFrustum(anxMatrix1);
+ ANX.Framework.Matrix anxMatrix2 = new ANX.Framework.Matrix(m11_1, m12_1, m13_1, m14_1, m21_1, m22_1, m23_1, m24_1, m31_1, m32_1, m33_1, m34_1, m41_1, m42_1, m43_1, m44_1);
+ ANX.Framework.BoundingFrustum anxFrustum2 = new ANX.Framework.BoundingFrustum(anxMatrix2);
+
+ bool xna = xnaFrustum1 != xnaFrustum2;
+ bool anx = anxFrustum1 != anxFrustum2;
+
+ if (xna.Equals(anx))
+ {
+ Assert.Pass("UnequalsOperator passed");
+ }
+ else
+ {
+ Assert.Fail(String.Format("UnequalsOperator failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+ }
+ #endregion
+ }
+}
diff --git a/ANX.Framework.TestCenter/Strukturen/BoundingSphereTest.cs b/ANX.Framework.TestCenter/Strukturen/BoundingSphereTest.cs
index 56fbdb9b..938fe666 100644
--- a/ANX.Framework.TestCenter/Strukturen/BoundingSphereTest.cs
+++ b/ANX.Framework.TestCenter/Strukturen/BoundingSphereTest.cs
@@ -65,7 +65,7 @@ namespace ANX.Framework.TestCenter.Strukturen
class BoundingSphereTest
{
#region Helper
- static object[] fourfloat =
+ static object[] fourfloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -74,7 +74,7 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
};
- static object[] eightfloat =
+ static object[] eightfloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -83,7 +83,7 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
};
- static object[] tenfloat =
+ static object[] tenfloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -92,7 +92,7 @@ namespace ANX.Framework.TestCenter.Strukturen
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
};
- static object[] twentyfloat =
+ static object[] twentyfloats =
{
new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat,
DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat, DataFactory.RandomFloat },
@@ -119,7 +119,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "constructor0");
}
- [Test, TestCaseSource("fourfloat")]
+ [Test, TestCaseSource("fourfloats")]
public void constructor1(float x, float y, float z, float r)
{
XNABoundingSphere xna = new XNABoundingSphere(new XNAVector3(x, y, z), r);
@@ -131,7 +131,7 @@ namespace ANX.Framework.TestCenter.Strukturen
#endregion
#region Methods
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void ContainsBoundingBox(float xS, float yS, float zS, float rS, float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
XNABoundingSphere xnaSphere = new XNABoundingSphere(new XNAVector3(xS, yS, zS), rS);
@@ -153,8 +153,9 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsBoundingBox failed: xna({0}) anx({1})", containsANX.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("twentyfloat")]
- public void ContainsBoundingFrustum(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
+ [Test, TestCaseSource("twentyfloats")]
+ public void ContainsBoundingFrustum(
+ float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
float xS, float yS, float zS, float r)
{
XNABoundingSphere xnaSphere = new XNABoundingSphere(new XNAVector3(xS, yS, zS), r);
@@ -174,7 +175,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsBoundingFrustum failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("eightfloat")]
+ [Test, TestCaseSource("eightfloats")]
public void ContainsBoundingSphere(float x1, float y1, float z1, float r1, float x2, float y2, float z2, float r2)
{
XNABoundingSphere xnaSphere1 = new XNABoundingSphere(new XNAVector3(x1, y1, z1), r1);
@@ -192,7 +193,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsBoundingSphere failed: xna({0}) anx({1})", containsANX.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("eightfloat")]
+ [Test, TestCaseSource("eightfloats")]
public void ContainsPoint(float xS, float yS, float zS, float rS, float xP, float yP, float zP, float a)
{
XNABoundingSphere xnaSphere = new XNABoundingSphere(new XNAVector3(xS, yS, zS), rS);
@@ -210,7 +211,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("ContainsPoint failed: xna({0}) anx({1})", containsANX.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("eightfloat")]
+ [Test, TestCaseSource("eightfloats")]
public void CreateFromBoundingBox(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, float a, float b)
{
Microsoft.Xna.Framework.BoundingBox xnaBox = new Microsoft.Xna.Framework.BoundingBox(
@@ -227,7 +228,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "CreateFromBoundingBox");
}
- [Test, TestCaseSource("twentyfloat")]
+ [Test, TestCaseSource("twentyfloats")]
public void CreateFromFrustumStatic(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
float a, float b, float c, float d)
{
@@ -243,7 +244,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "CreateFromFrustumStatic");
}
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void CreateFromPointsStatic(
float x1, float y1, float z1,
float x2, float y2, float z2,
@@ -266,7 +267,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "CreateFromPointsStatic");
}
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void CreateMergedStatic(
float x1, float y1, float z1, float r1,
float x2, float y2, float z2, float r2,
@@ -284,7 +285,7 @@ namespace ANX.Framework.TestCenter.Strukturen
AssertHelper.ConvertEquals(xna, anx, "CreateMergedStatic");
}
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void IntersectsBoundingBox(float xS, float yS, float zS, float rS, float xMin, float yMin, float zMin, float xMax, float yMax, float zMax)
{
XNABoundingSphere xnaSphere = new XNABoundingSphere(new XNAVector3(xS, yS, zS), rS);
@@ -306,7 +307,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsBoundingBox failed: xna({0}) anx({1})", containsANX.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("twentyfloat")]
+ [Test, TestCaseSource("twentyfloats")]
public void IntersectsBoundingFrustum(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
float xS, float yS, float zS, float r)
{
@@ -327,7 +328,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsBoundingFrustum failed: xna({0}) anx({1})", containsXNA.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("eightfloat")]
+ [Test, TestCaseSource("eightfloats")]
public void IntersectsBoundingSphere(float x1, float y1, float z1, float r1, float x2, float y2, float z2, float r2)
{
XNABoundingSphere xnaSphere1 = new XNABoundingSphere(new XNAVector3(x1, y1, z1), r1);
@@ -345,7 +346,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsBoundingSphere failed: xna({0}) anx({1})", containsANX.ToString(), containsANX.ToString()));
}
- [Test, TestCaseSource("eightfloat")]
+ [Test, TestCaseSource("eightfloats")]
public void IntersectsPlane(float xS, float yS, float zS, float r, float xP, float yP, float zP, float dP)
{
XNABoundingSphere xnaSphere = new XNABoundingSphere(new XNAVector3(xS, yS, zS), r);
@@ -363,7 +364,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsPlane failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("tenfloat")]
+ [Test, TestCaseSource("tenfloats")]
public void IntersectsRay(
float xS, float yS, float zS, float r,
float xRay, float yRay, float zRay, float xDir, float yDir, float zDir)
@@ -383,7 +384,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("IntersectsRay failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("twentyfloat")]
+ [Test, TestCaseSource("twentyfloats")]
public void Transform(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44,
float xS, float yS, float zS, float r)
{
@@ -401,7 +402,7 @@ namespace ANX.Framework.TestCenter.Strukturen
#endregion
#region Properties
- [Test, TestCaseSource("fourfloat")]
+ [Test, TestCaseSource("fourfloats")]
public void Center(float x, float y, float z, float r)
{
XNABoundingSphere xnaSphere = new XNABoundingSphere(new XNAVector3(x, y, z), r);
@@ -419,7 +420,7 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("Center failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
- [Test, TestCaseSource("fourfloat")]
+ [Test, TestCaseSource("fourfloats")]
public void Radius(float x, float y, float z, float r)
{
XNABoundingSphere xnaSphere = new XNABoundingSphere(new XNAVector3(x, y, z), r);
@@ -435,5 +436,43 @@ namespace ANX.Framework.TestCenter.Strukturen
Assert.Fail(String.Format("Radius failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
}
#endregion
+
+ #region Operators
+ [Test, TestCaseSource("eightfloats")]
+ public void EqualsOperator(float x1, float y1, float z1, float r1, float x2, float y2, float z2, float r2)
+ {
+ XNABoundingSphere xnaSphere1 = new XNABoundingSphere(new XNAVector3(x1, y1, z1), r1);
+ XNABoundingSphere xnaSphere2 = new XNABoundingSphere(new XNAVector3(x2, y2, z2), r2);
+
+ ANXBoundingSphere anxSphere1 = new ANXBoundingSphere(new ANXVector3(x1, y1, z1), r1);
+ ANXBoundingSphere anxSphere2 = new ANXBoundingSphere(new ANXVector3(x2, y2, z2), r2);
+
+ bool xna = xnaSphere1 == xnaSphere2;
+ bool anx = anxSphere1 == anxSphere2;
+
+ if (xna.Equals(anx))
+ Assert.Pass("EqualsOperator passed");
+ else
+ Assert.Fail(String.Format("EqualsOperator failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+
+ [Test, TestCaseSource("eightfloats")]
+ public void UnequalsOperator(float x1, float y1, float z1, float r1, float x2, float y2, float z2, float r2)
+ {
+ XNABoundingSphere xnaSphere1 = new XNABoundingSphere(new XNAVector3(x1, y1, z1), r1);
+ XNABoundingSphere xnaSphere2 = new XNABoundingSphere(new XNAVector3(x2, y2, z2), r2);
+
+ ANXBoundingSphere anxSphere1 = new ANXBoundingSphere(new ANXVector3(x1, y1, z1), r1);
+ ANXBoundingSphere anxSphere2 = new ANXBoundingSphere(new ANXVector3(x2, y2, z2), r2);
+
+ bool xna = xnaSphere1 != xnaSphere2;
+ bool anx = anxSphere1 != anxSphere2;
+
+ if (xna.Equals(anx))
+ Assert.Pass("UnequalsOperator passed");
+ else
+ Assert.Fail(String.Format("UnequalsOperator failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+ #endregion
}
}
diff --git a/ANX.Framework.TestCenter/Strukturen/PointTest.cs b/ANX.Framework.TestCenter/Strukturen/PointTest.cs
new file mode 100644
index 00000000..94123aea
--- /dev/null
+++ b/ANX.Framework.TestCenter/Strukturen/PointTest.cs
@@ -0,0 +1,149 @@
+#region UsingStatements
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+#endregion
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+
+using XNAPoint = Microsoft.Xna.Framework.Point;
+using ANXPoint = ANX.Framework.Point;
+
+using NUnit.Framework;
+
+namespace ANX.Framework.TestCenter.Strukturen
+{
+ [TestFixture]
+ class PointTest
+ {
+ #region Helper
+ private static Random r = new Random();
+
+ public static int RandomInt
+ {
+ get { return r.Next(); }
+ }
+
+ static object[] twoint =
+ {
+ new object[] { RandomInt, RandomInt },
+ new object[] { RandomInt, RandomInt },
+ new object[] { RandomInt, RandomInt },
+ new object[] { RandomInt, RandomInt },
+ new object[] { RandomInt, RandomInt },
+ };
+
+
+ public void ConvertEquals(XNAPoint xna, ANXPoint anx, String test)
+ {
+ if (xna.X == anx.X &&
+ xna.Y == anx.Y)
+ Assert.Pass(String.Format("{0} passed", test));
+ else
+ Assert.Fail(String.Format("{0} failed: xna({1}) anx({2})", test, xna.ToString(), anx.ToString()));
+ }
+ #endregion
+
+ #region Constructors
+ [Test]
+ public void constructor0()
+ {
+ XNAPoint xna = new XNAPoint();
+
+ ANXPoint anx = new ANXPoint();
+
+ ConvertEquals(xna, anx, "constructor0");
+ }
+
+ [Test, TestCaseSource("twoint")]
+ public void constructor1(int x, int y)
+ {
+ XNAPoint xna = new XNAPoint(x, y);
+
+ ANXPoint anx = new ANXPoint(x, y);
+
+ ConvertEquals(xna, anx, "constructor1");
+ }
+ #endregion
+
+ #region Properties
+ [Test, TestCaseSource("twoint")]
+ public void X(int x, int y)
+ {
+ XNAPoint xnaPoint = new XNAPoint(x, y);
+
+ ANXPoint anxPoint = new ANXPoint(x, y);
+
+ int xna = xnaPoint.X;
+ int anx = anxPoint.X;
+
+ if (xna.Equals(anx))
+ Assert.Pass("X passed");
+ else
+ Assert.Fail(String.Format("X failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+
+ [Test, TestCaseSource("twoint")]
+ public void Y(int x, int y)
+ {
+ XNAPoint xnaPoint = new XNAPoint(x, y);
+
+ ANXPoint anxPoint = new ANXPoint(x, y);
+
+ int xna = xnaPoint.Y;
+ int anx = anxPoint.Y;
+
+ if (xna.Equals(anx))
+ Assert.Pass("Y passed");
+ else
+ Assert.Fail(String.Format("Y failed: xna({0}) anx({1})", xna.ToString(), anx.ToString()));
+ }
+ #endregion
+ }
+}
diff --git a/ANX.Framework/BoundingSphere.cs b/ANX.Framework/BoundingSphere.cs
index fc1c7602..5f6dab7f 100644
--- a/ANX.Framework/BoundingSphere.cs
+++ b/ANX.Framework/BoundingSphere.cs
@@ -248,11 +248,17 @@ namespace ANX.Framework
#region operator overloading
public static bool operator ==(BoundingSphere a, BoundingSphere b)
{
- throw new Exception("operator overloading has not yet been implemented");
+ return (a.Center.X == b.Center.X &&
+ a.Center.Y == b.Center.Y &&
+ a.Center.Z == b.Center.Z &&
+ a.Radius == b.Radius);
}
public static bool operator !=(BoundingSphere a, BoundingSphere b)
{
- throw new Exception("operator overloading has not yet been implemented");
+ return (a.Center.X != b.Center.X ||
+ a.Center.Y != b.Center.Y ||
+ a.Center.Z != b.Center.Z ||
+ a.Radius != b.Radius);
}
#endregion
}