00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef VxFrmFtorToFile_h
00016 #define VxFrmFtorToFile_h
00017
00018
00019 #include "VxFrmFtorUfo.h"
00020 #include <fstream>
00021
00022 template<class T>
00023 class VxFrmFtorToFile : public VxFrmFtorUfo {
00024 public:
00025 VxFrmFtorToFile(HxString filename){
00026 _out=new STD_OFSTREAM(filename.c_str());
00027 if (!*_out)
00028 STD_CERR << "Error in VxFrmFtorToFile, constructor: could not open " << filename << STD_ENDL;
00029
00030 }
00031
00032 VxFrmFtorToFile(STD_OFSTREAM* out) : _out(out) {
00033 }
00034
00035 ~VxFrmFtorToFile()
00036 {
00037 _out->close();
00038 delete _out;
00039 }
00040
00041 virtual VxValue doIt(int frame, const VxValue& input) {
00042 if (input.isNull())
00043 return VxValue();
00044 T val;
00045 input.get(val);
00046
00047 *_out << frame << " " << val << STD_ENDL;
00048
00049 return VxValue((int) 0);
00050 };
00051
00052 virtual HxString getInputClass() const {
00053 return HxClassName<T>();
00054 }
00055
00056 virtual HxString getOutputClass() const {
00057 return HxString("int");
00058 }
00059
00060 virtual HxString name() const {
00061 return HxString("WriteToFile");
00062 }
00063
00064 virtual VxFrmFtorUfo* clone() const {
00065 return new VxFrmFtorToFile(_out);
00066 }
00067
00068
00069 private:
00070 STD_OFSTREAM* _out;
00071
00072 };
00073
00074
00075 #endif