00001 #ifndef RESTRAIN_H 00002 #define RESTRAIN_H 00003 00004 #include "XMLFile.h" 00005 #include "global.h" 00006 00007 00008 class CData; 00009 struct Atom; 00010 00014 class CRestrain 00015 { 00016 00017 public: 00018 00022 CRestrain(CData *dt){data=dt;}; 00026 virtual ~CRestrain() {}; 00027 00028 00032 void Enable() { active=true; }; 00036 void Disable() { active=false; }; 00040 void SetActive(bool ac) { active=ac;}; 00041 00042 00046 virtual void FindReferences()=0; 00050 virtual void MarkOutChangingAtoms()=0; 00054 virtual int CheckGoodSetting()=0; 00055 00059 virtual void Print()=0; // print out the restrain 00064 virtual void Read(CXMLElement *elrestrain)=0; // read data from XMLNode 00069 virtual REAL E()=0; // evaluate restrain energy function 00070 00074 bool active; 00075 00076 protected: 00077 CData *data; 00078 }; 00079 //-------------------------- 00080 00081 00082 #endif