Esempio n. 1
0
        private Material SetMaterial(PartColors materialColor)
        {
            _partColor = KnownPartColors.GetColor(materialColor);

            //SolidColorBrush sb = new SolidColorBrush(color.Color);
            //if (color.Alpha > 0)
            //    sb.Opacity = color.Alpha / 255.0;

            return(new DiffuseMaterial(_partColor.Color));
        }
Esempio n. 2
0
        private static PartColor ParseColor(string line)
        {
            PartColor       c     = new PartColor();
            MatchCollection words = _wordsEx.Matches(line);

            for (int i = 1; i < words.Count; i += 2)
            {
                string keyword = words[i].Value.Trim();
                string value;

                switch (keyword)
                {
                case "!COLOUR":
                    value     = words[i + 1].Value.Trim().Replace("Trans", "Transparent");
                    value     = value.Replace("_", " ");
                    c.Tooltip = value;
                    c.Name    = value.Replace(" ", "");
                    break;

                case "CODE":
                    value  = words[i + 1].Value.Trim();
                    c.Code = Convert.ToInt32(value);
                    break;

                case "VALUE":
                    value = words[i + 1].Value.Trim();
                    System.Drawing.Color color = System.Drawing.ColorTranslator.FromHtml(value);
                    c.Color = new SolidColorBrush(Color.FromRgb(color.R, color.G, color.B));
                    break;

                case "EDGE":
                    value = words[i + 1].Value.Trim();
                    System.Drawing.Color edgeColor = System.Drawing.ColorTranslator.FromHtml(value);
                    c.EdgeColor = Color.FromRgb(edgeColor.R, edgeColor.G, edgeColor.B);
                    break;

                case "ALPHA":
                    value           = words[i + 1].Value.Trim();
                    c.Alpha         = Convert.ToByte(value);
                    c.Color.Opacity = c.Alpha / 255.0;
                    break;

                case "LUMINANCE":
                    value       = words[i + 1].Value.Trim();
                    c.Luminance = Convert.ToByte(value);
                    break;
                }
            }

            return(c);
        }
Esempio n. 3
0
        static KnownPartColors()
        {
            if (Colors != null)
            {
                return;
            }

            string[] lines = File.ReadAllLines(LDrawHelper.LDrawConfigLocation);

            Colors = new Dictionary <int, PartColor>();

            foreach (string line in lines)
            {
                if (line.StartsWith("0 !COLOUR"))
                {
                    PartColor c = ParseColor(line);
                    Colors.Add(c.Code, c);
                }
            }
        }