src/biu/LatticeProtein_Ipnt.hh
Go to the documentation of this file.00001 #ifndef LATTICEPROTEIN_PNT_HH_ 00002 #define LATTICEPROTEIN_PNT_HH_ 00003 00004 #include "LatticeProtein_I.hh" 00005 00006 namespace biu 00007 { 00008 00015 class LatticeProtein_Ipnt : public biu::LatticeProtein_I 00016 { 00017 protected: 00018 00021 static const double NAN_DOUBLE; 00022 00025 enum MyBool { MyFalse, MyTrue, MyNaN }; 00026 00027 00028 00030 IPointVec* points; 00031 00033 mutable double energy; 00034 00036 mutable MyBool selfavoiding; 00037 00039 mutable MyBool connected; 00040 00041 00042 public: 00043 00063 LatticeProtein_Ipnt(const LatticeModel* lattice, 00064 const ContactEnergyFunction* energy, 00065 const Sequence* seq, 00066 const bool seqShared, 00067 const std::string& moveString, 00068 const bool isAbsoluteMove); 00069 00070 LatticeProtein_I* clone(); 00071 LatticeProtein_I* fromString(const std::string& stringRep) const; 00072 00073 // copy constructors 00074 00075 LatticeProtein_Ipnt(const LatticeProtein& latProt); 00076 LatticeProtein_Ipnt(const LatticeProtein_Ipnt& latProt); 00077 00080 virtual ~LatticeProtein_Ipnt(); 00081 00082 // additional functions 00083 00084 virtual const IPointVec* const getPointsRef() const; 00085 virtual IPointVec* getPointsRef(); 00086 virtual void setMoveStrAbs(const std::string& moveString); 00087 00088 // abstract function implementation (BackboneStructure3D) 00089 00090 virtual DPointVec get3Ddata() const ; 00091 00092 virtual double getDRMSD(const BackboneStructure3D& other) const; 00093 00094 // abstract function implementation (BioMolecule) 00095 00098 virtual Structure getStructure() const; 00099 00104 virtual double getEnergy() const; 00105 00109 virtual bool isValid() const; 00110 00115 virtual std::string getStringRepresentation() const; 00116 00117 00118 // abstract function implementation (LatticeProtein) 00119 00122 virtual std::string getMoveStrAbs() const; 00123 00126 virtual std::string getMoveStrRel() const; 00127 00130 virtual MoveSequence getMoveSeqAbs() const; 00131 00134 virtual MoveSequence getMoveSeqRel() const; 00135 00138 virtual IPointVec getPoints() const; 00139 00141 virtual bool isSelfAvoiding() const; 00142 00145 virtual bool isConnected() const; 00146 00147 virtual LatticeProtein_Ipnt& operator= (const LatticeProtein_Ipnt& latProt2); 00148 virtual LatticeProtein_I& operator= (const LatticeProtein_I& latProt2); 00149 virtual bool operator== (const LatticeProtein& latProt2) const; 00150 virtual bool operator!= (const LatticeProtein& latProt2) const; 00151 00152 // additional functions (LatticeProtein_Ipnt) 00153 00154 protected: 00155 00162 virtual void updateProperties(); 00163 00164 }; 00165 00166 } 00167 00168 #endif /*LATTICEPROTEIN_PNT_HH_*/