VR-Forces 4.0.4 Class Documentation
include/papermap/mResPprMap.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2002 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: mResPprMap.h,v $ $Revision: 1.26 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtMultiResPaperMap_H_
00013 #define DtMultiResPaperMap_H_
00014 
00015 #include "papermap/pixPprMap.h"
00016 #include "papermap/mResActMapRec.h"
00017 #include <vlutil/vlFilename.h>
00018 
00019 #include <QtGui/QImage>
00020 #include <QtCore/QHash>
00021 #include "ngutil/dtqlist.h"
00022 
00023 class DtRasterMap;
00024 class DtRasterMapSet;
00025 class DtRasterMapResSet;
00026 class Coordinate_System;
00027 
00028 
00033 #include "papermap/papermapDefines.h"
00034 class DT_DLL_papermap DtMultiResPaperMap : public DtPixmapPaperMap
00035 {
00036 
00037 public:
00038 
00040    DtMultiResPaperMap();
00041 
00043    virtual ~DtMultiResPaperMap();
00044 
00046    virtual bool init
00047    (
00048       const DtFilename& path,
00049       DtPaperMapRecord* paperMapRec,
00050       const Coordinate_System* coordSys
00051    );
00052 
00053    virtual bool loadImage(const DtFilename & imageFile, const Coordinate_System * coordSys);
00054 
00055    virtual const DtString mapType() const;
00056 
00057    static DtPaperMap * create();
00058 
00059    const DtFilename& mtlFilename() const;
00060 
00061    void setCacheImages(bool);
00062    bool cacheImages() const;
00063 
00064    virtual void setMapFolder( const DtFilename & folder);
00065    virtual const DtFilename & mapFolder() const;
00066 
00067    virtual bool hasAlpha() const;
00068 
00070    static void setAllowOptimization(bool);
00071    static bool allowOptimization();
00072    virtual bool canLoadImage() const;
00073 
00074 protected:
00076    virtual bool getImageSlice
00077    (
00078       const Coordinate_System* coordSys,
00079       const DtExtent& viewportExtent,
00080       const DtDisplaySize& screenSize,
00081       DtPoint& bitmapLocation,
00082       int &scaledBitmapSizeX,
00083       int &scaledBitmapSizeY,
00084       QImage& image,
00085       bool useMask,
00086       QColor* backgroundColor
00087    );
00088 
00091 
00093    virtual bool getImageSlice
00094    (
00095       const Coordinate_System* coordSys,
00096       const DtExtent& viewportExtent,
00097       const DtDisplaySize& screenSize,
00098       DtPoint& bitmapLocation,
00099       int &scaledBitmapSizeX,
00100       int &scaledBitmapSizeY,
00101       bool useMask,
00102       QColor* backgroundColor,
00103       QImage* retImage
00104    );
00105 
00108    virtual bool drawAsImage() const;
00109 
00110    virtual void emptyActiveMapList();  
00111    virtual void emptyCachedMapList();  
00112 
00113    virtual bool addMapToActiveList(DtRasterMap * map);
00114    virtual bool recheckMaps(const DtExtent& dbExtent, double resolution, QSize& imageSizeFull, QSize& imageSizeSet,
00115       const Coordinate_System* coordSys, DtExtent& globalExtent);
00116 
00117    virtual void paintMap(const Coordinate_System* coordSys,
00118       DtMultiResActiveMapRecord &imageData, QRect & redraw, QImage* destImage,
00119       int pixWidth, int pixHeight, const DtExtent& dbExtent);
00120    virtual void calcWindowRect(DtMultiResActiveMapRecord &imageData, int pixWidth, int pixHeight, 
00121       const DtExtent& dbExtent, QPoint& topLeft, QPoint& bottomRight);
00122 
00123    virtual bool getExtentIntersection(const DtExtent& rect1, const DtExtent& rect2,
00124       DtExtent& intersectionRect);
00125 
00126    virtual bool loadRasterSet(const DtFilename &filename, const Coordinate_System* coordSys);
00127    virtual void unloadRasterSet();
00128 
00129    virtual void getXandYIncrements(const Coordinate_System* coordSys,
00130       double& xIncrement, double& yIncrement);
00131    virtual void initCacheInformation(const Coordinate_System* coordSys);
00132    virtual double resolutionFor(const Coordinate_System* coordSys, const DtExtent& extent);
00133 
00135    virtual void imageShift(const Coordinate_System* coordSys, const DtExtent& dbExtent);
00136    virtual bool screenLocation(const Coordinate_System* coordSys, DtMultiResActiveMapRecord &imageData,
00137       int pixWidth, int pixHeight, const DtExtent& dbExtent, DtDisplayPoint& wll, DtDisplayPoint& wur);
00138 
00139 protected:
00140    DtFilename myMapFolder;
00141    DtRasterMapSet    *myRasterSet;
00142    DtRasterMapResSet *myCurrentResSet;
00143    DtFilename myMtlFile;
00144 
00146    bool myCachedInformation;
00147    DtExtent myImageExtent;
00148    QSize    myImageSize;
00149 
00153    bool  myCacheImages;
00154 
00157    bool  myOptimizeCacheImages;
00158 
00160    bool myOptimization;
00161    static bool theAllowOptimization;
00162 
00164    bool myHasAlpha;
00165    DtPtrQList<DtMultiResActiveMapRecord*>  myActiveMapList;
00166    QHash<DtRasterMap*, DtMultiResActiveMapRecord*>  myCachedImages;
00167 
00168 private:
00169    
00171    DtMultiResPaperMap(const DtMultiResPaperMap& orig);
00172 
00174    DtMultiResPaperMap& operator=(const DtMultiResPaperMap& rhs);
00175 };
00176 
00177 inline void DtMultiResPaperMap::setCacheImages(bool b)
00178 {
00179    myCacheImages = b;
00180 }
00181 
00182 inline bool DtMultiResPaperMap::cacheImages() const
00183 {
00184    return myCacheImages;
00185 }
00186 
00187 inline bool DtMultiResPaperMap::hasAlpha() const
00188 {
00189    return myHasAlpha;
00190 }
00191 
00192 inline void DtMultiResPaperMap::setAllowOptimization(bool b)
00193 {
00194    theAllowOptimization = b;
00195 }
00196 
00197 inline bool DtMultiResPaperMap::allowOptimization()
00198 {
00199    return theAllowOptimization;
00200 }
00201 
00202 inline const DtFilename& DtMultiResPaperMap::mtlFilename() const
00203 {
00204    return myMtlFile;
00205 }
00206 
00207 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)