File indexing completed on 2024-05-12 03:50:17

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_GEODATAPOLYGONPRIVATE_H
0007 #define MARBLE_GEODATAPOLYGONPRIVATE_H
0008 
0009 #include "GeoDataGeometry_p.h"
0010 
0011 #include "GeoDataLinearRing.h"
0012 
0013 namespace Marble
0014 {
0015 
0016 class GeoDataPolygonPrivate : public GeoDataGeometryPrivate
0017 {
0018   public:
0019      explicit GeoDataPolygonPrivate( TessellationFlags f )
0020          : m_dirtyBox( true ),
0021            m_tessellationFlags(f),
0022            m_renderOrder(0)
0023     {
0024     }
0025 
0026      GeoDataPolygonPrivate()
0027          : m_dirtyBox( true )
0028     {
0029     }
0030 
0031     GeoDataGeometryPrivate *copy() const override
0032     { 
0033          GeoDataPolygonPrivate* copy = new  GeoDataPolygonPrivate;
0034         *copy = *this;
0035         return copy;
0036     }
0037 
0038     GeoDataLinearRing           outer;
0039     QVector<GeoDataLinearRing>  inner;
0040     bool                        m_dirtyBox; // tells whether there have been changes to the
0041                                             // GeoDataPoints since the LatLonAltBox has 
0042                                             // been calculated. Saves performance. 
0043     TessellationFlags           m_tessellationFlags;
0044     int                         m_renderOrder;
0045 };
0046 
0047 } // namespace Marble
0048 
0049 #endif