NeighboursTextFileWriter.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 //-----------------------------------------------------------------------------
00005 // Initial version: 31/08/2005
00006 // CVS: $Revision: 2989 $, $Date: 2006-10-12 17:31:45 +0100 (Thu, 12 Oct 2006) $, $Author: rsc $
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     // For every match also record the reverse match
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   // Prevent default construction and copying
00066   NeighboursTextFileWriter();
00067   NeighboursTextFileWriter(NeighboursTextFileWriter const& aCopy);
00068   NeighboursTextFileWriter& operator=(NeighboursTextFileWriter const& aCopy);
00069 };
00070 //-----------------------------------------------------------------------------
00071 #endif
Generated on Mon Oct 4 10:39:55 2010 for Matching.kdevelop by  doxygen 1.6.3