public void ToStreamEx_TexTable(Stream s, PmxTextureTable tx, PmxElementFormat f = null) { PmxStreamHelper.WriteString(s, Name, f); PmxStreamHelper.WriteString(s, NameE, f); V4_BytesConvert.ToStream(s, Diffuse); V3_BytesConvert.ToStream(s, Specular); PmxStreamHelper.WriteElement_Float(s, Power); V3_BytesConvert.ToStream(s, Ambient); s.WriteByte((byte)Flags); V4_BytesConvert.ToStream(s, EdgeColor); PmxStreamHelper.WriteElement_Float(s, EdgeSize); PmxStreamHelper.WriteElement_Int32(s, tx.GetIndex(Tex), f.TexSize); PmxStreamHelper.WriteElement_Int32(s, tx.GetIndex(Sphere), f.TexSize); s.WriteByte((byte)SphereMode); int toonIndex = SystemToon.GetToonIndex(Toon); if (toonIndex < 0) { s.WriteByte(0); PmxStreamHelper.WriteElement_Int32(s, tx.GetIndex(Toon), f.TexSize); } else { s.WriteByte(1); s.WriteByte((byte)toonIndex); } PmxStreamHelper.WriteString(s, Memo, f); PmxStreamHelper.WriteElement_Int32(s, FaceCount); if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { PmxStreamHelper.WriteString(s, Name, f); PmxStreamHelper.WriteString(s, NameE, f); if (Kind != 0 && f.Ver < 2.1f) { s.WriteByte(0); } else { s.WriteByte((byte)Kind); } PmxStreamHelper.WriteElement_Int32(s, BodyA, f.BodySize); PmxStreamHelper.WriteElement_Int32(s, BodyB, f.BodySize); V3_BytesConvert.ToStream(s, Position); V3_BytesConvert.ToStream(s, Rotation); V3_BytesConvert.ToStream(s, Limit_MoveLow); V3_BytesConvert.ToStream(s, Limit_MoveHigh); V3_BytesConvert.ToStream(s, Limit_AngleLow); V3_BytesConvert.ToStream(s, Limit_AngleHigh); V3_BytesConvert.ToStream(s, SpConst_Move); V3_BytesConvert.ToStream(s, SpConst_Rotate); if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public virtual void ToStreamEx(Stream s, PmxElementFormat f = null) { if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { if (IsImpulse && f.Ver < 2.1f) { return; } PmxStreamHelper.WriteString(s, Name, f); PmxStreamHelper.WriteString(s, NameE, f); PmxStreamHelper.WriteElement_Int32(s, Panel, 1); if (IsFlip && f.Ver < 2.1f) { PmxStreamHelper.WriteElement_Int32(s, 0, 1); } else { PmxStreamHelper.WriteElement_Int32(s, (int)Kind, 1); } PmxStreamHelper.WriteElement_Int32(s, OffsetList.Count); for (int i = 0; i < OffsetList.Count; i++) { switch (Kind) { case OffsetKind.Group: case OffsetKind.Flip: (OffsetList[i] as PmxGroupMorph).ToStreamEx(s, f); break; case OffsetKind.Vertex: (OffsetList[i] as PmxVertexMorph).ToStreamEx(s, f); break; case OffsetKind.Bone: (OffsetList[i] as PmxBoneMorph).ToStreamEx(s, f); break; case OffsetKind.Impulse: (OffsetList[i] as PmxImpulseMorph).ToStreamEx(s, f); break; case OffsetKind.Material: (OffsetList[i] as PmxMaterialMorph).ToStreamEx(s, f); break; case OffsetKind.UV: case OffsetKind.UVA1: case OffsetKind.UVA2: case OffsetKind.UVA3: case OffsetKind.UVA4: (OffsetList[i] as PmxUVMorph).ToStreamEx(s, f); break; } } if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { V3_BytesConvert.ToStream(s, Position); V3_BytesConvert.ToStream(s, Normal); V2_BytesConvert.ToStream(s, UV); for (int i = 0; i < f.UVACount; i++) { V4_BytesConvert.ToStream(s, UVA[i]); } if (Deform == DeformType.QDEF && f.Ver < 2.1f) { s.WriteByte(2); } else { s.WriteByte((byte)Deform); } switch (Deform) { case DeformType.BDEF1: PmxStreamHelper.WriteElement_Int32(s, Weight[0].Bone, f.BoneSize); break; case DeformType.BDEF2: PmxStreamHelper.WriteElement_Int32(s, Weight[0].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Int32(s, Weight[1].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Float(s, Weight[0].Value); break; case DeformType.BDEF4: case DeformType.QDEF: PmxStreamHelper.WriteElement_Int32(s, Weight[0].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Int32(s, Weight[1].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Int32(s, Weight[2].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Int32(s, Weight[3].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Float(s, Weight[0].Value); PmxStreamHelper.WriteElement_Float(s, Weight[1].Value); PmxStreamHelper.WriteElement_Float(s, Weight[2].Value); PmxStreamHelper.WriteElement_Float(s, Weight[3].Value); break; case DeformType.SDEF: PmxStreamHelper.WriteElement_Int32(s, Weight[0].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Int32(s, Weight[1].Bone, f.BoneSize); PmxStreamHelper.WriteElement_Float(s, Weight[0].Value); V3_BytesConvert.ToStream(s, C0); V3_BytesConvert.ToStream(s, R0); V3_BytesConvert.ToStream(s, R1); break; } PmxStreamHelper.WriteElement_Float(s, EdgeScale); if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { PmxStreamHelper.WriteString(s, Name, f); PmxStreamHelper.WriteString(s, NameE, f); PmxStreamHelper.WriteElement_Int32(s, (int)Shape, 1); PmxStreamHelper.WriteElement_Int32(s, Material, f.MaterialSize); PmxStreamHelper.WriteElement_Int32(s, Group, 1); PmxStreamHelper.WriteElement_Int32(s, PassGroup.ToFlagBits(), 2, signed: false); PmxStreamHelper.WriteElement_Int32(s, (int)Flags, 1, signed: false); PmxStreamHelper.WriteElement_Int32(s, BendingLinkDistance); PmxStreamHelper.WriteElement_Int32(s, ClusterCount); PmxStreamHelper.WriteElement_Float(s, TotalMass); PmxStreamHelper.WriteElement_Float(s, Margin); PmxStreamHelper.WriteElement_Int32(s, Config.AeroModel); PmxStreamHelper.WriteElement_Float(s, Config.VCF); PmxStreamHelper.WriteElement_Float(s, Config.DP); PmxStreamHelper.WriteElement_Float(s, Config.DG); PmxStreamHelper.WriteElement_Float(s, Config.LF); PmxStreamHelper.WriteElement_Float(s, Config.PR); PmxStreamHelper.WriteElement_Float(s, Config.VC); PmxStreamHelper.WriteElement_Float(s, Config.DF); PmxStreamHelper.WriteElement_Float(s, Config.MT); PmxStreamHelper.WriteElement_Float(s, Config.CHR); PmxStreamHelper.WriteElement_Float(s, Config.KHR); PmxStreamHelper.WriteElement_Float(s, Config.SHR); PmxStreamHelper.WriteElement_Float(s, Config.AHR); PmxStreamHelper.WriteElement_Float(s, Config.SRHR_CL); PmxStreamHelper.WriteElement_Float(s, Config.SKHR_CL); PmxStreamHelper.WriteElement_Float(s, Config.SSHR_CL); PmxStreamHelper.WriteElement_Float(s, Config.SR_SPLT_CL); PmxStreamHelper.WriteElement_Float(s, Config.SK_SPLT_CL); PmxStreamHelper.WriteElement_Float(s, Config.SS_SPLT_CL); PmxStreamHelper.WriteElement_Int32(s, Config.V_IT); PmxStreamHelper.WriteElement_Int32(s, Config.P_IT); PmxStreamHelper.WriteElement_Int32(s, Config.D_IT); PmxStreamHelper.WriteElement_Int32(s, Config.C_IT); PmxStreamHelper.WriteElement_Float(s, MaterialConfig.LST); PmxStreamHelper.WriteElement_Float(s, MaterialConfig.AST); PmxStreamHelper.WriteElement_Float(s, MaterialConfig.VST); PmxStreamHelper.WriteElement_Int32(s, BodyAnchorList.Count); for (int i = 0; i < BodyAnchorList.Count; i++) { PmxStreamHelper.WriteElement_Int32(s, BodyAnchorList[i].Body, f.BodySize); PmxStreamHelper.WriteElement_Int32(s, BodyAnchorList[i].Vertex, f.VertexSize, signed: false); PmxStreamHelper.WriteElement_Int32(s, BodyAnchorList[i].IsNear ? 1 : 0, 1); } PmxStreamHelper.WriteElement_Int32(s, VertexPinList.Count); for (int j = 0; j < VertexPinList.Count; j++) { PmxStreamHelper.WriteElement_Int32(s, VertexPinList[j].Vertex, f.VertexSize, signed: false); } if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { PmxStreamHelper.WriteString(s, Name, f); PmxStreamHelper.WriteString(s, NameE, f); V3_BytesConvert.ToStream(s, Position); PmxStreamHelper.WriteElement_Int32(s, Parent, f.BoneSize); PmxStreamHelper.WriteElement_Int32(s, Level); PmxStreamHelper.WriteElement_Int32(s, (int)Flags, 2, signed: false); if (GetFlag(BoneFlags.ToBone)) { PmxStreamHelper.WriteElement_Int32(s, To_Bone, f.BoneSize); } else { V3_BytesConvert.ToStream(s, To_Offset); } if (GetFlag(BoneFlags.AddRotation) || GetFlag(BoneFlags.AddTranslation)) { PmxStreamHelper.WriteElement_Int32(s, AddParent, f.BoneSize); PmxStreamHelper.WriteElement_Float(s, AddRatio); } if (GetFlag(BoneFlags.FixAxis)) { V3_BytesConvert.ToStream(s, Axis); } if (GetFlag(BoneFlags.LocalFrame)) { if (!f.WithID) { NormalizeLocal(); } V3_BytesConvert.ToStream(s, LocalX); V3_BytesConvert.ToStream(s, LocalZ); } if (GetFlag(BoneFlags.ExtParent)) { PmxStreamHelper.WriteElement_Int32(s, ExtKey); } if (GetFlag(BoneFlags.IK)) { IK.ToStreamEx(s, f); } if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { PmxStreamHelper.WriteString(s, Name, f); PmxStreamHelper.WriteString(s, NameE, f); s.WriteByte((byte)(SystemNode ? 1u : 0u)); PmxStreamHelper.WriteElement_Int32(s, ElementList.Count); for (int i = 0; i < ElementList.Count; i++) { ElementList[i].ToStreamEx(s, f); } if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { s.WriteByte((byte)ElementType); switch (ElementType) { case ElementType.Bone: PmxStreamHelper.WriteElement_Int32(s, Index, f.BoneSize); break; case ElementType.Morph: PmxStreamHelper.WriteElement_Int32(s, Index, f.MorphSize); break; } if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }
public void ToStreamEx(Stream s, PmxElementFormat f = null) { PmxStreamHelper.WriteString(s, Name, f); PmxStreamHelper.WriteString(s, NameE, f); PmxStreamHelper.WriteElement_Int32(s, Bone, f.BoneSize); PmxStreamHelper.WriteElement_Int32(s, Group, 1); PmxStreamHelper.WriteElement_Int32(s, PassGroup.ToFlagBits(), 2, signed: false); s.WriteByte((byte)BoxType); V3_BytesConvert.ToStream(s, BoxSize); V3_BytesConvert.ToStream(s, Position); V3_BytesConvert.ToStream(s, Rotation); PmxStreamHelper.WriteElement_Float(s, Mass); V4_BytesConvert.ToStream(s, new Vector4(PositionDamping, RotationDamping, Restitution, Friction)); s.WriteByte((byte)Mode); if (f.WithID) { PmxStreamHelper.WriteElement_UInt(s, base.UID); PmxStreamHelper.WriteElement_UInt(s, base.CID); } }