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);
    }
  }
Esempio n. 2
0
  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);
  }