Marble

GeoDataMultiGeometry.h
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 Patrick Spendrin <[email protected]>
9 //
10 
11 
12 #ifndef MARBLE_GEODATAMULTIGEOMETRY_H
13 #define MARBLE_GEODATAMULTIGEOMETRY_H
14 
15 
16 #include "geodata_export.h"
17 
18 #include "GeoDataGeometry.h"
19 #include <QVector>
20 
21 namespace Marble
22 {
23 
24 class GeoDataMultiGeometryPrivate;
25 
33 class GEODATA_EXPORT GeoDataMultiGeometry : public GeoDataGeometry
34 {
35  public:
37  explicit GeoDataMultiGeometry( const GeoDataGeometry& other );
38 
39  ~GeoDataMultiGeometry() override;
40 
41  const char *nodeType() const override;
42 
43  EnumGeometryId geometryId() const override;
44 
45  GeoDataGeometry *copy() const override;
46 
47  bool operator==(const GeoDataMultiGeometry &other) const;
48  bool operator!=(const GeoDataMultiGeometry &other) const { return !(*this == other); }
49 
50  const GeoDataLatLonAltBox& latLonAltBox() const override;
51 
52  int size() const;
53  GeoDataGeometry& at( int pos );
54  const GeoDataGeometry& at( int pos ) const;
55  GeoDataGeometry& operator[]( int pos );
56  const GeoDataGeometry& operator[]( int pos ) const;
57 
58  GeoDataGeometry& first();
59  const GeoDataGeometry& first() const;
60  GeoDataGeometry& last();
61  const GeoDataGeometry& last() const;
62 
66  GeoDataGeometry* child( int );
67 
71  const GeoDataGeometry* child( int ) const;
72 
76  int childPosition( const GeoDataGeometry *child ) const;
77 
81  void append( GeoDataGeometry *other );
82 
83  GeoDataMultiGeometry& operator << ( const GeoDataGeometry& value );
84 
89  void clear();
91 
95 
96  // Serialize the Placemark to @p stream
97  void pack( QDataStream& stream ) const override;
98  // Unserialize the Placemark from @p stream
99  void unpack( QDataStream& stream ) override;
100 
101  private:
102  Q_DECLARE_PRIVATE(GeoDataMultiGeometry)
103 };
104 
105 }
106 
107 #endif
Binds a QML item to a specific geodetic location in screen coordinates.
A base class for all geodata features.
A class that can contain other GeoDataGeometry objects.
A class that defines a 3D bounding box for geographic data.
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Tue Aug 4 2020 23:18:35 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.