#ifndef __AMOLECULE_HH__ #define __AMOLECULE_HH__ #include "ABond.hh" #include "AChain.hh" class AMolecule { public: //--- Constractors --- virtual AMolecule *newMolecule() = 0; //--- Destructor --- virtual ~AMolecule() { ; } //--- Access to S-bonds --- virtual ABond *getSBonds() = 0; virtual bool addSBond(ABond *bond) = 0; virtual bool replaceSBonds(ABond *bond) = 0; //--- Access to H-bonds --- virtual ABond *getHBonds() = 0; virtual bool addHBond(ABond *bond) = 0; virtual bool replaceHBonds(ABond *bond) = 0; //--- Access to NP-bonds --- virtual ABond *getNPBonds() = 0; //virtual bool addNPBond(ABond* bond) = 0; // To be implemented //virtual bool replaceNPBonds(ABond *bond) = 0; // To be implemented //--- Access to T-bonds --- virtual ABond *getTBonds() = 0; virtual bool addTBond(ABond *bond) = 0; virtual bool replaceTBonds(ABond *bond) = 0; virtual AFigure *getTetras() = 0; //--- Access to CA-bonds --- virtual ABond *getCABonds() = 0; //virtual bool addCABond(ABond* bond) = 0; // To be implemented virtual bool replaceCABonds(ABond *bond) = 0; //--- Access to vertexes --- virtual AAtom *getVertexes() = 0; //virtual bool addVertex(AAtom *vert) = 0; // To be implemented virtual bool replaceVertexes(AAtom *vert) = 0; //--- Access to V-bonds --- virtual ABond *getVBonds() = 0; //virtual bool addVBond(ABond *bond) = 0; // To be implemented virtual bool replaceVBonds(ABond *bond) = 0; //--- Access to C-vertexes --- virtual AAtom *getCVertexes() = 0; //virtual bool addCVertex(AAtom *vert) = 0; // To be implemented virtual bool replaceCVertexes(AAtom *vert) = 0; //--- Access to CV-bonds --- virtual ABond *getCVBonds() = 0; //virtual bool addCVBond(ABond *bond) = 0; // To be implemented virtual bool replaceCVBonds(ABond *bond) = 0; //--- Access to the chains in the molecule --- virtual AChain *getFirstChain() = 0; virtual bool addChain(AChain *chain) = 0; //--- Counting chains, groups, ... --- virtual int countChains() = 0; virtual int countGroups() = 0; virtual int countAtoms() = 0; virtual int countVertexes() = 0; virtual int countCVertexes() = 0; virtual int countSBonds() = 0; virtual int countHBonds() = 0; virtual int countTBonds() = 0; virtual int countCABonds() = 0; virtual int countVBonds() = 0; virtual int countCVBonds() = 0; //--- Selection status --- virtual void selectAllAtoms() = 0; virtual void unselectAllAtoms() = 0; //--- Alignment flag -- virtual void clearAlignedFlag() = 0; //--- Applying transformation to the original coordinates --- virtual void rotate() = 0; virtual void rotate(double rot[3][3],double trans[3]) = 0; virtual void resetTransformation() = 0; }; #endif