00001 #ifndef Impala_Core_Table_TableVxs_h
00002 #define Impala_Core_Table_TableVxs_h
00003
00004 #include "Basis/NativeTypes.h"
00005 #include "Core/Table/TableTem.h"
00006 #include "Core/Geometry/FileReadVxRectangle.h"
00007 #include "Core/Geometry/FileWriteVxRectangle.h"
00008
00009 namespace Impala
00010 {
00011 namespace Core
00012 {
00013 namespace Table
00014 {
00015
00016
00017 typedef TableTem<Column::ColumnTem<Int32>,
00018 Column::ColumnTem<Int32>,
00019 Column::ColumnTem<String>,
00020 Column::ColumnTem<Geometry::Rectangle>,
00021 Column::ColumnTem<String>,
00022 Column::ColumnTem<String>,
00023 Column::ColumnTem<String>,
00024 Column::ColumnTem<String>,
00025 Column::ColumnTem<Int32> > TableVxsBaseType;
00026
00029 class TableVxs : public TableVxsBaseType
00030 {
00031 public:
00032
00033 TableVxs() : TableVxsBaseType(0)
00034 {
00035 SetColName(1, "start");
00036 SetColName(2, "end");
00037 SetColName(3, "anno");
00038 SetColName(4, "rect");
00039 SetColName(5, "video");
00040 SetColName(6, "section");
00041 SetColName(7, "dir");
00042 SetColName(8, "extra");
00043 SetColName(9, "fileId");
00044 }
00045
00046 void
00047 ReadVxsFile(String fileName)
00048 {
00049 std::vector<Geometry::VxRectangle> vrList;
00050 Geometry::FileReadVxRectangle(std::back_inserter(vrList), fileName);
00051 for (int i=0 ; i<vrList.size() ; i++)
00052 {
00053 Geometry::VxRectangle vr = vrList[i];
00054 Add(vr.mStartFrame, vr.mEndFrame, vr.mAnno, vr.mRect, vr.mVideoName,
00055 vr.mSection, vr.mDir, vr.mExtra, -1);
00056 }
00057 }
00058
00059 void
00060 WriteVxsFile(String fileName)
00061 {
00062 std::vector<Geometry::VxRectangle> vrList;
00063 for (int i=0 ; i<Size() ; i++)
00064 {
00065 Geometry::VxRectangle vr;
00066 vr.mStartFrame = Get1(i);
00067 vr.mEndFrame = Get2(i);
00068 vr.mAnno = Get3(i);
00069 vr.mRect = Get4(i);
00070 vr.mVideoName = Get5(i);
00071 vr.mSection = Get6(i);
00072 vr.mDir = Get7(i);
00073 vr.mExtra = Get8(i);
00074 vrList.push_back(vr);
00075 }
00076 Geometry::FileWriteVxRectangle(fileName, vrList.begin(), vrList.end());
00077 }
00078
00079 };
00080
00081 }
00082 }
00083 }
00084
00085 #endif