(BlockPos posStart, BlockPos posEnd, int width, int height)
| 18 | private static final int AXIS_Z = 2; |
| 19 | |
| 20 | public Iterator3d(BlockPos posStart, BlockPos posEnd, int width, int height) |
| 21 | { |
| 22 | boolean flag = posStart.getX() > posEnd.getX(); |
| 23 | boolean flag1 = posStart.getY() > posEnd.getY(); |
| 24 | boolean flag2 = posStart.getZ() > posEnd.getZ(); |
| 25 | posStart = this.reverseCoord(posStart, flag, flag1, flag2); |
| 26 | posEnd = this.reverseCoord(posEnd, flag, flag1, flag2); |
| 27 | this.kX = flag ? -1 : 1; |
| 28 | this.kY = flag1 ? -1 : 1; |
| 29 | this.kZ = flag2 ? -1 : 1; |
| 30 | Vec3 vec3 = new Vec3((double)(posEnd.getX() - posStart.getX()), (double)(posEnd.getY() - posStart.getY()), (double)(posEnd.getZ() - posStart.getZ())); |
| 31 | Vec3 vec31 = vec3.normalize(); |
| 32 | Vec3 vec32 = new Vec3(1.0D, 0.0D, 0.0D); |
| 33 | double d0 = vec31.dotProduct(vec32); |
| 34 | double d1 = Math.abs(d0); |
| 35 | Vec3 vec33 = new Vec3(0.0D, 1.0D, 0.0D); |
| 36 | double d2 = vec31.dotProduct(vec33); |
| 37 | double d3 = Math.abs(d2); |
| 38 | Vec3 vec34 = new Vec3(0.0D, 0.0D, 1.0D); |
| 39 | double d4 = vec31.dotProduct(vec34); |
| 40 | double d5 = Math.abs(d4); |
| 41 | |
| 42 | if (d5 >= d3 && d5 >= d1) |
| 43 | { |
| 44 | this.axis = 2; |
| 45 | BlockPos blockpos3 = new BlockPos(posStart.getZ(), posStart.getY() - width, posStart.getX() - height); |
| 46 | BlockPos blockpos5 = new BlockPos(posEnd.getZ(), posStart.getY() + width + 1, posStart.getX() + height + 1); |
| 47 | int k = posEnd.getZ() - posStart.getZ(); |
| 48 | double d9 = (double)(posEnd.getY() - posStart.getY()) / (1.0D * (double)k); |
| 49 | double d11 = (double)(posEnd.getX() - posStart.getX()) / (1.0D * (double)k); |
| 50 | this.iteratorAxis = new IteratorAxis(blockpos3, blockpos5, d9, d11); |
| 51 | } |
| 52 | else if (d3 >= d1 && d3 >= d5) |
| 53 | { |
| 54 | this.axis = 1; |
| 55 | BlockPos blockpos2 = new BlockPos(posStart.getY(), posStart.getX() - width, posStart.getZ() - height); |
| 56 | BlockPos blockpos4 = new BlockPos(posEnd.getY(), posStart.getX() + width + 1, posStart.getZ() + height + 1); |
| 57 | int j = posEnd.getY() - posStart.getY(); |
| 58 | double d8 = (double)(posEnd.getX() - posStart.getX()) / (1.0D * (double)j); |
| 59 | double d10 = (double)(posEnd.getZ() - posStart.getZ()) / (1.0D * (double)j); |
| 60 | this.iteratorAxis = new IteratorAxis(blockpos2, blockpos4, d8, d10); |
| 61 | } |
| 62 | else |
| 63 | { |
| 64 | this.axis = 0; |
| 65 | BlockPos blockpos = new BlockPos(posStart.getX(), posStart.getY() - width, posStart.getZ() - height); |
| 66 | BlockPos blockpos1 = new BlockPos(posEnd.getX(), posStart.getY() + width + 1, posStart.getZ() + height + 1); |
| 67 | int i = posEnd.getX() - posStart.getX(); |
| 68 | double d6 = (double)(posEnd.getY() - posStart.getY()) / (1.0D * (double)i); |
| 69 | double d7 = (double)(posEnd.getZ() - posStart.getZ()) / (1.0D * (double)i); |
| 70 | this.iteratorAxis = new IteratorAxis(blockpos, blockpos1, d6, d7); |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | private BlockPos reverseCoord(BlockPos pos, boolean revX, boolean revY, boolean revZ) |
| 75 | { |
nothing calls this directly
no test coverage detected