1 // SPDX-License-Identifier: LGPL-2.1-or-later 2 // 3 // SPDX-FileCopyrightText: 2013 Mayank Madan <maddiemadan@gmail.com> 4 // 5 6 #ifndef GEODATALATLONQUAD_H 7 #define GEODATALATLONQUAD_H 8 9 #include "GeoDataCoordinates.h" 10 #include "GeoDataObject.h" 11 #include "MarbleGlobal.h" 12 13 namespace Marble { 14 15 class GeoDataLatLonQuadPrivate; 16 17 /** 18 */ 19 class GEODATA_EXPORT GeoDataLatLonQuad: public GeoDataObject 20 { 21 public: 22 GeoDataLatLonQuad(); 23 24 GeoDataLatLonQuad( const GeoDataLatLonQuad &other ); 25 26 GeoDataLatLonQuad& operator=( const GeoDataLatLonQuad &other ); 27 bool operator==( const GeoDataLatLonQuad &other ) const; 28 bool operator!=( const GeoDataLatLonQuad &other ) const; 29 30 ~GeoDataLatLonQuad() override; 31 32 /** Provides type information for downcasting a GeoNode */ 33 const char* nodeType() const override; 34 35 qreal bottomLeftLatitude( GeoDataCoordinates::Unit unit ) const; 36 qreal bottomRightLatitude( GeoDataCoordinates::Unit unit ) const; 37 qreal topRightLatitude( GeoDataCoordinates::Unit unit ) const; 38 qreal topLeftLatitude( GeoDataCoordinates::Unit unit ) const; 39 40 qreal bottomLeftLongitude( GeoDataCoordinates::Unit unit ) const; 41 qreal bottomRightLongitude( GeoDataCoordinates::Unit unit ) const; 42 qreal topRightLongitude( GeoDataCoordinates::Unit unit ) const; 43 qreal topLeftLongitude( GeoDataCoordinates::Unit unit ) const; 44 45 void setBottomLeftLatitude( qreal latitude, GeoDataCoordinates::Unit unit ); 46 void setBottomRightLatitude( qreal latitude, GeoDataCoordinates::Unit unit ); 47 void setTopRightLatitude( qreal latitude, GeoDataCoordinates::Unit unit ); 48 void setTopLeftLatitude( qreal latitude, GeoDataCoordinates::Unit unit ); 49 50 void setBottomLeftLongitude( qreal longitude, GeoDataCoordinates::Unit unit ); 51 void setBottomRightLongitude( qreal longitude, GeoDataCoordinates::Unit unit ); 52 void setTopRightLongitude( qreal longitude, GeoDataCoordinates::Unit unit ); 53 void setTopLeftLongitude( qreal longitude, GeoDataCoordinates::Unit unit ); 54 55 GeoDataCoordinates& bottomLeft() const; 56 void setBottomLeft( const GeoDataCoordinates &coordinates ); 57 58 GeoDataCoordinates& bottomRight() const; 59 void setBottomRight( const GeoDataCoordinates &coordinates ); 60 61 GeoDataCoordinates& topRight() const; 62 void setTopRight( const GeoDataCoordinates &coordinates ); 63 64 GeoDataCoordinates& topLeft() const; 65 void setTopLeft( const GeoDataCoordinates &coordinates ); 66 67 bool isValid() const; 68 69 private: 70 GeoDataLatLonQuadPrivate* const d; 71 }; 72 73 } 74 75 #endif 76