public double dot(Vec3 v) { return(x * v.x + y * v.y + z * v.z); }
public Vec3 subtract(Vec3 v) { // doesn't modify return(new Vec3(this.x - v.x, this.y - v.y, this.z - v.z)); }
public void add_update(Vec3 v) { // doesn't modify the calling vector x += v.x; y += v.y; z += v.z; }
public Vec3 add(Vec3 v) { // doesn't modify the calling vector return(new Vec3(x + v.x, y + v.y, z + v.z)); }
public Vec3(Vec3 copy) { x = copy.x; y = copy.y; z = copy.z; }
public Vec3 plane_normal(Vec3 C, Vec3 P) { return(C.subtract(P)); }