public void SetColor(OpticalAmbience oa) { LightColor brightness = new LightColor(0.0D, 0.0D, 0.0D); if (pol.NVertex() >= 3) { Vector3D nml = pol.Nomal_vartex1(); brightness = oa.Brightness(new Vector3D(0.0D, 0.0D, 0.0D), pol.GetVertex(1), nml, mate); } col = brightness.GetColor(); }
public void SetColor(OpticalAmbience oa) { LightColor brightness = new LightColor(0.0D, 0.0D, 0.0D); if (pol.NVertex() >= 3) { Vector3D nml = pol.Nomal_vartex1(); if (faceflag) { brightness = oa.Brightness(new Vector3D(0.0D, 0.0D, 0.0D), pol.GetVertex(1), nml, mate); } else { brightness = oa.Brightness(new Vector3D(0.0D, 0.0D, 0.0D), pol.GetVertex(1), nml.SclProd(-1.0D), mateB); } } col = brightness.GetColor(); }
public Color GetLightColor() { return(LightColor.GetColor()); }
private void ReadMaterialDefinitionFile() { //string line = ""; //while ((line = br.ReadLine()) != null) //{ // string[] parts = line.Split(new char[] { ' ', ',', '[', ']', '=' }); // string[] split = new string[parts.Length]; // int j = 0; // for (int i = 0; i < parts.Length; ++i) // { // if (parts[i] != "") // split[j++] = parts[i]; // } // switch (split[0][0]) // { // case 'c': // LightColor lc = new LightColor(double.Parse(split[3]),double.Parse(split[4]),double.Parse(split[5])); // idList.Add(split[1]); // typeList.Add("Color"); // mateList.Add(lc.GetColor()); // break; // default: // break; // } //} //return; int n = 0; while (true) { int c = ReadSkipSpace(); switch (c) { case -1: return; case '#': ReadLine(); break; case 'M': case 'm': n++; String id = ReadAWord(); if (id.Equals("")) { System.Console.Out.WriteLine(n + "番目の定義にIDが設定されていません"); return; } if (idList.IndexOf(id) != -1) { System.Console.Out.WriteLine(n + "番目に定義されているIDが重複しています ID=" + id); return; } String order = "DIFFUSE"; String subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lcd = ReadRGB(); if (lcd == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } order = "SPECULAR"; subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lcs = ReadRGB(); if (lcs == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } double specularSharpness = ReadDouble(); order = "RADIATION"; subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lcr = ReadRGB(); if (lcr == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } idList.Add(id); typeList.Add("Material"); mateList.Add(new Material(lcd, lcs, specularSharpness, lcr)); break; case 'C': case 'c': n++; id = ReadAWord(); if (id.Equals("")) { System.Console.Out.WriteLine(n + "番目の定義にIDが設定されていません"); return; } if (idList.IndexOf(id) != -1) { System.Console.Out.WriteLine(n + "番目に定義されているIDが重複しています ID=" + id); return; } order = "COLOR"; subCommand = ReadToKugiri("=").Trim().ToUpper(); if (!subCommand.Equals(order)) { System.Console.Out.WriteLine(n + "番目の定義に" + order + "パラメータが設定されていません"); return; } LightColor lc = ReadRGB(); if (lc == null) { System.Console.Out.WriteLine(n + "番目の定義の" + order + "パラメータの設定が不正です"); return; } idList.Add(id); typeList.Add("Color"); mateList.Add(lc.GetColor()); break; default: System.Console.Out.WriteLine("不正なコマンド[" + (char)c + "]が現れました"); return; } } }