![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: pixPprMap.h,v $ $Revision: 1.38 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef PIXPPRMAP_H 00013 #define PIXPPRMAP_H 00014 00015 #include "terrainDbFactory/pprMap.h" 00016 00017 #include "geometry/point.h" 00018 #include "geometry/tdbextent.h" 00019 #include <vlutil/vlFilename.h> 00020 00021 #include <QtGui/QImage> 00022 #include <QtGui/QPixmap> 00023 00024 class DtDisplayPoint; 00025 class QFileInfo; 00026 class DtLargeImageReader; 00027 00032 #include "papermap/papermapDefines.h" 00033 class DT_DLL_papermap DtPixmapPaperMap : public DtPaperMap 00034 { 00035 public: 00036 00038 DtPixmapPaperMap(); 00039 00041 virtual ~DtPixmapPaperMap(); 00042 00044 virtual bool init 00045 ( 00046 const DtFilename& path, 00047 DtPaperMapRecord* paperMapRec, 00048 const Coordinate_System* coordSys 00049 ); 00050 00052 virtual const DtPoint& dbSwCorner() const; 00053 virtual void setDbSwCorner(const DtPoint&); 00054 00056 virtual const DtPoint& dbNeCorner() const; 00057 virtual void setDbNeCorner(const DtPoint&); 00058 00060 virtual const DtFilename& imageName() const; 00061 00063 virtual double xSize() const; 00064 00066 virtual double ySize() const; 00067 virtual void load(); 00068 00072 virtual bool getScaledImage 00073 ( 00074 const Coordinate_System* coordSys, 00075 const DtExtent& viewportExtent, 00076 const DtDisplaySize& screenSize, 00077 DtPoint& bitmapLocation, 00078 QImage& image, 00079 bool useMask, 00080 QColor* backgroundColor = NULL, 00081 int* scaledBitmapX = NULL, int* scaledBitmapY = NULL 00082 ); 00083 00085 virtual bool getBoundingBox(const DtExtent& viewportExtent, 00086 DtExtent& paperMapExtent, DtExtent& visibleExtent, 00087 DtDisplayPoint& wll, DtDisplayPoint& wur); 00088 00090 virtual bool setCoordinates(const DtPoint & swCorner,const DtPoint & neCorner, const Coordinate_System* coordSys); 00091 00092 virtual const DtString mapType() const; 00093 00094 static DtPaperMap * create(); 00095 00096 virtual void setImageName(const DtFilename&); 00097 virtual bool loadImage(const DtFilename & imageFile, const Coordinate_System * coordSys); 00098 00099 inline QImage* image() { return myImage; }; 00100 virtual QSize imageSize() const; 00101 00104 virtual QSize setImageSize(const QSize&); 00105 00106 virtual bool hasAlpha() const; 00107 00110 virtual void setImageLoadingEnabled(bool); 00111 bool imageLoadingEnabled() const; 00112 00114 virtual bool canLoadImage() const; 00115 00116 protected: 00117 00119 DtPixmapPaperMap(const DtPixmapPaperMap& orig); 00120 00122 DtPixmapPaperMap& operator=(const DtPixmapPaperMap& rhs); 00123 00124 protected: 00125 00127 DtPoint getDbPoint( 00128 const DtPoint& point, 00129 const Coordinate_System* coordFrom, 00130 const Coordinate_System* coordTo); 00131 00132 virtual bool getExtentIntersection( 00133 const DtExtent& rect1, 00134 const DtExtent& rect2, 00135 DtExtent& intersectionRect); 00136 00138 virtual bool getImageSlice 00139 ( 00140 const Coordinate_System* coordSys, 00141 const DtExtent& viewportExtent, 00142 const DtDisplaySize& screenSize, 00143 DtPoint& bitmapLocation, 00144 int &scaledBitmapSizeX, 00145 int &scaledBitmapSizeY, 00146 QImage& image, 00147 bool useMask, 00148 QColor* backgroundColor 00149 ); 00150 00153 virtual bool isSupportedTif(const QFileInfo& info) const; 00154 00155 protected: 00156 QImage* myImage; 00157 00158 DtPoint myDbSwCorner; 00159 DtPoint myDbNeCorner; 00160 00161 DtFilename myImageName; 00162 00163 QSize myImageSize; 00164 00165 bool myImageLoadingEnabled; 00166 }; 00167 00168 inline bool DtPixmapPaperMap::hasAlpha() const 00169 { 00170 if (myImage) 00171 { 00172 return myImage->hasAlphaChannel(); 00173 } 00174 else 00175 { 00176 return false; 00177 } 00178 } 00179 00180 inline bool DtPixmapPaperMap::imageLoadingEnabled() const 00181 { 00182 return myImageLoadingEnabled; 00183 } 00184 00185 #endif