void QPainter::drawLine(const QPoint & p1, const QPoint & p2);void QPainter::drawLine(const QPointF & p1, const QPointF & p2);[/quote]
template <class Point>void QPainter::drawLine(const Point & p1, const Point & p2);void QPainter::drawLine(const Point & p1, const Point & p2);
C++ (Qt)if (std::is_floating_point<pt.x()>::value) ...или аккуратнееif (std::is_floating_point<Point::value_type>::value) ...или даже без С++ 11if (typeid(Point::value_type) == typeid(float)..
C++ (Qt)typedef Point<int, 2> QPoint; typedef Point<qreal, 2> QPointF; void QPainter::drawLine(const QPoint & p1, const QPoint & p2);void QPainter::drawLine(const QPointF & p1, const QPointF & p2);
C++ (Qt)vec.x = vec.x * some_constant / vec.z;vec.y = vec.y * some_constant / vec.z;
C++ (Qt)inline void QPainter::drawLine(const QPoint &p1, const QPoint &p2){ QLine l(p1, p2); drawLines(&l, 1);} void QPainter::drawLines(const QLine *lines, int lineCount){ Q_D(QPainter); if (!d->engine || lineCount < 1) return; if (d->extended) { d->extended->drawLines(lines, lineCount);.. void QRasterPaintEngine::drawLines(const QLine *lines, int lineCount){ Q_D(QRasterPaintEngine); QRasterPaintEngineState *s = state(); ensurePen(); if (!s->penData.blend) return; if (s->flags.fast_pen) { QCosmeticStroker stroker(s, d->deviceRect, d->deviceRectUnclipped); stroker.setLegacyRoundingEnabled(s->flags.legacy_rounding); for (int i=0; i<lineCount; ++i) { const QLine &l = lines[i]; stroker.drawLine(l.p1(), l.p2());.. void QCosmeticStroker::drawLine(const QPointF &p1, const QPointF &p2){..