void test_tessellate_polygon_rect(QVector<XTrapezoid> *traps, const QPointF *points, int nPoints, bool winding) { // 5 points per rect Q_ASSERT(nPoints % 5 == 0); TestTessellator t; t.traps = traps; t.setWinding(winding); for (int i = 0; i < nPoints / 5; ++i) { QPointF rectA = points[5*i]; QPointF rectB = points[5*i+1]; QPointF rectC = points[5*i+2]; QPointF rectD = points[5*i+3]; QPointF a = (rectA + rectD) * 0.5; QPointF b = (rectB + rectC) * 0.5; QPointF delta = rectA - rectD; qreal width = sqrt(delta.x() * delta.x() + delta.y() * delta.y()); t.tessellateRect(a, b, width); } }
void test_tessellate_polygon_rect(QVector<XTrapezoid> *traps, const QPointF *points, int nPoints, bool winding) { // 5 points per rect if (nPoints % 5 != 0) qWarning() << Q_FUNC_INFO << "multiples of 5 points expected"; TestTessellator t; t.traps = traps; t.setWinding(winding); for (int i = 0; i < nPoints / 5; ++i) { QPointF rectA = points[5*i]; QPointF rectB = points[5*i+1]; QPointF rectC = points[5*i+2]; QPointF rectD = points[5*i+3]; QPointF a = (rectA + rectD) * 0.5; QPointF b = (rectB + rectC) * 0.5; QPointF delta = rectA - rectD; qreal width = sqrt(delta.x() * delta.x() + delta.y() * delta.y()); t.tessellateRect(a, b, width); } }
void test_tessellate_polygon_convex(QVector<XTrapezoid> *traps, const QPointF *points, int nPoints, bool winding) { TestTessellator t; t.traps = traps; t.setWinding(winding); t.tessellateConvex(points, nPoints); }