| 1 | chuckv | 678 | #ifndef __MOLOCATOR_H__ | 
| 2 |  |  | #define __MOLOCATOR_H__ | 
| 3 |  |  |  | 
| 4 |  |  | #include "Atom.hpp" | 
| 5 | gezelter | 1099 | #include "DirectionalAtom.hpp" | 
| 6 | chuckv | 678 | #include "MoleculeStamp.hpp" | 
| 7 |  |  | #include "SimState.hpp" | 
| 8 |  |  |  | 
| 9 |  |  | class MoLocator{ | 
| 10 |  |  |  | 
| 11 |  |  | public: | 
| 12 |  |  |  | 
| 13 |  |  | MoLocator( MoleculeStamp* theStamp ); | 
| 14 |  |  | ~MoLocator(); | 
| 15 |  |  |  | 
| 16 |  |  | void placeMol( double pos[3], double ornt[3][3], Atom** atomArray, | 
| 17 | chuckv | 700 | int atomIndex, SimState* myConfig ); | 
| 18 | chuckv | 678 | double getMaxLength( void ) { return maxLength; } | 
| 19 |  |  |  | 
| 20 |  |  | private: | 
| 21 |  |  |  | 
| 22 |  |  | void calcRefCoords( void ); | 
| 23 |  |  | void rotMe( double r[3], double A[3][3] ); | 
| 24 |  |  |  | 
| 25 |  |  | MoleculeStamp* myStamp; | 
| 26 |  |  | double *myCoords; | 
| 27 |  |  | double maxLength; | 
| 28 |  |  | int nAtoms; | 
| 29 |  |  |  | 
| 30 |  |  | }; | 
| 31 |  |  |  | 
| 32 | mmeineke | 821 | extern void getRandomRot( double rot[3][3] ); | 
| 33 |  |  | extern void getEulerRot( double theta, double phi, double psi, | 
| 34 |  |  | double rot[3][3] ); | 
| 35 | chuckv | 678 |  | 
| 36 |  |  | #endif |