Did some minor Vector optimization.

Dieser Commit ist enthalten in:
sk89q 2011-01-08 10:59:06 -08:00
Ursprung 2f71a32f64
Commit da4480ab49
2 geänderte Dateien mit 14 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -1579,6 +1579,7 @@ public class EditSession {
public int simulateSnow(Vector pos, int radius) public int simulateSnow(Vector pos, int radius)
throws MaxChangedBlocksException { throws MaxChangedBlocksException {
int affected = 0; int affected = 0;
int radiusSq = (int)Math.pow(radius, 2);
int ox = pos.getBlockX(); int ox = pos.getBlockX();
int oy = pos.getBlockY(); int oy = pos.getBlockY();
@ -1589,7 +1590,7 @@ public class EditSession {
for (int x = ox - radius; x <= ox + radius; x++) { for (int x = ox - radius; x <= ox + radius; x++) {
for (int z = oz - radius; z <= oz + radius; z++) { for (int z = oz - radius; z <= oz + radius; z++) {
if ((new Vector(x, oy, z)).distance(pos) > radius) { if ((new Vector(x, oy, z)).distanceSq(pos) > radiusSq) {
continue; continue;
} }

Datei anzeigen

@ -446,6 +446,18 @@ public class Vector {
Math.pow(pt.z - z, 2)); Math.pow(pt.z - z, 2));
} }
/**
* Get the distance away from a point, squared.
*
* @param pt
* @return distance
*/
public double distanceSq(Vector pt) {
return Math.pow(pt.x - x, 2) +
Math.pow(pt.y - y, 2) +
Math.pow(pt.z - z, 2);
}
/** /**
* Checks to see if a vector is contained with another. * Checks to see if a vector is contained with another.
* *