00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 #ifndef BALL_FORMAT_XYZFILE_H 00006 #define BALL_FORMAT_XYZFILE_H 00007 00008 #ifndef BALL_FORMAT_GENERICMOLFILE_H 00009 # include <BALL/FORMAT/genericMolFile.h> 00010 #endif 00011 00012 namespace BALL 00013 { 00014 class System; 00015 class Molecule; 00016 class AtomContainer; 00017 00034 class BALL_EXPORT XYZFile 00035 : public GenericMolFile 00036 { 00037 public: 00038 00042 00045 XYZFile(); 00046 00052 XYZFile(const String& filename, File::OpenMode open_mode = std::ios::in) 00053 throw(Exception::FileNotFound); 00054 00056 virtual ~XYZFile(); 00057 00059 00062 00065 virtual bool write(const AtomContainer& ac) 00066 throw(File::CannotWrite); 00067 00070 virtual bool write(const System& system) 00071 throw(File::CannotWrite); 00072 00075 virtual bool write(const Molecule& mol) 00076 throw(File::CannotWrite); 00077 00080 virtual bool read(System& system) 00081 throw(Exception::ParseError); 00082 00085 virtual Molecule* read() 00086 throw(Exception::ParseError); 00087 00089 BALL_DEPRECATED const String& getComent() const { return comment_; } 00090 00092 const String& getComment() const { return comment_; } 00093 00094 private: 00095 const XYZFile& operator = (const XYZFile& file); 00096 00097 String comment_; 00098 00100 }; 00101 } // namespace BALL 00102 00103 #endif // BALL_FORMAT_XYZFILE_H