示例#1
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Child("NodeName").SetValues("\"" + this.NodeName + "\"");
            baseData.Child("InitPostureMatrix").SetValues(this.InitPostureMatrix.Select(_ => _.ToString("0.000000")));
            baseData.Children.AddRange(this.Nodes.Select(_ => _.ToData()));

            return baseData;
        }
示例#2
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Child("NodeName").SetValues("\"" + this.NodeName + "\"");
            baseData.Child("InitPostureMatrix").SetValues(this.InitPostureMatrix.Select(_ => _.ToString("0.000000")));
            baseData.Children.AddRange(this.Nodes.Select(_ => _.ToData()));

            return(baseData);
        }
示例#3
0
        public ElData ToData()
        {
            baseData      = baseData ?? new ElData();
            baseData.Name = "BlendPart";
            baseData.Child("BoneName").SetValues("\"" + this.BoneName + "\"");
            baseData.Child("TransformIndex").SetValues(this.TransformIndex.ToString());
            baseData.Child("VertexBlend").Children = this.VertexBlend.Select(_ => new ElData().SetValues(_.Key.ToString() + "," + _.Value.ToString("0.000000"))).ToList();

            return(baseData);
        }
示例#4
0
        public ElData ToData()
        {
            baseData      = baseData ?? new ElData();
            baseData.Name = "Setting";
            baseData.Child("ElfreinaSoftVersion").SetValues(this.ElfreinaSoftVersion.ToString("0.00"));

            if (this.ElfreinaBetaVersion == 0)
            {
                baseData.RemoveChildren("ElfreinaBetaVersion");
            }
            else
            {
                baseData.Child("ElfreinaBetaVersion").SetValues(this.ElfreinaBetaVersion.ToString());
            }

            baseData.Child("LoadType").SetValues("\"" + this.LoadType + "\"");
            baseData.Child("IsRightHand").SetValues(this.IsRightHand.ToString());

            return(baseData);
        }
示例#5
0
        public ElData ToData()
        {
            baseData      = baseData ?? new ElData();
            baseData.Name = "Mesh";
            baseData.Child("Name").SetValues("\"" + this.Name + "\"");
            baseData.Child("VertexCount").SetValues(this.Positions.Count.ToString());
            baseData.Child("FaceCount").SetValues(this.VertexIndices.Count.ToString());
            baseData.Child("Positions").Children = this.Positions.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("Normals").Children   = this.Normals.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("BlendList").Children = this.BlendList.Select(_ => _.ToData()).ToList();

            baseData.RemoveChildren("TextureUV");

            for (int i = 1; i < 9; i++)
            {
                baseData.RemoveChildren("Texture" + i + "UV");
            }

            if (this.TextureUV.Any())
            {
                if (this.TextureUV.Count == 1)
                {
                    baseData.Child("TextureUV").Children = this.TextureUV.First().Value.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
                }
                else
                {
                    foreach (var i in this.TextureUV)
                    {
                        baseData.Child("Texture" + i.Key + "UV").Children = i.Value.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
                    }
                }
            }

            baseData.Child("VertexIndices").Children = this.VertexIndices.Select(_ => new ElData().SetValues(new[] { _.Length + "," + _.First().ToString() }.Concat(_.Skip(1).Select(i => i.ToString())))).ToList();
            baseData.Child("Attributes").Children    = this.Attributes.Select(_ => new ElData().SetValues(_.ToString())).ToList();

            return(baseData);
        }
示例#6
0
        public ElData ToData()
        {
            baseData      = baseData ?? new ElData();
            baseData.Name = "AnimationPart";
            baseData.Child("NodeName").SetValues("\"" + this.NodeName + "\"");
            baseData.Child("TransitionTime").SetValues(this.TransitionTime.ToString());
            baseData.Child("InterpolationType").SetValues("\"" + this.InterpolationType + "\"");
            baseData.Child("TimeKeys").Children   = this.TimeKeys.Select(_ => new ElData().SetValues(_.ToString("0.000000"))).ToList();
            baseData.Child("TransKeys").Children  = this.TransKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("RotateKeys").Children = this.RotateKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("ScaleKeys").Children  = this.ScaleKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();

            return(baseData);
        }
