24class Q_POSITIONING_EXPORT QGeoPolygonPrivate :
public QGeoPathPrivate
28 QGeoPolygonPrivate(
const QList<QGeoCoordinate> &path);
29 ~QGeoPolygonPrivate();
32 virtual QGeoShapePrivate *clone()
const override;
33 virtual bool isValid()
const override;
34 virtual bool contains(
const QGeoCoordinate &coordinate)
const override;
35 virtual void translate(
double degreesLatitude,
double degreesLongitude) override;
36 virtual bool operator==(
const QGeoShapePrivate &other)
const override;
37 size_t hash(size_t seed)
const override;
40 virtual void markDirty() override;
43 qsizetype holesCount()
const;
44 bool polygonContains(
const QGeoCoordinate &coordinate)
const;
45 const QList<QGeoCoordinate> holePath(qsizetype index)
const;
47 virtual void addHole(
const QList<QGeoCoordinate> &holePath);
48 virtual void removeHole(qsizetype index);
49 virtual void updateClipperPath();
52 bool m_clipperDirty =
true;
53 QList<QList<QGeoCoordinate>> m_holesList;
54 QClipperUtils m_clipperWrapper;
60 QGeoPolygonPrivateEager();
61 QGeoPolygonPrivateEager(
const QList<QGeoCoordinate> &path);
62 ~QGeoPolygonPrivateEager();
65 virtual QGeoShapePrivate *clone()
const override;
66 virtual void translate(
double degreesLatitude,
double degreesLongitude) override;
69 virtual void markDirty() override;
70 virtual void addCoordinate(
const QGeoCoordinate &coordinate) override;
71 virtual void computeBoundingBox() override;
76 void updateBoundingBox();
79 QList<
double> m_deltaXs;
static void translatePoly(QList< QGeoCoordinate > &m_path, QList< QList< QGeoCoordinate > > &m_holesList, QGeoRectangle &m_bbox, double degreesLatitude, double degreesLongitude, double m_maxLati, double m_minLati)