VR-Forces 4.0.4 Class Documentation
include/drawerNative/viewportExtents.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2000 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: viewportExtents.h,v $ $Revision: 1.25 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef VIEWPORTEXTENTS_H
00013 #define VIEWPORTEXTENTS_H
00014 
00015 #include "drawerNative/drawerNativeDefines.h"
00016 #include "geometry/tdbextent.h"
00017 #include "drawerNative/displaySize.h"
00018 #include "drawerNative/displayPoint.h"
00019 #include <QtCore/QPoint>
00020 
00021 class DT_DLL_drawerNative DtViewportExtents
00022 {
00023 public:
00024 
00025    DtViewportExtents();
00026 
00027    DtViewportExtents(const DtViewportExtents& v);
00028 
00029    virtual ~DtViewportExtents();
00030 
00031    DtViewportExtents& operator=(const DtViewportExtents& rhs);
00032    
00034 
00035    virtual void resetToGlobalView();   
00036    virtual void zoomIn();
00037    virtual void zoomOut();   
00038    virtual void panNorthwest();   
00039    virtual void panNorth();   
00040    virtual void panNortheast();   
00041    virtual void panEast();   
00042    virtual void panSoutheast();   
00043    virtual void panSouth();   
00044    virtual void panSouthwest();   
00045    virtual void panWest();
00046 
00048    virtual void zoom(const DtPoint& center, const double& mag);   
00049    virtual void resize(const DtExtent& e);   
00050 
00052    virtual void recenter(const DtPoint& center, bool clipToGlobal = true);
00053    
00055    virtual const DtExtent& globalExtent() const;
00056    virtual void setGlobalExtent(const DtExtent& e);
00057    virtual const double& globalAspectRatio() const;
00058 
00059    virtual const DtExtent& localExtent() const;
00060    virtual void setLocalExtent(const DtExtent& e);
00061    virtual const double& localAspectRatio() const;
00062       
00063    virtual const DtDisplaySize windowSize() const;
00064    virtual void setWindowSize(const DtDisplaySize& s);
00065    virtual const double& windowAspectRatio() const;
00066 
00067    //After the initial init, use this function to resize the
00068    //window without zooming
00069    virtual void changeWindowSize(const DtDisplaySize& s, bool resetExtents = true);
00070    
00075    virtual void windowFromDatabase(
00076       DtDisplayPoint& xp,
00077       const DtPoint& gd,
00078       bool smartRound = false) const;
00079 
00080    virtual void windowFromDatabase(
00081       QPointF& xp,
00082       const DtPoint& gd) const;
00083 
00085    virtual void databaseFromWindow(
00086       DtPoint& gd,
00087       const DtDisplayPoint& xp) const;
00088 
00090    virtual void databaseFromWindow(
00091       DtPoint& gd,
00092       const QPointF& xp) const;
00093 
00096    virtual void databaseFromWindow(
00097       DtPoint& gd,
00098       const double& x,
00099       const double& y) const;
00100 
00102 
00103    virtual const double& uMin() const;
00104    virtual void setUMin(const double& min);
00105 
00106    virtual const double& uMax() const;
00107    virtual void setUMax(const double& max);
00108 
00109    virtual const double& vMin() const;
00110    virtual void setVMin(const double& min);
00111 
00112    virtual const double& vMax() const;
00113    virtual void setVMax(const double& max);
00114 
00116  
00117    virtual const double& panStep() const;
00118    virtual void setPanStep(const double& step);
00119 
00120    virtual const double& minPanStep() const;
00121    virtual void setMinPanStep(const double& step);
00122 
00123    virtual const double& maxPanStep() const;
00124    virtual void setMaxPanStep(const double& step);
00125 
00126    virtual const double& zoomStep() const;
00127    virtual void setZoomStep(const double& step);
00128    
00129    virtual const double& minZoomStep() const;
00130    virtual void setMinZoomStep(const double& step);
00131    
00132    virtual const double& maxZoomStep() const;
00133    virtual void setMaxZoomStep(const double& step);
00134    
00137    virtual void clearExtents();
00138 
00140    virtual DtPoint center() const;
00141 
00142    virtual void setKeepAspectRatios(bool b);
00143 
00147    virtual void setMinimumViewPercent(double g);
00148    virtual double minimumViewWidth() const;
00149    virtual double minimumViewHeight() const;
00150 
00153    virtual void zoomLevel(double& magX, double& magY) const;
00154 
00158    virtual void zoomFromGlobal(const DtPoint& center,
00159       const double& magX, const double& magY);
00160 
00162    virtual void resizeToFitAspectRatio(double& width, double& height);
00163    virtual void resizeToFitAspectRatio(DtExtent& extent);
00164 
00167    virtual void setFromCorners(const DtPoint& nw, const DtPoint& se);
00168 
00170    virtual bool isValidWindowDisplayPointFromDatabase(DtPoint gd) const;
00171 
00172 protected:
00173    
00174    static const double theDefaultPanStep;
00175    
00176    static const double theDefaultMinPanStep;
00177    
00178    static const double theDefaultMaxPanStep;  
00179    
00180    static const double theDefaultZoomStep;
00181    
00182    static const double theDefaultMinZoomStep;
00183    
00184    static const double theDefaultMaxZoomStep;
00185 
00187    virtual void recomputeTransforms();
00188 
00189    virtual const double& xMin() const;
00190    virtual void setXMin(const double& min);
00191 
00192    virtual const double& xMax() const;
00193    virtual void setXMax(const double& max);
00194 
00195    virtual const double& yMin() const;
00196    virtual void setYMin(const double& min);
00197 
00198    virtual const double& yMax() const;
00199    virtual void setYMax(const double& max);
00200 
00201    virtual const double& a() const;
00202    virtual void setA(const double& a);
00203 
00204    virtual const double& b() const;
00205    virtual void setB(const double& b);
00206 
00207    virtual const double& c() const;
00208    virtual void setC(const double& c);
00209 
00210    virtual const double& d() const;
00211    virtual void setD(const double& d);   
00212 
00213    virtual int roundIt(double val) const;
00214 
00215 public:
00218 #ifdef WIN32   
00219    static const int MAX_WINDOW_X;
00220    static const int MIN_WINDOW_X;
00221    static const int MAX_WINDOW_Y;
00222    static const int MIN_WINDOW_Y;
00223 #else
00224    static const int MAX_WINDOW_X;
00225    static const int MIN_WINDOW_X;
00226    static const int MAX_WINDOW_Y;
00227    static const int MIN_WINDOW_Y;
00228 #endif
00229 
00230    static const int maxWindowX();
00231    static const int maxWindowY();
00232    static const int minWindowX();
00233    static const int minWindowY();
00234 
00235    static double theDefaultAltitudeRange;
00236 
00237 protected:
00238 
00239    double myPanStep;
00240    double myMinPanStep;
00241    double myMaxPanStep;
00242 
00243    double myZoomStep;
00244    double myMinZoomStep;
00245    double myMaxZoomStep;
00246    
00248    DtDisplaySize myWindowSize;
00249    double myWindowAspectRatio;
00250 
00252    DtExtent myGlobalExtent;
00253    double myGlobalAspectRatio;
00254    DtExtent myLocalExtent;
00255    double myLocalAspectRatio;
00256    
00257    DtPoint myCenter;
00258    
00260    double myUMin;
00261    double myUMax;
00262    double myVMin;
00263    double myVMax;
00264 
00266    double myXMin;
00267    double myXMax;
00268    double myYMin;
00269    double myYMax;
00270    double myA;
00271    double myB;
00272    double myC;
00273    double myD;
00274 
00275    bool myKeepAspectRatios;
00276 
00277    static double gMinimumPercent;
00278 };
00279 
00280 #endif //VIEWPORTEXTENTS_H

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)