00001
00002
00003
00004
00005 #ifndef BALL_FORMAT_BRUKER2DFILE_H
00006 #define BALL_FORMAT_BRUKER2DFILE_H
00007
00008 #ifndef BALL_FORMAT_JCAMPFILE_H
00009 # include <BALL/FORMAT/JCAMPFile.h>
00010 #endif
00011
00012 #ifndef BALL_DATATYPE_REGULARDATA2D_H
00013 # include <BALL/DATATYPE/regularData2D.h>
00014 #endif
00015
00016 namespace BALL
00017 {
00024 class BALL_EXPORT Bruker2DFile
00025 : public File
00026 {
00027 public:
00028
00031 Bruker2DFile();
00032
00036 Bruker2DFile(const String& name, OpenMode open_mode = std::ios::in | std::ios::binary)
00037 throw(Exception::FileNotFound);
00038
00041 virtual ~Bruker2DFile();
00042
00046 void read();
00047
00051 void read(const String &name);
00052
00054 const RegularData2D& getData() const { return spectrum_; }
00056 RegularData2D& getData() { return spectrum_; }
00057
00060 std::list<std::pair<int, int> > getPeakList() const;
00061
00064 std::pair<double, double> getShift(Position x, Position y);
00065
00068 std::pair<Position, Position> getPosition(double x, double y);
00069
00072 void setShiftRange(double offsetf1, double offsetf2, double swidthf1, double swidthf2,
00073 double bfreqf1, double bfreqf2, double spointnumf1, double spointnumf2);
00074
00075 private:
00076 const Bruker2DFile& operator = (const Bruker2DFile& file);
00077
00078 protected:
00080 JCAMPFile parsf1_;
00081 JCAMPFile parsf2_;
00082
00083 Size minx_;
00084 Size maxx_;
00085 Size miny_;
00086 Size maxy_;
00087
00088
00089 RegularData2D dat_;
00090 double soffsetf1_;
00091 double soffsetf2_;
00092 double swidthf1_;
00093 double swidthf2_;
00094 double bfreqf1_;
00095 double bfreqf2_;
00096 Size spointnumf1_;
00097 Size spointnumf2_;
00098 RegularData2D spectrum_;
00099 };
00100 }
00101
00102 #endif