/** * Retrieves the last planar region of this list and removes it from this list. * Special case: returns null when the list is empty. */ public PlanarRegion pollLastPlanarRegion() { if (isEmpty()) return null; else return pollPlanarRegion(getNumberOfPlanarRegions() - 1); }
/** * Retrieves the last planar region of this list and removes it from this list. Special case: * returns null when the list is empty. */ public PlanarRegion pollLastPlanarRegion() { if (isEmpty()) return null; else return pollPlanarRegion(getNumberOfPlanarRegions() - 1); }
/** * Filter all the polygons and regions such that only polygon and regions with data remain. * Simplifies the algorithm for updating the YoVariables in {@link #processPlanarRegionsListQueue()}. * @param planarRegionsList the list of planar regions with non-empty regions and non-empty polygons. * @return */ private PlanarRegionsList filterEmptyRegionsAndEmptyPolygons(PlanarRegionsList planarRegionsList) { for (int regionIndex = planarRegionsList.getNumberOfPlanarRegions() - 1; regionIndex >= 0; regionIndex--) { PlanarRegion planarRegion = planarRegionsList.getPlanarRegion(regionIndex); for (int polygonIndex = planarRegion.getNumberOfConvexPolygons() - 1; polygonIndex >= 0; polygonIndex--) { if (planarRegion.getConvexPolygon(polygonIndex).isEmpty()) planarRegion.pollConvexPolygon(polygonIndex); } if (planarRegion.isEmpty()) planarRegionsList.pollPlanarRegion(regionIndex); } if (planarRegionsList.isEmpty()) return null; return planarRegionsList; }
/** * Filter all the polygons and regions such that only polygon and regions with data remain. * Simplifies the algorithm for updating the YoVariables in {@link #processPlanarRegionsListQueue()}. * @param planarRegionsList the list of planar regions with non-empty regions and non-empty polygons. * @return */ private PlanarRegionsList filterEmptyRegionsAndEmptyPolygons(PlanarRegionsList planarRegionsList) { for (int regionIndex = planarRegionsList.getNumberOfPlanarRegions() - 1; regionIndex >= 0; regionIndex--) { PlanarRegion planarRegion = planarRegionsList.getPlanarRegion(regionIndex); for (int polygonIndex = planarRegion.getNumberOfConvexPolygons() - 1; polygonIndex >= 0; polygonIndex--) { if (planarRegion.getConvexPolygon(polygonIndex).isEmpty()) planarRegion.pollConvexPolygon(polygonIndex); } if (planarRegion.isEmpty()) planarRegionsList.pollPlanarRegion(regionIndex); } if (planarRegionsList.isEmpty()) return null; return planarRegionsList; }