Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef MULTIRES_IMAGE_TILE_SET_LAYER_H_
00031 #define MULTIRES_IMAGE_TILE_SET_LAYER_H_
00032
00033
00034 #include <string>
00035 #include <vector>
00036
00037 #include <tf/transform_datatypes.h>
00038
00039 #include <swri_transform_util/georeference.h>
00040
00041 #include <multires_image/tile.h>
00042
00043 namespace multires_image
00044 {
00045 class TileSetLayer
00046 {
00047 public:
00048 TileSetLayer(
00049 const swri_transform_util::GeoReference& geo,
00050 const std::string& path,
00051 int tileSize, int layer);
00052
00053 ~TileSetLayer(void);
00054
00055 bool Load();
00056 bool Load(const std::string extension);
00057
00058 Tile* GetTile(int column, int row) { return m_tiles[column][row]; }
00059
00060 void GetTileIndex(const tf::Point& position, int& row, int& column) const;
00061 void GetTileIndex(double x, double y, int& row, int& column) const;
00062 void GetTileRange(
00063 const tf::Point& top_left,
00064 const tf::Point& bottom_right,
00065 int& startRow, int& startColumn,
00066 int& endRow, int& endColumn) const;
00067
00068 int RowCount() { return m_rows; }
00069 int ColumnCount() { return m_columns; }
00070
00071 private:
00072 const swri_transform_util::GeoReference& m_geo;
00073 const std::string m_path;
00074 const int m_tileSize;
00075 const int m_layer;
00076 const double m_scale;
00077
00078 bool m_expectTiles;
00079
00080 int m_columns;
00081 int m_rows;
00082
00083 std::vector<std::vector<Tile*> > m_tiles;
00084 };
00085 }
00086
00087 #endif // MULTIRES_IMAGE_TILE_SET_LAYER_H_