示例#7
0
        public ElData ToData()
        {
            baseData      = baseData ?? new ElData();
            baseData.Name = "Material";
            baseData.Child("Name").SetValues("\"" + this.Name + "\"");
            baseData.Child("Diffuse").SetValues(this.Diffuse.Select(_ => _.ToString("0.000000")));
            baseData.Child("Ambient").SetValues(this.Ambient.Select(_ => _.ToString("0.000000")));
            baseData.Child("Emissive").SetValues(this.Emissive.Select(_ => _.ToString("0.000000")));
            baseData.Child("Specular").SetValues(this.Emissive.Select(_ => _.ToString("0.000000")));
            baseData.Child("SpecularSharpness").SetValues(this.SpecularSharpness.ToString("0.000000"));
            baseData.Child("TextureFilename").SetValues("\"" + this.TextureFilename + "\"");

            return(baseData);
        }
示例#8
0
        public ElData ToData()
        {
            baseData      = baseData ?? new ElData();
            baseData.Name = "MeshContainer";
            baseData.Child("Name").SetValues("\"" + this.Name + "\"");
            baseData.Child("BoneCount").SetValues(this.BoneNames.Count.ToString());
            baseData.Child("MeshCount").SetValues(this.Meshes.Count.ToString());
            baseData.Child("VertexFormat").Children   = this.VertexFormat.Select(_ => new ElData().SetValues("\"" + _ + "\"")).ToList();
            baseData.Child("BoneNames").Children      = this.BoneNames.Select(_ => new ElData().SetValues("\"" + _ + "\"")).ToList();
            baseData.Child("OffsetMatrices").Children = this.OffsetMatrices.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("Materials").Children      = this.Materials.Select(_ => _.ToData()).StartWith(new ElData("MaterialCount").SetValues(this.Materials.Count.ToString())).ToList();
            baseData.Children.AddRange(this.Meshes.Select(_ => _.ToData()));

            return(baseData);
        }
示例#9
0
        public ElData ToData()
        {
            baseData      = baseData ?? new ElData();
            baseData.Name = "AnimationPart";
            baseData.Child("MeshContainerName").SetValues("\"" + this.MeshContainerName + "\"");
            baseData.Child("MaterialName").SetValues("\"" + this.MaterialName + "\"");
            baseData.Child("TimeKeys").Children   = this.TimeKeys.Select(_ => new ElData().SetValues(_.ToString("0.000000"))).ToList();
            baseData.Child("TransKeys").Children  = this.TransKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("RotateKeys").Children = this.RotateKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("ScaleKeys").Children  = this.ScaleKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();

            return(baseData);
        }
示例#10
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Child("AnimationName").SetValues("\"" + this.AnimationName + "\"");
            baseData.Child("AnimationTime").SetValues(this.AnimationTime.ToString());
            baseData.Child("FrameParSecond").SetValues(this.FramesPerSecond.ToString());
            baseData.Child("TransitionTime").SetValues(this.TransitionTime.ToString());
            baseData.Child("Priority").SetValues(this.Priority.ToString());
            baseData.Child("Loop").SetValues(this.Loop.ToString());

            if (this.BoneAnimation.Any())
            {
                baseData.Child("BoneAnimation").Children =
                    this.BoneAnimation.Select(_ => _.ToData())
                    .StartWith(new ElData("TimeKeys")
                {
                    Children = this.BoneAnimationTimeKeys.Select(f => new ElData().SetValues(f.ToString("0.000000"))).ToList(),
                }).ToList();
            }
            else
            {
                baseData.RemoveChildren("BoneAnimation");
            }

            if (this.UVAnimation.Any())
            {
                baseData.Child("UVAnimation").Children =
                    this.UVAnimation.Select(_ => _.ToData())
                    .StartWith(new ElData("TimeKeys")
                {
                    Children = this.UVAnimationTimeKeys.Select(f => new ElData().SetValues(f.ToString("0.000000"))).ToList(),
                }).ToList();
            }
            else
            {
                baseData.RemoveChildren("UVAnimation");
            }

            return(baseData);
        }
