QwtPointArray QwtRect::clip(const QwtPointArray &pa) const { if ( contains( pa.boundingRect() ) ) return pa; QwtPointArray cpa(pa.size()); clipEdge((Edge)0, pa, cpa); for ( uint edge = 1; edge < NEdges; edge++ ) { const QwtPointArray rpa = cpa; #if QT_VERSION < 0x040000 cpa.detach(); #endif clipEdge((Edge)edge, rpa, cpa); } return cpa; }
//! Sutherland-Hodgman polygon clipping QwtPolygonF QwtPolygonClipperF::clipPolygon(const QwtPolygonF &pa) const { if ( contains( ::boundingRect(pa) ) ) return pa; QwtPolygonF cpa(pa.size()); clipEdge((Edge)0, pa, cpa); for ( uint edge = 1; edge < NEdges; edge++ ) { const QwtPolygonF rpa = cpa; #if QT_VERSION < 0x040000 cpa.detach(); #endif clipEdge((Edge)edge, rpa, cpa); } return cpa; }