diff --git a/src/lib/global.h b/src/lib/global.h index 16512e10c..b8ebf795c 100644 --- a/src/lib/global.h +++ b/src/lib/global.h @@ -1,227 +1,227 @@ // // This file is part of the Marble Desktop Globe. // // This program is free software licensed under the GNU LGPL. You can // find a copy of this license in LICENSE.txt in the top directory of // the source code. // // Copyright 2007 Torsten Rahn " // Copyright 2007 Inge Wallin " // #ifndef GLOBAL_H #define GLOBAL_H -#include +#include #ifndef M_PI #define M_PI 3.14159265358979323846264338327950288419717 #endif #include #include "marble_export.h" // #define QT_STRICT_ITERATORS namespace Marble { enum TessellationFlag { NoTessellation = 0x0, Tessellate = 0x1, RespectLatitudeCircle = 0x2, FollowGround = 0x4, RotationIndicatesFill = 0x8, SkipLatLonNormalization = 0x10 }; Q_DECLARE_FLAGS(TessellationFlags, TessellationFlag) /** * @brief This enum is used to choose the projection shown in the view. */ enum Projection { Spherical, ///< Spherical projection Equirectangular, ///< Flat projection ("plate carree") Mercator ///< Mercator projection }; /** * @brief This enum is used to choose the unit chosen to measure distances. */ enum DistanceUnit { Metric, ///< Metric unit Imperial ///< Imperial unit }; /** * @brief This enum is used to choose the dimension. */ enum Dimension { Latitude, ///< Latitude Longitude ///< Longitude }; Q_DECLARE_FLAGS(Dimensions, Dimension) /** * @brief This enum is used to choose the unit chosen to measure angles. */ enum AngleUnit { DMSDegree, ///< Degrees in DMS notation DecimalDegree, ///< Degrees in decimal notation UTM ///< UTM }; /** * @brief This enum is used to choose context in which map quality gets used. */ enum ViewContext { Still, ///< still image Animation ///< animated view (e.g. while rotating the globe) }; /** * @brief This enum is used to choose the map quality shown in the view. */ enum MapQuality { Outline, ///< Only a wire representation is drawn Low, ///< Low resolution (e.g. interlaced) Normal, ///< Normal quality High, ///< High quality (e.g. antialiasing for lines) Print ///< Print quality }; /** * @brief This enum is used to choose which graphics system Qt is using. */ enum GraphicsSystem { NativeGraphics, ///< Uses the native graphics system of the OS RasterGraphics, ///< Renders everything onto a pixmap OpenGLGraphics ///< Uses OpenGL }; /** * @brief This enum is used to specify the proxy that is used. */ enum ProxyType { HttpProxy = 0x0 , ///< Uses an Http proxy Socks5Proxy = 0x1 ///< Uses a Socks5Proxy }; /** * @brief This enum is used to choose the localization of the labels. */ enum LabelPositionFlag { NoLabel = 0x0, LineStart = 0x1, LineCenter = 0x2, LineEnd = 0x4, IgnoreXMargin = 0x8, IgnoreYMargin = 0x10 }; Q_DECLARE_FLAGS(LabelPositionFlags, LabelPositionFlag) /** * @brief This enum is used to choose the localization of the labels. */ enum LabelLocalization { CustomAndNative, ///< Custom and native labels Custom, ///< Shows the name in the user's language Native ///< Display the name in the official language and /// glyphs of the labeled place. }; /** * @brief This enum is used to choose how the globe behaves while dragging. */ enum DragLocation { KeepAxisVertically, ///< Keep planet axis vertically FollowMousePointer ///< Follow mouse pointer exactly }; /** * @brief This enum is used to choose how the globe behaves while dragging. */ enum OnStartup { ShowHomeLocation, ///< Show home location on startup LastLocationVisited ///< Show last location visited on quit }; enum AltitudeMode { ClampToGround, ///< Altitude always sticks to ground level RelativeToGround, ///< Altitude is always given relative to ground level Absolute ///< Altitude is given relative to the sealevel }; enum Pole { AnyPole, ///< Any pole NorthPole, ///< Only North Pole SouthPole ///< Only South Pole }; const int defaultLevelZeroColumns = 2; const int defaultLevelZeroRows = 1; // Conversion Metric / Imperial System: km vs. miles const qreal MI2KM = 1.609344; const qreal KM2MI = 1.0 / MI2KM; // Conversion degree vs. radians const qreal DEG2RAD = M_PI / 180.0; const qreal RAD2DEG = 180.0 / M_PI; // Version definitions to use with an external application (as digiKam) // String for about dialog. const QString MARBLE_VERSION_STRING = QString::fromLatin1( "0.8" ); // API Version id: // form : 0xMMmmpp // MM = major revision. // mm = minor revision. // pp = patch revision. #define MARBLE_VERSION 0x000800 static const char NOT_AVAILABLE[] = QT_TR_NOOP("not available"); const int tileDigits = 6; // Usage deprecated: const qreal RAD2INT = 21600.0 / M_PI; // Average earth radius in m // Deprecated: Please use model()->planetRadius() instead. const qreal EARTH_RADIUS = 6378000.0; // Maximum level of base tiles const quint8 maxBaseTileLevel = 4; class MarbleGlobalPrivate; class MarbleLocale; class MARBLE_EXPORT MarbleGlobal { public: static MarbleGlobal * getInstance(); ~MarbleGlobal(); MarbleLocale * locale() const; private: MarbleGlobal(); Q_DISABLE_COPY( MarbleGlobal ) MarbleGlobalPrivate * const d; }; } Q_DECLARE_OPERATORS_FOR_FLAGS(Marble::TessellationFlags) Q_DECLARE_OPERATORS_FOR_FLAGS(Marble::LabelPositionFlags) #endif