00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_FORMAT_HINFILE_H
00008 #define BALL_FORMAT_HINFILE_H
00009
00010 #ifndef BALL_FORMAT_GENERICMOLFILE_H
00011 # include <BALL/FORMAT/genericMolFile.h>
00012 #endif
00013
00014 #ifndef BALL_MATHS_SIMPLEBOX3_H
00015 # include <BALL/MATHS/simpleBox3.h>
00016 #endif
00017
00018 namespace BALL
00019 {
00025 class BALL_EXPORT HINFile
00026 : public GenericMolFile
00027 {
00028 public:
00029
00030 BALL_CREATE(HINFile)
00031
00032
00035
00036
00038 HINFile()
00039 ;
00040
00043 HINFile(const HINFile& file)
00044 throw(Exception::FileNotFound);
00045
00048 HINFile(const String& filename, File::OpenMode open_mode = std::ios::in)
00049 throw(Exception::FileNotFound);
00050
00053 virtual ~HINFile()
00054 ;
00055
00057
00060
00063 const HINFile& operator = (const HINFile& rhs)
00064 throw(Exception::FileNotFound);
00065
00067
00070
00074 virtual bool write(const Molecule& molecule)
00075 throw(File::CannotWrite);
00076
00080 virtual bool write(const System& system)
00081 throw(File::CannotWrite);
00082
00085 virtual Molecule* read()
00086 throw(Exception::ParseError);
00087
00090 virtual bool read(System& system)
00091 throw(Exception::ParseError);
00092
00094
00097
00100 bool hasPeriodicBoundary() const;
00101
00106 SimpleBox3 getPeriodicBoundary() const;
00107
00114 float getTemperature() const;
00115
00117
00118 protected:
00119
00120 SimpleBox3 box_;
00121
00123 virtual void initRead_();
00124
00125 float temperature_;
00126
00127 void writeAtom_(const Atom& atom, Size number, Size atom_offset);
00128 };
00129 }
00130
00131 #endif // BALL_FORMAT_HINFILE_H