/// <summary /> protected override void OnLoad(BinaryReader reader) { var header = reader.ReadChars(_robloxMeshVersion1.Length); if (VisualC.CompareMemory(header, _robloxMeshVersion1, header.Length) == 0) // special case for roblox mesh { return; } reader.BaseStream.Position = 0; base.OnLoad(reader); var vertCount = reader.ReadInt32(); Vertices = new Vertex[vertCount]; for (var i = 0; i < vertCount; i++) { var vert = new Vertex(); vert.Load(reader); Vertices[i] = vert; } }
public override void Load(byte[] data) { FileHeader header = new FileHeader(); int offset = 0; header.Load(data, ref offset); offset = header.VertexOffset; List <Vector3> verts = new List <Vector3>(); for (int i = 0; i < header.VertexCount; i++) { Vertex vert = new Vertex(); vert.Load(data, ref offset); verts.Add(vert.Position); } List <int> tris = new List <int>(); offset = header.TriangleOffset; for (int i = 0; i < header.TriangleCount; i++) { Triangle tri = new Triangle(); tri.Load(data, ref offset); for (int k = 0; k < 3; k++) { tris.Add(tri.Vertices[k]); } /*Renderable = new RenderData(verts.Count, tris.Count); * Renderable.Vertexes = verts.ToArray(); * Renderable.Indexes = tris.ToArray();*/ } _byteCopy = data; }
public override void Load(byte[] data) { FileHeader header = new FileHeader(); int offset = 0; header.Load(data, ref offset); offset = header.VertexOffset; List<Vector3> verts = new List<Vector3>(); for (int i = 0; i < header.VertexCount; i++) { Vertex vert = new Vertex(); vert.Load(data, ref offset); verts.Add(vert.Position); } List<int> tris = new List<int>(); offset = header.TriangleOffset; for (int i = 0; i < header.TriangleCount; i++) { Triangle tri = new Triangle(); tri.Load(data, ref offset); for(int k = 0; k < 3; k++) tris.Add(tri.Vertices[k]); /*Renderable = new RenderData(verts.Count, tris.Count); Renderable.Vertexes = verts.ToArray(); Renderable.Indexes = tris.ToArray();*/ } _byteCopy = data; }