Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 3.18 KB | None | 0 0
  1. package net.minecraft.server;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. public class Volume2D {
  6.     private static ArrayList<Volume2D> volumes = new ArrayList<Volume2D>();
  7.     private static int counter = 0;
  8.     public double X;
  9.     public double Y;
  10.     public double Z;
  11.  
  12.     public static Volume2D create(double x, double y, double z) {
  13.         return new Volume2D(x, y, z);
  14.     }
  15.  
  16.     public static void reset() {
  17.         counter = 0;
  18.     }
  19.  
  20.     public static Volume2D get(double x, double y, double z) {
  21.         if (counter >= volumes.size())
  22.             volumes.add(create(0.0D, 0.0D, 0.0D));
  23.         return (volumes.get(counter++)).reset(x, y, z);
  24.     }
  25.  
  26.     private Volume2D(double x, double y, double z) {
  27.         if (x == -0.0D) x = 0.0D;
  28.         if (y == -0.0D) y = 0.0D;
  29.         if (z == -0.0D) z = 0.0D;
  30.         X = x; Y = y; Z = z;
  31.     }
  32.  
  33.     private Volume2D reset(double z, double y, double x) {
  34.         X = z; Y = y; Z = x;
  35.         return this;
  36.     }
  37.  
  38.     public Volume2D b() {
  39.         double d1 = MathFuncs.sqrt(X * X + Y * Y + Z * Z);
  40.         if (d1 < 0.0001D) return get(0.0D, 0.0D, 0.0D);
  41.         return get(X / d1, Y / d1, Z / d1);
  42.     }
  43.  
  44.     public Volume2D translate(double x, double y, double z) {
  45.         return get(X + x, Y + y, Z + z);
  46.     }
  47.  
  48.     public double a(Volume2D v) {
  49.         double d1 = v.X - X;
  50.         double d2 = v.Y - Y;
  51.         double d3 = v.Z - Z;
  52.         return MathFuncs.sqrt(d1 * d1 + d2 * d2 + d3 * d3);
  53.     }
  54.  
  55.     public double b(Volume2D v) {
  56.         double d1 = v.X - X;
  57.         double d2 = v.Y - Y;
  58.         double d3 = v.Z - Z;
  59.         return d1 * d1 + d2 * d2 + d3 * d3;
  60.     }
  61.  
  62.     public double d(double x, double y, double z) {
  63.         double d1 = x - X;
  64.         double d2 = y - Y;
  65.         double d3 = z - Z;
  66.         return d1 * d1 + d2 * d2 + d3 * d3;
  67.     }
  68.  
  69.     public double c() {
  70.         return MathFuncs.sqrt(X*X + Y*Y + Z*Z);
  71.     }
  72.  
  73.     public Volume2D a(Volume2D v, double paramDouble) {
  74.         double d1 = v.X - X;
  75.         double d2 = v.Y - Y;
  76.         double d3 = v.Z - Z;
  77.  
  78.         if (d1*d1 < 1.000000011686097E-007D) return null;
  79.  
  80.         double d4 = (paramDouble - X) / d1;
  81.         if ((d4 < 0.0D) || (d4 > 1.0D)) return null;
  82.         return get(X + d1*d4, Y + d2*d4, Z + d3*d4);
  83.     }
  84.  
  85.     public Volume2D b(Volume2D v, double paramDouble) {
  86.         double d1 = v.X - X;
  87.         double d2 = v.Y - Y;
  88.         double d3 = v.Z - Z;
  89.  
  90.         if (d2 * d2 < 1.000000011686097E-007D) return null;
  91.  
  92.         double d4 = (paramDouble - this.Y) / d2;
  93.         if ((d4 < 0.0D) || (d4 > 1.0D)) return null;
  94.         return get(this.X + d1 * d4, this.Y + d2 * d4, this.Z + d3 * d4);
  95.     }
  96.  
  97.     public Volume2D c(Volume2D paramba, double paramDouble) {
  98.         double d1 = paramba.X - this.X;
  99.         double d2 = paramba.Y - this.Y;
  100.         double d3 = paramba.Z - this.Z;
  101.  
  102.         if (d3 * d3 < 1.000000011686097E-007D) return null;
  103.  
  104.         double d4 = (paramDouble - this.Z) / d3;
  105.         if ((d4 < 0.0D) || (d4 > 1.0D)) return null;
  106.         return get(this.X + d1 * d4, this.Y + d2 * d4, this.Z + d3 * d4);
  107.     }
  108.  
  109.     public String toString() {
  110.         return String.format("(%f, %f, %f)", X, Y, Z);
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement