VR-Forces 4.1.1 Class Documentation
viewportExtents.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2000 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: viewportExtents.h,v $ $Revision: 1.25 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef VIEWPORTEXTENTS_H
13 #define VIEWPORTEXTENTS_H
14 
16 #include "geometry/tdbextent.h"
19 #include <QtCore/QPoint>
20 
22 {
23 public:
24 
26 
28 
29  virtual ~DtViewportExtents();
30 
31  DtViewportExtents& operator=(const DtViewportExtents& rhs);
32 
34 
35  virtual void resetToGlobalView();
36  virtual void zoomIn();
37  virtual void zoomOut();
38  virtual void panNorthwest();
39  virtual void panNorth();
40  virtual void panNortheast();
41  virtual void panEast();
42  virtual void panSoutheast();
43  virtual void panSouth();
44  virtual void panSouthwest();
45  virtual void panWest();
46 
48  virtual void zoom(const DtPoint& center, const double& mag);
49  virtual void resize(const DtExtent& e);
50 
52  virtual void recenter(const DtPoint& center, bool clipToGlobal = true);
53 
55  virtual const DtExtent& globalExtent() const;
56  virtual void setGlobalExtent(const DtExtent& e);
57  virtual const double& globalAspectRatio() const;
58 
59  virtual const DtExtent& localExtent() const;
60  virtual void setLocalExtent(const DtExtent& e);
61  virtual const double& localAspectRatio() const;
62 
63  virtual const DtDisplaySize windowSize() const;
64  virtual void setWindowSize(const DtDisplaySize& s);
65  virtual const double& windowAspectRatio() const;
66 
67  //After the initial init, use this function to resize the
68  //window without zooming
69  virtual void changeWindowSize(const DtDisplaySize& s, bool resetExtents = true);
70 
75  virtual void windowFromDatabase(
76  DtDisplayPoint& xp,
77  const DtPoint& gd,
78  bool smartRound = false) const;
79 
80  virtual void windowFromDatabase(
81  QPointF& xp,
82  const DtPoint& gd) const;
83 
85  virtual void databaseFromWindow(
86  DtPoint& gd,
87  const DtDisplayPoint& xp) const;
88 
90  virtual void databaseFromWindow(
91  DtPoint& gd,
92  const QPointF& xp) const;
93 
96  virtual void databaseFromWindow(
97  DtPoint& gd,
98  const double& x,
99  const double& y) const;
100 
102 
103  virtual const double& uMin() const;
104  virtual void setUMin(const double& min);
105 
106  virtual const double& uMax() const;
107  virtual void setUMax(const double& max);
108 
109  virtual const double& vMin() const;
110  virtual void setVMin(const double& min);
111 
112  virtual const double& vMax() const;
113  virtual void setVMax(const double& max);
114 
116 
117  virtual const double& panStep() const;
118  virtual void setPanStep(const double& step);
119 
120  virtual const double& minPanStep() const;
121  virtual void setMinPanStep(const double& step);
122 
123  virtual const double& maxPanStep() const;
124  virtual void setMaxPanStep(const double& step);
125 
126  virtual const double& zoomStep() const;
127  virtual void setZoomStep(const double& step);
128 
129  virtual const double& minZoomStep() const;
130  virtual void setMinZoomStep(const double& step);
131 
132  virtual const double& maxZoomStep() const;
133  virtual void setMaxZoomStep(const double& step);
134 
137  virtual void clearExtents();
138 
140  virtual DtPoint center() const;
141 
142  virtual void setKeepAspectRatios(bool b);
143 
147  virtual void setMinimumViewPercent(double g);
148  virtual double minimumViewWidth() const;
149  virtual double minimumViewHeight() const;
150 
153  virtual void zoomLevel(double& magX, double& magY) const;
154 
158  virtual void zoomFromGlobal(const DtPoint& center,
159  const double& magX, const double& magY);
160 
162  virtual void resizeToFitAspectRatio(double& width, double& height);
163  virtual void resizeToFitAspectRatio(DtExtent& extent);
164 
167  virtual void setFromCorners(const DtPoint& nw, const DtPoint& se);
168 
170  virtual bool isValidWindowDisplayPointFromDatabase(DtPoint gd) const;
171 
172 protected:
173 
174  static const double theDefaultPanStep;
175 
176  static const double theDefaultMinPanStep;
177 
178  static const double theDefaultMaxPanStep;
179 
180  static const double theDefaultZoomStep;
181 
182  static const double theDefaultMinZoomStep;
183 
184  static const double theDefaultMaxZoomStep;
185 
187  virtual void recomputeTransforms();
188 
189  virtual const double& xMin() const;
190  virtual void setXMin(const double& min);
191 
192  virtual const double& xMax() const;
193  virtual void setXMax(const double& max);
194 
195  virtual const double& yMin() const;
196  virtual void setYMin(const double& min);
197 
198  virtual const double& yMax() const;
199  virtual void setYMax(const double& max);
200 
201  virtual const double& a() const;
202  virtual void setA(const double& a);
203 
204  virtual const double& b() const;
205  virtual void setB(const double& b);
206 
207  virtual const double& c() const;
208  virtual void setC(const double& c);
209 
210  virtual const double& d() const;
211  virtual void setD(const double& d);
212 
213  virtual int roundIt(double val) const;
214 
215 public:
218 #ifdef WIN32
219  static const int MAX_WINDOW_X;
220  static const int MIN_WINDOW_X;
221  static const int MAX_WINDOW_Y;
222  static const int MIN_WINDOW_Y;
223 #else
224  static const int MAX_WINDOW_X;
225  static const int MIN_WINDOW_X;
226  static const int MAX_WINDOW_Y;
227  static const int MIN_WINDOW_Y;
228 #endif
229 
230  static const int maxWindowX();
231  static const int maxWindowY();
232  static const int minWindowX();
233  static const int minWindowY();
234 
235  static double theDefaultAltitudeRange;
236 
237 protected:
238 
239  double myPanStep;
240  double myMinPanStep;
241  double myMaxPanStep;
242 
243  double myZoomStep;
246 
250 
256 
258 
260  double myUMin;
261  double myUMax;
262  double myVMin;
263  double myVMax;
264 
266  double myXMin;
267  double myXMax;
268  double myYMin;
269  double myYMax;
270  double myA;
271  double myB;
272  double myC;
273  double myD;
274 
276 
277  static double gMinimumPercent;
278 };
279 
280 #endif //VIEWPORTEXTENTS_H

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)