HINFile.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: HINFile.h,v 1.30 2005/12/23 17:01:44 amoll Exp $
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 } // namespace BALL
00130 
00131 #endif // BALL_FORMAT_HINFILE_H