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{ 20 21class GeoDataLineString : Marble::GeoDataGeometry 22{ 23%TypeHeaderCode 24#include <GeoDataLineString.h> 25%End 26 27public: 28//ig typedef QVector<GeoDataCoordinates>::Iterator Iterator; 29 30//ig typedef QVector<GeoDataCoordinates>::ConstIterator ConstIterator; 31 32 GeoDataLineString (Marble::TessellationFlags f = Marble::NoTessellation); 33 GeoDataLineString (const Marble::GeoDataGeometry& other); 34 virtual bool isClosed () const; 35 bool tessellate () const; 36 void setTessellate (bool tessellate); 37 Marble::TessellationFlags tessellationFlags () const; 38 void setTessellationFlags (Marble::TessellationFlags f); 39 Marble::GeoDataLatLonAltBox latLonAltBox () const; 40 int size () const; 41//FIXME Add the needed Python list methods. 42//ig Marble::GeoDataCoordinates& at (int pos); 43 const Marble::GeoDataCoordinates& at (int pos) const; 44//ig Marble::GeoDataCoordinates& operator [] (int pos); 45 const Marble::GeoDataCoordinates& operator [] (int pos) const; 46//ig Marble::GeoDataCoordinates& first (); 47 const Marble::GeoDataCoordinates& first () const; 48//ig Marble::GeoDataCoordinates& last (); 49 const Marble::GeoDataCoordinates& last () const; 50 void append (const Marble::GeoDataCoordinates& position); 51 Marble::GeoDataLineString& operator << (const Marble::GeoDataCoordinates& position); 52//ig QVector<Marble::GeoDataCoordinates>::Iterator begin (); 53//ig QVector<Marble::GeoDataCoordinates>::Iterator end (); 54//ig QVector<Marble::GeoDataCoordinates>::ConstIterator constBegin () const; 55//ig QVector<Marble::GeoDataCoordinates>::ConstIterator constEnd () const; 56 void clear (); 57 virtual void pack (QDataStream& stream) const; 58 virtual void unpack (QDataStream& stream); 59 60protected: 61//ig Marble::GeoDataLineStringPrivate* p () const; 62 63public: 64 virtual ~GeoDataLineString (); 65 virtual qreal length (qreal planetRadius, int offset = 0) const; 66//ig virtual QVector<Marble::GeoDataLineString*> toRangeCorrected () const; 67 virtual Marble::GeoDataLineString toNormalized () const; 68 virtual Marble::GeoDataLineString toPoleCorrected () const; 69//ig virtual QVector<Marble::GeoDataLineString*> toDateLineCorrected () const; 70 bool isEmpty () const; 71//ig Marble::GeoDataLineString& operator << (const Marble::GeoDataLineString& lineString); 72//ig QVector<GeoDataCoordinates>::Iterator erase (QVector<GeoDataCoordinates>::Iterator position); 73//ig QVector<GeoDataCoordinates>::Iterator erase (QVector<GeoDataCoordinates>::Iterator begin, QVector<GeoDataCoordinates>::Iterator end); 74 void remove (int i); 75protected: 76//ig GeoDataLineString (GeoDataLineStringPrivate* priv); 77public: 78 79// FIXME 80//ig QVector<GeoDataCoordinates>::ConstIterator begin () const; 81//ig QVector<GeoDataCoordinates>::ConstIterator end () const; 82 83}; 84// GeoDataLineString 85 86}; 87// Marble 88