1 /* -*- c++ -*- */ 2 #ifndef ANGLEINFO_H 3 #define ANGLEINFO_H 4 5 #include <vector> 6 #include "Real.h" 7 8 namespace ProtoMol { 9 /** 10 No comment Cplt! 11 */ 12 class AngleInfo { 13 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 // Enums & types 15 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16 public: 17 enum { ANGLE_VALUE = 10001, 18 ANGLE_POINTER = 10002, 19 ANGLE_NOTSET = 10003, 20 VISITED = 10001, 21 NOT_VISITED = 10002}; 22 23 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24 // Constructors, destructors, assignment 25 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26 public: 27 AngleInfo(); 28 ~AngleInfo(); 29 30 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 // New methods of class CubicCellManager 32 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 public: 34 void addBond(int atom); 35 void setAngle(Real angle); 36 void setPointer(unsigned int atom); 37 void setExclusionAtom(); 38 void setInnerAtom(); 39 void setVisited(); 40 void setAtomID(unsigned int ID); 41 unsigned int getAngleType() const; 42 unsigned int getBond(unsigned int index) const; 43 unsigned int numBonds() const; 44 unsigned int getAtomID() const; 45 Real getAngle() const; 46 unsigned int getPointer() const; 47 bool isExclusionAtom() const; 48 bool isInnerAtom() const; 49 bool isVisited() const; 50 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51 // My data members 52 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53 private: 54 Real m_angle; 55 unsigned int m_atomID; 56 unsigned int m_pointer; 57 unsigned int m_angleType; 58 bool m_visited; 59 bool m_isExclusionAtom; 60 bool m_isInnerAtom; 61 std::vector<unsigned int> m_bondedAtoms; 62 }; 63 64 } 65 #endif 66