21#include "kis_boundary.h"
22#include "kis_boundary_painter.h"
23#include "kis_canvas.h"
24#include "kis_canvas_painter.h"
26TQPixmap KisBoundaryPainter::createPixmap(
const KisBoundary& boundary,
int w,
int h)
28 TQPixmap target(w, h);
29 KisCanvasPainter painter(&target);
31 painter.eraseRect(0, 0, w, h);
33 paint(boundary, painter);
39void KisBoundaryPainter::paint(
const KisBoundary& boundary, KisCanvasPainter& painter)
41 KisBoundary::PointPairListList::const_iterator it = boundary.m_horSegments.constBegin();
42 KisBoundary::PointPairListList::const_iterator end = boundary.m_horSegments.constEnd();
46 KisBoundary::PointPairList::const_iterator lineIt = (*it).constBegin();
47 KisBoundary::PointPairList::const_iterator lineEnd = (*it).constEnd();
48 while (lineIt != lineEnd) {
49 int x1 = (*lineIt).first.floorX();
50 int y = (*lineIt).first.floorY();
51 int x2 = x1 + (*lineIt).second;
53 painter.drawLine(x1, y, x2, y);
54 painter.drawPoint(x2, y);
62 it = boundary.m_vertSegments.constBegin();
63 end = boundary.m_vertSegments.constEnd();
66 KisBoundary::PointPairList::const_iterator lineIt = (*it).constBegin();
67 KisBoundary::PointPairList::const_iterator lineEnd = (*it).constEnd();
68 while (lineIt != lineEnd) {
69 int x = (*lineIt).first.floorX();
70 int y1 = (*lineIt).first.floorY();
71 int y2 = y1 + (*lineIt).second;
73 painter.drawLine(x, y1, x, y2);
74 painter.drawPoint(x, y2);
Generates an 'outline' for a paint device.