@Override public Vector3f div(float a) { return div(a, a, a); }
public Vector3f div(double x, double y, double z) { return div((float) x, (float) y, (float) z); }
public Vector3f div(double a) { return div((float) a); }
public Vector3f div(double a) { return div((float) a); }
@Override public Vector3f div(float a) { return div(a, a, a); }
public Vector3f div(Vector3f v) { return div(v.x, v.y, v.z); }
public Vector3f div(double x, double y, double z) { return div((float) x, (float) y, (float) z); }
public Vector3f div(Vector3f v) { return div(v.x, v.y, v.z); }
private static boolean checkForOverlap(Vector3f p0, Vector3f v0, Vector3f p1, Vector3f v1) { final Vector3f p10 = p1.sub(p0); if (!isZero(p10.cross(v0))) { return false; } float t = getNonNaN(p10.div(v0)); if (t >= 0 && t <= 1) { return true; } t = getNonNaN(p0.sub(p1).div(v1)); return t >= 0 && t <= 1; }
private Triangle[] subdivide() { final Vector3f e0 = v1.sub(v0).div(2); final Vector3f va = v0.add(e0); final Vector3f e1 = v2.sub(v1).div(2); final Vector3f vb = v1.add(e1); final Vector3f e2 = v0.sub(v2).div(2); final Vector3f vc = v2.add(e2); return new Triangle[]{ new Triangle(v0, va, vc), new Triangle(va, v1, vb), new Triangle(vc, vb, v2), new Triangle(va, vb, vc) }; } }