File indexing completed on 2024-05-12 03:50:11
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2009 Patrick Spendrin <ps_ml@gmx.de> 0004 // 0005 0006 #ifndef MARBLE_GEODATAGEOMETRYPRIVATE_H 0007 #define MARBLE_GEODATAGEOMETRYPRIVATE_H 0008 0009 #include <QAtomicInt> 0010 0011 #include "GeoDataGeometry.h" 0012 0013 #include "GeoDataLatLonAltBox.h" 0014 0015 namespace Marble 0016 { 0017 0018 class GeoDataGeometryPrivate 0019 { 0020 public: 0021 GeoDataGeometryPrivate() 0022 : m_extrude( false ), 0023 m_altitudeMode( ClampToGround ), 0024 ref( 0 ) 0025 { 0026 } 0027 0028 GeoDataGeometryPrivate( const GeoDataGeometryPrivate& other ) 0029 : m_extrude( other.m_extrude ), 0030 m_altitudeMode( other.m_altitudeMode ), 0031 m_latLonAltBox(), 0032 ref( 0 ) 0033 { 0034 } 0035 0036 virtual ~GeoDataGeometryPrivate() 0037 { 0038 } 0039 0040 GeoDataGeometryPrivate& operator=( const GeoDataGeometryPrivate &other ) 0041 { 0042 m_extrude = other.m_extrude; 0043 m_altitudeMode = other.m_altitudeMode; 0044 m_latLonAltBox = other.m_latLonAltBox; 0045 return *this; 0046 } 0047 0048 virtual GeoDataGeometryPrivate *copy() const = 0; 0049 0050 bool m_extrude; 0051 AltitudeMode m_altitudeMode; 0052 mutable GeoDataLatLonAltBox m_latLonAltBox; 0053 0054 QAtomicInt ref; 0055 }; 0056 0057 } // namespace Marble 0058 0059 #endif