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