MTK++ Latest version: 0.2.0

connections.h
Go to the documentation of this file.
00001 
00033 #ifndef CONNECTIONS_H
00034 #define CONNECTIONS_H
00035 
00036 #include <iostream>
00037 #include <string>
00038 #include <vector>
00039 #include <algorithm>
00040 #include <ctype.h>
00041 #include <fstream>
00042 #include <sstream>
00043 
00044 namespace MTKpp
00045 {
00046 
00047 class collection;
00048 class molecule;
00049 class submolecule;
00050 class atom;
00051 class metalCenter;
00052 struct Bond;
00053 struct Angle;
00054 struct Torsion;
00055 struct Improper;
00056 
00057 class vector3d;
00058 
00059 class stdLibrary;
00060 class stdGroup;
00061 class stdFrag;
00062 struct stdAtom;
00063 struct stdBond;
00064 struct stdImproper;
00065 struct stdLoop;
00066 struct stdAlias;
00067 
00068 class parameters;
00069 struct bondParam;
00070 struct angleParam;
00071 struct torsionParam;
00072 
00073 class protonate;
00074 
00075 // ============================================================
00076 // Class : connections()
00077 // ------------------------------------------------------------
00085 // ============================================================
00086 class connections
00087 {
00088     friend class protonate;
00089 public:
00094     connections();
00095 
00100     connections(collection* parent);
00101 
00103     virtual ~connections();
00104 
00109     void assignBonds();
00110 
00115     void assignBonds(molecule* pMolecule);
00116 
00120     void assignDisulfideBonds();
00121 
00126     void assignDisulfideBonds(molecule* pMolecule);
00127 
00131     void assignAngles();
00132 
00137     void assignAngles(molecule* pMolecule);
00138 
00143     void assignAngles(metalCenter* pMetalCenter);
00144 
00148     void assignTorsions();
00149 
00154     void assignTorsions(molecule* pMolecule);
00155 
00159     void assignImpropers();
00160 
00165     void assignImpropers(molecule* pMolecule);
00166 
00170     void run();
00171 
00175     void run(collection* pCol);
00176 
00181     void run(molecule* pMol);
00182 
00186     void assignStd();
00187 
00192     void assignStd(molecule* pMol);
00193 
00198     void assignStdBondsAngles(molecule* pMol);
00199 
00200 public: // FUNCTIONS
00201 
00210     void bondByLibrary(molecule* m, submolecule* s1, stdFrag* f1, submolecule* s2, stdFrag* f2);
00211 
00218     void bondByDistance(molecule* m, submolecule* s1, submolecule* s2);
00219 
00226     virtual bool BondExists(double d, atom* a, atom* b);
00227 
00229     void assignStdBonds();
00230 
00235     void assignStdBonds(molecule* pMol);
00236 
00238     void assignStdAngles();
00239 
00244     void assignStdAngles(molecule* pMol);
00245 
00247     void assignStdTorsions();
00248 
00253     void assignStdTorsions(molecule* pMol);
00254 
00256     void assignStdImpropers();
00257 
00262     void assignStdImpropers(molecule* pMol);
00263 
00264 protected: // DATA
00265 
00267     collection*    pCollection;
00268 
00270     molecule*      pMolecule;
00271 
00273     submolecule*   pSubMolecule;
00274 
00276     submolecule*   pSubMoleculeMinus1;
00277 
00279     atom*          pAtom;
00280 
00282     atom*          pAtom1;
00283 
00285     atom*          pAtom2;
00286 
00288     atom*          pAtom3;
00289 
00291     atom*          pAtom4;
00292 
00294     Bond*          pBond;
00295 
00297     Angle*         pAngle;
00298 
00300     Torsion*       pTorsion;
00301 
00303     Improper*      pImproper;
00304 
00306     vector3d*      coord1;
00307 
00309     vector3d*      coord2;
00310 
00312     stdLibrary*    pStdLibrary;
00313 
00315     stdGroup*      pStdGroup;
00316 
00318     stdFrag*       pStdFrag;
00319 
00321     stdFrag*       pStdFragMinus1;
00322 
00324     stdAtom*       pStdAtom;
00325 
00327     stdAtom*       pStdAtom1;
00328 
00330     stdAtom*       pStdAtom2;
00331 
00333     stdLoop*       pStdLoop;
00334 
00336     std::vector<molecule*>        moleculeList;
00337 
00339     std::vector<submolecule*>     subMoleculeList;
00340 
00342     std::vector<atom*>            atomList;
00343 
00345     std::vector<atom*>            atomList2;
00346 
00348     std::vector<stdLoop*>         stdLoopList;
00349 
00351     parameters*    pParameters;
00352 
00354     int missingBondParams;
00355 
00357     int missingAngleParams;
00358 
00360     int missingTorsionParams;
00361 
00363     std::string errorMessage;
00364 
00365 };
00366 
00367 } // MTKpp namespace
00368 
00369 #endif // CONNECTIONS_H
00370 

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