Visualization Library v1.0.3A lightweight C++ OpenGL middleware for 2D/3D graphics |
[Download] [Tutorials] [All Classes] [Grouped Classes] |
00001 /**************************************************************************************/ 00002 /* */ 00003 /* Visualization Library */ 00004 /* http://visualizationlibrary.org */ 00005 /* */ 00006 /* Copyright (c) 2005-2010, Michele Bosi */ 00007 /* All rights reserved. */ 00008 /* */ 00009 /* Redistribution and use in source and binary forms, with or without modification, */ 00010 /* are permitted provided that the following conditions are met: */ 00011 /* */ 00012 /* - Redistributions of source code must retain the above copyright notice, this */ 00013 /* list of conditions and the following disclaimer. */ 00014 /* */ 00015 /* - Redistributions in binary form must reproduce the above copyright notice, this */ 00016 /* list of conditions and the following disclaimer in the documentation and/or */ 00017 /* other materials provided with the distribution. */ 00018 /* */ 00019 /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND */ 00020 /* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED */ 00021 /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */ 00022 /* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR */ 00023 /* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */ 00024 /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */ 00025 /* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON */ 00026 /* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */ 00027 /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ 00028 /* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ 00029 /* */ 00030 /**************************************************************************************/ 00031 00032 #include <vlMolecule/chem_database.hpp> 00033 00034 namespace vl 00035 { 00036 //----------------------------------------------------------------------------- 00037 static const AtomInfo elements_database[AT_Count] = 00038 { 00039 AtomInfo( AT_Hydrogen, "Hydrogen", "H", 1, 1.00794, 14.01, 20.28,2.20, 72.8, 1, 53, 25, 37, 120, 0xFFFFFF, 0xFFFFFF ), 00040 AtomInfo( AT_Helium, "Helium", "He", 2, 4.002602, 0.95, 4.22, -1, 0, 0, 31, -1, 32, 140, 0xD9FFFF, 0xFFC0CB ), 00041 AtomInfo( AT_Lithium, "Lithium", "Li", 3, 6.941, 453.69, 1615, 0.98, 59.6, 1, 167, 145, 134, 182, 0xCC80FF, 0xB22121 ), 00042 AtomInfo( AT_Beryllium, "Beryllium", "Be", 4, 9.012182, 1560, 2743, 1.57, 0, 2, 112, 105, 90, -1 , 0xC2FF00, 0xFF1493 ), 00043 AtomInfo( AT_Boron, "Boron", "B", 5, 10.811, 2348, 4273, 2.04, 26.7, 3, 87, 85, 82, -1 , 0xFFB5B5, 0x00FF00 ), 00044 AtomInfo( AT_Carbon, "Carbon", "C", 6, 12.0107, 3823, 4300, 2.55, 153.9, 4, 67, 70, 77, 170, 0x909090, 0xD3D3D3 ), 00045 AtomInfo( AT_Nitrogen, "Nitrogen", "N", 7, 14.0067, 63.05, 77.36, 3.04, 7.0, 3, 56, 65, 75, 155, 0x3050F8, 0x87CEE6 ), 00046 AtomInfo( AT_Oxygen, "Oxygen", "O", 8, 15.9994, 54.8, 90.2, 3.44, 141, 2, 48, 60, 73, 152, 0xFF0D0D, 0xFF0000 ), 00047 AtomInfo( AT_Fluorine, "Fluorine", "F", 9, 18.9984032, 53.5, 85.03, 3.98, 328, 1, 42, 50, 71, 147, 0x90E050, 0xDAA520 ), 00048 AtomInfo( AT_Neon, "Neon", "Ne", 10, 20.1797, 24.56, 27.07, -1, 0, 0, 38, -1, 69, 154, 0xB3E3F5, 0xFF1493 ), 00049 AtomInfo( AT_Sodium, "Sodium", "Na", 11, 22.98976928, 370.87, 1156, 0.93,52.08, 1, 190, 180, 154, 227, 0xAB5CF2, 0x0000FF ), 00050 AtomInfo( AT_Magnesium, "Magnesium", "Mg", 12, 24.3050, 923, 1363, 1.31, 0, 2, 145, 150, 130, 173, 0x8AFF00, 0x228B22 ), 00051 AtomInfo( AT_Aluminium, "Aluminium", "Al", 13, 26.9815386, 933, 2792, 1.61, 42.5, 3, 118, 125, 118, 0, 0xBFA6A6, 0x696969 ), 00052 AtomInfo( AT_Silicon, "Silicon", "Si", 14, 28.0855, 1687, 3173, 1.90,133.6, 4, 111, 110, 111, 210, 0xF0C8A0, 0xDAA520 ), 00053 AtomInfo( AT_Phosphorus, "Phosphorus", "P", 15, 30.973762, 317.3, 553.6, 2.19, 72, 5, 98, 100, 106, 180, 0xFF8000, 0xFFAA00 ), 00054 AtomInfo( AT_Sulfur, "Sulfur", "S", 16, 32.065, 388.36, 717.87,2.58, 200, 6, 88, 100, 102, 180, 0xFFFF30, 0xFFFF00 ), 00055 AtomInfo( AT_Chlorine, "Chlorine", "Cl", 17, 35.453, 171.6, 239.11,3.16, 359, 5, 79, 100, 99, 175, 0x1FF01F, 0x00FF00 ), 00056 AtomInfo( AT_Argon, "Argon", "Ar", 18, 39.948, 83.8, 87.3, -1, 0, 0, 71, 71, 97, 188, 0x80D1E3, 0xFA1691 ), 00057 AtomInfo( AT_Potassium, "Potassium", "K", 19, 39.0983, 336.53, 1032, 0.82, 48.4, 1, 243, 220, 196, 275, 0x8F40D4, 0xFA1691 ), 00058 AtomInfo( AT_Calcium, "Calcium", "Ca", 20, 40.078, 1115, 1757, 1.0, 2.37, 2, 194, 180, 174, -1, 0x3DFF00, 0x696969 ), 00059 AtomInfo( AT_Scandium, "Scandium", "Sc", 21, 44.955912, 1814, 3103, 1.36, 18.1, 3, 184, 160, 144, -1, 0xE6E6E6, 0xFA1691 ), 00060 AtomInfo( AT_Titanium, "Titanium", "Ti", 22, 47.867, 1941, 3560, 1.54, 7.6, 4, 176, 140, 136, -1, 0xBFC2C7, 0x696969 ), 00061 AtomInfo( AT_Vanadium, "Vanadium", "V", 23, 50.9415, 2183, 3680, 1.63, 50.6, 5, 171, 135, 125, -1, 0xA6A6AB, 0xFA1691 ), 00062 AtomInfo( AT_Chromium, "Chromium", "Cr", 24, 51.9961, 2180, 2944, 1.66, 64.3, 6, 166, 140, 127, -1, 0x8A99C7, 0x696969 ), 00063 AtomInfo( AT_Manganese, "Manganese", "Mn", 25, 54.938045, 1519, 2334, 1.55, 0, 4, 161, 140, 139, -1, 0x9C7AC7, 0x696969 ), 00064 AtomInfo( AT_Iron, "Iron", "Fe", 26, 55.845, 1811, 3134, 1.83, 15.7, 3, 156, 140, 125, -1, 0xE06633, 0xFFAA00 ), 00065 AtomInfo( AT_Cobalt, "Cobalt", "Co", 27, 58.933195, 1768, 3200, 1.88, 63.7, 4, 152, 135, 126, -1, 0xF090A0, 0xFA1691 ), 00066 AtomInfo( AT_Nickel, "Nickel", "Ni", 28, 58.6934, 1728, 3186, 1.91, 112, 4, 149, 135, 121, 163, 0x50D050, 0x802828 ), 00067 AtomInfo( AT_Copper, "Copper", "Cu", 29, 63.546, 1357.77,3200, 1.90, 118.4, 2, 145, 135, 138, 140, 0xC88033, 0x802828 ), 00068 AtomInfo( AT_Zinc, "Zinc", "Zn", 30, 65.409, 692.68, 1180, 1.65, 0, 2, 142, 135, 131, 139, 0x7D80B0, 0x802828 ), 00069 AtomInfo( AT_Gallium, "Gallium", "Ga", 31, 69.723, 302.91, 2477, 1.81, 28.9, 3, 136, 130, 126, 187, 0xC28F8F, 0xFA1691 ), 00070 AtomInfo( AT_Germanium, "Germanium", "Ge", 32, 72.64, 1211.4, 3093, 2.01, 119, 4, 125, 125, 122, -1, 0x668F8F, 0xFA1691 ), 00071 AtomInfo( AT_Arsenic, "Arsenic", "As", 33, 74.92160, 1090, 887, 2.18, 78, 5, 114, 115, 119, 185, 0xBD80E3, 0xFA1691 ), 00072 AtomInfo( AT_Selenium, "Selenium", "Se", 34, 78.96, 494, 958, 2.55, 195, 6, 103, 115, 116, 190, 0xFFA100, 0xFA1691 ), 00073 AtomInfo( AT_Bromine, "Bromine", "Br", 35, 79.904, 265.8, 332, 2.96, 324.6, 7, 94, 115, 114, 185, 0xA62929, 0x802828 ), 00074 AtomInfo( AT_Krypton, "Krypton", "Kr", 36, 83.798, 115.79, 119.93, 3.0, 0, 4, 88, -1, 110, 202, 0x5CB8D1, 0xFA1691 ), 00075 AtomInfo( AT_Rubidium, "Rubidium", "Rb", 37, 85.4678, 312.46, 961, 0.82, 46.9, 1, 265, 235, 211, -1, 0x702EB0, 0xFA1691 ), 00076 AtomInfo( AT_Strontium, "Strontium", "Sr", 38, 87.62, 1050, 1655, 0.95, 5.03, 2, 212, 200, 192, -1, 0x00FF00, 0xFA1691 ), 00077 AtomInfo( AT_Yttrium, "Yttrium", "Y", 39, 88.90585, 1799, 3618, 1.22, 29.6, 3, 212, 180, 162, -1, 0x94FFFF, 0xFA1691 ), 00078 AtomInfo( AT_Zirconium, "Zirconium", "Zr", 40, 91.224, 2128, 4682, 1.33, 41.1, 4, 206, 155, 148, -1, 0x94E0E0, 0xFA1691 ), 00079 AtomInfo( AT_Niobium, "Niobium", "Nb", 41, 92.906, 2750, 5017, 1.6, 86.1, 5, 198, 145, 137, -1, 0x73C2C9, 0xFA1691 ), 00080 AtomInfo( AT_Molybdenum, "Molybdenum", "Mo", 42, 95.94, 2896, 4912, 2.16, 71.9, 6, 190, 145, 145, -1, 0x54B5B5, 0xFA1691 ), 00081 AtomInfo( AT_Technetium, "Technetium", "Tc", 43, 98.0, 2430, 4538, 1.9, 53, 7, 183, 135, 156, -1, 0x3B9E9E, 0xFA1691 ), 00082 AtomInfo( AT_Ruthenium, "Ruthenium", "Ru", 44, 101.07, 2607, 4423, 2.2, 101.3, 6, 178, 130, 126, -1, 0x248F8F, 0xFA1691 ), 00083 AtomInfo( AT_Rhodium, "Rhodium", "Rh", 45, 102.905, 2237, 3968, 2.28, 109.7, 6, 173, 135, 135, -1, 0x0A7D8C, 0xFA1691 ), 00084 AtomInfo( AT_Palladium, "Palladium", "Pd", 46, 106.42, 1828.05,3236, 2.20, 53.7, 4, 169, 140, 131, 163, 0x006985, 0xFA1691 ), 00085 AtomInfo( AT_Silver, "Silver", "Ag", 47, 107.8682, 1234.93, 2435, 1.93, 125.6, 4, 165, 160, 153, 172, 0xC0C0C0, 0x696969 ), 00086 AtomInfo( AT_Cadmium, "Cadmium", "Cd", 48, 112.411, 594.22, 1040, 1.69, 0, 2, 161, 155, 148, 158, 0xFFD98F, 0xFA1691 ), 00087 AtomInfo( AT_Indium, "Indium", "In", 49, 114.818, 429.75, 2345, 1.78, 28.9, 3, 156, 155, 144, 193, 0xA67573, 0xFA1691 ), 00088 AtomInfo( AT_Tin, "Tin", "Sn", 50, 118.710, 505.08, 2875, 1.96, 107.3, 4, 145, 145, 141, 217, 0x668080, 0xFA1691 ), 00089 AtomInfo( AT_Antimony, "Antimony", "Sb", 51, 121.760, 903.78, 1860, 2.05, 103.2, 5, 133, 145, 138, -1, 0x9E63B5, 0xFA1691 ), 00090 AtomInfo( AT_Tellurium, "Tellurium", "Te", 52, 127.60, 722.66, 1261, 2.1, 190.2, 6, 123, 140, 135, 206, 0xD47A00, 0xFA1691 ), 00091 AtomInfo( AT_Iodine, "Iodine", "I", 53, 126.90447, 386.85, 457.4, 2.66, 295.2, 7, 115, 140, 133, 198, 0x940094, 0xFA1691 ), 00092 AtomInfo( AT_Xenon, "Xenon", "Xe", 54, 131.293, 161.3, 165.1, 2.6, 0, 6, 108,-1, 130, 216, 0x429EB0, 0xFA1691 ), 00093 AtomInfo( AT_Caesium, "Caesium", "Cs", 55, 132.9054519, 301.59, 944, 0.79, 45.5, 3, 298, 260, 225, -1, 0x57178F, 0xFA1691 ), 00094 AtomInfo( AT_Barium, "Barium", "Ba", 56, 137.327, 1000, 2143, 0.89, 13.95, 2, 253, 215, 198, -1, 0x00C900, 0xFFAA00 ), 00095 AtomInfo( AT_Lanthanum, "Lanthanum", "La", 57, 138.90547, 1193, 3737, 1.10, 48, 3,-1, 195, 169, -1, 0x70D4FF, 0xFA1691 ), 00096 AtomInfo( AT_Cerium, "Cerium", "Ce", 58, 140.116, 1071, 3633, 1.12, 50, 4,-1, 185,-1, -1, 0xFFFFC7, 0xFA1691 ), 00097 AtomInfo( AT_Praseodymium, "Praseodymium", "Pr", 59, 140.90765, 1204, 3563, 1.13, 50, 4, 247, 185,-1, -1, 0xD9FFC7, 0xFA1691 ), 00098 AtomInfo( AT_Neodymium, "Neodymium", "Nd", 60, 144.242, 1294, 3373, 1.14, 50, 3, 206, 185,-1, -1, 0xC7FFC7, 0xFA1691 ), 00099 AtomInfo( AT_Promethium, "Promethium", "Pm", 61, 145, 1373, 3273, -1, 50, 3, 205, 185,-1, -1, 0xA3FFC7, 0xFA1691 ), 00100 AtomInfo( AT_Samarium, "Samarium", "Sm", 62, 150.36, 1345, 2076, 1.17, 50, 3, 238, 185,-1, -1, 0x8FFFC7, 0xFA1691 ), 00101 AtomInfo( AT_Europium, "Europium", "Eu", 63, 151.964, 1095, 1800, -1, 50, 3, 231, 185,-1, -1, 0x61FFC7, 0xFA1691 ), 00102 AtomInfo( AT_Gadolinium, "Gadolinium", "Gd", 64, 157.25, 1586, 3523, 1.20, 50, 3, 233, 180,-1, -1, 0x45FFC7, 0xFA1691 ), 00103 AtomInfo( AT_Terbium, "Terbium", "Tb", 65, 158.92535, 1629, 3503, -1, 50, 4, 225, 175,-1, -1, 0x30FFC7, 0xFA1691 ), 00104 AtomInfo( AT_Dysprosium, "Dysprosium", "Dy", 66, 162.500, 1685, 2840, 1.22, 50, 3, 228, 175,-1, -1, 0x1FFFC7, 0xFA1691 ), 00105 AtomInfo( AT_Holmium, "Holmium", "Ho", 67, 164.93032, 1747, 2973, 1.23, 50, 3, 226, 175,-1, -1, 0x00FF9C, 0xFA1691 ), 00106 AtomInfo( AT_Erbium, "Erbium", "Er", 68, 167.259, 1770, 3141, 1.24, 50, 3, 226, 175,-1, -1, 0x00E675, 0xFA1691 ), 00107 AtomInfo( AT_Thulium, "Thulium", "Tm", 69, 168.93421, 1818, 2223, 1.25, 50, 3, 222, 175,-1, -1, 0x00D452, 0xFA1691 ), 00108 AtomInfo( AT_Ytterbium, "Ytterbium", "Yb", 70, 173.04, 1092, 1469, -1, 50, 3, 222, 175,-1, -1, 0x00BF38, 0xFA1691 ), 00109 AtomInfo( AT_Lutetium, "Lutetium", "Lu", 71, 174.967, 1936, 3675, 1.27, 50, 3, 217, 175, 160, -1, 0x00AB24, 0xFA1691 ), 00110 AtomInfo( AT_Hafnium, "Hafnium", "Hf", 72, 178.49, 2506, 4876, 1.3, 0, 4, 208, 155, 150, -1, 0x4DC2FF, 0xFA1691 ), 00111 AtomInfo( AT_Tantalum, "Tantalum", "Ta", 73, 180.94788, 3290, 5731, 1.5, 31, 5, 220, 145, 138, -1, 0x4DA6FF, 0xFA1691 ), 00112 AtomInfo( AT_Tungsten, "Tungsten", "W", 74, 183.84, 3695, 5828, 2.36, 78.6, 6, 193, 135, 146, -1, 0x2194D6, 0xFA1691 ), 00113 AtomInfo( AT_Rhenium, "Rhenium", "Re", 75, 186.207, 3459, 5869, 1.9, 14.5, 7, 188, 135, 159, -1, 0x267DAB, 0xFA1691 ), 00114 AtomInfo( AT_Osmium, "Osmium", "Os", 76, 190.23, 3306, 5285, 2.2, 106.1, 7, 185, 130, 128, -1, 0x266696, 0xFA1691 ), 00115 AtomInfo( AT_Iridium, "Iridium", "Ir", 77, 192.217, 2739, 4701, 2.20, 151, 6, 180, 135, 137, -1, 0x175487, 0xFA1691 ), 00116 AtomInfo( AT_Platinum, "Platinum", "Pt", 78, 195.084, 2041, 4098, 2.28, 205.3, 6, 177, 135, 128, 175, 0xD0D0E0, 0xFA1691 ), 00117 AtomInfo( AT_Gold, "Gold", "Au", 79, 196.966569, 1337.33, 3129, 2.54, 222.8, 7, 174, 135, 144, 166, 0xFFD123, 0xDAA520 ), 00118 AtomInfo( AT_Mercury, "Mercury", "Hg", 80, 200.59, 234.32, 629.88,2.0 , 0, 2, 171, 150, 149, 155, 0xB8B8D0, 0xFA1691 ), 00119 AtomInfo( AT_Thallium, "Thallium", "Tl", 81, 204.3833, 577, 1746, 1.62, 19.2, 3, 156, 190, 148, 196, 0xA6544D, 0xFA1691 ), 00120 AtomInfo( AT_Lead, "Lead", "Pb", 82, 207.2, 600.61, 2022, 2.33, 35.1, 4, 154, 180, 147, 202, 0x575961, 0xFA1691 ), 00121 AtomInfo( AT_Bismuth, "Bismuth", "Bi", 83, 208.98040, 544.4, 1837, 20.2, 91.2, 5, 143, 160, 146, -1, 0x9E4FB5, 0xFA1691 ), 00122 AtomInfo( AT_Polonium, "Polonium", "Po", 84, 210, 527, 1235, 20.0, 183.3, 6, 135, 190, -1, -1, 0xAB5C00, 0xFA1691 ), 00123 AtomInfo( AT_Astatine, "Astatine", "At", 85, 210, 575, 610, 2.2, 270.1, 7, 127, -1, -1, -1, 0x754F45, 0xFA1691 ), 00124 AtomInfo( AT_Radon, "Radon", "Rn", 86, 220, 202, 211.3, -1, 0, 6, 120, -1, 145, -1, 0x428296, 0xFA1691 ), 00125 AtomInfo( AT_Francium, "Francium", "Fr", 87, 223, 300, 950, 0.7, -1, 3, -1, -1, -1, -1, 0x420066, 0xFA1691 ), 00126 AtomInfo( AT_Radium, "Radium", "Ra", 88, 226, 973, 2010, 0.9, -1, 2, -1, 215, -1, -1, 0x007D00, 0xFA1691 ), 00127 AtomInfo( AT_Actinium, "Actinium", "Ac", 89, 227, 1323, 3473, 1.1, -1, 3, -1, 195, -1, -1, 0x70ABFA, 0xFA1691 ), 00128 AtomInfo( AT_Thorium, "Thorium", "Th", 90, 232.03806, 2023, 5093, 1.3, -1, 4, -1, 180, -1, -1, 0x00BAFF, 0xFA1691 ), 00129 AtomInfo( AT_Protactinium, "Protactinium", "Pa", 91, 231.03588, 1845, 4273, 1.5, -1, 5, -1, 180, -1, -1, 0x00A1FF, 0xFA1691 ), 00130 AtomInfo( AT_Uranium, "Uranium", "U", 92, 238.02891, 1408, 4200, 1.38,-1, 6, -1, 175, -1, 186, 0x008FFF, 0xFA1691 ), 00131 AtomInfo( AT_Neptunium, "Neptunium", "Np", 93, 237, 917, 4273, 1.36,-1, 6, -1, 175, -1, -1, 0x0080FF, 0xFA1691 ), 00132 AtomInfo( AT_Plutonium, "Plutonium", "Pu", 94, 244, 913, 3503, 1.28,-1, 6, -1, 175, -1, -1, 0x006BFF, 0xFA1691 ), 00133 AtomInfo( AT_Americium, "Americium", "Am", 95, 243, 1449, 2284, 1.3, -1, 4, -1, 175, -1, -1, 0x545CF2, 0xFA1691 ), 00134 AtomInfo( AT_Curium, "Curium", "Cm", 96, 247, 1618, 3383, 1.3, -1, 4, -1, -1, -1, -1, 0x785CE3, 0xFA1691 ), 00135 AtomInfo( AT_Berkelium, "Berkelium", "Bk", 97, 247, 1323, -1, 1.3, -1, 4, -1, -1, -1, -1, 0x8A4FE3, 0xFA1691 ), 00136 AtomInfo( AT_Californium, "Californium", "Cf", 98, 251, 1173, -1, 1.3, -1, 4, -1, -1, -1, -1, 0xA136D4, 0xFA1691 ), 00137 AtomInfo( AT_Einsteinium, "Einsteinium", "Es", 99, 252, 1133, -1, 1.3, -1, 4, -1, -1, -1, -1, 0xB31FD4, 0xFA1691 ), 00138 AtomInfo( AT_Fermium, "Fermium", "Fm", 100, 257, 1800, -1, 1.3, -1, 3, -1, -1, -1, -1, 0xB31FBA, 0xFA1691 ), 00139 AtomInfo( AT_Mendelevium, "Mendelevium", "Md", 101, 258, 1100, -1, 1.3, -1, 3, -1, -1, -1, -1, 0xB30DA6, 0xFA1691 ), 00140 AtomInfo( AT_Nobelium, "Nobelium", "No", 102, 259, 1100, -1, 1.3, -1, 3, -1, -1, -1, -1, 0xBD0D87, 0xFA1691 ), 00141 AtomInfo( AT_Lawrencium, "Lawrencium", "Lr", 103, 262, 1900, -1, -1, -1, 3, -1, -1, -1, -1, 0xC70066, 0xFA1691 ), 00142 AtomInfo( AT_Rutherfordium, "Rutherfordium", "Rf",104, 261, -1, -1, -1, -1, 4, -1, -1, -1, -1, 0xCC0059, 0xFA1691 ), 00143 AtomInfo( AT_Dubnium, "Dubnium", "Db", 105, 262, -1, -1, -1, -1, 5, -1, -1, -1, -1, 0xD1004F, 0xFA1691 ), 00144 AtomInfo( AT_Seaborgium, "Seaborgium", "Sg", 106, 266, -1, -1, -1, -1, 6, -1, -1, -1, -1, 0xD90045, 0xFA1691 ), 00145 AtomInfo( AT_Bohrium, "Bohrium", "Bh", 107, 264, -1, -1, -1, -1, 7, -1, -1, -1, -1, 0xE00038, 0xFA1691 ), 00146 AtomInfo( AT_Hassium, "Hassium", "Hs", 108, 277, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xE6002E, 0xFA1691 ), 00147 AtomInfo( AT_Meitnerium, "Meitnerium", "Mt", 109, 268, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xEB0026, 0xFA1691 ), 00148 AtomInfo( AT_Darmstadtium, "Darmstadtium", "Ds", 110, 271, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00149 AtomInfo( AT_Roentgenium, "Roentgenium", "Rg", 111, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00150 AtomInfo( AT_Ununbium, "Ununbium", "Uub", 112, 285, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00151 AtomInfo( AT_Ununtrium, "Ununtrium", "Uut", 113, 284, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00152 AtomInfo( AT_Ununquadium, "Ununquadium", "Uuq", 114, 289, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00153 AtomInfo( AT_Ununpentium, "Ununpentium", "Uup", 115, 288, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00154 AtomInfo( AT_Ununhexium, "Ununhexium", "Uuh", 116, 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00155 AtomInfo( AT_Ununseptium, "Ununseptium", "Uus", 117, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00156 AtomInfo( AT_Ununoctium, "Ununoctium", "Uuo", 118, 294, -1, -1, -1, -1, 6, -1, -1, -1, -1, 0xF00024, 0xFA1691 ), 00157 AtomInfo( AT_Unknown, "Unknown", "-", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0xFA1691, 0xFA1691 ), 00158 }; 00159 //----------------------------------------------------------------------------- 00160 const AtomInfo& atomInfo(EAtomType type) { return elements_database[type]; } 00161 //----------------------------------------------------------------------------- 00162 EAtomType atomType(const char* type) 00163 { 00164 std::string str = String(type).trim().toStdString(); 00165 for(int i=0; i<AT_Count; ++i) 00166 { 00167 if (strcmp(str.c_str(), elements_database[i].name()) == 0) 00168 return elements_database[i].type(); 00169 if (strcmp(str.c_str(), elements_database[i].symbol()) == 0) 00170 return elements_database[i].type(); 00171 } 00172 // see http://www.tripos.com/mol2/atom_types.html (Sybyl types) 00173 if (str == "C.3") return vl::AT_Carbon; 00174 if (str == "C.2") return vl::AT_Carbon; 00175 if (str == "C.1") return vl::AT_Carbon; 00176 if (str == "C.ar") return vl::AT_Carbon; 00177 if (str == "C.cat") return vl::AT_Carbon; 00178 if (str == "N.3") return vl::AT_Nitrogen; 00179 if (str == "N.2") return vl::AT_Nitrogen; 00180 if (str == "N.1") return vl::AT_Nitrogen; 00181 if (str == "N.ar") return vl::AT_Nitrogen; 00182 if (str == "N.am") return vl::AT_Nitrogen; 00183 if (str == "N.pl3") return vl::AT_Nitrogen; 00184 if (str == "N.4") return vl::AT_Nitrogen; 00185 if (str == "O.3") return vl::AT_Oxygen; 00186 if (str == "O.2") return vl::AT_Oxygen; 00187 if (str == "O.co2") return vl::AT_Oxygen; 00188 if (str == "O.spc") return vl::AT_Oxygen; 00189 if (str == "O.t3p") return vl::AT_Oxygen; 00190 if (str == "S.3") return vl::AT_Sulfur; 00191 if (str == "S.2") return vl::AT_Sulfur; 00192 if (str == "S.O") return vl::AT_Sulfur; 00193 if (str == "S.O2") return vl::AT_Sulfur; 00194 if (str == "P.3") return vl::AT_Sulfur; 00195 if (str == "H.spc") return vl::AT_Hydrogen; 00196 if (str == "H.t3p") return vl::AT_Hydrogen; 00197 if (str == "LP") return vl::AT_Unknown; 00198 if (str == "Du") return vl::AT_Unknown; 00199 if (str == "Du.C") return vl::AT_Unknown; 00200 if (str == "Any") return vl::AT_Unknown; 00201 if (str == "Hal") return vl::AT_Unknown; 00202 if (str == "Het") return vl::AT_Unknown; 00203 if (str == "Hev") return vl::AT_Unknown; 00204 if (str == "Cr.th") return vl::AT_Chromium; 00205 if (str == "Cr.oh ") return vl::AT_Chromium; 00206 if (str == "Co.oh") return vl::AT_Cobalt; 00207 return AT_Unknown; 00208 } 00209 //----------------------------------------------------------------------------- 00210 }