private ListMeshStream<int> EnsureStream(SeparateStreamsSubmesh separateStreamsSubmesh, string key, int channel) { return separateStreamsSubmesh.GetIndexStream(key, channel) as ListMeshStream<int> ?? separateStreamsSubmesh.SetIndexStream(key, channel, new ListMeshStream<int>(streamConverterFactory)); }
private List<Tuple<int, ListMeshStream<int>>> StreamListOrderedByOffset(MeshInputs meshInputs, SeparateStreamsSubmesh subMesh) { var streamList = new List<Tuple<int, ListMeshStream<int>>>(); foreach (var meshInput in meshInputs.Inputs.OrderBy(x => x.Offset)) { var listMeshStream = new ListMeshStream<int>(meshInputs.Count, streamConverterFactory); streamList.Add(new Tuple<int, ListMeshStream<int>>(meshInput.Offset, listMeshStream)); var key = meshInput.Semantic; if (key == "VERTEX") key = Streams.Position; subMesh.SetIndexStream(key, meshInput.Set, listMeshStream); } return streamList; }