/usr/include/marble/GeoDataPoint.h is in libmarble-dev 4:17.12.3-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | //
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2006-2007 Torsten Rahn <tackat@kde.org>
// Copyright 2007 Inge Wallin <ingwa@kde.org>
// Copyright 2008 Patrick Spendrin <ps_ml@gmx.de>
//
#ifndef MARBLE_GEODATAPOINT_H
#define MARBLE_GEODATAPOINT_H
#include <QMetaType>
#include <QVector>
#include <cmath>
#include "geodata_export.h"
#include "GeoDataGeometry.h"
#include "GeoDataCoordinates.h"
namespace Marble
{
class GeoDataPointPrivate;
/**
* @short A Geometry object representing a 3d point
*
* GeoDataPoint is the GeoDataGeometry class representing a single three
* dimensional point. It reflects the Point tag of KML spec and can be contained
* in objects holding GeoDataGeometry objects.
* Nevertheless GeoDataPoint shouldn't be used if you just want to store
* 3d coordinates of a point that doesn't need to be inherited from GeoDataGeometry
* In that case use GeoDataCoordinates instead which has nearly the same features
* and is much more light weight.
* Please consider this especially if you expect to have a high
* amount of points e.g. for line strings, linear rings and polygons.
* @see GeoDataCoordinates
* @see GeoDataGeometry
*/
class GEODATA_EXPORT GeoDataPoint : public GeoDataGeometry
{
public:
typedef GeoDataCoordinates::Notation Notation;
typedef GeoDataCoordinates::Unit Unit;
GeoDataPoint( const GeoDataPoint& other );
explicit GeoDataPoint( const GeoDataCoordinates& other );
GeoDataPoint();
/**
* @brief create a geopoint from longitude and latitude
* @param _lon longitude
* @param _lat latitude
* @param alt altitude (default: 0)
* @param _unit units that lon and lat get measured in
* (default for Radian: north pole at pi/2, southpole at -pi/2)
*/
GeoDataPoint( qreal lon, qreal lat, qreal alt = 0,
GeoDataPoint::Unit _unit = GeoDataCoordinates::Radian );
~GeoDataPoint() override;
EnumGeometryId geometryId() const override;
GeoDataGeometry *copy() const override;
bool operator==( const GeoDataPoint &other ) const;
bool operator!=( const GeoDataPoint &other ) const;
void setCoordinates( const GeoDataCoordinates &coordinates );
const GeoDataCoordinates& coordinates() const;
/// Provides type information for downcasting a GeoData
const char* nodeType() const override;
// Type definitions
typedef QVector<GeoDataPoint> Vector;
// Serialize the Placemark to @p stream
void pack( QDataStream& stream ) const override;
// Unserialize the Placemark from @p stream
void unpack( QDataStream& stream ) override;
virtual void detach();
private:
Q_DECLARE_PRIVATE(GeoDataPoint)
};
}
Q_DECLARE_METATYPE( Marble::GeoDataPoint )
#endif
|