00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: XYZFile.h,v 1.17.18.1 2007/03/25 21:23:42 oliver Exp $ 00005 // 00006 00007 #ifndef BALL_FORMAT_XYZFILE_H 00008 #define BALL_FORMAT_XYZFILE_H 00009 00010 #ifndef BALL_FORMAT_GENERICMOLFILE_H 00011 # include <BALL/FORMAT/genericMolFile.h> 00012 #endif 00013 00014 namespace BALL 00015 { 00016 class System; 00017 class Molecule; 00018 class AtomContainer; 00019 00036 class BALL_EXPORT XYZFile 00037 : public GenericMolFile 00038 { 00039 public: 00040 00044 00047 XYZFile(); 00048 00054 XYZFile(const String& filename, File::OpenMode open_mode = std::ios::in) 00055 throw(Exception::FileNotFound); 00056 00059 XYZFile(const XYZFile& file) 00060 throw(Exception::FileNotFound); 00061 00063 virtual ~XYZFile() 00064 ; 00065 00067 00070 00073 virtual bool write(const AtomContainer& ac) 00074 throw(File::CannotWrite); 00075 00078 virtual bool write(const System& system) 00079 throw(File::CannotWrite); 00080 00083 virtual bool write(const Molecule& mol) 00084 throw(File::CannotWrite); 00085 00088 virtual bool read(System& system) 00089 throw(Exception::ParseError); 00090 00093 virtual Molecule* read() 00094 throw(Exception::ParseError); 00095 00096 const XYZFile& operator = (const XYZFile& file) 00097 { 00098 File::operator = (file); 00099 00100 return *this; 00101 } 00102 00104 BALL_DEPRECATED const String& getComent() const { return comment_; } 00105 00107 const String& getComment() const { return comment_; } 00108 00109 private: 00110 00111 String comment_; 00112 00114 }; 00115 } // namespace BALL 00116 00117 #endif // BALL_FORMAT_XYZFILE_H