public void StringCompatibility() { var mat = new SFMatrix4f(); var str = mat.ToString(); Assert.AreEqual(mat.ToString(), "1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1"); }
public void Constructors() { var mat = new SFMatrix4f(); Assert.IsTrue(Math.Abs(mat.Elements[0, 0] - 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[0, 1] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[0, 2] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[0, 3] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 0] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 1] - 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 2] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 3] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 0] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 1] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 2] - 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 3] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 0] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 1] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 2] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 3] - 1) < EPSILON); var elements = new SFFloat[, ] { { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { -1, -1, -1, -1 }, { 0, 0, 0, 0 } }; mat = new SFMatrix4f(elements); Assert.IsTrue(Math.Abs(mat.Elements[0, 0] - 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[0, 1] - 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[0, 2] - 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[0, 3] - 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 0] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 1] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 2] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[1, 3] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 0] + 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 1] + 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 2] + 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[2, 3] + 1) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 0] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 1] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 2] - 0) < EPSILON); Assert.IsTrue(Math.Abs(mat.Elements[3, 3] - 0) < EPSILON); try { var element = new SFFloat[, ] { { 1 }, { 0 } }; new SFMatrix4f(element); Assert.Fail(); } catch (ArgumentException) { } }
internal override bool ParseNodeBodyElement(string id, VRMLParser parser) { if (id == "matrix") { Matrix = parser.ParseSFMatrix4fValue(); } else { return(false); } return(true); }
public void Equals() { var mat1 = new SFMatrix4f(); var mat2 = new SFMatrix4f(); Assert.AreEqual(mat1, mat2); var test = new SFFloat[, ] { { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { -1, -1, -1, -1 }, { -1, -1, -1, -1 } }; mat1 = new SFMatrix4f(test); mat2 = new SFMatrix4f(test); Assert.AreEqual(mat1.GetHashCode(), mat2.GetHashCode()); }
internal SFMatrix4f ParseSFMatrix4fValue() { // 16x float try { SFMatrix4f ret = new SFMatrix4f(); for (int i = 0; i < 16; i++) { ret.Value.Add(ParseDoubleValue()); } return(ret); } catch (UserCancellationException) { throw; } catch (Exception ex) { ErrorParsingField(VRMLReaderError.SFMatrix4fInvalid, ex); } return(null); }
public x3dTextureTransformMatrix3D() { Matrix = new SFMatrix4f(new List <double>(new double[] { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 })); }