• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • marble
  • geodata
  • data
GeoDataPolygon.h
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2008-2009 Patrick Spendrin <ps_ml@gmx.de>
9 // Copyright 2008 Inge Wallin <inge@lysator.liu.se>
10 //
11 
12 
13 #ifndef MARBLE_GEODATAPOLYGON_H
14 #define MARBLE_GEODATAPOLYGON_H
15 
16 #include <QVector>
17 
18 #include "MarbleGlobal.h"
19 
20 #include "geodata_export.h"
21 #include "GeoDataGeometry.h"
22 #include "GeoDataLinearRing.h"
23 #include "GeoDataLatLonAltBox.h"
24 
25 namespace Marble
26 {
27 
28 class GeoDataPolygonPrivate;
29 
81 class GEODATA_EXPORT GeoDataPolygon : public GeoDataGeometry
82 {
83  public:
87  explicit GeoDataPolygon( TessellationFlags f = Tessellate );
88 
89 
93  explicit GeoDataPolygon( const GeoDataGeometry &other );
94 
95 
99  virtual ~GeoDataPolygon();
100 
101 
105  bool operator==( const GeoDataPolygon &other ) const;
106  bool operator!=( const GeoDataPolygon &other ) const;
107 
108 
114  virtual bool isClosed() const;
115 
116 
123  bool tessellate() const;
124 
125 
134  void setTessellate( bool tessellate );
135 
136 
140  TessellationFlags tessellationFlags() const;
141 
142 
146  void setTessellationFlags( TessellationFlags f );
147 
148 
154  virtual const GeoDataLatLonAltBox& latLonAltBox() const;
155 
161  GeoDataLinearRing &outerBoundary();
162 
168  const GeoDataLinearRing &outerBoundary() const;
169 
175  void setOuterBoundary( const GeoDataLinearRing& boundary );
176 
182  QVector<GeoDataLinearRing>& innerBoundaries();
183 
189  const QVector<GeoDataLinearRing>& innerBoundaries() const;
190 
196  void appendInnerBoundary( const GeoDataLinearRing& boundary );
197 
204  virtual bool contains( const GeoDataCoordinates &coordinates ) const;
205 
206  // Serialization
211  virtual void pack( QDataStream& stream ) const;
212 
213 
218  virtual void unpack( QDataStream& stream );
219 
220  private:
221  GeoDataPolygonPrivate *p();
222  const GeoDataPolygonPrivate *p() const;
223 };
224 
225 class GEODATA_EXPORT GeoDataOuterBoundary : public GeoDataPolygon
226 {
227 };
228 
229 class GEODATA_EXPORT GeoDataInnerBoundary : public GeoDataPolygon
230 {
231 };
232 
233 }
234 
235 #endif // GEODATAPOLYGON_H
Marble::GeoDataCoordinates
A 3d point representation.
Definition: GeoDataCoordinates.h:52
Marble::GeoDataLinearRing
A LinearRing that allows to store a closed, contiguous set of line segments.
Definition: GeoDataLinearRing.h:68
QDataStream
Marble::GeoDataGeometry
A base class for all geodata features.
Definition: GeoDataGeometry.h:47
Marble::operator==
bool operator==(const DownloadPolicyKey &lhs, const DownloadPolicyKey &rhs)
Definition: DownloadPolicy.h:49
Marble::GeoDataPolygon
A polygon that can have "holes".
Definition: GeoDataPolygon.h:81
Marble::operator!=
bool operator!=(GeoDataLatLonBox const &lhs, GeoDataLatLonBox const &rhs)
Definition: GeoDataLatLonBox.cpp:59
Marble::GeoDataOuterBoundary
Definition: GeoDataPolygon.h:225
MarbleGlobal.h
Marble::GeoDataPolygonPrivate
Definition: GeoDataPolygon_p.h:21
Marble::GeoDataInnerBoundary
Definition: GeoDataPolygon.h:229
GeoDataLinearRing.h
QVector
GeoDataLatLonAltBox.h
GEODATA_EXPORT
#define GEODATA_EXPORT
Definition: geodata_export.h:22
geodata_export.h
GeoDataGeometry.h
Marble::Tessellate
Definition: MarbleGlobal.h:32
Marble::GeoDataLatLonAltBox
A class that defines a 3D bounding box for geographic data.
Definition: GeoDataLatLonAltBox.h:49
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:39 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal