VR-Forces 4.2 Class Documentation
tmSymbolUpdater.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2001 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: tmSymbolUpdater.h,v $ $Revision: 1.48 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef TMSYMBOLUPDATER_H_
13 #define TMSYMBOLUPDATER_H_
14 
15 #include <QtCore/QHash>
16 #include <vector>
17 
18 class DtViewDriver;
19 class DtTMArea;
20 class DtTMSymbolUpdater;
21 class DtNameLabelSymbol;
23 class DtTMMapArea;
24 class QPolygon;
25 class QPoint;
26 class DtSymbol;
27 class DtTMDisplayOptions;
29 class DtModelData;
30 class DtPoint;
31 class DtVector;
32 class DtArchivableObject;
33 
35 typedef void (*DtSymbolUpdatorCallback)(const DtTMSymbolUpdater* mapper, DtSymbol& s, const DtModelData& data, void* usr);
36 typedef void (*DtPostSymbolUpdateCallback)(const DtTMSymbolUpdater*, DtSymbol&, const DtModelData&, void* usr);
37 
38 #include "tmqt/tmqtDefines.h"
40 {
41 public:
42  DtUpdateCallbackInfo() : myUserData(NULL), myCallback(NULL) {};
45  myCallback(orig.myCallback), myUserData(orig.myUserData) {};
46 
47  virtual ~DtUpdateCallbackInfo();
48 
49  virtual DtSymbolUpdatorCallback callback();
50  virtual void* usertoLatin1();
51 
52 protected:
54  void* myUserData;
55 };
56 
58 {
59 public:
60  DtPostUpdateCallbackInfo(int type, DtPostSymbolUpdateCallback fcn, void *usr);
62  myCallback(orig.myCallback), myUserData(orig.myUserData), myType(orig.myType) {};
63 
64  virtual ~DtPostUpdateCallbackInfo();
65 
66  virtual DtPostSymbolUpdateCallback callback();
67  virtual void* usertoLatin1();
68  virtual int type();
69 
70 protected:
72  void* myUserData;
73  int myType;
74 };
75 
76 typedef QVector<DtUpdateCallbackInfo> DtUpdateCallbackInfoList;
77 
79 {
80  Q_OBJECT
81 
82 public:
83 
85 
86  virtual ~DtTMSymbolUpdater();
87 
89  virtual void init(DtTMArea* area);
90 
93  virtual void setViewportExtents(const DtTMViewportExtents *);
94  virtual const DtTMViewportExtents* viewportExtents() const;
95 
98  virtual void setDisplayOptions(const DtTMDisplayOptions* o);
99  virtual const DtTMDisplayOptions* displayOptions() const;
100 
106  virtual void updateSymbol(DtSymbol&, const DtModelData&);
107 
109  virtual void setViewDriver(const DtViewDriver* driver);
110 
112  virtual void setResetLabelPositions(bool b);
113 
115  virtual int defaultLineWidth(const DtEnvironmentalModelData& d,
116  const DtTMDisplayOptions* opt) const;
117 
119  virtual void addSymbolUpdateCallback(QString type, DtPostSymbolUpdateCallback fcn, void* usr = NULL);
120  virtual void removeSymbolUpdateCallback(QString type, DtSymbolUpdatorCallback fcn);
121 
124  virtual void addPostUpdateCallback(int iType, DtPostSymbolUpdateCallback fcn, void* usr);
125 
127  virtual void removePostUpdateCallback(int iType, DtPostSymbolUpdateCallback fcn, void* usr);
128 
131  virtual void removeAllPostUpdateCallbacks();
132 
134  virtual QPolygon* createScreenPtsFromDB(const QVector<DtPoint>* dbPoints) const;
135 
137  virtual QPolygon* createScreenPtsFromDB(const QList<DtVector>* dbPoints) const;
138 
140  virtual QPoint createScreenPtFromDB(const DtPoint& dbPoint) const;
141 
143  virtual void setLocationDataFromModelData( DtSymbol& s, QVector<DtPoint> dbPoints ) const;
144 
146  virtual bool processUpdateOptions(DtNameLabelSymbol* nls, const DtModelData& d, void* usr) const;
147 
149  virtual bool updateVerticies(DtNameLabelSymbol* nls, QVector<DtPoint>* points) const;
150 
152  virtual void updateLocalControlData(DtSymbol& s, const DtEnvironmentalModelData& d, void* usr) const;
153 
155  virtual void updateGenericPosition(DtSymbol& s,const DtModelData& d) const;
156 
157 protected:
158 
160  virtual bool updateOptions(DtNameLabelSymbol* nls, const DtTMDisplayOptions* opt,
161  const DtModelData& d, void* usr) const;
162 
163  virtual bool updateOptionsFromDisplayOptions(DtNameLabelSymbol* nls, const DtModelData& d, void* usr) const;
164 
165  virtual bool needsOptionUpdate(DtSymbol*) const;
166  virtual bool needsOptionUpdate(const DtModelData&) const;
167 
168  virtual void updateOptionCache(DtSymbol*) const;
169 
171  virtual void invokePostUpdateCallbacks(DtSymbol&, const DtModelData&);
172 
174  virtual void updateSymbol(DtNameLabelSymbol* es, const DtEnvironmentalModelData& d, void* usr) const;
175 
177  virtual void updateNameLabel(DtNameLabelSymbol* pes, const DtModelData& d, void* usr) const;
178 
180  virtual void updateLabelLabel(DtNameLabelSymbol* pes, const DtModelData& d, void* usr) const;
181 
183  virtual void updateLayerLabel(DtNameLabelSymbol* pes, const DtModelData& d, void* usr) const;
184 
186  virtual bool updateVerticies(DtNameLabelSymbol* pes,
187  const DtEnvironmentalModelData& d,
188  void* usr) const;
189 
193  virtual bool updateVerticies(DtNameLabelSymbol* nls, DtSymbol* s,
194  const DtModelData& d, void* usr) const;
195 
197  virtual bool updateVerticies(DtNameLabelSymbol* nls, DtSymbol* s,
198  const QVector<DtPoint>& pnts, const DtModelData& d, void* usr) const;
199 
200 
202  virtual void updateColorOptions(DtNameLabelSymbol* nls, const DtTMDisplayOptions* pdo,
203  const DtEnvironmentalModelData& d, void* usr) const;
204 
206  virtual bool isValidUpdatableData(const DtModelData& d) const;
207 
209  virtual void setLineEditable(const DtModelData& d, DtNameLabelSymbol* nls) const;
210 
212  virtual bool terrainLoaded() const;
213 
214 public:
215 
217  static DtTMSymbolUpdater* create();
218 
221  static void updateGenericPositionCb(const DtTMSymbolUpdater* updater, DtSymbol& s,
222  const DtModelData& d, void* usr=0);
223 
226  static void updateLocalControlDataCb(const DtTMSymbolUpdater* updater, DtSymbol& s,
227  const DtModelData& d, void* usr);
228 
231  static void updateNameLabelCb(const DtTMSymbolUpdater* updater, DtSymbol& s,
232  const DtModelData& d, void* usr);
233 
236  static void updateLabelLabelCb(const DtTMSymbolUpdater* updater, DtSymbol& s,
237  const DtModelData& d, void* usr);
238 
241  static void updateLayerLabelCb(const DtTMSymbolUpdater* updater, DtSymbol& s,
242  const DtModelData& d, void* usr);
243 
244 protected:
245 
248  const DtTMArea* myArea;
251  QHash<QString, DtUpdateCallbackInfoList> myUpdators;
255 };
256 
257 #endif //TMSYMBOLUPDATER_H_
258 

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)