MCPcopy Create free account
hub / github.com/PDAL/PDAL / exteriorRing

Method exteriorRing

pdal/Polygon.cpp:369–391  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

367
368
369Polygon::Ring Polygon::exteriorRing() const
370{
371 Ring r;
372
373 OGRwkbGeometryType t = m_geom->getGeometryType();
374 if (t != wkbPolygon && t != wkbPolygon25D)
375 throw pdal_error("Request for exterior ring on non-polygon.");
376
377 // Not until GDAL 2.3
378 /**
379 OGRLinearRing *er = m_geom->toPolygon()->getExteriorRing();
380
381 // For some reason there's no operator -> on an iterator.
382 for (auto it = er->begin(); it != er->end(); ++it)
383 r.push_back({(*it).getX(), (*it).getY()});
384 **/
385 OGRLinearRing *er =
386 static_cast<OGRPolygon *>(m_geom.get())->getExteriorRing();
387 for (int i = 0; i < er->getNumPoints(); ++i)
388 r.push_back({er->getX(i), er->getY(i)});
389
390 return r;
391}
392
393
394std::vector<Polygon::Ring> Polygon::interiorRings() const

Callers 2

transformMethod · 0.80
initGridsMethod · 0.80

Calls 2

getMethod · 0.45
getNumPointsMethod · 0.45

Tested by

no test coverage detected