public RayLine3 Reflect(RayLine3 line) { if (!this.valid) { return(line); } return(new RayLine3(Reflect(line.StartPoint), RelativelyReflect(line.Direction))); }
public Angle MaximalAngleWith(RayLine3 line) { if (!this.valid || !line.IsValid) { return(Angle.ZERO); } return(Angle.PId2 + this.normal.AngleWith(line.Direction)); }
public bool IsOrthogonalTo(RayLine3 line) { return(line.IsValid && this.IsOrthogonalTo(line.Direction)); }
public bool IsParallelTo(RayLine3 line) { return(line.IsValid && this.IsParallelTo(line.Direction)); }
public RayLine3 Reflect(RayLine3 line) { return(new RayLine3(Reflect(line.StartPoint), -line.Direction)); }
public bool IsOrthogonalTo(RayLine3 line) { return(this.valid && line.IsValid && this.normal.IsParallelTo(line.Direction)); }