7#ifndef MARBLE_GEOGRAPHICSITEM_H 
    8#define MARBLE_GEOGRAPHICSITEM_H 
   11#include "GeoDataStyle.h" 
   12#include "marble_export.h" 
   22class GeoGraphicsItemPrivate;
 
   31    bool operator==(
const RenderContext &other) 
const;
 
   32    bool operator!=(
const RenderContext &other) 
const;
 
   34    explicit RenderContext(
int tileLevel = -1);
 
   35    int tileLevel() 
const;
 
   41class MARBLE_EXPORT GeoGraphicsItem
 
   44    explicit GeoGraphicsItem(
const GeoDataFeature *feature);
 
   45    virtual ~GeoGraphicsItem();
 
   47    enum GeoGraphicsItemFlag {
 
   54    Q_DECLARE_FLAGS(GeoGraphicsItemFlags, GeoGraphicsItemFlag)
 
   58    void setVisible(
bool visible);
 
   64    GeoGraphicsItemFlags flags() 
const;
 
   71    void setFlag(GeoGraphicsItemFlag flag, 
bool enabled = 
true);
 
   77    void setFlags(GeoGraphicsItemFlags flags);
 
   82    int minZoomLevel() 
const;
 
   87    void setMinZoomLevel(
int zoomLevel);
 
   92    const GeoDataFeature *feature() 
const;
 
   97    virtual const GeoDataLatLonAltBox &latLonAltBox() 
const = 0;
 
  102    GeoDataStyle::ConstPtr style() 
const;
 
  107    void setStyleBuilder(
const StyleBuilder *styleBuilder);
 
  117    void setHighlightStyle(
const GeoDataStyle::ConstPtr &highlightStyle);
 
  122    qreal zValue() 
const;
 
  127    void setZValue(qreal z);
 
  129    static bool zValueLessThan(GeoGraphicsItem *one, GeoGraphicsItem *two);
 
  130    static bool styleLessThan(GeoGraphicsItem *one, GeoGraphicsItem *two);
 
  131    static bool zValueAndStyleLessThan(GeoGraphicsItem *one, GeoGraphicsItem *two);
 
  139    virtual void paint(GeoPainter *painter, 
const ViewportParams *viewport, 
const QString &layer, 
int tileZoomLevel) = 0;
 
  141    void setHighlighted(
bool highlight);
 
  143    bool isHighlighted() 
const;
 
  145    QStringList paintLayers() 
const;
 
  147    void setPaintLayers(
const QStringList &paintLayers);
 
  149    void setRenderContext(
const RenderContext &renderContext);
 
  157    virtual bool contains(
const QPoint &screenPosition, 
const ViewportParams *viewport) 
const;
 
  159    void setRelations(
const QSet<const GeoDataRelation *> &relations);
 
  162    virtual void handleRelationUpdate(
const QList<const GeoDataRelation *> &relations);
 
  164    GeoGraphicsItemPrivate *
const d;
 
  168Q_DECLARE_OPERATORS_FOR_FLAGS(Marble::GeoGraphicsItem::GeoGraphicsItemFlags)
 
A 3d point representation.
 
A base class for all geodata features.
 
A class that defines a 3D bounding box for geographic data.
 
A painter that allows to draw geometric primitives on the map.
 
A public class that controls what is visible in the viewport of a Marble map.
 
KCRASH_EXPORT void setFlags(KCrash::CrashFlags flags)
 
Binds a QML item to a specific geodetic location in screen coordinates.