示例#1
0
 public ListMeshStream(IEnumerable <T> data, IStreamConverterFactory converterFactory = null,
                       IStreamMetaInfo metaInfo = null)
 {
     ConverterFactory = converterFactory ?? StreamConverterFactory.Default;
     MetaInfo         = metaInfo ?? ConverterFactory.GetMetaInfo(typeof(T));
     AddRange(data);
 }
示例#2
0
 public ListMeshStream(int capacity, IStreamConverterFactory converterFactory = null,
                       IStreamMetaInfo metaInfo = null)
     : base(capacity)
 {
     ConverterFactory = converterFactory ?? StreamConverterFactory.Default;
     MetaInfo         = metaInfo ?? ConverterFactory.GetMetaInfo(typeof(T));
 }
示例#3
0
 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");
        }
示例#6
0
 public ListMeshStream(IStreamConverterFactory converterFactory = null, IStreamMetaInfo metaInfo = null)
 {
     ConverterFactory = converterFactory ?? StreamConverterFactory.Default;
     MetaInfo         = metaInfo ?? ConverterFactory.GetMetaInfo(typeof(T));
 }
示例#7
0
 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)
 {
 }