ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libBASS/MoleculeStamp.hpp
Revision: 1103
Committed: Tue Apr 13 16:25:13 2004 UTC (20 years, 2 months ago) by gezelter
File size: 2019 byte(s)
Log Message:
Added Integrable (will back out momentarily)

File Contents

# User Rev Content
1 mmeineke 377 #ifndef __MOLECULESTAMP_H__
2     #define __MOLECULESTAMP_H__
3    
4     #include "AtomStamp.hpp"
5     #include "BondStamp.hpp"
6     #include "BendStamp.hpp"
7     #include "TorsionStamp.hpp"
8 gezelter 957 #include "RigidBodyStamp.hpp"
9 mmeineke 377 #include "LinkedAssign.hpp"
10    
11     class MoleculeStamp{
12    
13     public:
14     MoleculeStamp();
15     ~MoleculeStamp();
16    
17     char* assignString( char* lhs, char* rhs );
18     char* assignDouble( char* lhs, double rhs );
19     char* assignInt( char* lhs, int rhs );
20     char* checkMe( void );
21    
22     char* addAtom( AtomStamp* the_atom, int atomIndex );
23 gezelter 957 char* addRigidBody( RigidBodyStamp* the_rigidbody, int rigidBodyIndex );
24 mmeineke 377 char* addBond( BondStamp* the_bond, int bondIndex );
25     char* addBend( BendStamp* the_bend, int bendIndex );
26     char* addTorsion( TorsionStamp* the_torsion, int torsionIndex );
27    
28     char* getID( void ) { return name; }
29     int getNAtoms( void ) { return n_atoms; }
30     int getNBonds( void ) { return n_bonds; }
31     int getNBends( void ) { return n_bends; }
32     int getNTorsions( void ) { return n_torsions; }
33 gezelter 957 int getNRigidBodies(void){ return n_rigidbodies; }
34 gezelter 1103 int getNIntegrable(void) { return n_integrable; }
35 mmeineke 377
36     AtomStamp* getAtom( int index ) { return atoms[index]; }
37     BondStamp* getBond( int index ) { return bonds[index]; }
38     BendStamp* getBend( int index ) { return bends[index]; }
39     TorsionStamp* getTorsion( int index ) { return torsions[index]; }
40 gezelter 957 RigidBodyStamp* getRigidBody( int index ) { return rigidBodies[index]; }
41 mmeineke 377
42 mmeineke 583 int haveExtras( void ) { return have_extras; }
43     LinkedAssign* getUnhandled( void ) { return unhandled; }
44    
45 mmeineke 377 static char errMsg[500];
46     private:
47    
48    
49     char name[100];
50     int n_atoms;
51     int n_bonds;
52     int n_bends;
53     int n_torsions;
54 gezelter 957 int n_rigidbodies;
55 gezelter 1103 int n_integrable;
56 mmeineke 377
57     int have_name, have_atoms, have_bonds, have_bends, have_torsions;
58 gezelter 957 int have_rigidbodies;
59 mmeineke 377
60     AtomStamp** atoms;
61     BondStamp** bonds;
62     BendStamp** bends;
63     TorsionStamp** torsions;
64 gezelter 957 RigidBodyStamp** rigidBodies;
65 mmeineke 377
66     LinkedAssign* unhandled; // the unhandled assignments
67     short int have_extras;
68     };
69    
70     #endif