package tc.oc.pgm.regions;
import org.bukkit.geometry.Cuboid;
import org.bukkit.util.Vector;
/**
* Region adaptor that applies a translation.
*/
public class TranslatedRegion extends TransformedRegion {
private final @Inspect Vector offset;
public TranslatedRegion(Region region, Vector offset) {
super(region);
this.offset = offset;
}
public static TranslatedRegion translate(Region region, Vector offset) {
return new TranslatedRegion(region, offset);
}
@Override
protected Vector transform(Vector point) {
return new Vector(point).add(this.offset);
}
@Override
protected Vector untransform(Vector point) {
return new Vector(point).subtract(this.offset);
}
@Override
protected Cuboid getTransformedBounds() {
return this.region.getBounds().translate(this.offset);
}
}