00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: SCWRLRotamerFile.h,v 1.1.2.2 2007/08/07 07:28:37 toussaint Exp $ 00005 // 00006 00007 #ifndef BALL_FORMAT_SCWRLROTAMERFILE_H 00008 #define BALL_FORMAT_SCWRLROTAMERFILE_H 00009 00010 #include <BALL/FORMAT/lineBasedFile.h> 00011 00012 namespace BALL 00013 { 00015 class RotamerLibrary; 00024 class BALL_EXPORT SCWRLRotamerFile : public LineBasedFile 00025 { 00026 00027 public: 00028 00032 00033 SCWRLRotamerFile() ; 00034 00036 SCWRLRotamerFile(const SCWRLRotamerFile& file) ; 00037 00039 SCWRLRotamerFile(const String& name, File::OpenMode open_mode = std::ios::in) ; 00040 00042 virtual ~SCWRLRotamerFile() ; 00044 00045 00049 00050 const SCWRLRotamerFile& operator = (const SCWRLRotamerFile& file); 00051 00053 void operator >> (RotamerLibrary& rotamer_library); 00054 00055 // TODO output operator???? 00057 00058 00059 protected: 00060 00061 // backbone dependent read method 00062 void readSCWRLBackboneDependentLibraryFile_(RotamerLibrary& library) throw(Exception::ParseError); 00063 00064 // backbone independent read method 00065 void readSCWRLBackboneIndependentLibraryFile_(RotamerLibrary& library) throw(Exception::ParseError); 00066 00067 }; 00068 } // namespace BALL 00069 00070 #endif // BALL_FORMAT_SCWRLROTAMERFILE_H