public Memory.IEncodedArray <Single> AsScalarArray() { if (!_Sparse.HasValue) { return(_MemoryAccessor.AsScalarArray()); } return(MemoryAccessor.CreateScalarSparseArray(_MemoryAccessor, _Sparse.Value.Key, _Sparse.Value.Value)); }
private static void FillAccessor <TVertex>(this MemoryAccessor dstAccessor, IReadOnlyList <TVertex> srcVertices) where TVertex : IVertexBuilder { var columnFunc = _GetVertexBuilderAttributeFunc(dstAccessor.Attribute.Name); if (dstAccessor.Attribute.Dimensions == Schema2.DimensionType.SCALAR) { dstAccessor.AsScalarArray().Fill(srcVertices._GetColumn <TVertex, Single>(columnFunc)); } if (dstAccessor.Attribute.Dimensions == Schema2.DimensionType.VEC2) { dstAccessor.AsVector2Array().Fill(srcVertices._GetColumn <TVertex, Vector2>(columnFunc)); } if (dstAccessor.Attribute.Dimensions == Schema2.DimensionType.VEC3) { dstAccessor.AsVector3Array().Fill(srcVertices._GetColumn <TVertex, Vector3>(columnFunc)); } if (dstAccessor.Attribute.Dimensions == Schema2.DimensionType.VEC4) { dstAccessor.AsVector4Array().Fill(srcVertices._GetColumn <TVertex, Vector4>(columnFunc)); } }