Exemple #1
0
        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");
        }
Exemple #2
0
        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);
 }
Exemple #4
0
        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());
        }
Exemple #5
0
        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 }));
 }