#ifndef __AMOLECULEBODY_HH__ #define __AMOLECULEBODY_HH__ #include "AChain.hh" #include "AMolecule.hh" #include "AFigure.hh" #include "AUtils.hh" class AMoleculeBody { public: //--- Constructors --- virtual AMoleculeBody *newBody(AMolecule *mol) = 0; //--- Access to the next body --- virtual AMoleculeBody *getNext() = 0; //--- CA bond related stuff --- virtual bool calcTessellCA() = 0; //--- TBonds related stuff --- virtual void setTBondModeCA() = 0; // Default, R = 13 A virtual void setTBondModeAll() = 0; // R = 7 A virtual void setTBondModeSelected() = 0; // R = 13 A virtual void setTBondModeNotHydro() = 0; // R = 7 A virtual void setTBondRadius(double r) = 0; virtual bool calcTessell(bool forEachChain) = 0; virtual bool calcTessell(char chaiId) = 0; //--- Access to the information --- virtual char * const getFilename() = 0; virtual char * const getMolname() = 0; virtual int getBodyNumber() = 0; //--- Access to the molecule --- virtual AMolecule* getMolecule() = 0; //--- SBonds related stuff --- virtual void findDisulphideBridges() = 0; //--- Setting up to date information about molecule --- virtual bool processAtom(AAtom *atom) = 0; virtual void updateInformation() = 0; //--- Template objects --- virtual AFigure* getTempFigure() = 0; virtual APoint* getTempPoint() = 0; virtual ABond* getTempBond() = 0; virtual ABond* getTempHBond() = 0; virtual ABond* getTempTBond() = 0; virtual AMolecule* getTempMolecule() = 0; virtual AChain* getTempChain() = 0; virtual AGroup* getTempGroup() = 0; virtual AAtom* getTempAtom() = 0; //--- Loading & setting charges --- virtual bool loadSetCharges(const char *fileName) = 0; //--- Saving data in PDB format --- virtual int savePDBMolecule(const char *filename,bool createNew = true) = 0; //--- Seeds --- virtual AFigure *getSeeds() = 0; virtual bool replaceSeeds(AFigure *seeds) = 0; //--- Refreshing screen representation --- virtual void updateScreenView() = 0; //--- Get acceess to utils --- virtual AUtils *getUtilKeeper() = 0; //--- Resolution virtual double getResolution() = 0; }; #endif