MCPcopy Create free account
hub / github.com/DGVPSH/SlackOpen / Iterator3d

Method Iterator3d

src/main/java/net/optifine/shaders/Iterator3d.java:20–72  ·  view source on GitHub ↗
(BlockPos posStart, BlockPos posEnd, int width, int height)

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 7

reverseCoordMethod · 0.95
normalizeMethod · 0.95
dotProductMethod · 0.95
absMethod · 0.80
getXMethod · 0.65
getYMethod · 0.65
getZMethod · 0.65

Tested by

no test coverage detected