00001 #ifndef Impala_Core_Table_TableIxs_h
00002 #define Impala_Core_Table_TableIxs_h
00003
00004 #include "Basis/NativeTypes.h"
00005 #include "Core/Table/TableTem.h"
00006 #include "Core/Geometry/FileReadIxRectangle.h"
00007 #include "Core/Geometry/FileWriteIxRectangle.h"
00008
00009 namespace Impala
00010 {
00011 namespace Core
00012 {
00013 namespace Table
00014 {
00015
00016
00017 typedef TableTem<Column::ColumnTem<String>,
00018 Column::ColumnTem<Geometry::Rectangle>,
00019 Column::ColumnTem<String>,
00020 Column::ColumnTem<String>,
00021 Column::ColumnTem<String>,
00022 Column::ColumnTem<String>,
00023 Column::ColumnTem<Int32> > TableIxsBaseType;
00024
00027 class TableIxs : public TableIxsBaseType
00028 {
00029 public:
00030
00031 TableIxs() : TableIxsBaseType(0)
00032 {
00033 SetColName(1, "anno");
00034 SetColName(2, "rect");
00035 SetColName(3, "image");
00036 SetColName(4, "section");
00037 SetColName(5, "dir");
00038 SetColName(6, "extra");
00039 SetColName(7, "fileId");
00040 }
00041
00042 void
00043 ReadIxsFile(String fileName)
00044 {
00045 std::vector<Geometry::IxRectangle> irList;
00046 Geometry::FileReadIxRectangle(std::back_inserter(irList), fileName);
00047 for (int i=0 ; i<irList.size() ; i++)
00048 {
00049 Geometry::IxRectangle ir = irList[i];
00050 Add(ir.mAnno, ir.mRect, ir.mImageName, ir.mSection, ir.mDir,
00051 ir.mExtra, -1);
00052 }
00053 }
00054
00055 void
00056 WriteIxsFile(String fileName)
00057 {
00058 std::vector<Geometry::IxRectangle> irList;
00059 for (int i=0 ; i<Size() ; i++)
00060 {
00061 Geometry::IxRectangle ir;
00062 ir.mAnno = Get1(i);
00063 ir.mRect = Get2(i);
00064 ir.mImageName = Get3(i);
00065 ir.mSection = Get4(i);
00066 ir.mDir = Get5(i);
00067 ir.mExtra = Get6(i);
00068 irList.push_back(ir);
00069 }
00070 Geometry::FileWriteIxRectangle(fileName, irList.begin(), irList.end());
00071 }
00072
00073 };
00074
00075 }
00076 }
00077 }
00078
00079 #endif