#include <libelemental/value.hh>
#include <libelemental/value-types.hh>
#include <list>
#include <stdexcept>
#include <vector>
#include <libelemental/properties.hh>
#include <libelemental/element.tcc>
|
| Elemental |
| A periodic table library with detailed information on elements.
|
|
Property, Category, and Element classes.
@ POST_TRANSITION_METAL
post-transition metals
Definition: value-types.hh:144
A qualified value representing a chemical series.
Definition: value-types.hh:130
@ TRI
triclinic
Definition: value-types.hh:263
@ LIQUID
liquid
Definition: value-types.hh:225
Message name
The untranslated name of the property.
Definition: element.hh:89
std::vector< const Element * > Table
The periodic table of elements.
Definition: table.hh:38
int when
The year in which the event occurred, if defined.
Definition: value-types.hh:114
std::string symbol
The chemical symbol for this element.
Definition: element.hh:236
double red
The red component of the color in the RGB space.
Definition: value.hh:77
ustring value
The untranslated message, if defined.
Definition: value-types.hh:74
@ MONO
monoclinic
Definition: value-types.hh:264
color get_compliment() const
Returns a grayscale color complimentary in luminance to this color.
virtual int compare_base(const value_base &other) const
Compares the qualifications of two events.
@ HEX
hexagonal
Definition: value-types.hh:268
@ ORTH
orthorhombic
Definition: value-types.hh:265
@ Q_NA
Indicates that a value is not applicable for an element.
Definition: value.hh:53
Message format
An untranslated compose-style format for values of the property.
Definition: element.hh:92
@ Q_EST
Indicates that a value is estimated or calculated.
Definition: value.hh:54
@ BCC
body-centered cubic
Definition: value-types.hh:270
@ Q_NEUTRAL
Indicates a presumably valid value.
Definition: value.hh:51
Property< Float > FloatProperty
A floating-point property of the chemical elements.
Definition: element.hh:169
@ SOLID
solid
Definition: value-types.hh:224
Series(const Value &source, Qualifier qualifier=Q_NEUTRAL)
Constructs a new defined series.
@ ALKALI_METAL
alkali metals
Definition: value-types.hh:140
@ P
p-block (principal)
Definition: value-types.hh:185
Qualifier qualifier
The qualification of the value's meaning.
Definition: value.hh:184
void make_entry(EntriesView &view, const value_base &value) const
Possibly adds a value for this property to an EntriesView.
const double STANDARD_TEMPERATURE
The standard temperature, in Kelvin, as defined by IUPAC.
color(double red=0.0, double green=0.0, double blue=0.0)
Constructs a new color with red, green, and blue percentages.
ustring get_name() const
Returns the translated name of the property.
A qualified list of values of a generic type.
Definition: value.hh:333
color composite(const color &other, double alpha) const
Returns a composite of this color and another.
A periodic table library with detailed information on elements.
Definition: value.hh:40
color value
The display color, if defined.
Definition: value-types.hh:328
Value value
The value, if defined.
Definition: value-types.hh:166
std::list< Category * > CATEGORIES
The categories of available properties of the chemical elements.
std::string get_hex_spec() const
Returns a hexadecimal specification of the color ("#rrggbb" format).
virtual ustring do_get_string(const ustring &format) const
Returns a localized text representation of a defined value.
A qualified UTF-8 string value that requires translation.
Definition: value-types.hh:52
@ SEMIMETAL
semimetals
Definition: value-types.hh:142
AtomicNumber number
The atomic number of this element.
Definition: element.hh:239
virtual int compare(const value_base &other) const
Compares two qualified values.
std::list< PropertyBase * > properties
The properties in the category.
Definition: element.hh:186
Qualifier
A qualification of the meaning of a value.
Definition: value.hh:49
bool has_format() const
Returns whether a compose-style format for values is defined.
Message description
An untranslated explanatory description of the property.
Definition: element.hh:95
An interface for the display of value entries.
Definition: value.hh:104
A chemical element.
Definition: element.hh:202
Value< double > Float
A qualified floating-point value.
Definition: value-types.hh:34
ustring get_description() const
Returns a translated explanatory description of the property.
@ NONMETAL
nonmetals
Definition: value-types.hh:138
A typed property of the chemical elements.
Definition: element.hh:102
A qualified value representing the time and location of an event.
Definition: value-types.hh:85
virtual bool is_colorable() const
Returns whether values of the property have color representations.
T value
The value, if defined.
Definition: value.hh:313
An adapter for the display of value entries on an output stream.
Definition: value.hh:141
Value< long > Int
A qualified integer value.
Definition: value-types.hh:37
Message name
The untranslated name of the category.
Definition: element.hh:195
A category of properties of the chemical elements.
Definition: element.hh:174
@ TRANSITION_METAL
transition metals
Definition: value-types.hh:145
Event(int when, const ustring &where, Qualifier qualifier=Q_NEUTRAL)
Constructs a new defined event.
const Table & get_table()
Returns the periodic table of elements.
ustring get_format() const
Returns a translated compose-style format for values of the property.
Value
The possible phase values.
Definition: value-types.hh:222
virtual ustring do_get_string(const ustring &format) const
Returns a localized text representation of a defined value.
std::list< const Message * > sources
Citations for the sources of values for the property.
Definition: element.hh:68
ustring where
The place in which the event occurred, if defined.
Definition: value-types.hh:117
A qualified value representing a periodic table block.
Definition: value-types.hh:176
virtual int compare(const value_base &other) const
Compares two qualified values.
void initialize()
Initializes libelemental.
@ SC
simple cubic
Definition: value-types.hh:269
@ ACTINIDE
actinides
Definition: value-types.hh:147
@ RHO
rhombohedral
Definition: value-types.hh:267
std::vector< T > values
The values, if defined.
Definition: value.hh:358
@ D
d-block (diffuse)
Definition: value-types.hh:186
@ LANTHANIDE
lanthanides
Definition: value-types.hh:146
Value
The possible lattice type values.
Definition: value-types.hh:261
A qualified value representing a phase of matter.
Definition: value-types.hh:216
const Element & get_element(AtomicNumber number)
Returns the element with a given atomic number.
@ Q_UNK
Indicates that a value is unknown or unavailable.
Definition: value.hh:52
Value
The possible chemical series values.
Definition: value-types.hh:136
double green
The green component of the color in the RGB space.
Definition: value.hh:80
A qualified value representing a display color.
Definition: value-types.hh:301
Value
The possible lattice type values.
Definition: value-types.hh:182
ValueList< double > FloatList
A qualified list of floating-point values.
Definition: value-types.hh:43
virtual ustring get_string(const ustring &format=ustring()) const
Returns a localized text representation of the value.
A property of the chemical elements.
Definition: element.hh:45
@ NOBLE_GAS
noble gases
Definition: value-types.hh:139
virtual ustring do_get_string(const ustring &format) const
Returns a localized text representation of a defined value.
@ HALOGEN
halogens
Definition: value-types.hh:143
virtual color get_color() const
Returns a color representing the value.
A color description.
Definition: value.hh:66
Value< ustring > String
A qualified UTF-8 string value that does not require translation.
Definition: value-types.hh:40
A floating-point property of the chemical elements.
Definition: element.hh:115
@ TET
tetragonal
Definition: value-types.hh:266
unsigned int AtomicNumber
An atomic number.
Definition: value.hh:60
@ S
s-block (sharp)
Definition: value-types.hh:184
ValueList< long > IntList
A qualified list of integer values.
Definition: value-types.hh:46
A base class for qualified values which have representative colors.
Definition: value.hh:262
A qualified value representing a Bravais lattice type.
Definition: value-types.hh:255
double get_luminance() const
Returns the luminous intensity of the color.
virtual ustring get_string(const ustring &format=ustring()) const
Returns a localized text representation of the event.
A base class for qualified values.
Definition: value.hh:177
@ Q_ISO
Indicates a value for the most stable isotope of an element.
Definition: value.hh:56
@ ALKALINE_EARTH_METAL
alkaline earth metals
Definition: value-types.hh:141
virtual int compare(const value_base &other) const
Compares two qualified values.
@ Q_CA
Indicates that a value is approximate.
Definition: value.hh:55
double blue
The blue component of the color in the RGB space.
Definition: value.hh:83
Message(const char *source, Qualifier qualifier=Q_NEUTRAL)
Constructs a new defined message.