VR-Forces 4.0.4 Class Documentation
include/papermap/pixPprMap.h
Go to the documentation of this file.
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

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)