source: molecuilder/src/element.hpp@ 6d7651

Last change on this file since 6d7651 was 17b3a5c, checked in by Frederik Heber <heber@…>, 16 years ago

forward declarations used to untangle interdependet classes.

  • basically, everywhere in header files we removed '#include' lines were only pointer to the respective classes were used and the include line was moved to the implementation file.
  • as a sidenote, lots of funny errors happened because headers were included via a nesting over three other includes. Now, all should be declared directly as needed, as only very little include lines remain in header files.
  • Property mode set to 100644
File size: 1.8 KB
Line 
1/*
2 * element.hpp
3 *
4 * Created on: Aug 3, 2009
5 * Author: heber
6 */
7
8#ifndef ELEMENT_HPP_
9#define ELEMENT_HPP_
10
11using namespace std;
12
13/*********************************************** includes ***********************************/
14
15// include config.h
16#ifdef HAVE_CONFIG_H
17#include <config.h>
18#endif
19
20#include <iostream>
21
22#include "defs.hpp"
23
24/********************************************** declarations *******************************/
25
26/** Chemical element.
27 * Class incorporates data for a certain chemical element to be referenced from atom class.
28 */
29class element {
30 public:
31 double mass; //!< mass in g/mol
32 double CovalentRadius; //!< covalent radius
33 double VanDerWaalsRadius; //!< can-der-Waals radius
34 int Z; //!< atomic number
35 char name[64]; //!< atom name, i.e. "Hydrogren"
36 char symbol[3]; //!< short form of the atom, i.e. "H"
37 char period[8]; //!< period: n quantum number
38 char group[8]; //!< group: l quantum number
39 char block[8]; //!< block: l quantum number
40 element *previous; //!< previous item in list
41 element *next; //!< next element in list
42 int *sort; //!< sorc criteria
43 int No; //!< number of element set on periodentafel::Output()
44 double Valence; //!< number of valence electrons for this element
45 int NoValenceOrbitals; //!< number of valence orbitals, used for determining bond degree in molecule::CreateConnectmatrix()
46 double HBondDistance[NDIM]; //!< distance in Angstrom of this element to hydrogen (for single, double and triple bonds)
47 double HBondAngle[NDIM]; //!< typical angle for one, two, three bonded hydrogen (in degrees)
48
49 element();
50 ~element();
51
52 //> print element entries to screen
53 bool Output(ofstream *out) const;
54 bool Checkout(ofstream *out, const int No, const int NoOfAtoms) const;
55
56 private:
57};
58
59
60#endif /* ELEMENT_HPP_ */
Note: See TracBrowser for help on using the repository browser.