CrossNeighboursTextFileWriter.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 //-----------------------------------------------------------------------------
00005 // Initial version: 20/09/2005
00006 // CVS: $Revision: 2989 $, $Date: 2006-10-12 17:31:45 +0100 (Thu, 12 Oct 2006) $, $Author: rsc $
00007 //-----------------------------------------------------------------------------
00008 #ifndef CROSSNEIGHBOURSTEXTFILEWRITER_DEFINED
00009 #define CROSSNEIGHBOURSTEXTFILEWRITER_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 CrossNeighboursTextFileWriter : public ObjectPairWriter
00024 {
00025 public:
00030   CrossNeighboursTextFileWriter(char const* aFileNameStr,
00031                                   bool aIsLarge = false);
00032   virtual ~CrossNeighboursTextFileWriter() {}
00033 
00035   virtual void open();
00036 
00038   virtual void close();
00039 
00044   virtual void write(Object const* aExternObjectPtr,
00045                      Object const* aMainObjectPtr)
00046   {
00047     Datum const*   mainDatumPtr = (Datum const*) aMainObjectPtr;
00048     Datum const* externDatumPtr = (Datum const*) aExternObjectPtr;
00049     double distanceMins = aMainObjectPtr->gcDistanceMins(*aExternObjectPtr);
00050     fprintf(mFilePtr, "%llu, ",   mainDatumPtr->getId());
00051     fprintf(mFilePtr, "%llu, ", externDatumPtr->getId());
00052     fprintf(mFilePtr, "%.8f\n", distanceMins);
00053   }
00054 
00055 protected:
00056   FILE*       mFilePtr;
00057   char const* mFileNameStr;
00058   bool        mIsLarge;
00059 
00060 private:
00061   // Prevent default construction and copying
00062   CrossNeighboursTextFileWriter();
00063   CrossNeighboursTextFileWriter(CrossNeighboursTextFileWriter const& aCopy);
00064   CrossNeighboursTextFileWriter& operator=(CrossNeighboursTextFileWriter const& aCopy);
00065 };
00066 //-----------------------------------------------------------------------------
00067 #endif
Generated on Mon Oct 4 10:39:55 2010 for Matching.kdevelop by  doxygen 1.6.3