Beispiel #1
0
        public bool Equals(Matrix3F other)
        {
            if (Matrix3F.ReferenceEquals(other, null))
            {
                return false;
            }

            for (int i = 0; i < _values.Length; ++i)
            {
                if (!_values[i].Equals(other._values[i]))
                {
                    return false;
                }
            }

            return true;
        }
Beispiel #2
0
        public bool Equals(Matrix3F other)
        {
            if (Matrix3F.ReferenceEquals(other, null))
            {
                return(false);
            }

            for (int i = 0; i < _values.Length; ++i)
            {
                if (!_values[i].Equals(other._values[i]))
                {
                    return(false);
                }
            }

            return(true);
        }
Beispiel #3
0
        public void DoubleToFloat()
        {
            Matrix3D m = new Matrix3D(
                1.0, 2.0, 3.0,
                4.0, 5.0, 6.0,
                7.0, 8.0, 9.0);

            Matrix3F mf = m.ToMatrix4F();

            Assert.AreEqual(1.0, mf.ReadOnlyColumnMajorValues[0], 1e-7);
            Assert.AreEqual(4.0, mf.ReadOnlyColumnMajorValues[1], 1e-7);
            Assert.AreEqual(7.0, mf.ReadOnlyColumnMajorValues[2], 1e-7);
            Assert.AreEqual(2.0, mf.ReadOnlyColumnMajorValues[3], 1e-7);
            Assert.AreEqual(5.0, mf.ReadOnlyColumnMajorValues[4], 1e-7);
            Assert.AreEqual(8.0, mf.ReadOnlyColumnMajorValues[5], 1e-7);
            Assert.AreEqual(3.0, mf.ReadOnlyColumnMajorValues[6], 1e-7);
            Assert.AreEqual(6.0, mf.ReadOnlyColumnMajorValues[7], 1e-7);
            Assert.AreEqual(9.0, mf.ReadOnlyColumnMajorValues[8], 1e-7);
        }
Beispiel #4
0
        public void Matrix3()
        {
            string fs =
                @"#version 330

                  uniform mat3 exampleMat3;
                  out vec3 FragColor;

                  void main()
                  {
                      FragColor = vec3(exampleMat3[0].y, exampleMat3[2].x, 0.0);
                  }";

            using (GraphicsWindow window = Device.CreateWindow(1, 1))
            using (Framebuffer framebuffer = TestUtility.CreateFramebuffer(window.Context))
            using (ShaderProgram sp = Device.CreateShaderProgram(ShaderSources.PassThroughVertexShader(), fs))
            using (VertexArray va = TestUtility.CreateVertexArray(window.Context, sp.VertexAttributes["position"].Location))
            {
                Matrix3F m3 = new Matrix3F(
                        0.0f, 0.0f, 1.0f,
                        1.0f, 0.0f, 0.0f,
                        0.0f, 0.0f, 0.0f);
                Uniform<Matrix3F> exampleMat3 = (Uniform<Matrix3F>)sp.Uniforms["exampleMat3"];
                Assert.AreEqual("exampleMat3", exampleMat3.Name);
                Assert.AreEqual(UniformType.FloatMatrix33, exampleMat3.Datatype);
                Assert.AreEqual(new Matrix3F(), exampleMat3.Value);
                exampleMat3.Value = m3;
                Assert.AreEqual(m3, exampleMat3.Value);

                window.Context.Framebuffer = framebuffer;
                window.Context.Draw(PrimitiveType.Points, 0, 1, new DrawState(TestUtility.CreateRenderStateWithoutDepthTest(), sp, va), new SceneState());
                TestUtility.ValidateColor(framebuffer.ColorAttachments[0], 255, 255, 0);
            }
        }