示例#11
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Name = "BlendPart";
            baseData.Child("BoneName").SetValues("\"" + this.BoneName + "\"");
            baseData.Child("TransformIndex").SetValues(this.TransformIndex.ToString());
            baseData.Child("VertexBlend").Children = this.VertexBlend.Select(_ => new ElData().SetValues(_.Key.ToString() + "," + _.Value.ToString("0.000000"))).ToList();

            return baseData;
        }
示例#12
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Child("AnimationName").SetValues("\"" + this.AnimationName + "\"");
            baseData.Child("AnimationTime").SetValues(this.AnimationTime.ToString());
            baseData.Child("FrameParSecond").SetValues(this.FramesPerSecond.ToString());
            baseData.Child("TransitionTime").SetValues(this.TransitionTime.ToString());
            baseData.Child("Priority").SetValues(this.Priority.ToString());
            baseData.Child("Loop").SetValues(this.Loop.ToString());

            if (this.BoneAnimation.Any())
                baseData.Child("BoneAnimation").Children =
                    this.BoneAnimation.Select(_ => _.ToData())
                        .StartWith(new ElData("TimeKeys")
                        {
                            Children = this.BoneAnimationTimeKeys.Select(f => new ElData().SetValues(f.ToString("0.000000"))).ToList(),
                        }).ToList();
            else
                baseData.RemoveChildren("BoneAnimation");

            if (this.UVAnimation.Any())
                baseData.Child("UVAnimation").Children =
                    this.UVAnimation.Select(_ => _.ToData())
                        .StartWith(new ElData("TimeKeys")
                        {
                            Children = this.UVAnimationTimeKeys.Select(f => new ElData().SetValues(f.ToString("0.000000"))).ToList(),
                        }).ToList();
            else
                baseData.RemoveChildren("UVAnimation");

            return baseData;
        }
示例#13
0
        public string GetFormattedText()
        {
            var sb = new StringBuilder();

            sb.AppendLine("Elfreina Extension Model File");
            sb.Append("File Version ");
            sb.AppendLine(this.Version.ToString("0.00"));

            if (this.Setting != null)
            {
                sb.AppendLine(this.Setting.GetFormattedText());
            }

            if (this.MeshDataList.Any())
            {
                sb.AppendLine(new ElData("MeshDataList")
                {
                    Children = this.MeshDataList.Select(_ => _.ToData())
                               .StartWith(new ElData("MeshContainerCount").SetValues(this.MeshDataList.Count.ToString()))
                               .ToList(),
                }.GetFormattedText());
            }

            if (this.HierarchyList.Any())
            {
                sb.AppendLine(new ElData("HierarchyList")
                {
                    Children = this.MeshDataList.Select(_ => _.ToData()).ToList(),
                }.GetFormattedText());
            }

            if (this.RenderingMeshList.Any())
            {
                sb.AppendLine(new ElData("RenderingMeshList")
                {
                    Children = this.RenderingMeshList.Select(_ =>
                    {
                        var rt = new ElData("RenderingMesh");

                        rt.Child("RenderingMeshName").SetValues("\"" + _.Key + "\"");
                        rt.Child("HierarchyNamesCount").SetValues(_.Value.Count.ToString());
                        rt.Child("HierarchyNames").Children = _.Value.Select(s => new ElData().SetValues("\"" + s + "\"")).ToList();

                        return(rt);
                    })
                               .StartWith(new ElData("RenderingMeshCount").SetValues(this.RenderingMeshList.Count.ToString()))
                               .ToList(),
                }.GetFormattedText());
            }

            if (this.AnimationList.Any())
            {
                sb.AppendLine(new ElData("AnimationList")
                {
                    Children = this.AnimationList.Select(_ => _.ToData())
                               .StartWith(new ElData("AnimationCount").SetValues(this.AnimationList.Count.ToString()))
                               .ToList(),
                }.GetFormattedText());
            }

            foreach (var i in this.CustomData)
            {
                sb.AppendLine(i.GetFormattedText());
            }

            return(sb.ToString());
        }
