00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_FORMAT_SCWRLROTAMERFILE_H 00006 #define BALL_FORMAT_SCWRLROTAMERFILE_H 00007 00008 #include <BALL/FORMAT/lineBasedFile.h> 00009 00010 namespace BALL 00011 { 00013 class RotamerLibrary; 00022 class BALL_EXPORT SCWRLRotamerFile 00023 : public LineBasedFile 00024 { 00025 public: 00026 00030 00031 SCWRLRotamerFile(); 00032 00034 SCWRLRotamerFile(const String& name, File::OpenMode open_mode = std::ios::in); 00035 00037 virtual ~SCWRLRotamerFile(); 00039 00040 00044 00045 const SCWRLRotamerFile& operator = (const SCWRLRotamerFile& file); 00046 00048 void operator >> (RotamerLibrary& rotamer_library); 00049 00050 // TODO output operator???? 00052 00053 00054 protected: 00055 00056 // backbone dependent read method 00057 void readSCWRLBackboneDependentLibraryFile_(RotamerLibrary& library) throw(Exception::ParseError); 00058 00059 // backbone independent read method 00060 void readSCWRLBackboneIndependentLibraryFile_(RotamerLibrary& library) throw(Exception::ParseError); 00061 00062 }; 00063 } // namespace BALL 00064 00065 #endif // BALL_FORMAT_SCWRLROTAMERFILE_H