public static Accessor CreateVertexAccessor(this ModelRoot root, Memory.MemoryAccessor memAccessor) { Guard.NotNull(memAccessor, nameof(memAccessor)); var accessor = root.CreateAccessor(memAccessor.Attribute.Name); accessor.SetVertexData(memAccessor); return(accessor); }
public static MeshPrimitive WithVertexAccessor(this MeshPrimitive primitive, Memory.MemoryAccessor memAccessor) { Guard.NotNull(primitive, nameof(primitive)); Guard.NotNull(memAccessor, nameof(memAccessor)); var root = primitive.LogicalParent.LogicalParent; primitive.SetVertexAccessor(memAccessor.Attribute.Name, root.CreateVertexAccessor(memAccessor)); return(primitive); }
public void SetIndices(IPrimitiveReader <TMaterial> srcPrim, EncodingType encoding) { Guard.NotNull(srcPrim, nameof(srcPrim)); var iAccessor = VertexTypes.VertexUtils.CreateIndexMemoryAccessor(srcPrim.GetIndices(), encoding); if (_VerticesPerPrimitive == 1) { Guard.MustBeNull(iAccessor, nameof(srcPrim)); } else { Guard.NotNull(iAccessor, nameof(iAccessor)); } _IndexAccessors = iAccessor; }
private static Memory.MemoryAccessor _RemoveDelta(Memory.MemoryAccessor accessor) { var name = accessor.Attribute.Name; if (!name.EndsWith("DELTA", StringComparison.Ordinal)) { throw new InvalidOperationException(); } name = name.Replace("DELTA", string.Empty); var attr = accessor.Attribute; attr.Name = name; return(new SharpGLTF.Memory.MemoryAccessor(accessor.Data, attr)); }
public void AddPrimitive(TMaterial material, Memory.MemoryAccessor[] vrtAccessors, Memory.MemoryAccessor idxAccessor) { var p = new PackedPrimitiveBuilder <TMaterial>(material, vrtAccessors, idxAccessor); _Primitives.Add(p); }
internal PackedPrimitiveBuilder(TMaterial material, Memory.MemoryAccessor[] vrtAccessors, Memory.MemoryAccessor idxAccessor) { _Material = material; _VertexAccessors = vrtAccessors; _IndexAccessors = idxAccessor; }
public static MeshPrimitive WithIndicesAccessor(this MeshPrimitive primitive, PrimitiveType primitiveType, Memory.MemoryAccessor memAccessor) { Guard.NotNull(primitive, nameof(primitive)); var root = primitive.LogicalParent.LogicalParent; var accessor = root.CreateAccessor(); accessor.SetIndexData(memAccessor); primitive.DrawPrimitiveType = primitiveType; primitive.SetIndexAccessor(accessor); return(primitive); }