public float Dot(Vec3 right) { return this.x * right.x + this.y * right.y + this.z * right.z; }
public static Vec3 Negative(Vec3 input) { return new Vec3(-input.x,-input.y,-input.z); }
public Vec3 Cross(Vec3 that) { return new Vec3(this.y * that.z - this.z * that.y, this.z * that.x - this.x * that.z, this.x * that.y - this.y * that.x); }
public Vec3(Vec3 init) : this(init.x, init.y, init.z) { }