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