1//
2// Copyright 2008 Simon Edwards <simon@simonzone.com>
3//
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8//
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12// Lesser General Public License for more details.
13//
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library.  If not, see <http://www.gnu.org/licenses/>.
16//
17
18namespace Marble
19{
20class GeoDataMultiGeometry : Marble::GeoDataGeometry
21{
22%TypeHeaderCode
23#include <GeoDataMultiGeometry.h>
24%End
25
26public:
27                            GeoDataMultiGeometry ();
28                            GeoDataMultiGeometry (const Marble::GeoDataGeometry& other);
29    int                     size () const;
30//FIXME Add any needed Python list methods.
31//ig    Marble::GeoDataGeometry&  at (int pos);
32    const Marble::GeoDataGeometry&  at (int pos) const;
33//ig    Marble::GeoDataGeometry&  operator [] (int pos);
34    const Marble::GeoDataGeometry&  operator [] (int pos) const;
35//ig    Marble::GeoDataGeometry&  first ();
36    const Marble::GeoDataGeometry&  first () const;
37//ig    Marble::GeoDataGeometry&  last ();
38    const Marble::GeoDataGeometry&  last () const;
39    Marble::GeoDataMultiGeometry&  operator << (const Marble::GeoDataGeometry& value);
40//ig    QVector<Marble::GeoDataGeometry>::Iterator  begin ();
41//ig    QVector<Marble::GeoDataGeometry>::Iterator  end ();
42//ig    QVector<Marble::GeoDataGeometry>::ConstIterator  constBegin () const;
43//ig    QVector<Marble::GeoDataGeometry>::ConstIterator  constEnd () const;
44    void                    clear ();
45
46//FIXME the result here should be copied.
47//ig    QVector<Marble::GeoDataGeometry>&  vector () const;
48
49    virtual void            pack (QDataStream& stream) const;
50    virtual void            unpack (QDataStream& stream);
51    virtual ~GeoDataMultiGeometry ();
52    virtual const Marble::GeoDataLatLonAltBox&  latLonAltBox () const;
53    Marble::GeoDataGeometry*  child (int);
54    int                     childPosition (Marble::GeoDataGeometry* child);
55    void                    append (Marble::GeoDataGeometry* other);
56//ig    QVector<GeoDataGeometry*>::Iterator  erase (QVector<GeoDataGeometry*>::Iterator pos);
57//ig    QVector<GeoDataGeometry*>::Iterator  erase (QVector<GeoDataGeometry*>::Iterator begin, QVector<GeoDataGeometry*>::Iterator end);
58//ig    const Marble::GeoDataGeometry*  child (int) const;
59};
60// GeoDataMultiGeometry
61
62};
63// Marble
64
65
66