public T DistanceTo(Line3 <T> line) { Numeric <T> d = (dir % line.dir) ^ (line.pos - pos); return((d >= Numeric <T> .Zero()) ? d : -d); }
private static bool Equals(ref Line3 <T> v1, ref Line3 <T> v2) { return(EqualityComparer <Vec3 <T> > .Default.Equals(v1.dir, v2.dir) && EqualityComparer <Vec3 <T> > .Default.Equals(v1.pos, v2.pos)); }
public bool Equals(Line3 <T> other) { return(Equals(this, other)); }
public void Multiply(Matrix44 <T> m, T unit) { this = new Line3 <T>(pos * m, (pos + dir) * m, unit); }
private static bool Equals(ref Line3 <T> v1, ref Line3 <T> v2) { return(EqualityComparer <Vector3 <T> > .Default.Equals(v1.dir, v2.dir) && EqualityComparer <Vector3 <T> > .Default.Equals(v1.from, v2.from)); }
public void Multiply(Matrix44 <T> m, T unit) { this = new Line3 <T>(from * m, (from + dir) * m, unit); }