Generated on Mon Jun 23 16:24:56 2008 for BIU-1.7.0 by doxygen 1.5.1

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_*/