HelixToolkit.Wpf.ObjReader.LoadMaterialLib C# (CSharp) Method

LoadMaterialLib() private method

Loads a material library.
private LoadMaterialLib ( string mtlFile ) : void
mtlFile string /// The material file name. ///
return void
        private void LoadMaterialLib(string mtlFile)
        {
            var path = Path.Combine(this.TexturePath, mtlFile);
            if (!File.Exists(path))
            {
                return;
            }

            using (var materialReader = new StreamReader(path))
            {
                MaterialDefinition currentMaterial = null;

                while (!materialReader.EndOfStream)
                {
                    var line = materialReader.ReadLine();
                    if (line == null)
                    {
                        break;
                    }

                    line = line.Trim();

                    if (line.StartsWith("#") || line.Length == 0)
                    {
                        continue;
                    }

                    string keyword, value;
                    SplitLine(line, out keyword, out value);

                    switch (keyword.ToLower())
                    {
                        case "newmtl":
                            if (value != null)
                            {
                                currentMaterial = new MaterialDefinition(value);
                                this.Materials.Add(value, currentMaterial);
                            }

                            break;
                        case "ka":
                            if (currentMaterial != null && value != null)
                            {
                                currentMaterial.Ambient = ColorParse(value);
                            }

                            break;
                        case "kd":
                            if (currentMaterial != null && value != null)
                            {
                                currentMaterial.Diffuse = ColorParse(value);
                            }

                            break;
                        case "ks":
                            if (currentMaterial != null && value != null)
                            {
                                currentMaterial.Specular = ColorParse(value);
                            }

                            break;
                        case "ns":
                            if (currentMaterial != null && value != null)
                            {
                                currentMaterial.SpecularCoefficient = DoubleParse(value);
                            }

                            break;
                        case "d":
                            if (currentMaterial != null && value != null)
                            {
                                currentMaterial.Dissolved = DoubleParse(value);
                            }

                            break;
                        case "tr":
                            if (!this.SkipTransparencyValues && currentMaterial != null && value != null)
                            {
                                currentMaterial.Dissolved = DoubleParse(value);
                            }

                            break;
                        case "illum":
                            if (currentMaterial != null && value != null)
                            {
                                currentMaterial.Illumination = int.Parse(value);
                            }

                            break;
                        case "map_ka":
                            if (currentMaterial != null)
                            {
                                currentMaterial.AmbientMap = value;
                            }

                            break;
                        case "map_kd":
                            if (currentMaterial != null)
                            {
                                currentMaterial.DiffuseMap = value;
                            }

                            break;
                        case "map_ks":
                            if (currentMaterial != null)
                            {
                                currentMaterial.SpecularMap = value;
                            }

                            break;
                        case "map_d":
                            if (currentMaterial != null)
                            {
                                currentMaterial.AlphaMap = value;
                            }

                            break;
                        case "map_bump":
                        case "bump":
                            if (currentMaterial != null)
                            {
                                currentMaterial.BumpMap = value;
                            }

                            break;
                    }
                }
            }
        }