static public string Name(ELEMENTS e) { listAtom atom = (listAtom)elements.atom[(int)e]; listAtomLabel a = (listAtomLabel)((listAtom)elements.atom[(int)e]).Items[2]; return(a.value); }
public void UnlockElement(ELEMENTS element) { if (!elements.Contains(element)) { elements.Add(element); } }
static public String LookupValue(ELEMENTS e, string dictRef) { listAtom atom = (listAtom)elements.atom[(int)e]; foreach (object item in atom.Items) { if (item.GetType() == typeof(ChemInfo.listAtomScalar)) { listAtomScalar scalar = (listAtomScalar)item; if (scalar.dictRef == dictRef) { return(scalar.Value);; } } if (item.GetType() == typeof(ChemInfo.listAtomArray)) { listAtomArray array = (listAtomArray)item; if (array.dictRef == dictRef) { return(array.Value);; } } } listAtomLabel a = (listAtomLabel)((listAtom)elements.atom[(int)e]).Items[2]; return("0"); }
public Atom(string element, AtomType type) { if (element == "*") { m_Element = ELEMENTS.WILD_CARD; } else if (element == "X") { m_Element = ELEMENTS.Halogen; } else { m_Element = (ELEMENTS)Enum.Parse(typeof(ELEMENTS), element); } m_ExplicitHydrogens = 0; m_Isotope = 0; m_Charge = 0; m_Chiral = Chirality.UNSPECIFIED; AtomType = type; m_Chiral = Chirality.UNSPECIFIED; if (this.Element != ELEMENTS.Halogen) { this.SetColor(SustainableChemistryWeb.ChemInfo.Element.ElementColor(m_Element)); } else { Color = System.Drawing.Color.FromName("olivedrab"); } _x = (int)(random.NextDouble() * 100); _y = (int)(random.NextDouble() * 100); //m_WeiningerInvariant = new WeiningerInvariant(this); }
static public int[] ElementColor(ELEMENTS e) { string[] temp = LookupValue(e, "bo:elementColor").Split(' '); int[] retVal = new int[3]; retVal[0] = (int)(Convert.ToDouble(temp[0]) * 255); retVal[1] = (int)(Convert.ToDouble(temp[1]) * 255); retVal[2] = (int)(Convert.ToDouble(temp[2]) * 255); return(retVal); }
public void ToggleElement(ELEMENTS element) { if (!elements.Contains(element)) { elements.Add(element); } else { elements.Remove(element); } }
public Bond[] GetBondsToElement(ELEMENTS element) { List <Bond> bonds = new List <Bond>(); foreach (Bond b in m_Bonds) { if (b.ConnectedAtom.Element == element) { bonds.Add(b); } } return(bonds.ToArray <Bond>()); }
void addElementItem(ToolStripMenuItem menu, string title, ELEMENTS item) { var elm = ConstructElement(item); if (elm == null) { return; } else { elm.Delete(); } ToolStripMenuItem mi; var sc = shortcut(elm.Shortcut); if (sc.Key == Keys.None) { mi = new ToolStripMenuItem(); } else { mi = new ToolStripMenuItem() { ShowShortcutKeys = true, ShortcutKeys = sc.Key, ShortcutKeyDisplayString = sc.Name }; } mi.Font = menuFont; mi.Text = title; mi.Click += new EventHandler((sender, e) => { mSim.Performed(item); if (null != mi.OwnerItem) { for (int i = 0; i < mMainMenuItems.Count; i++) { if (mMainMenuItems[i].Checked) { mMainMenuItems[i].Checked = false; mMainMenuItems[i].OwnerItem.BackColor = Color.Transparent; } } mi.Checked = true; mi.OwnerItem.BackColor = Color.LightGray; } }); mMainMenuItems.Add(mi); menu.DropDownItems.Add(mi); }
public Atom(string element, AtomType type, int isotope, Chirality chirality, int hCount, int charge, int atomClass) { //degree = 0; if (element == "*") { m_Element = ELEMENTS.WILD_CARD; } else { m_Element = (ELEMENTS)Enum.Parse(typeof(ELEMENTS), element); } m_ExplicitHydrogens = hCount; m_Isotope = isotope; m_Charge = charge; m_Chiral = chirality; AtomType = type; this.SetColor(SustainableChemistryWeb.ChemInfo.Element.ElementColor(m_Element)); _x = (int)(random.NextDouble() * 100); _y = (int)(random.NextDouble() * 100); //m_WeiningerInvariant = new WeiningerInvariant(this); }
// Constructors public Atom(string element) { if (element == "*") { m_Element = ELEMENTS.WILD_CARD; } else { m_Element = (ELEMENTS)Enum.Parse(typeof(ELEMENTS), element); } m_ExplicitHydrogens = 0; //degree = 0; m_Isotope = 0; m_Charge = 0; m_Chiral = Chirality.UNSPECIFIED; m_Chiral = Chirality.UNSPECIFIED; this.SetColor(SustainableChemistryWeb.ChemInfo.Element.ElementColor(m_Element)); //this.m_AtomicMass = SustainableChemistryWeb.ChemInfo.Element.ExactMass(e); _x = (int)(random.NextDouble() * 100); _y = (int)(random.NextDouble() * 100); //m_WeiningerInvariant = new WeiningerInvariant(this); }
public Atom(string element, int isotope) { //degree = 0; if (element == "*") { m_Element = ELEMENTS.WILD_CARD; } else { m_Element = (ELEMENTS)Enum.Parse(typeof(ELEMENTS), element); } m_ExplicitHydrogens = 0; isotope = (byte)isotope; m_Charge = 0; m_Chiral = Chirality.UNSPECIFIED; AtomType = AtomType.NONE; m_Chiral = Chirality.UNSPECIFIED; this.SetColor(SustainableChemistryWeb.ChemInfo.Element.ElementColor(m_Element)); _x = (int)(random.NextDouble() * 100); _y = (int)(random.NextDouble() * 100); //m_WeiningerInvariant = new WeiningerInvariant(this); }
static public int Period(ELEMENTS e) { return(Convert.ToInt32(Element.LookupValue(e, "bo:period"))); }
static public string Name(ELEMENTS e) { if (e == ELEMENTS.H) { return("Hydrogen"); } if (e == ELEMENTS.He) { return("Helium"); } if (e == ELEMENTS.Li) { return("Lithium"); } if (e == ELEMENTS.Be) { return("Beryllium"); } if (e == ELEMENTS.B) { return("Boron"); } if (e == ELEMENTS.C) { return("Carbon"); } if (e == ELEMENTS.N) { return("Nitrogen"); } if (e == ELEMENTS.O) { return("Oxygen"); } if (e == ELEMENTS.F) { return("Fluorine"); } if (e == ELEMENTS.Ne) { return("Neon"); } if (e == ELEMENTS.Na) { return("Sodium"); } if (e == ELEMENTS.Mg) { return("Magnesium"); } if (e == ELEMENTS.Al) { return("Aluminium"); } if (e == ELEMENTS.Si) { return("Silicon"); } if (e == ELEMENTS.P) { return("Phosphorus"); } if (e == ELEMENTS.S) { return("Sulfur"); } if (e == ELEMENTS.Cl) { return("Chlorine"); } if (e == ELEMENTS.Ar) { return("Argon"); } if (e == ELEMENTS.K) { return("Potassium"); } if (e == ELEMENTS.Ca) { return("Calcium"); } if (e == ELEMENTS.Sc) { return("Scandium"); } if (e == ELEMENTS.Ti) { return("Titanium"); } if (e == ELEMENTS.V) { return("Vanadium"); } if (e == ELEMENTS.Cr) { return("Chromium"); } if (e == ELEMENTS.Mn) { return("Manganese"); } if (e == ELEMENTS.Fe) { return("Iron"); } if (e == ELEMENTS.Co) { return("Cobalt"); } if (e == ELEMENTS.Ni) { return("Nickel"); } if (e == ELEMENTS.Cu) { return("Copper"); } if (e == ELEMENTS.Zn) { return("Zinc"); } if (e == ELEMENTS.Ga) { return("Gallium"); } if (e == ELEMENTS.Ge) { return("Germanium"); } if (e == ELEMENTS.As) { return("Arsenic"); } if (e == ELEMENTS.Se) { return("Selenium"); } if (e == ELEMENTS.Br) { return("Bromine"); } if (e == ELEMENTS.Kr) { return("Krypton"); } if (e == ELEMENTS.Rb) { return("Rubidium"); } if (e == ELEMENTS.Sr) { return("Strontium"); } if (e == ELEMENTS.Y) { return("Yttrium"); } if (e == ELEMENTS.Zr) { return("Zirconium"); } if (e == ELEMENTS.Nb) { return("Niobium"); } if (e == ELEMENTS.Mo) { return("Molybdenum"); } if (e == ELEMENTS.Tc) { return("Technetium"); } if (e == ELEMENTS.Ru) { return("Ruthenium"); } if (e == ELEMENTS.Rh) { return("Rhodium"); } if (e == ELEMENTS.Pd) { return("Palladium"); } if (e == ELEMENTS.Ag) { return("Silver"); } if (e == ELEMENTS.Cd) { return("Cadmium"); } if (e == ELEMENTS.In) { return("Indium"); } if (e == ELEMENTS.Sn) { return("Tin"); } if (e == ELEMENTS.Sb) { return("Antimony"); } if (e == ELEMENTS.Te) { return("Tellurium"); } if (e == ELEMENTS.I) { return("Iodine"); } if (e == ELEMENTS.Xe) { return("Xenon"); } if (e == ELEMENTS.Cs) { return("Caesium"); } if (e == ELEMENTS.Ba) { return("Barium"); } if (e == ELEMENTS.La) { return("Lanthanum"); } if (e == ELEMENTS.Ce) { return("Cerium"); } if (e == ELEMENTS.Pr) { return("Praseodymium"); } if (e == ELEMENTS.Nd) { return("Neodymium"); } if (e == ELEMENTS.Pm) { return("Promethium"); } if (e == ELEMENTS.Sm) { return("Samarium"); } if (e == ELEMENTS.Eu) { return("Europium"); } if (e == ELEMENTS.Gd) { return("Gadolinium"); } if (e == ELEMENTS.Tb) { return("Terbium"); } if (e == ELEMENTS.Dy) { return("Dysprosium"); } if (e == ELEMENTS.Ho) { return("Holmium"); } if (e == ELEMENTS.Er) { return("Erbium"); } if (e == ELEMENTS.Tm) { return("Thulium"); } if (e == ELEMENTS.Yb) { return("Ytterbium"); } if (e == ELEMENTS.Lu) { return("Lutetium"); } if (e == ELEMENTS.Hf) { return("Hafnium"); } if (e == ELEMENTS.Ta) { return("Tantalum"); } if (e == ELEMENTS.W) { return("Tungsten"); } if (e == ELEMENTS.Re) { return("Rhenium"); } if (e == ELEMENTS.Os) { return("Osmium"); } if (e == ELEMENTS.Ir) { return("Iridium"); } if (e == ELEMENTS.Pt) { return("Platinum"); } if (e == ELEMENTS.Au) { return("Gold"); } if (e == ELEMENTS.Hg) { return("Mercury"); } if (e == ELEMENTS.Tl) { return("Thallium"); } if (e == ELEMENTS.Pb) { return("Lead"); } if (e == ELEMENTS.Bi) { return("Bismuth"); } if (e == ELEMENTS.Po) { return("Polonium"); } if (e == ELEMENTS.At) { return("Astatine"); } if (e == ELEMENTS.Rn) { return("Radon"); } if (e == ELEMENTS.Fr) { return("Francium"); } if (e == ELEMENTS.Ra) { return("Radium"); } if (e == ELEMENTS.Ac) { return("Actinium"); } if (e == ELEMENTS.Th) { return("Thorium"); } if (e == ELEMENTS.Pa) { return("Protactinium"); } if (e == ELEMENTS.U) { return("Uranium"); } if (e == ELEMENTS.Np) { return("Neptunium"); } if (e == ELEMENTS.Pu) { return("Plutonium"); } if (e == ELEMENTS.Am) { return("Americium"); } if (e == ELEMENTS.Cm) { return("Curium"); } if (e == ELEMENTS.Bk) { return("Berkelium"); } if (e == ELEMENTS.Cf) { return("Californium"); } if (e == ELEMENTS.Es) { return("Einsteinium"); } if (e == ELEMENTS.Fm) { return("Fermium"); } if (e == ELEMENTS.Md) { return("Mendelevium"); } if (e == ELEMENTS.No) { return("Nobelium"); } if (e == ELEMENTS.Lr) { return("Lawrencium"); } if (e == ELEMENTS.Rf) { return("Rutherfordium"); } if (e == ELEMENTS.Db) { return("Dubnium"); } if (e == ELEMENTS.Sg) { return("Seaborgium"); } if (e == ELEMENTS.Bh) { return("Bohrium"); } if (e == ELEMENTS.Hs) { return("Hassium"); } if (e == ELEMENTS.Mt) { return("Meitnerium"); } if (e == ELEMENTS.Ds) { return("Darmstadtium"); } if (e == ELEMENTS.Rg) { return("Roentgenium"); } if (e == ELEMENTS.Cn) { return("Copernicium"); } if (e == ELEMENTS.Nh) { return("Nihonium"); } if (e == ELEMENTS.Fl) { return("Flerovium"); } if (e == ELEMENTS.Mc) { return("Moscovium"); } if (e == ELEMENTS.Lv) { return("Livermorium"); } if (e == ELEMENTS.Ts) { return("Tennessine"); } if (e == ELEMENTS.Og) { return("Oganesson"); } return(string.Empty); }
public static CircuitElm ConstructElement(ELEMENTS n, Point pos = new Point()) { switch (n) { #region Passive Components case ELEMENTS.WIRE: return(new WireElm(pos)); case ELEMENTS.GROUND: return(new GroundElm(pos)); case ELEMENTS.SWITCH: return(new SwitchElm(pos)); case ELEMENTS.SWITCH_PUSH: return(new PushSwitchElm(pos)); case ELEMENTS.SWITCH_TERM: return(new Switch2Elm(pos)); case ELEMENTS.RESISTOR: return(new ResistorElm(pos)); case ELEMENTS.POT: return(new PotElm(pos)); case ELEMENTS.CAPACITOR: return(new CapacitorElm(pos)); case ELEMENTS.CAPACITOR_POLER: return(new PolarCapacitorElm(pos)); case ELEMENTS.INDUCTOR: return(new InductorElm(pos)); case ELEMENTS.TRANSFORMER: return(new TransformerElm(pos)); case ELEMENTS.CRYSTAL: return(new CrystalElm(pos)); #endregion #region Active Components case ELEMENTS.DIODE: return(new DiodeElm(pos)); case ELEMENTS.ZENER: return(new ZenerElm(pos)); case ELEMENTS.LED: return(new LEDElm(pos)); case ELEMENTS.TRANSISTOR: case ELEMENTS.TRANSISTOR_N: return(new NTransistorElm(pos)); case ELEMENTS.TRANSISTOR_P: return(new PTransistorElm(pos)); case ELEMENTS.MOSFET: case ELEMENTS.MOSFET_N: return(new NMosfetElm(pos)); case ELEMENTS.MOSFET_P: return(new PMosfetElm(pos)); case ELEMENTS.JfetElm: case ELEMENTS.NJfetElm: return(null); //(CircuitElm)new NJfetElm(x1, y1); case ELEMENTS.PJfetElm: return(null); //(CircuitElm)new PJfetElm(x1, y1); case ELEMENTS.SCRElm: return(null); //(CircuitElm)new SCRElm(x1, y1); case ELEMENTS.DiacElm: return(null); //(CircuitElm)new DiacElm(x1, y1); case ELEMENTS.TriacElm: return(null); //(CircuitElm)new TriacElm(x1, y1); case ELEMENTS.DarlingtonElm: case ELEMENTS.NDarlingtonElm: return(null); //(CircuitElm)new NDarlingtonElm(x1, y1); case ELEMENTS.PDarlingtonElm: return(null); //(CircuitElm)new PDarlingtonElm(x1, y1); case ELEMENTS.VARACTOR: return(new VaractorElm(pos)); case ELEMENTS.TunnelDiodeElm: return(null); //(CircuitElm)new TunnelDiodeElm(x1, y1); case ELEMENTS.TriodeElm: return(null); //(CircuitElm)new TriodeElm(x1, y1); #endregion #region Inputs and Sources case ELEMENTS.VOLTAGE_DC: return(new DCVoltageElm(pos)); case ELEMENTS.VOLTAGE_AC: return(new ACVoltageElm(pos)); case ELEMENTS.RAIL_DC: return(new RailElm(pos)); case ELEMENTS.RAIL_AC: return(new ACRailElm(pos)); case ELEMENTS.SquareRailElm: return(null); //(CircuitElm)new SquareRailElm(x1, y1); case ELEMENTS.CLOCK: return(new ClockElm(pos)); case ELEMENTS.SWEEP: return(new SweepElm(pos)); case ELEMENTS.AntennaElm: return(null); //(CircuitElm)new AntennaElm(x1, y1); case ELEMENTS.OSC_AM: return(new AMElm(pos)); case ELEMENTS.OSC_FM: return(new FMElm(pos)); case ELEMENTS.CURRENT: return(new CurrentElm(pos)); case ELEMENTS.NOISE: return(new NoiseElm(pos)); case ELEMENTS.AudioInputElm: return(null); //(CircuitElm)new AudioInputElm(x1, y1); #endregion #region Outputs and Labels case ELEMENTS.OUTPUT: return(new LabeledNodeElm(pos)); case ELEMENTS.VOLTMETER: return(new VoltMeterElm(pos)); case ELEMENTS.AMMETER: return(new AmmeterElm(pos)); case ELEMENTS.DataRecorderElm: return(new DataRecorderElm(pos)); case ELEMENTS.OUTPUT_AUDIO: return(new AudioOutputElm(pos)); case ELEMENTS.LampElm: return(null); //(CircuitElm)new LampElm(x1, y1); case ELEMENTS.TestPointElm: return(null); //new TestPointElm(x1, y1); case ELEMENTS.LEDArrayElm: return(null); //(CircuitElm)new LEDArrayElm(x1, y1); case ELEMENTS.StopTriggerElm: return(null); //(CircuitElm)new StopTriggerElm(x1, y1); case ELEMENTS.SCOPE: return(new ScopeElm(pos)); #endregion #region Active Building Blocks case ELEMENTS.OPAMP: return(new OpAmpElm(pos)); case ELEMENTS.OPAMP_SWAP: return(new OpAmpSwapElm(pos)); case ELEMENTS.OpAmpRealElm: return(null); //(CircuitElm)new OpAmpRealElm(x1, y1); case ELEMENTS.ANALOG_SWITCH: return(new AnalogSwitchElm(pos)); case ELEMENTS.AnalogSwitch2Elm: return(null); //(CircuitElm)new AnalogSwitch2Elm(x1, y1); case ELEMENTS.CC2Elm: return(null); //(CircuitElm)new CC2Elm(x1, y1); case ELEMENTS.CC2NegElm: return(null); //(CircuitElm)new CC2NegElm(x1, y1); case ELEMENTS.ComparatorElm: return(null); //new ComparatorElm(x1, y1); case ELEMENTS.ComparatorSwapElm: return(null); //new ComparatorSwapElm(x1, y1); case ELEMENTS.OTAElm: return(null); //(CircuitElm)new OTAElm(x1, y1); case ELEMENTS.VCVSElm: return(null); //(CircuitElm)new VCVSElm(x1, y1); case ELEMENTS.VCCSElm: return(new VCCSElm(pos)); case ELEMENTS.CCVSElm: return(null); //(CircuitElm)new CCVSElm(x1, y1); case ELEMENTS.CCCS: return(new CCCSElm(pos)); case ELEMENTS.OPTOCOUPLER: return(new OptocouplerElm(pos)); case ELEMENTS.CustomCompositeElm: return(new CustomCompositeElm(pos)); #endregion #region Logic Gates case ELEMENTS.LOGIC_INPUT: return(new LogicInputElm(pos)); case ELEMENTS.LOGIC_OUTPUT: return(new LogicOutputElm(pos)); case ELEMENTS.TRISTATE: return(new TriStateElm(pos)); case ELEMENTS.NOT_GATE: return(new InverterElm(pos)); case ELEMENTS.AND_GATE: return(new AndGateElm(pos)); case ELEMENTS.NAND_GATE: return(new NandGateElm(pos)); case ELEMENTS.OR_GATE: return(new OrGateElm(pos)); case ELEMENTS.NOR_GATE: return(new NorGateElm(pos)); case ELEMENTS.XOR_GATE: return(new XorGateElm(pos)); #endregion #region Digital Chips case ELEMENTS.SCHMITT: return(new SchmittElm(pos)); case ELEMENTS.SCHMITT_INV: return(new InvertingSchmittElm(pos)); case ELEMENTS.DFlipFlopElm: return(new DFlipFlopElm(pos)); case ELEMENTS.JKFlipFlopElm: return(new JKFlipFlopElm(pos)); case ELEMENTS.TFlipFlopElm: return(new TFlipFlopElm(pos)); case ELEMENTS.SevenSegElm: return(null); //(CircuitElm)new SevenSegElm(x1, y1); case ELEMENTS.SevenSegDecoderElm: return(null); //(CircuitElm)new SevenSegDecoderElm(x1, y1); case ELEMENTS.MultiplexerElm: return(new MultiplexerElm(pos)); case ELEMENTS.DeMultiplexerElm: return(new DeMultiplexerElm(pos)); case ELEMENTS.SipoShiftElm: return(new SipoShiftElm(pos)); case ELEMENTS.PisoShiftElm: return(new PisoShiftElm(pos)); case ELEMENTS.CounterElm: return(new CounterElm(pos)); /* if you take out DecadeElm, it will break the menus and people's saved shortcuts */ /* if you take out RingCounterElm, it will break subcircuits */ case ELEMENTS.DecadeElm: case ELEMENTS.RingCounterElm: return(new RingCounterElm(pos)); case ELEMENTS.LatchElm: return(new LatchElm(pos)); case ELEMENTS.SeqGenElm: return(null); //(CircuitElm)new SeqGenElm(x1, y1); case ELEMENTS.FullAdderElm: return(new FullAdderElm(pos)); case ELEMENTS.HalfAdderElm: return(new HalfAdderElm(pos)); /* if you take out UserDefinedLogicElm, it will break people's saved shortcuts */ case ELEMENTS.CUSTOM_LOGIC: case ELEMENTS.UserDefinedLogicElm: return(new CustomLogicElm(pos)); case ELEMENTS.SRAMElm: return(new SRAMElm(pos)); #endregion #region Analog and Hybrid Chips case ELEMENTS.TimerElm: return(null); //(CircuitElm)new TimerElm(x1, y1); case ELEMENTS.PhaseCompElm: return(null); //(CircuitElm)new PhaseCompElm(x1, y1); case ELEMENTS.DACElm: return(null); //(CircuitElm)new DACElm(x1, y1); case ELEMENTS.ADCElm: return(null); //(CircuitElm)new ADCElm(x1, y1); case ELEMENTS.VCOElm: return(null); //(CircuitElm)new VCOElm(x1, y1); case ELEMENTS.MonostableElm: return(null); //(CircuitElm)new MonostableElm(x1, y1); #endregion case ELEMENTS.BoxElm: return(new BoxElm(pos)); case ELEMENTS.TextElm: return(new TextElm(pos)); default: return(null); } }
public bool HasElement(ELEMENTS element) { return(elements.Contains(element)); }
static public double CovalentRadius(ELEMENTS e) { return(Convert.ToDouble(LookupValue(e, "bo:radiusCovalent"))); }
static public string Symbol(ELEMENTS e) { return(e.ToString()); }
static public string ElecctronConfiguration(ELEMENTS e) { return(Element.LookupValue(e, "bo:electronicConfiguration")); }
void SetElement(string element) { e = (ELEMENTS)Enum.Parse(typeof(ELEMENTS), element); }
static public double ExactMass(ELEMENTS e) { return(Convert.ToDouble(Element.LookupValue(e, "bo:exactMass"))); }
static public int Group(ELEMENTS e) { return(Convert.ToInt32(Element.LookupValue(e, "bo:group"))); }
void selectRune(ELEMENTS element){ for (int i=0; i<maxElements; i++){ if(myElements[i]==ELEMENTS.ether){ if(cooldowns[(int)element]<=0){ myElements[i]=element; cooldowns[(int)element]+=elementCooldown; } break; } } }