示例#14
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Name = "MeshContainer";
            baseData.Child("Name").SetValues("\"" + this.Name + "\"");
            baseData.Child("BoneCount").SetValues(this.BoneNames.Count.ToString());
            baseData.Child("MeshCount").SetValues(this.Meshes.Count.ToString());
            baseData.Child("VertexFormat").Children = this.VertexFormat.Select(_ => new ElData().SetValues("\"" + _ + "\"")).ToList();
            baseData.Child("BoneNames").Children = this.BoneNames.Select(_ => new ElData().SetValues("\"" + _ + "\"")).ToList();
            baseData.Child("OffsetMatrices").Children = this.OffsetMatrices.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("Materials").Children = this.Materials.Select(_ => _.ToData()).StartWith(new ElData("MaterialCount").SetValues(this.Materials.Count.ToString())).ToList();
            baseData.Children.AddRange(this.Meshes.Select(_ => _.ToData()));

            return baseData;
        }
示例#15
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Name = "AnimationPart";
            baseData.Child("NodeName").SetValues("\"" + this.NodeName + "\"");
            baseData.Child("TransitionTime").SetValues(this.TransitionTime.ToString());
            baseData.Child("InterpolationType").SetValues("\"" + this.InterpolationType + "\"");
            baseData.Child("TimeKeys").Children = this.TimeKeys.Select(_ => new ElData().SetValues(_.ToString("0.000000"))).ToList();
            baseData.Child("TransKeys").Children = this.TransKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("RotateKeys").Children = this.RotateKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("ScaleKeys").Children = this.ScaleKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();

            return baseData;
        }
示例#16
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Name = "Material";
            baseData.Child("Name").SetValues("\"" + this.Name + "\"");
            baseData.Child("Diffuse").SetValues(this.Diffuse.Select(_ => _.ToString("0.000000")));
            baseData.Child("Ambient").SetValues(this.Ambient.Select(_ => _.ToString("0.000000")));
            baseData.Child("Emissive").SetValues(this.Emissive.Select(_ => _.ToString("0.000000")));
            baseData.Child("Specular").SetValues(this.Emissive.Select(_ => _.ToString("0.000000")));
            baseData.Child("SpecularSharpness").SetValues(this.SpecularSharpness.ToString("0.000000"));
            baseData.Child("TextureFilename").SetValues("\"" + this.TextureFilename + "\"");

            return baseData;
        }
示例#17
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Name = "AnimationPart";
            baseData.Child("MeshContainerName").SetValues("\"" + this.MeshContainerName + "\"");
            baseData.Child("MaterialName").SetValues("\"" + this.MaterialName + "\"");
            baseData.Child("TimeKeys").Children = this.TimeKeys.Select(_ => new ElData().SetValues(_.ToString("0.000000"))).ToList();
            baseData.Child("TransKeys").Children = this.TransKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("RotateKeys").Children = this.RotateKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("ScaleKeys").Children = this.ScaleKeys.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();

            return baseData;
        }
