00001
00002
00003
00004
00005 #ifndef BALL_FORMAT_HINFILE_H
00006 #define BALL_FORMAT_HINFILE_H
00007
00008 #ifndef BALL_FORMAT_GENERICMOLFILE_H
00009 # include <BALL/FORMAT/genericMolFile.h>
00010 #endif
00011
00012 #ifndef BALL_MATHS_SIMPLEBOX3_H
00013 # include <BALL/MATHS/simpleBox3.h>
00014 #endif
00015
00016 namespace BALL
00017 {
00029 class BALL_EXPORT HINFile
00030 : public GenericMolFile
00031 {
00032 public:
00033
00037
00040 HINFile();
00041
00045 HINFile(const String& filename, File::OpenMode open_mode = std::ios::in);
00046
00049 virtual ~HINFile();
00050
00052
00055
00059 const HINFile& operator = (const HINFile& rhs);
00060
00062
00065
00070 virtual bool write(const Molecule& molecule);
00071
00076 virtual bool write(const System& system);
00077
00081 virtual Molecule* read();
00082
00085 virtual bool read(System& system);
00086
00088
00091
00094 bool hasPeriodicBoundary() const;
00095
00100 SimpleBox3 getPeriodicBoundary() const;
00101
00108 float getTemperature() const;
00109
00111
00112 protected:
00113
00114 SimpleBox3 box_;
00115
00117 virtual void initRead_();
00118
00119 float temperature_;
00120
00121 void writeAtom_(const Atom& atom, Size number, Size atom_offset);
00122 };
00123 }
00124
00125 #endif // BALL_FORMAT_HINFILE_H