#ifndef __ACHAIN_HH__ #define __ACHAIN_HH__ #include "AAtom.hh" #include "AGroup.hh" #include "ABond.hh" class AMolecule; class AFigure; class AChain { public: //--- Constractor --- virtual AChain *newChain(char id,short model) = 0; //--- Destructors --- virtual ~AChain() { ; } //--- Access to the next body --- virtual AChain *getNext() = 0; virtual bool setNext(AChain *chain) = 0; // Not recommended for use //--- Chain id identification --- virtual char getChainId() = 0; //--- Model in NMR files --- virtual short getModel() = 0; //--- Manipulation with groups --- virtual AGroup *getFirstGroup() = 0; virtual AGroup *getLastGroup() = 0; virtual bool addGroup(AGroup *group) = 0; // Prepends group virtual int putGroupsInArray(AGroup **arr) = 0; virtual int enumerateGroups() = 0; //--- Manipulation with atoms --- virtual int getCAAtoms(AAtom** listOfCA) = 0; virtual int getMainAtoms(AAtom** listOfCA) = 0; virtual int getAllAtoms(AAtom** listOfAtoms, bool withAlternative = false) = 0; virtual int getNotHydroAtoms(AAtom** listOfAtoms, bool withAlternative = false) = 0; //--- Manipulations with bonds --- virtual ABond *getBonds() = 0; virtual bool addBond(ABond* bond) = 0; // Prepends a bond virtual bool areBonded(AAtom *a1,AAtom *a2) = 0; //--- Manipulations with back bonds --- virtual ABond *getBackBonds() = 0; virtual bool addBackBond(ABond* bond) = 0; // Prepends a bond virtual bool areBackBonded(AAtom *a1,AAtom *a2) = 0; //--- Molecule to which the chain belongs to --- virtual AMolecule *getMolecule() = 0; //--- Counting groups and atoms --- virtual int countGroups() = 0; virtual int countAtoms() = 0; virtual int countBonds() = 0; //--- Selection status --- virtual void selectAllAtoms() = 0; virtual void unselectAllAtoms() = 0; //--- Visibility --- virtual bool isVisible() = 0; virtual void setVisible() = 0; virtual void setNotVisible() = 0; //--- Manipulations with tetrahedra --- virtual AFigure *getTetras() = 0; //--- Representing alignment as the set of counter numbers of residues --- virtual int *setCountAli(int* arr,int n) = 0; virtual int *getCountAli() = 0; virtual int getAliLen() = 0; }; #endif