Merge remote-tracking branch 'origin/master' into feature/mapping

This commit is contained in:
sk89q
2014-07-10 22:33:25 -07:00
5 changed files with 34 additions and 18 deletions

View File

@ -41,6 +41,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.EllipsoidRegionSelector implements RegionSelector, CUIRegion {
protected EllipsoidRegion region;
protected boolean started = false;
/**
* Create a new selector.
@ -113,11 +114,17 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso
region.setCenter(pos.toBlockVector());
region.setRadius(new Vector());
started = true;
return true;
}
@Override
public boolean selectSecondary(Vector pos) {
if (!started) {
return false;
}
final Vector diff = pos.subtract(region.getCenter());
final Vector minRadius = Vector.getMaximum(diff, diff.multiply(-1.0));
region.extendRadius(minRadius);
@ -153,7 +160,7 @@ public class EllipsoidRegionSelector extends com.sk89q.worldedit.regions.Ellipso
@Override
public boolean isDefined() {
return region.getRadius().lengthSq() > 0;
return started && region.getRadius().lengthSq() > 0;
}
@Override

View File

@ -80,6 +80,10 @@ public class SphereRegionSelector extends EllipsoidRegionSelector {
@Override
public boolean selectSecondary(Vector pos) {
if (!started) {
return false;
}
final double radiusScalar = Math.ceil(pos.distance(region.getCenter()));
region.setRadius(new Vector(radiusScalar, radiusScalar, radiusScalar));