1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-28 05:34:47 +01:00

Code cleanup

This commit is contained in:
Martin Tůma 2023-04-25 00:02:50 +02:00
parent 4a0b7ec83e
commit 1eaaf719fd
2 changed files with 19 additions and 19 deletions

View File

@ -41,11 +41,9 @@ static double distance(const Coordinates &c1, const Coordinates &c2)
return hypot(c1.lon() - c2.lon(), c1.lat() - c2.lat()); return hypot(c1.lon() - c2.lon(), c1.lat() - c2.lat());
} }
static bool isClosed(const Polygon &poly) static bool isClosed(const QVector<Coordinates> &poly)
{ {
if (poly.isEmpty() || poly.first().isEmpty()) return (distance(poly.first(), poly.last()) < 0.000000001);
return false;
return (distance(poly.first().first(), poly.first().last()) < 0.000000001);
} }
static bool readSingleDelta(SubFile &subfile, const Coordinates &c, static bool readSingleDelta(SubFile &subfile, const Coordinates &c,
@ -622,20 +620,20 @@ bool MapData::readPaths(const VectorTile *tile, int zoom, QList<Path> *list)
return false; return false;
} }
if (flags & 0x08) { if (flags & 0x08) {
if (!subfile.readVUInt32(blocks)) if (!subfile.readVUInt32(blocks) || !blocks)
return false; return false;
} else } else
blocks = 1; blocks = 1;
Q_ASSERT(blocks);
for (unsigned j = 0; j < blocks; j++) { for (unsigned j = 0; j < blocks; j++) {
if (!readPolygonPath(subfile, tile->pos, flags & 0x04, p.poly)) if (!readPolygonPath(subfile, tile->pos, flags & 0x04, p.poly))
return false; return false;
} }
p.closed = isClosed(p.poly); const QVector<Coordinates> &outline = p.poly.first();
p.closed = isClosed(outline);
if (flags & 0x10) if (flags & 0x10)
p.labelPos = Coordinates(p.poly.first().first().lon() + MD(lon), p.labelPos = Coordinates(outline.first().lon() + MD(lon),
p.poly.first().first().lat() + MD(lat)); outline.first().lat() + MD(lat));
list->append(p); list->append(p);
} }

View File

@ -62,13 +62,12 @@ private:
class RenderInstruction class RenderInstruction
{ {
public: public:
RenderInstruction() : _pathRender(0), _circleRender(0), _path(0), RenderInstruction() : _render(0), _path(0), _point(0) {}
_point(0) {}
RenderInstruction(const Style::PathRender *render, PainterPath *path) RenderInstruction(const Style::PathRender *render, PainterPath *path)
: _pathRender(render), _circleRender(0), _path(path), _point(0) {} : _render(render), _path(path), _point(0) {}
RenderInstruction(const Style::CircleRender *render, RenderInstruction(const Style::CircleRender *render,
const MapData::Point *point) : _pathRender(0), _circleRender(render), const MapData::Point *point) : _render(render), _path(0),
_path(0), _point(point) {} _point(point) {}
bool operator<(const RenderInstruction &other) const bool operator<(const RenderInstruction &other) const
{ {
@ -78,8 +77,10 @@ private:
return (layer() < other.layer()); return (layer() < other.layer());
} }
const Style::PathRender *pathRender() const {return _pathRender;} const Style::PathRender *pathRender() const
const Style::CircleRender *circleRender() const {return _circleRender;} {return static_cast<const Style::PathRender*>(_render);}
const Style::CircleRender *circleRender() const
{return static_cast<const Style::CircleRender*>(_render);}
PainterPath *path() const {return _path;} PainterPath *path() const {return _path;}
const MapData::Point *point() const {return _point;} const MapData::Point *point() const {return _point;}
@ -87,11 +88,12 @@ private:
int layer() const {return _path ? _path->path->layer : _point->layer;} int layer() const {return _path ? _path->path->layer : _point->layer;}
int zOrder() const int zOrder() const
{ {
return _pathRender ? _pathRender->zOrder() : _circleRender->zOrder(); return _path
? static_cast<const Style::PathRender*>(_render)->zOrder()
: static_cast<const Style::CircleRender*>(_render)->zOrder();
} }
const Style::PathRender *_pathRender; const Style::Render *_render;
const Style::CircleRender *_circleRender;
PainterPath *_path; PainterPath *_path;
const MapData::Point *_point; const MapData::Point *_point;
}; };