public void FromPmxMorph(PmxMorph m, bool nonStr = false) { if (!nonStr) { Name = m.Name; NameE = m.NameE; } Panel = m.Panel; Kind = m.Kind; int count = m.OffsetList.Count; OffsetList.Clear(); OffsetList.Capacity = count; for (int i = 0; i < count; i++) { OffsetList.Add(m.OffsetList[i].Clone()); } FromID(m); }
public void Clear() { Contents.Clear(); }
public void FromStreamEx(Stream s, PmxElementFormat f = null) { Name = PmxStreamHelper.ReadString(s, f); NameE = PmxStreamHelper.ReadString(s, f); Panel = PmxStreamHelper.ReadElement_Int32(s, 1); Kind = (OffsetKind)PmxStreamHelper.ReadElement_Int32(s, 1); int num = PmxStreamHelper.ReadElement_Int32(s); OffsetList.Clear(); OffsetList.Capacity = num; for (int i = 0; i < num; i++) { switch (Kind) { case OffsetKind.Group: case OffsetKind.Flip: { PmxGroupMorph pmxGroupMorph = new PmxGroupMorph(); pmxGroupMorph.FromStreamEx(s, f); OffsetList.Add(pmxGroupMorph); break; } case OffsetKind.Vertex: { PmxVertexMorph pmxVertexMorph = new PmxVertexMorph(); pmxVertexMorph.FromStreamEx(s, f); OffsetList.Add(pmxVertexMorph); break; } case OffsetKind.Bone: { PmxBoneMorph pmxBoneMorph = new PmxBoneMorph(); pmxBoneMorph.FromStreamEx(s, f); OffsetList.Add(pmxBoneMorph); break; } case OffsetKind.Impulse: { PmxImpulseMorph pmxImpulseMorph = new PmxImpulseMorph(); pmxImpulseMorph.FromStreamEx(s, f); OffsetList.Add(pmxImpulseMorph); break; } case OffsetKind.Material: { PmxMaterialMorph pmxMaterialMorph = new PmxMaterialMorph(); pmxMaterialMorph.FromStreamEx(s, f); OffsetList.Add(pmxMaterialMorph); break; } case OffsetKind.UV: case OffsetKind.UVA1: case OffsetKind.UVA2: case OffsetKind.UVA3: case OffsetKind.UVA4: { PmxUVMorph pmxUVMorph = new PmxUVMorph(); pmxUVMorph.FromStreamEx(s, f); OffsetList.Add(pmxUVMorph); break; } } } if (f.WithID) { base.UID = PmxStreamHelper.ReadElement_UInt(s); base.CID = PmxStreamHelper.ReadElement_UInt(s); } }