MTK++ Latest version: 0.2.0

conformer.h
Go to the documentation of this file.
00001 
00051 #ifndef CONFORMER_H
00052 #define CONFORMER_H
00053 
00054 #include <iostream>
00055 #include <string>
00056 #include <vector>
00057 #include <map>
00058 #include <algorithm>
00059 #include <cmath>
00060 
00061 namespace MTKpp
00062 {
00063 
00064 class molecule;
00065 class atom;
00066 class Bond;
00067 class vector3d;
00068 struct Torsion;
00069 
00070 // ============================================================
00071 // Struct : conformer
00072 // ------------------------------------------------------------
00079 // ============================================================
00080 struct conformer
00081 {
00083     std::string name;
00084 
00086     std::vector<double> torsions;
00087 };
00088 
00089 // ============================================================
00090 // Class : conformers()
00091 // ------------------------------------------------------------
00097 // ============================================================
00098 class conformers
00099 {
00100 public:
00105     conformers(molecule *parent = 0);
00106 
00108     virtual ~conformers();
00109 
00117     void addRotatableTorsion(int a, int b, int c, int d);
00118 
00122     void determineAtomList();
00123 
00129     void getConformerCoordinates(conformer* c, std::vector< vector3d > &newCoords);
00130 
00136     void getConformerCoordinates(conformer* c, double coords[][3]);
00137 
00143     void centerOfMass(std::vector< vector3d > coords, double center[3]);
00144 
00145 protected:
00146 
00148     molecule*                     pParent;
00149 
00151     std::vector<atom*>::iterator  atomIterator;
00152 
00153     // Bond iterator
00154     std::vector<Bond*>::iterator  bondIterator;
00155 
00156     // int iterator
00157     std::vector<int>::iterator    intIterator;
00158 
00160     atom*                         pAtom1;
00161 
00163     atom*                         pAtom2;
00164 
00166     Bond*                         pBond;
00167 
00169     std::vector< vector3d >       itsCoords;
00170 
00172     std::vector< std::vector<int> >    itsRotatableTorsions;
00173 
00185     std::vector< std::vector<unsigned int> > rhsAtomList;
00186 };
00187 
00188 } // MTKpp namespace
00189 
00190 #endif // CONFORMER_H

Generated on Fri Dec 23 2011 09:28:49 for MTK++ by Doxygen 1.7.5.1