Beispiel #1
0
        public Color GetColour(ColorCharge key)
        {
            Color color = (Color)colors[key];

            if (color == null)
            {
                switch (key)
                {
                case ColorCharge.WHITE: color = new White(); break;

                case ColorCharge.RED: color = new Red(); break;

                case ColorCharge.GREEN: color = new Green(); break;

                case ColorCharge.BLUE: color = new Blue(); break;

                case ColorCharge.ANTIRED: color = new AntiRed(); break;

                case ColorCharge.ANTIGREEN: color = new AntiGreen(); break;

                case ColorCharge.ANTIBLUE: color = new AntiBlue(); break;
                }
                colors.Add(key, color);
            }
            return(color);
        }
        public static Color GetColor(this ColorCharge charge)
        {
            switch (charge)
            {
            case ColorCharge.Neutral: return(Colors.Black);

            case ColorCharge.R: return(Color.FromRgb(255, 0, 0));

            case ColorCharge.G: return(Colors.ForestGreen);

            case ColorCharge.B: return(Color.FromRgb(0, 0, 255));

            case ColorCharge.r: return(Color.FromRgb(0, 255, 255));

            case ColorCharge.g: return(Color.FromRgb(255, 0, 255));

            case ColorCharge.b: return(Colors.DarkGoldenrod);

            default: return(Colors.Black);
            }
        }
Beispiel #3
0
        protected bool Colorless()
        {
            int red   = 0;
            int green = 0;
            int blue  = 0;

            int count = constituents.Count;

            for (int i = 0; i < count; i++)
            {
                IInteractStrong particle = constituents[i] as IInteractStrong;

                ColorCharge charge = particle.Color.Charge;
                switch (charge)
                {
                case ColorCharge.RED:
                    red++; break;

                case ColorCharge.GREEN:
                    green++; break;

                case ColorCharge.BLUE:
                    blue++; break;

                case ColorCharge.ANTIRED:
                    red--; break;

                case ColorCharge.ANTIGREEN:
                    green--; break;

                case ColorCharge.ANTIBLUE:
                    blue--; break;

                default:
                    break;
                }
            }
            return((red == green && green == blue) ? true : false);
        }
 private ParticleType(ParticleClass particleClass, string name, string symbol, int higgsCoupling, int charge, ColorCharge colorCharge)
 {
     this.Class         = particleClass;
     this.Name          = name;
     this.Symbol        = symbol;
     this.HiggsCoupling = higgsCoupling;
     this.Charge        = charge;
     this.ColorCharge   = colorCharge;
     this.Antiparticle  = this;
     this.Complementary = null;
 }
 private static ParticleType _Quark(string name, int higgsCoupling, int charge, ColorCharge color) => new ParticleType(ParticleClass.Quark, name, name[0].ToString(), higgsCoupling, charge, color);
 public static ParticleType Bottom(ColorCharge color)
 => color == ColorCharge.R ? BottomR : color == ColorCharge.G ? BottomG : color == ColorCharge.B ? BottomB : throw new NotSupportedException();
 public static ParticleType Top(ColorCharge color)
 => color == ColorCharge.R ? TopR : color == ColorCharge.G ? TopG : color == ColorCharge.B ? TopB : throw new NotSupportedException();
 public static ParticleType Down(ColorCharge color)
 => color == ColorCharge.R ? DownR : color == ColorCharge.G ? DownG : color == ColorCharge.B ? DownB : throw new NotSupportedException();
Beispiel #9
0
 public Color(ColorCharge charge)
 {
     this.charge = charge;
 }
Beispiel #10
0
 public AntiColor(ColorCharge charge) : base(charge)
 {
 }
Beispiel #11
0
 public static Tool Bottom(ColorCharge color) => new EdgeCreationTool(ParticleType.Bottom(color), Key.B, color.GetColor(), $"Bottom\n({color})");
Beispiel #12
0
 public static Tool Top(ColorCharge color) => new EdgeCreationTool(ParticleType.Top(color), Key.T, color.GetColor(), $"Top\n({color})");
Beispiel #13
0
 public static Tool Down(ColorCharge color) => new EdgeCreationTool(ParticleType.Down(color), Key.D, color.GetColor(), $"Down\n({color})");
Beispiel #14
0
 public static Tool Up(ColorCharge color) => new EdgeCreationTool(ParticleType.Up(color), Key.U, color.GetColor(), $"Up\n({color})");