![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: coordinateSystemCollection.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtCoordinateSystemCollection_H_ 00013 #define DtCoordinateSystemCollection_H_ 00014 00015 #include "drawerNative/coordUtils.h" 00016 00017 #include <QtCore/QList> 00018 #include <QtCore/QObject> 00019 #include <QtGui/QComboBox> 00020 00021 class DtUnitDisplayManager; 00022 00023 #include "displayCS/displayCSDefines.h" 00024 00025 class DT_DLL_displayCS DtDefaultCoordinateSystem : public DtCoordinateSystem 00026 { 00027 Q_OBJECT 00028 00029 public: 00030 DtDefaultCoordinateSystem(const DtUnitDisplayManager* manager); 00031 00032 virtual ~DtDefaultCoordinateSystem(); 00033 00034 virtual QString name(); 00035 virtual QString xLabelFor() const; 00036 virtual QString yLabelFor() const; 00037 virtual QString zLabelFor() const; 00038 00039 virtual DtGridLineChoiceMap gridLineChoices(const QString& units) const; 00040 00041 public: 00042 virtual bool convertFrom(const DtCoordinateSystem* oldCS, const DtStringLocation& curLoc, DtStringLocation& newLoc) const; 00043 00046 virtual QString formatSourceToDestination(double val, const QString& unitDisplay, const QString& source, 00047 const QString& destination) const; 00048 00050 virtual QString formatDestinationToSource(double val, const QString& unitDisplay, const QString& source, 00051 const QString& destination) const; 00052 00054 virtual QString formatSourceToDestination(const QString& val, const QString& unitDisplay, const QString& source, 00055 const QString& destination) const; 00056 00057 virtual QString formatDestinationToSource(const QString& val, const QString& unitDisplay, const QString& source, 00058 const QString& destination) const; 00059 }; 00060 00061 class DT_DLL_displayCS DtDefaultGeodeticCoordinateSystem : public DtDefaultCoordinateSystem 00062 { 00063 Q_OBJECT 00064 00065 public: 00066 DtDefaultGeodeticCoordinateSystem(const DtUnitDisplayManager* manager); 00067 00068 virtual ~DtDefaultGeodeticCoordinateSystem(); 00069 00070 virtual QString name(); 00071 00072 public: 00075 virtual QString formatSourceToDestination(double val, const QString& unitDisplay, const QString& source, 00076 const QString& destination) const; 00077 00079 virtual QString formatDestinationToSource(double val, const QString& unitDisplay, const QString& source, 00080 const QString& destination) const; 00081 }; 00082 00083 typedef QHash<DtCoordSys, DtCoordinateSystem*> DtCoordinateSystemDict; 00084 00087 class DT_DLL_displayCS DtCoordinateSystemCollection : public DtArchivableObject 00088 { 00089 Q_OBJECT 00090 00091 public: 00092 DtCoordinateSystemCollection(const DtUnitDisplayManager* units); 00093 virtual ~DtCoordinateSystemCollection(); 00094 00098 virtual bool init(); 00099 00101 static DtCoordinateSystemCollection* create(const DtUnitDisplayManager* units); 00102 00104 virtual const DtCoordinateSystemDict& coordinateSystemCollection() const; 00105 virtual DtCoordinateSystemDict& coordinateSystemCollection(); 00106 00109 virtual void fillComboBox(QComboBox* box, QList<DtCoordSys>* showOnly = NULL) const; 00110 00113 virtual void fillGridLineSelection(const DtCoordSys& system, 00114 const QString& unit, QComboBox* combo); 00115 00118 virtual QString gridLineTextForFrequency(const DtCoordSys& system, 00119 const QString& unit, double frequency); 00120 00123 virtual double gridLineFrequencyForText(const DtCoordSys& system, 00124 const QString& unit, const QString& text); 00125 00128 virtual QString xLabelFor(const DtCoordSys& system) const; 00129 virtual QString yLabelFor(const DtCoordSys& system) const; 00130 virtual QString zLabelFor(const DtCoordSys& system) const; 00131 00132 const DtUnitDisplayManager* unitDisplayManager() const; 00133 00138 virtual void setPrecision(const DtCoordSys& s, int, bool signal = true); 00139 virtual int precision(const DtCoordSys&) const; 00140 00142 virtual void setPrecisionLowerBound(const DtCoordSys& s, int); 00143 virtual int precisionLowerBound(const DtCoordSys&) const; 00144 00145 virtual void setPrecisionUpperBound(const DtCoordSys& s, int); 00146 virtual int precisionUpperBound(const DtCoordSys&) const; 00147 00149 virtual void restoreDefaults(); 00150 00151 public: 00153 00156 virtual void addCoordinateSystem(const DtCoordSys& unit, DtCoordinateSystem* obj); 00157 00159 virtual DtCoordinateSystem* coordinateSystemFor(const DtCoordSys& system) const; 00160 virtual DtCoordinateSystem* coordinateSystemFor(const QString& system) const; 00161 00163 virtual QString coordinateSystemName(const DtCoordSys& system) const; 00164 virtual DtCoordSys coordinateSystem(const QString& system) const; 00165 00168 virtual void automaticallyUpdateComboBox(QComboBox*); 00169 00170 signals: 00171 void precisionChanged(const DtCoordSys&, int oldPrec, int newPrec); 00172 00173 signals: 00174 void coordinateSystemAdded(const DtCoordSys& unit, DtCoordinateSystem* obj); 00175 00176 public slots: 00177 virtual void removeComboBox(QObject*); 00178 00179 protected: 00181 virtual void addCoordinateSystems(); 00182 00184 virtual int gridLineInsertPosition(QComboBox* box, double val) const; 00185 00187 virtual void read(QTextStream& ts); 00188 virtual void write(QTextStream& ts); 00189 00190 protected: 00191 DtCoordinateSystemDict myCoordinateSystems; 00192 const DtUnitDisplayManager* myUnits; 00193 00194 QList<QComboBox*> myTracking; 00195 }; 00196 00197 inline const DtUnitDisplayManager* DtCoordinateSystemCollection::unitDisplayManager() const 00198 { 00199 return myUnits; 00200 } 00201 00202 #endif