public void TestFloatingArrayEncoding2() { var v1 = new Vector4(0.1f, 0.2f, 0.6f, 0.8f); var v2 = new Vector4(1, 2, 3, 4); var bytes = new Byte[256]; var v4n = new Vector4Array(bytes, 0, 5, 8, Schema2.EncodingType.UNSIGNED_BYTE, true); var v4u = new Vector4Array(bytes, 4, 5, 8, Schema2.EncodingType.UNSIGNED_BYTE, false); v4n[1] = v1; NumericsAssert.AreEqual(v4n[1], v1, 0.1f); v4u[1] = v2; NumericsAssert.AreEqual(v4u[1], v2); }
public void FillEncoded2() { var v1 = new Vector4(0.1f, 0.2f, 0.6f, 0.8f); var v2 = new Vector4(1, 2, 3, 4); var bytes = new Byte[256]; var v4n = new Vector4Array(bytes, 0, 5, 8, Schema2.EncodingType.UNSIGNED_BYTE, true); var v4u = new Vector4Array(bytes, 4, 5, 8, Schema2.EncodingType.UNSIGNED_BYTE, false); v4n[1] = v1; VectorUtils.AreEqual(v4n[1], v1, 0.1f); v4u[1] = v2; VectorUtils.AreEqual(v4u[1], v2); }
public static MeshPrimitive WithVertexAccessor(this MeshPrimitive primitive, string attribute, IReadOnlyList <Vector4> values) { var root = primitive.LogicalParent.LogicalParent; // create a vertex buffer and fill it var view = root.UseBufferView(new Byte[16 * values.Count], 0, null, 0, BufferMode.ARRAY_BUFFER); var array = new Vector4Array(view.Content); array.FillFrom(0, values); var accessor = root.CreateAccessor(); accessor.SetVertexData(view, 0, values.Count, DimensionType.VEC4, EncodingType.FLOAT, false); primitive.SetVertexAccessor(attribute, accessor); return(primitive); }