LOD fix
This commit is contained in:
@@ -2206,12 +2206,14 @@ void Graphic::calcLOD(int index) {
|
||||
if (!m_LODOptimization) return;
|
||||
GraphicType & t(graphics[index]);
|
||||
t._lod.clear();
|
||||
t._lod.reserve(32);
|
||||
int pcnt = t.polyline.size();
|
||||
// qDebug() << "calcLOD" << index;
|
||||
while (pcnt >= 10) {
|
||||
QPolygonF & pl(t._lod.isEmpty() ? t.polyline : t._lod.back());
|
||||
t._lod.append(QPolygonF());
|
||||
QPolygonF & cl(t._lod.back());
|
||||
if (pl.size() > 4) {
|
||||
cl << pl.front();
|
||||
int qcnt = (pl.size() + 1) / 4;
|
||||
pcnt = qcnt * 2 + 2;
|
||||
@@ -2243,6 +2245,8 @@ void Graphic::calcLOD(int index) {
|
||||
cl << QPointF(cx - dx, my[1]) << QPointF(cx + dx, my[0]);
|
||||
}
|
||||
cl << pl.back();
|
||||
} else
|
||||
cl = pl;
|
||||
// qDebug() << "lod" << t._lod.size() << "->" << cl.size();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user