void Point::apply_rw(CoordinateSequenceFilter& filter) { if (isEmpty()) return; filter.filter_rw(*coordinates, 0); if (filter.isGeometryChanged()) geometryChanged(); }
void GeometryCollection::apply_rw(CoordinateSequenceFilter& filter) { size_t ngeoms = geometries->size(); if (ngeoms == 0 ) return; for (size_t i = 0; i < ngeoms; ++i) { (*geometries)[i]->apply_rw(filter); if (filter.isDone()) break; } if (filter.isGeometryChanged()) geometryChanged(); }
void LineString::apply_rw(CoordinateSequenceFilter& filter) { size_t npts=points->size(); if (!npts) return; for (size_t i = 0; i<npts; ++i) { filter.filter_rw(*points, i); if (filter.isDone()) break; } if (filter.isGeometryChanged()) geometryChanged(); }
void GeometryCollection::apply_ro(CoordinateSequenceFilter& filter) const { size_t ngeoms = geometries->size(); if (ngeoms == 0 ) return; for (size_t i = 0; i < ngeoms; ++i) { (*geometries)[i]->apply_ro(filter); if (filter.isDone()) break; } assert(!filter.isGeometryChanged()); // read-only filter... //if (filter.isGeometryChanged()) geometryChanged(); }
void Polygon::apply_rw(CoordinateSequenceFilter& filter) { shell->apply_rw(filter); if (! filter.isDone()) { for (size_t i=0, n=holes->size(); i<n; ++i) { (*holes)[i]->apply_rw(filter); if (filter.isDone()) break; } } if (filter.isGeometryChanged()) geometryChanged(); }