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);
    }
  }
Ejemplo n.º 2
0
 public BorderIterator(Region region, int xMin, int yMin, int zMin, int xMax, int yMax, int zMax) {
   this.region = region;
   this.loc = new Location(region.getWorld(), xMin, yMin, zMin);
   this.x1 = (this.x3 = xMin) - 1;
   this.y1 = this.y3 = yMin;
   this.z1 = this.z3 = zMin;
   this.x2 = xMax;
   this.y2 = yMax;
   this.z2 = zMax;
 }