public final double[] toArray() { final int size = size(); final double[] array = new double[size]; for (int i = 0; i < size; i++) { array[i] = get(i); } return array; }
public final double[] getNormalizedArray() { final int leng = m_jso.size(); if ((leng % 2) == 1) { double[] dashes = new double[leng * 2]; for (int i = 0; i < leng; i++) { dashes[i] = dashes[i + leng] = m_jso.get(i); } return dashes; } return m_jso.toArray(); }
public static final Point2DArray fromNFastDoubleArrayJSO(final NFastDoubleArrayJSO array) { final Point2DArray points = new Point2DArray(); if (null == array) { return points; } final int size = array.size(); if (0 == size) { return points; } if ((size % 2) == 1) { throw new IllegalArgumentException("size of array is not a multiple of 2"); } for (int i = 0; i < size; i += 2) { points.push(array.get(i), array.get(i + 1)); } return points; }
private static final double getDerivative(final int derivative, final double t, final NFastDoubleArrayJSO values) { final int n = values.size() - 1; if (n == 0) { return 0; } if (derivative == 0) { double value = 0; for (int k = 0; k <= n; k++) { value += binomials(n, k) * Math.pow(1 - t, n - k) * Math.pow(t, k) * values.get(k); } return value; } else { final NFastDoubleArrayJSO lowers = NFastDoubleArrayJSO.make(); for (int k = 0; k < n; k++) { lowers.push(n * (values.get(k + 1) - values.get(k))); } return getDerivative(derivative - 1, t, lowers); } }
@Override public boolean equals(Object other) { if ((other == null) || (false == (other instanceof DashArray))) { return false; } if (this == other) { return true; } DashArray that = ((DashArray) other); final int leng = size(); if (that.size() != leng) { return false; } NFastDoubleArrayJSO o_jso = that.getJSO(); for (int i = 0; i < leng; i++) { if (o_jso.get(i) != m_jso.get(i)) { return false; } } return true; }
m_box.add(oldx = p.get(0), oldy = p.get(1)); break; case PathPartEntryJSO.MOVETO_ABSOLUTE: m_box.add(oldx = p.get(0), oldy = p.get(1)); break; case PathPartEntryJSO.BEZIER_CURVETO_ABSOLUTE: m_box.add(Curves.getBoundingBox(new Point2DArray(new Point2D(oldx, oldy), new Point2D(p.get(0), p.get(1)), new Point2D(p.get(2), p.get(3)), new Point2D(oldx = p.get(4), oldy = p.get(5))))); break; case PathPartEntryJSO.QUADRATIC_CURVETO_ABSOLUTE: m_box.add(Curves.getBoundingBox(new Point2DArray(new Point2D(oldx, oldy), new Point2D(p.get(0), p.get(1)), new Point2D(oldx = p.get(2), oldy = p.get(3))))); break; case PathPartEntryJSO.ARCTO_ABSOLUTE: double cx = p.get(0); double cy = p.get(1); double rx = p.get(2); double ry = p.get(3); m_box.addX(cx + rx); m_box.addX(cx - rx); m_box.addY(cy + ry); m_box.addY(cy - ry); oldx = p.get(8); oldy = p.get(9); break;
private static final double getValue(final double t, final NFastDoubleArrayJSO values) { final int n = values.size() - 1; double value = 0; for (int k = 0; k <= n; k++) { double v = values.get(k); if (v == 0) { continue; } value += binomials(n, k) * polyterm(n, k, t) * v; } return value; } }
final double t = inflections.get(i);
cpx = prev.getPoints().get(0) + dx; cpy = prev.getPoints().get(1) + dy; ctx = cpx + (cpx - prev.getPoints().get(2)); cty = cpy + (cpy - prev.getPoints().get(3)); ctx = cpx + (cpx - prev.getPoints().get(2)); cty = cpy + (cpy - prev.getPoints().get(3)); ctx = cpx + (cpx - prev.getPoints().get(0)); cty = cpy + (cpy - prev.getPoints().get(1)); ctx = cpx + (cpx - prev.getPoints().get(0)); cty = cpy + (cpy - prev.getPoints().get(1));