NeighboursTextFileWriter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef NEIGHBOURSTEXTFILEWRITER_DEFINED
00009 #define NEIGHBOURSTEXTFILEWRITER_DEFINED
00010
00011 #include "Datum.h"
00012 #include "FileObjectWriter.h"
00013 #include "FileUtil.h"
00014 #include "ObjectPairWriter.h"
00015
00016 class Object;
00017
00019
00023 class NeighboursTextFileWriter : public ObjectPairWriter
00024 {
00025 public:
00030 NeighboursTextFileWriter(char const* aFileNameStr,
00031 bool aIsLarge = false);
00032 virtual ~NeighboursTextFileWriter() {}
00033
00035 virtual void open();
00036
00038 virtual void close();
00039
00044 virtual void write(Object const* aMasterObjectPtr,
00045 Object const* aSlaveObjectPtr)
00046 {
00047 Datum const* masterDatumPtr = (Datum const*) aMasterObjectPtr;
00048 Datum const* slaveDatumPtr = (Datum const*) aSlaveObjectPtr;
00049 double distanceMins = aMasterObjectPtr->gcDistanceMins(*aSlaveObjectPtr);
00050 fprintf(mFilePtr, "%llu, ", masterDatumPtr->getId());
00051 fprintf(mFilePtr, "%llu, ", slaveDatumPtr->getId());
00052 fprintf(mFilePtr, "%.8f\n", distanceMins);
00053
00054 fprintf(mFilePtr, "%llu, ", slaveDatumPtr->getId());
00055 fprintf(mFilePtr, "%llu, ", masterDatumPtr->getId());
00056 fprintf(mFilePtr, "%.8f\n", distanceMins);
00057 }
00058
00059 protected:
00060 FILE* mFilePtr;
00061 char const* mFileNameStr;
00062 bool mIsLarge;
00063
00064 private:
00065
00066 NeighboursTextFileWriter();
00067 NeighboursTextFileWriter(NeighboursTextFileWriter const& aCopy);
00068 NeighboursTextFileWriter& operator=(NeighboursTextFileWriter const& aCopy);
00069 };
00070
00071 #endif