QgsAbstractGeometryV2* QgsGeometryImport::fromMultiPolygon( const QgsMultiPolygon& multipoly ) { QgsMultiPolygonV2* mp = new QgsMultiPolygonV2(); for ( int i = 0; i < multipoly.size(); ++i ) { mp->addGeometry( fromPolygon( multipoly.at( i ) ) ); } return mp; }
std::unique_ptr< QgsMultiPolygonV2 > QgsGeometryFactory::fromMultiPolygon( const QgsMultiPolygon &multipoly ) { std::unique_ptr< QgsMultiPolygonV2 > mp( new QgsMultiPolygonV2() ); for ( int i = 0; i < multipoly.size(); ++i ) { mp->addGeometry( fromPolygon( multipoly.at( i ) ).release() ); } return mp; }
QgsAbstractGeometryV2* QgsGeometryImport::fromRect( const QgsRectangle& rect ) { QgsPolyline ring; ring.append( QgsPoint( rect.xMinimum(), rect.yMinimum() ) ); ring.append( QgsPoint( rect.xMaximum(), rect.yMinimum() ) ); ring.append( QgsPoint( rect.xMaximum(), rect.yMaximum() ) ); ring.append( QgsPoint( rect.xMinimum(), rect.yMaximum() ) ); ring.append( QgsPoint( rect.xMinimum(), rect.yMinimum() ) ); QgsPolygon polygon; polygon.append( ring ); return fromPolygon( polygon ); }