VR-Forces 4.2 Class Documentation
tmArea.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2001 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: tmArea.h,v $ $Revision: 1.67 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef TMAREA_H
13 #define TMAREA_H
14 
15 #include "tmqt/viewDriver.h"
16 #include <symbolMapper/modelData.h>
17 
18 #include <QtCore/QTimer>
19 #include <QtGui/QWidget>
20 
21 #include "archiver/archiver.h"
22 
23 class DtViewDriver;
24 class DtTMFactory;
25 class DtBaseSymbolMapper;
26 class DtDataSymbolList;
27 class DtTMBackground;
28 class DtSymbolLensArea;
29 class QTextStream;
30 class DtBaseWindow;
31 
32 #include "tmqt/tmqtDefines.h"
34 {
35  Q_OBJECT
36 
37 public:
38  DtTMArea(QWidget * parent = 0, const Qt::WindowFlags& flags = 0);
39 
40  virtual ~DtTMArea();
41 
43  virtual bool init(const DtTMFactory* f);
44 
45  //Symbol mapper creates new Symbols out of keys
46  virtual void setSymbolMapper(DtBaseSymbolMapper* mapper);
47 
48  //Symbol mapper creates new Symbols out of keys
49  virtual DtBaseSymbolMapper* getSymbolMapper();
50 
51  virtual DtTMSymbolUpdater* symbolUpdater();
52 
54  virtual DtTMViewportExtents* viewportExtents() const;
55 
57  virtual DtViewDriver* viewDriver() const;
58 
60  virtual void setViewDriver(DtViewDriver* v);
61 
63  virtual DtTMBackground* background() const;
64 
66  virtual void setBackground(DtTMBackground* v);
67 
68  //Set the SymbolLensArea to whatever you want
69  virtual void setSymbolLensArea(DtSymbolLensArea* area);
70  virtual DtSymbolLensArea* symbolLensArea();
71 
72  //Tick the symbol - passed into the LensArea. Returns true if this
74  virtual bool tick();
75 
76  virtual bool isInitialized();
77 
79  virtual DtModelDataDict& ModelDataDict();
80 
82  virtual DtModelDataIter* ModelDataIter() const;
83 
85  virtual DtModelDataIter* CombinedModelDataIter() const;
86 
89  virtual void setUpdateOnTick(bool b);
90 
93  virtual void markForUpdate(const QVector<DtModelKey>&, bool emitSignal = true);
94  virtual void markForUpdate(DtModelDataIter* iter, bool emitSignal = true);
95  virtual void markForUpdate(const DtModelData &data, bool emitSignal = true);
96 
98  virtual void removeFromUpdate(DtModelDataIter* iter);
99  virtual void removeFromUpdate(const DtModelData& data);
100 
102  virtual void removeDictionaryEntry(const DtModelKey& key);
103 
105  virtual void setUpdateBackgroundOnTick(bool b);
106 
110  void setNextTickIsRepaint(bool b);
111  bool nextTickIsRepaint() const;
112 
114  virtual bool needsTick() const;
115 
117  virtual bool needsUpdate() const;
118 
124  virtual DtSymbol* addSymbol(const DtModelData& data, DtSymbol* symbol);
125 
127  virtual void read(QTextStream& ts);
128  virtual void write(QTextStream& ts);
129 
132  virtual void clear();
133  virtual void clearSymbols();
134 
137  virtual void setForceTickOnViewportChange(bool b);
138  virtual bool forceTickOnViewportChange() const;
139 
141  virtual void paint(QPainter* painter, bool paintBackground = true);
142 
143  virtual void redrawBackground();
144 
146  virtual DtSymbol* getSymbol(const DtModelKey&) const;
147 
149  void setAlwaysResizeToGlobalView(bool);
150  bool alwaysResizeToGlobalView() const;
151 
152  virtual bool terrainLoaded() const;
153 
154  void setWindow(DtBaseWindow*);
155  DtBaseWindow* window() const;
156 
160  virtual bool needsDrawOrder() const;
161 
163  virtual void insertIntoDrawOrder(DtSymbol*);
164 
165 signals:
166 
168  void viewportExtentsSet(const DtTMViewportExtents* v);
169 
171  void viewportExtentsChanged(const DtTMViewportExtents* v);
172 
173  //called after the loadDatabaseFile slot gets called
174  void newDatabaseFile(const QString&);
175 
177  void removingSymbol(const DtModelKey& data);
178  void addingSymbol(const DtModelKey& data);
179  void modifyingSymbol(const DtModelKey& data);
180 
182  void resized();
183 
184  void modelDataMarkedForUpdated(const DtModelData& d);
185  void modelDataRemovedFromUpdate(const DtModelData&);
186 
187 public slots:
188 
189  virtual void loadDatabaseFile(const QString&);
190 
191  //The viewport extents alternate between screen and db coordinates
192  virtual void setViewportExtents(const DtTMViewportExtents* v);
193 
195  virtual bool updateAllSymbols();
196 
197  //if the background map has to be changed, this is the place to do it
198  virtual void updateBackground();
199 
200  virtual void resizeMapArea();
201 
202  virtual DtSymbol* addSymbol(const DtModelData& data, bool force = false);
203 
204  virtual void removeSymbol(const DtModelData& data, bool force = false);
205 
206  virtual void modifySymbol(const DtModelData& data);
207 
208  virtual void removeSymbol(const DtModelKey& data, bool force = false);
209 
212  virtual void setDrawOrderSymbols(bool b);
213 
215  virtual void signalDrawOrderSymbols();
216 
218  virtual void drawOrderSymbols();
219 
220 protected slots:
221  virtual void catchViewportChange(const DtTMViewportExtents* v);
222 
224  virtual void symbolAdded(const DtModelKey& data);
225  virtual void symbolAdded(const DtSymbol*);
226  virtual void symbolRemoved(const DtModelKey& data);
227  virtual void symbolRemoved(const DtSymbol*);
228 
229 protected:
230 
232  DtTMArea(const DtTMArea& orig);
233 
235  DtTMArea& operator=(const DtTMArea& rhs);
236 
237  virtual bool initViewportExtents(const DtTMFactory* f);
238 
239  virtual bool initViewDriver(const DtTMFactory* f);
240 
241  virtual bool initLensArea(const DtTMFactory* f, bool useGL = false);
242 
243  virtual bool initBackground(const DtTMFactory* f);
244 
246  virtual void resizeEvent(QResizeEvent* e);
247  virtual void showEvent ( QShowEvent * e);
248 
249 protected:
255  QPixmap * myBackground;
264  QHash<DtModelKey, DtModelData*> myUpdateData;
270 
273 
275 
278 
279  bool myInTick;
280 };
281 
283 QTextStream& operator<<(QTextStream& ts, DtTMArea& area);
284 QTextStream& operator>>(QTextStream& ts, DtTMArea& area);
285 
287 {
289 }
290 
292 {
294 }
295 
297 {
298  myWindow = w;
299 }
300 
302 {
303  return myWindow;
304 }
305 
307 {
309 }
310 
311 inline bool DtTMArea::nextTickIsRepaint() const
312 {
313  return myNextTickIsRepaint;
314 }
315 
316 #endif //TMAREA_H

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)