コード例 #1
0
        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();
        }
コード例 #2
0
        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();
        }
コード例 #3
0
 public Color GetLightColor()
 {
     return(LightColor.GetColor());
 }
コード例 #4
0
        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;
                }
            }
        }