示例#18
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Name = "Mesh";
            baseData.Child("Name").SetValues("\"" + this.Name + "\"");
            baseData.Child("VertexCount").SetValues(this.Positions.Count.ToString());
            baseData.Child("FaceCount").SetValues(this.VertexIndices.Count.ToString());
            baseData.Child("Positions").Children = this.Positions.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("Normals").Children = this.Normals.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
            baseData.Child("BlendList").Children = this.BlendList.Select(_ => _.ToData()).ToList();

            baseData.RemoveChildren("TextureUV");

            for (int i = 1; i < 9; i++)
                baseData.RemoveChildren("Texture" + i + "UV");

            if (this.TextureUV.Any())
                if (this.TextureUV.Count == 1)
                    baseData.Child("TextureUV").Children = this.TextureUV.First().Value.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();
                else
                    foreach (var i in this.TextureUV)
                        baseData.Child("Texture" + i.Key + "UV").Children = i.Value.Select(_ => new ElData().SetValues(_.Select(f => f.ToString("0.000000")))).ToList();

            baseData.Child("VertexIndices").Children = this.VertexIndices.Select(_ => new ElData().SetValues(new[] { _.Length + "," + _.First().ToString() }.Concat(_.Skip(1).Select(i => i.ToString())))).ToList();
            baseData.Child("Attributes").Children = this.Attributes.Select(_ => new ElData().SetValues(_.ToString())).ToList();

            return baseData;
        }
示例#19
0
        public string GetFormattedText()
        {
            var sb = new StringBuilder();

            sb.AppendLine("Elfreina Extension Model File");
            sb.Append("File Version ");
            sb.AppendLine(this.Version.ToString("0.00"));

            if (this.Setting != null)
                sb.AppendLine(this.Setting.GetFormattedText());

            if (this.MeshDataList.Any())
                sb.AppendLine(new ElData("MeshDataList")
                {
                    Children = this.MeshDataList.Select(_ => _.ToData())
                                                .StartWith(new ElData("MeshContainerCount").SetValues(this.MeshDataList.Count.ToString()))
                                                .ToList(),
                }.GetFormattedText());

            if (this.HierarchyList.Any())
                sb.AppendLine(new ElData("HierarchyList")
                {
                    Children = this.MeshDataList.Select(_ => _.ToData()).ToList(),
                }.GetFormattedText());

            if (this.RenderingMeshList.Any())
                sb.AppendLine(new ElData("RenderingMeshList")
                {
                    Children = this.RenderingMeshList.Select(_ =>
                    {
                        var rt = new ElData("RenderingMesh");

                        rt.Child("RenderingMeshName").SetValues("\"" + _.Key + "\"");
                        rt.Child("HierarchyNamesCount").SetValues(_.Value.Count.ToString());
                        rt.Child("HierarchyNames").Children = _.Value.Select(s => new ElData().SetValues("\"" + s + "\"")).ToList();

                        return rt;
                    })
                                                     .StartWith(new ElData("RenderingMeshCount").SetValues(this.RenderingMeshList.Count.ToString()))
                                                     .ToList(),
                }.GetFormattedText());

            if (this.AnimationList.Any())
                sb.AppendLine(new ElData("AnimationList")
                {
                    Children = this.AnimationList.Select(_ => _.ToData())
                                                 .StartWith(new ElData("AnimationCount").SetValues(this.AnimationList.Count.ToString()))
                                                 .ToList(),
                }.GetFormattedText());

            foreach (var i in this.CustomData)
                sb.AppendLine(i.GetFormattedText());

            return sb.ToString();
        }
示例#20
0
        public ElData ToData()
        {
            baseData = baseData ?? new ElData();
            baseData.Name = "Setting";
            baseData.Child("ElfreinaSoftVersion").SetValues(this.ElfreinaSoftVersion.ToString("0.00"));

            if (this.ElfreinaBetaVersion == 0)
                baseData.RemoveChildren("ElfreinaBetaVersion");
            else
                baseData.Child("ElfreinaBetaVersion").SetValues(this.ElfreinaBetaVersion.ToString());

            baseData.Child("LoadType").SetValues("\"" + this.LoadType + "\"");
            baseData.Child("IsRightHand").SetValues(this.IsRightHand.ToString());

            return baseData;
        }