www.pudn.com > dstile-0.2.rar > Tiler.h


class Tiler {
public:
    Tiler();
    ~Tiler();

public:
    void OpenSrc(const string& srcFileName);
    void CloseSrc();
    void SetSrcProj(const string& proj) { m_srcSRS = ProjToSRS(proj); }
    void SetSrcGT(const GeoT& gt) { m_vSrcGT = true; m_srcGT = gt; }

public:
    void SetDstProj(const string& proj) { m_dstSRS = ProjToSRS(proj); }
    void SetDstExt(const double x0, const double y0, const double x1, const double y1) { m_ex0 = x0; m_ey0 = y0; m_ex1 = x1; m_ey1 = y1; }
    void SetTileSize(const int x, const int y) { m_tsx = x; m_tsy = y; }
    void SetL0TilesCount(const int x, const int y) { m_l0tx = x; m_l0ty = y; }
    
public:
    void SetTileAccessor(TileAccessor* tileAccessor) { m_tileAccessor = tileAccessor; }
    void SetTileProcessor(TileProcessor* tileProcessor) { m_tileProcessor = tileProcessor; }
    void SetCSTrans(CSTrans* cSTrans) { m_cSTrans = cSTrans; }
    void SetWarper(Warper* warper) { m_warper = warper; }
    void AttachOverviews(Overviews* overviews) { m_overviews = overviews; }

public:
    void BeginTiling();
    void EndTiling();
    double EstimateLevel();
    void Tile(int level);

//    void BuildOverview(int l, int x, int y) {
//    int BuildOverviewsR(TileTree::Node *p, int count, int n, int l, int x, int y) {
//    void BuildOverviews() {
//    void ScanDatasetR(const char *path) {
//    void ScanDataset() {

public:
    bool m_needCloseSrc;
    bool m_needEndTiling;
    TileAccessor *m_tileAccessor;
    TileProcessor *m_tileProcessor;
    CSTrans *m_cSTrans;
    Warper *m_warper;
    Overviews *m_overviews;
    GDALDataset *m_tile;
    GDALDataset *m_dst;
    GDALDriver *m_memDrv;
    GDALDataset *m_src;
    string m_srcFileName;
//    TileTree *m_tree;

public:
    string m_srcSRS;
    bool m_vSrcGT;
    GeoT m_srcGT;
    string m_dstPath;
    string m_dstSRS;
    double m_ex0, m_ey0, m_ex1, m_ey1;
    int m_tsx, m_tsy;
    int m_tBands;
    GDALDataType m_tDataType;
    int m_l0tx, m_l0ty;
//    int m_level;
};