00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __P_RESIDUE_SHELL_H
00021 #define __P_RESIDUE_SHELL_H
00022
00030 class PResidueShell {
00031 public:
00032
00039 PResidueShell(const string &name,
00040 const string &headBlockId,
00041 const string &headBlockName,
00042 const string &tailBlockId,
00043 const string &tailBlockName,
00044 const string &startAtomID);
00045
00052 PResidueShell(const string &name, const string &coreBlockId, const string &coreBlockName, const string &startAtomID);
00053
00057 void addBlock(const string &id, const string &name);
00058
00064 void addBlockConnection(const string &idDefined, const string &idToDefine);
00065
00071 string getStartAtomID() const { return m_startAtomID; }
00072
00076 string getName() const { return m_name; }
00077
00081 string getHeadId() const { return m_headBlock; }
00082
00086 string getTailId() const { return m_tailBlock; }
00087
00091 string getHeadBlockShell() const { return m_blocks.find(m_headBlock)->second; }
00092
00096 string getTailBlockShell() { return m_blocks[m_tailBlock]; }
00097
00102 vector<StringPair>* getBlockBonds() { return &m_blockBonds; }
00103
00108 StringMap* getBlocks() { return &m_blocks; }
00109
00110 private:
00111 void ConstructorHelper(const string &name, const string &headBlockId, const string &headBlockName,
00112 const string &tailBlockId, const string &tailBlockName, const string &startAtomID);
00113
00114 string m_name;
00115 string m_startAtomID;
00116 StringMap m_blocks;
00117 string m_headBlock;
00118 string m_tailBlock;
00119 vector<StringPair> m_blockBonds;
00120 };
00121
00122 #endif // __P_RESIDUE_SHELL_H