示例#1
0
        public bool IsBlank(AFrameMaterial mtl)
        {
            var standard = mtl.Shader as StandardAFrameShader;
            var flat     = mtl.Shader as FlatAFrameShader;

            var checks = new List <bool>();

            if (standard != null)
            {
                checks.Add(standard.Color != StandardAFrameShader.DefaultColor);
                checks.Add(standard.Src != "");
            }
            if (flat != null)
            {
                checks.Add(standard.Color != FlatAFrameShader.DefaultColor);
                checks.Add(standard.Src != "");
            }

            foreach (var x in checks)
            {
                if (x == true)
                {
                    return(false);
                }
            }
            return(true);
        }
示例#2
0
        public static void ToFile(AFrameMaterial mtl, string name, string filename)
        {
            var exporter = new MtlExporter();

            using (StreamWriter sw = new StreamWriter(filename)) {
                var txt = exporter.MaterialToString(mtl, name);
                sw.Write(txt);
            }
        }
示例#3
0
        public string MaterialToString(AFrameMaterial mtl, string name)
        {
            var sb = new StringBuilder();

            sb.AppendFormat("newmtl {0}", name).AppendLine();

            var standand = mtl.Shader as StandardAFrameShader;
            var flat     = mtl.Shader as FlatAFrameShader;

            if (standand != null)
            {
                ForStandard(mtl, standand, sb);
            }
            else if (flat != null)
            {
                ForFlat(mtl, flat, sb);
            }

            return(sb.ToString());
        }
示例#4
0
 void ForFlat(AFrameMaterial mtl, FlatAFrameShader shader, StringBuilder sb)
 {
     WriteColor(shader.Color, sb);
     WriteTexture(shader.Src, sb);
 }
示例#5
0
 void ForStandard(AFrameMaterial mtl, StandardAFrameShader shader, StringBuilder sb)
 {
     WriteColor(shader.Color, sb);
     WriteTexture(shader.Src, sb);
 }