public MqChunk ToChunk() { baseChunk = baseChunk ?? new MqChunk(); baseChunk.SetArguments(this.Vertices.Length.ToString()); baseChunk.SetAttributes(new[] { new MqChunkAttribute("V", this.Vertices.Select(_ => _.ToString())), new MqChunkAttribute("M", this.Material.ToString()), this.UV == null ? null : new MqChunkAttribute("UV", this.UV.SelectMany(_ => _).Select(f => f.ToString("0.00000"))), this.VertexColor == null ? null : new MqChunkAttribute("COL", this.VertexColor.Select(_ => _.ToString())), } .Where(_ => _ != null)); return(baseChunk); }
public MqChunk ToChunk() { baseChunk = baseChunk ?? new MqChunk(); baseChunk.SetArguments(this.Vertices.Length.ToString()); baseChunk.SetAttributes(new[] { new MqChunkAttribute("V", this.Vertices.Select(_ => _.ToString())), new MqChunkAttribute("M", this.Material.ToString()), this.UV == null ? null : new MqChunkAttribute("UV", this.UV.SelectMany(_ => _).Select(f => f.ToString("0.00000"))), this.VertexColor == null ? null : new MqChunkAttribute("COL", this.VertexColor.Select(_ => _.ToString())), } .Where(_ => _ != null)); return baseChunk; }
public MqChunk ToChunk() { baseChunk = baseChunk ?? new MqChunk(); baseChunk.Name = "Object"; baseChunk.SetArguments("\"" + this.Name + "\""); baseChunk.Child("depth").SetArguments(this.Depth.ToString()); baseChunk.Child("folding").SetArguments(this.Folding ? "1" : "0"); baseChunk.Child("scale").SetArguments(this.Scale.Select(_ => _.ToString("0.000000"))); baseChunk.Child("rotation").SetArguments(this.Scale.Select(_ => _.ToString("0.000000"))); baseChunk.Child("translation").SetArguments(this.Scale.Select(_ => _.ToString("0.000000"))); if (this.Patch == MqPatchType.None) { baseChunk.RemoveChildren("patch"); baseChunk.RemoveChildren("segment"); } else { baseChunk.Child("patch").SetArguments(((int)this.Patch).ToString()); baseChunk.Child("segment").SetArguments(this.Segment.ToString()); } baseChunk.Child("visible").SetArguments(this.Visible ? "15" : "0"); baseChunk.Child("locking").SetArguments(this.Locking ? "1" : "0"); baseChunk.Child("shading").SetArguments(((int)this.Shading).ToString()); baseChunk.Child("facet").SetArguments(this.Facet.ToString("0.0")); baseChunk.Child("color").SetArguments(this.Color.Select(_ => _.ToString("0.000"))); baseChunk.Child("color_type").SetArguments(this.ColorType ? "1" : "0"); if (this.Mirror == MqMirrorType.None) { baseChunk.RemoveChildren("mirror"); } else { baseChunk.Child("mirror").SetArguments(((int)this.Mirror).ToString()); baseChunk.Child("mirror_axis").SetArguments(((int)this.MirrorAxis).ToString()); baseChunk.Child("mirror_dis").SetArguments(this.MirrorDistance.ToString("0.000")); } if (this.Lathe == MqLatheType.None) { baseChunk.RemoveChildren("lathe"); } else { baseChunk.Child("lathe").SetArguments(((int)this.Lathe).ToString()); baseChunk.Child("lathe_axis").SetArguments(((int)this.LatheAxis).ToString()); baseChunk.Child("lathe_seg").SetArguments(this.LatheSegments.ToString()); } baseChunk.Child("vertex").SetArguments(this.Vertex.Count.ToString()).SetChildren(this.Vertex.Select(v => new MqChunk().SetArguments(v.Select(_ => _.ToString("0.0000"))))); if (this.Weight.Any()) { baseChunk.Child("vertexattr").Child("weit").SetChildren(this.Weight.Select(_ => new MqChunk().SetArguments(_.Key.ToString(), _.Value.ToString("0.000")))); } else { var attr = baseChunk.Child("vertexattr"); attr.RemoveChildren("weit"); if (!attr.Children.Any()) { baseChunk.RemoveChildren("vertexattr"); } } baseChunk.Child("face").SetArguments(this.Faces.Count.ToString()).SetChildren(this.Faces.Select(_ => _.ToChunk())); return(baseChunk); }
public MqChunk ToChunk() { baseChunk = baseChunk ?? new MqChunk(); baseChunk.Name = "Object"; baseChunk.SetArguments("\"" + this.Name + "\""); baseChunk.Child("depth").SetArguments(this.Depth.ToString()); baseChunk.Child("folding").SetArguments(this.Folding ? "1" : "0"); baseChunk.Child("scale").SetArguments(this.Scale.Select(_ => _.ToString("0.000000"))); baseChunk.Child("rotation").SetArguments(this.Scale.Select(_ => _.ToString("0.000000"))); baseChunk.Child("translation").SetArguments(this.Scale.Select(_ => _.ToString("0.000000"))); if (this.Patch == MqPatchType.None) { baseChunk.RemoveChildren("patch"); baseChunk.RemoveChildren("segment"); } else { baseChunk.Child("patch").SetArguments(((int)this.Patch).ToString()); baseChunk.Child("segment").SetArguments(this.Segment.ToString()); } baseChunk.Child("visible").SetArguments(this.Visible ? "15" : "0"); baseChunk.Child("locking").SetArguments(this.Locking ? "1" : "0"); baseChunk.Child("shading").SetArguments(((int)this.Shading).ToString()); baseChunk.Child("facet").SetArguments(this.Facet.ToString("0.0")); baseChunk.Child("color").SetArguments(this.Color.Select(_ => _.ToString("0.000"))); baseChunk.Child("color_type").SetArguments(this.ColorType ? "1" : "0"); if (this.Mirror == MqMirrorType.None) baseChunk.RemoveChildren("mirror"); else { baseChunk.Child("mirror").SetArguments(((int)this.Mirror).ToString()); baseChunk.Child("mirror_axis").SetArguments(((int)this.MirrorAxis).ToString()); baseChunk.Child("mirror_dis").SetArguments(this.MirrorDistance.ToString("0.000")); } if (this.Lathe == MqLatheType.None) baseChunk.RemoveChildren("lathe"); else { baseChunk.Child("lathe").SetArguments(((int)this.Lathe).ToString()); baseChunk.Child("lathe_axis").SetArguments(((int)this.LatheAxis).ToString()); baseChunk.Child("lathe_seg").SetArguments(this.LatheSegments.ToString()); } baseChunk.Child("vertex").SetArguments(this.Vertex.Count.ToString()).SetChildren(this.Vertex.Select(v => new MqChunk().SetArguments(v.Select(_ => _.ToString("0.0000"))))); if (this.Weight.Any()) baseChunk.Child("vertexattr").Child("weit").SetChildren(this.Weight.Select(_ => new MqChunk().SetArguments(_.Key.ToString(), _.Value.ToString("0.000")))); else { var attr = baseChunk.Child("vertexattr"); attr.RemoveChildren("weit"); if (!attr.Children.Any()) baseChunk.RemoveChildren("vertexattr"); } baseChunk.Child("face").SetArguments(this.Faces.Count.ToString()).SetChildren(this.Faces.Select(_ => _.ToChunk())); return baseChunk; }