00001 #ifndef LOGOUTPUT_H
00002 #define LOGOUTPUT_H
00003
00004 #include "output.h"
00005 #include "../micro.h"
00006 #include "../microadam.h"
00007 #include "../microeva.h"
00008 #include <fstream>
00009
00010 extern "C"
00011 {
00012 #include <opencv/highgui.h>
00013 }
00014
00015 using namespace std;
00016
00017 namespace seemicro
00018 {
00019
00020 class LogOutput : public OutputModule
00021 {
00022 Micro *micro;
00023 ofstream outf;
00024 int frameno;
00025 public:
00026 LogOutput(Micro *Am, string filename) : micro(Am)
00027 {
00028 cerr << "Loggging to '" << filename << "'.\n";
00029 outf.open(filename.c_str());
00030 frameno = 0;
00031 };
00032
00033 void output(bool keyframe)
00034 {
00035
00036 outf << "frame=" << frameno++
00037 << " mittevalid=" << micro->mitteValid
00038 << " mitte=" << micro->mitte
00039 << " radiusvalid=" << micro->radiusValid
00040 << " radius=" << micro->radius
00041 << " alphavalid=" << micro->alphaValid
00042 << " alpha=" << micro->alpha;
00043 MicroAdam *adam = dynamic_cast<MicroAdam*>(micro);
00044 if(adam)
00045 {
00046 outf << " beta=" << adam->beta;
00047 }
00048 else if(MicroEva *eva = dynamic_cast<MicroEva*>(micro))
00049 {
00050 for(int i=0;i<=4; i++)
00051 outf << " beta" << i << "=" << eva->beta[i];
00052 }
00053 outf << endl;
00054 }
00055
00056 };
00057
00058 }
00059
00060 #endif