public Polygonal2DRegionSelector(RegionSelector oldSelector, int maxPoints) { this(oldSelector.getIncompleteRegion().getWorld(), maxPoints); if (oldSelector instanceof Polygonal2DRegionSelector) { final Polygonal2DRegionSelector polygonal2DRegionSelector = (Polygonal2DRegionSelector) oldSelector; pos1 = polygonal2DRegionSelector.pos1; region = new Polygonal2DRegion(polygonal2DRegionSelector.region); } else { final Region oldRegion; try { oldRegion = oldSelector.getRegion(); } catch (IncompleteRegionException e) { return; } final int minY = oldRegion.getMinimumPoint().getBlockY(); final int maxY = oldRegion.getMaximumPoint().getBlockY(); List<BlockVector2D> points = oldRegion.polygonize(maxPoints); pos1 = points.get(0).toVector(minY).toBlockVector(); region = new Polygonal2DRegion(oldRegion.getWorld(), points, minY, maxY); } }
public CuboidRegionSelector(RegionSelector oldSelector) { this(oldSelector.getIncompleteRegion().getWorld()); if (oldSelector instanceof CuboidRegionSelector) { final CuboidRegionSelector cuboidRegionSelector = (CuboidRegionSelector) oldSelector; pos1 = cuboidRegionSelector.pos1; pos2 = cuboidRegionSelector.pos2; } else { final Region oldRegion; try { oldRegion = oldSelector.getRegion(); } catch (IncompleteRegionException e) { return; } pos1 = oldRegion.getMinimumPoint().toBlockVector(); pos2 = oldRegion.getMaximumPoint().toBlockVector(); } region.setPos1(pos1); region.setPos2(pos2); }