MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / evaluateFrame

Method evaluateFrame

src/main/java/trace/util/TCB3.java:111–131  ·  view source on GitHub ↗
(Node left, Node right, double s, Vec3 storage)

Source from the content-addressed store, hash-verified

109 public List<Node> n = new ArrayList<>();
110
111 public Vec3 evaluateFrame(Node left, Node right, double s, Vec3 storage) {
112 if (storage == null)
113 storage = new Vec3();
114 if (left == null && right == null)
115 throw new NullPointerException();
116 if (left == null)
117 return storage.set(right.v);
118 if (right == null)
119 return storage.set(left.v);
120 double h0 = 2 * s * s * s - 3 * s * s + 1;
121 double h1 = -2 * s * s * s + 3 * s * s;
122 double h2 = s * s * s - 2 * s * s + s;
123 double h3 = s * s * s - s * s;
124
125 storage.scale(0).fma(left.v, h0).fma(right.v, h1).fma(left.tO, h2).fma(right.tI, h3);
126
127 return storage;
128 // double v = left.v * h0 + right.v * h1 + left.tO * h2 +
129 // right.tI * h3;
130 // return v;
131 }
132
133 Comparator<Object> finder = new Comparator<Object>() {
134 @Override

Callers 1

evaluateMethod · 0.95

Calls 3

setMethod · 0.65
fmaMethod · 0.45
scaleMethod · 0.45

Tested by

no test coverage detected