| 1 | mmeineke | 377 | #ifndef _MOLECULE_H_ | 
| 2 |  |  | #define _MOLECULE_H_ | 
| 3 |  |  |  | 
| 4 |  |  | #include "Atom.hpp" | 
| 5 |  |  | #include "SRI.hpp" | 
| 6 | mmeineke | 407 | #include "MoleculeStamp.hpp" | 
| 7 | gezelter | 416 | #include "Exclude.hpp" | 
| 8 | mmeineke | 377 |  | 
| 9 | mmeineke | 407 | typedef struct{ | 
| 10 |  |  |  | 
| 11 |  |  | int stampID;   // the ID in the BASS component stamp array | 
| 12 |  |  | int nAtoms;    // the number of atoms in the molecule | 
| 13 |  |  | int nBonds;    // ... .. ..  . .bonds .. .. . . . . | 
| 14 |  |  | int nBends;    // . . . . .. . .bends . . . . .. . | 
| 15 | gezelter | 416 | int nTorsions; // .. . . .. . . torsions . . .. . . | 
| 16 |  |  | int nOriented; // .. . . . .. . oriented atoms . . . | 
| 17 | mmeineke | 407 |  | 
| 18 | mmeineke | 412 | Atom** myAtoms;      // the array of atoms | 
| 19 |  |  | Exclude** myExcludes;// the array of Excluded pairs | 
| 20 | mmeineke | 407 | Bond** myBonds;      // arrays of all the short range interactions | 
| 21 |  |  | Bend** myBends; | 
| 22 |  |  | Torsion** myTorsions; | 
| 23 |  |  |  | 
| 24 |  |  |  | 
| 25 |  |  | } molInit; | 
| 26 |  |  |  | 
| 27 | mmeineke | 377 | class Molecule{ | 
| 28 |  |  |  | 
| 29 |  |  | public: | 
| 30 |  |  |  | 
| 31 | mmeineke | 407 | Molecule( void ); | 
| 32 |  |  | ~Molecule( void ); | 
| 33 | mmeineke | 377 |  | 
| 34 | mmeineke | 407 | void initialize( molInit &theInit ); | 
| 35 |  |  |  | 
| 36 | mmeineke | 377 | int   getNMembers( void )  { return nMembers; } | 
| 37 |  |  | int   getStartAtom( void ) { return startAtom; } | 
| 38 |  |  | int   getEndAtom( void )   { return endAtom; } | 
| 39 |  |  | int   getStampID( void )   { return stampID; } | 
| 40 |  |  |  | 
| 41 |  |  | void   setNMembers( int info )  { nMembers = info; } | 
| 42 |  |  | void   setStartAtom( int info ) { startAtom = info; } | 
| 43 |  |  | void   setEndAtom( int info )   { endAtom = info; } | 
| 44 |  |  | void   setStampID( int info )   { stampID = info; } | 
| 45 |  |  |  | 
| 46 |  |  |  | 
| 47 |  |  | private: | 
| 48 |  |  |  | 
| 49 | mmeineke | 407 | int stampID;   // the ID in the BASS component stamp array | 
| 50 |  |  | int nAtoms;    // the number of atoms in the molecule | 
| 51 |  |  | int nBonds;    // ... .. ..  . .bonds .. .. . . . . | 
| 52 |  |  | int nBends;    // . . . . .. . .bends . . . . .. . | 
| 53 | gezelter | 416 | int nTorsions; // .. . . .. . . torsions . . .. . . | 
| 54 |  |  | int nOriented; // .. . . . .. . oriented atoms . . . | 
| 55 |  |  | int nMembers; | 
| 56 | mmeineke | 407 |  | 
| 57 |  |  | Atom** myAtoms;     // the array of atoms | 
| 58 |  |  | Bond** myBonds;      // arrays of all the short range interactions | 
| 59 |  |  | Bend** myBends; | 
| 60 |  |  | Torsion** myTorsions; | 
| 61 |  |  |  | 
| 62 | mmeineke | 377 | int startAtom; | 
| 63 |  |  | int endAtom; | 
| 64 |  |  |  | 
| 65 | mmeineke | 407 |  | 
| 66 | mmeineke | 377 | }; | 
| 67 |  |  |  | 
| 68 |  |  | #endif |