public ListMeshStream(IEnumerable <T> data, IStreamConverterFactory converterFactory = null, IStreamMetaInfo metaInfo = null) { ConverterFactory = converterFactory ?? StreamConverterFactory.Default; MetaInfo = metaInfo ?? ConverterFactory.GetMetaInfo(typeof(T)); AddRange(data); }
public ListMeshStream(int capacity, IStreamConverterFactory converterFactory = null, IStreamMetaInfo metaInfo = null) : base(capacity) { ConverterFactory = converterFactory ?? StreamConverterFactory.Default; MetaInfo = metaInfo ?? ConverterFactory.GetMetaInfo(typeof(T)); }
public bool Equals(IStreamMetaInfo other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(ValueType.Equals(other.ValueType) && ComponentsPerSet == other.ComponentsPerSet && NumberOfSets == other.NumberOfSets && BaseType.Equals(other.BaseType)); }
public DictionaryMeshStream(Func <Value, Key> getKey, IEnumerable <Value> data, IStreamConverterFactory converterFactory, IEqualityComparer <Key> comparer, IStreamMetaInfo metaInfo) { _getKey = getKey; this.data = new Dictionary <Key, int>(comparer); dataList = new List <Value>(); foreach (var item in data) { Add(item); } ConverterFactory = converterFactory ?? StreamConverterFactory.Default; this.comparer = comparer; MetaInfo = metaInfo ?? ConverterFactory.GetMetaInfo(typeof(Value)); }
private DimensionType GetDimensionType(IStreamMetaInfo streamMetaInfo) { if (streamMetaInfo.NumberOfSets == 1) { switch (streamMetaInfo.ComponentsPerSet) { case 1: return(DimensionType.SCALAR); case 2: return(DimensionType.VEC2); case 3: return(DimensionType.VEC3); case 4: return(DimensionType.VEC4); } } throw new NotImplementedException( $"Can't deduce dimension type from {streamMetaInfo.NumberOfSets}x{streamMetaInfo.ComponentsPerSet} data dimensions"); }
public ListMeshStream(IStreamConverterFactory converterFactory = null, IStreamMetaInfo metaInfo = null) { ConverterFactory = converterFactory ?? StreamConverterFactory.Default; MetaInfo = metaInfo ?? ConverterFactory.GetMetaInfo(typeof(T)); }
public static IMeshStream Create <T>(T[] data, IStreamConverterFactory converterFactory, IStreamMetaInfo metaInfo) { return(new ArrayMeshStream <T>(data, converterFactory, metaInfo)); }
public DictionaryMeshStream(Func <Value, Key> getKey, IStreamConverterFactory converterFactory, IStreamMetaInfo metaInfo) : this(getKey, new Value[0], converterFactory, EqualityComparer <Key> .Default, metaInfo) { }