VR-Forces 4.0.4 Class Documentation
include/displayCS/coordinateSystemCollection.h
Go to the documentation of this file.
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

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)