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); } }
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();
public Color(ColorCharge charge) { this.charge = charge; }
public AntiColor(ColorCharge charge) : base(charge) { }
public static Tool Bottom(ColorCharge color) => new EdgeCreationTool(ParticleType.Bottom(color), Key.B, color.GetColor(), $"Bottom\n({color})");
public static Tool Top(ColorCharge color) => new EdgeCreationTool(ParticleType.Top(color), Key.T, color.GetColor(), $"Top\n({color})");
public static Tool Down(ColorCharge color) => new EdgeCreationTool(ParticleType.Down(color), Key.D, color.GetColor(), $"Down\n({color})");
public static Tool Up(ColorCharge color) => new EdgeCreationTool(ParticleType.Up(color), Key.U, color.GetColor(), $"Up\n({color})");