![]() |
VR-Forces 4.0.4 Class Documentation
|
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