Пример #1
0
        public MqChunk ToChunk()
        {
            baseChunk      = baseChunk ?? new MqChunk();
            baseChunk.Name = Surround(this.Name);
            baseChunk.Attribute("shader").SetArguments(((int)this.Shader).ToString());
            baseChunk.Attribute("vcol").SetArguments(this.VertexColor ? "1" : "0");
            baseChunk.Attribute("col").SetArguments(this.Color.Select(_ => _.ToString("0.000")));
            baseChunk.Attribute("dif").SetArguments(this.Diffusion.ToString("0.000"));
            baseChunk.Attribute("amb").SetArguments(this.Ambient.ToString("0.000"));
            baseChunk.Attribute("emi").SetArguments(this.Emmisive.ToString("0.000"));
            baseChunk.Attribute("spc").SetArguments(this.Specular.ToString("0.000"));
            baseChunk.Attribute("power").SetArguments(this.Power.ToString("0.000"));

            if (string.IsNullOrEmpty(this.Texture))
            {
                baseChunk.RemoveAttributes("tex");
            }
            else
            {
                baseChunk.Attribute("tex").SetArguments(Surround(this.Texture));
            }

            if (string.IsNullOrEmpty(this.AlphaMap))
            {
                baseChunk.RemoveAttributes("aplane");
            }
            else
            {
                baseChunk.Attribute("aplane").SetArguments(Surround(this.AlphaMap));
            }

            if (string.IsNullOrEmpty(this.Bump))
            {
                baseChunk.RemoveAttributes("bump");
            }
            else
            {
                baseChunk.Attribute("bump").SetArguments(Surround(this.Bump));
            }

            if (this.ProjectionType == MqProjectionType.UV)
            {
                baseChunk.RemoveAttributes("proj_type");
            }
            else
            {
                baseChunk.Attribute("proj_type").SetArguments(((int)this.ProjectionType).ToString());
            }

            if (this.ProjectionPosition.All(_ => _ == 0))
            {
                baseChunk.RemoveAttributes("proj_pos");
            }
            else
            {
                baseChunk.Attribute("proj_pos").SetArguments(this.ProjectionPosition.Select(_ => _.ToString("0.000")));
            }

            if (this.ProjectionScale.All(_ => _ == 1))
            {
                baseChunk.RemoveAttributes("proj_scale");
            }
            else
            {
                baseChunk.Attribute("proj_scale").SetArguments(this.ProjectionScale.Select(_ => _.ToString("0.000")));
            }

            if (this.ProjectionAngle.All(_ => _ == 0))
            {
                baseChunk.RemoveAttributes("proj_angle");
            }
            else
            {
                baseChunk.Attribute("proj_angle").SetArguments(this.ProjectionAngle.Select(_ => _.ToString("0.000")));
            }

            return(baseChunk);
        }
Пример #2
0
        public MqChunk ToChunk()
        {
            baseChunk = baseChunk ?? new MqChunk();
            baseChunk.Name = Surround(this.Name);
            baseChunk.Attribute("shader").SetArguments(((int)this.Shader).ToString());
            baseChunk.Attribute("vcol").SetArguments(this.VertexColor ? "1" : "0");
            baseChunk.Attribute("col").SetArguments(this.Color.Select(_ => _.ToString("0.000")));
            baseChunk.Attribute("dif").SetArguments(this.Diffusion.ToString("0.000"));
            baseChunk.Attribute("amb").SetArguments(this.Ambient.ToString("0.000"));
            baseChunk.Attribute("emi").SetArguments(this.Emmisive.ToString("0.000"));
            baseChunk.Attribute("spc").SetArguments(this.Specular.ToString("0.000"));
            baseChunk.Attribute("power").SetArguments(this.Power.ToString("0.000"));

            if (string.IsNullOrEmpty(this.Texture))
                baseChunk.RemoveAttributes("tex");
            else
                baseChunk.Attribute("tex").SetArguments(Surround(this.Texture));

            if (string.IsNullOrEmpty(this.AlphaMap))
                baseChunk.RemoveAttributes("aplane");
            else
                baseChunk.Attribute("aplane").SetArguments(Surround(this.AlphaMap));

            if (string.IsNullOrEmpty(this.Bump))
                baseChunk.RemoveAttributes("bump");
            else
                baseChunk.Attribute("bump").SetArguments(Surround(this.Bump));

            if (this.ProjectionType == MqProjectionType.UV)
                baseChunk.RemoveAttributes("proj_type");
            else
                baseChunk.Attribute("proj_type").SetArguments(((int)this.ProjectionType).ToString());

            if (this.ProjectionPosition.All(_ => _ == 0))
                baseChunk.RemoveAttributes("proj_pos");
            else
                baseChunk.Attribute("proj_pos").SetArguments(this.ProjectionPosition.Select(_ => _.ToString("0.000")));

            if (this.ProjectionScale.All(_ => _ == 1))
                baseChunk.RemoveAttributes("proj_scale");
            else
                baseChunk.Attribute("proj_scale").SetArguments(this.ProjectionScale.Select(_ => _.ToString("0.000")));

            if (this.ProjectionAngle.All(_ => _ == 0))
                baseChunk.RemoveAttributes("proj_angle");
            else
                baseChunk.Attribute("proj_angle").SetArguments(this.ProjectionAngle.Select(_ => _.ToString("0.000")));

            return baseChunk;
        }