public RayLine2 Reflect(RayLine2 line) { if (!this.valid) { return(line); } return(new RayLine2(Reflect(line.StartPoint), RelativelyReflect(line.Direction))); }
public Angle MaximalAngleWith(RayLine2 line) { if (!this.valid || !line.valid) { return(Angle.ZERO); } return(this.direction.MaximalAngleWithAxis(line.direction)); }
public Angle MaximalAngleWith(RayLine2 line) { if (!this.valid) { return(Angle.ZERO); } return(line.MinimalAngleWith(this.direction)); }
public static RayLine2 Reflect(RayLine2 line) { return(new RayLine2(Reflect(line.StartPoint), Reflect(line.Direction))); }
public bool IsOrthogonalTo(RayLine2 line) { return(this.valid && line.IsValid && this.direction.IsOrthogonalTo(line.Direction)); }
public bool IsParallelTo(RayLine2 line) { return(this.valid && line.IsValid && this.direction.IsParallelTo(line.Direction)); }
public bool IsCoDirectionalTo(RayLine2 line) { return(this.valid && line.valid && this.direction.IsCoDirectionalTo(line.direction)); }
public RayLine2(RayLine2 line) { this.StartPoint = line.StartPoint; this.direction = line.direction; this.valid = line.valid; }
public Angle AngleWith(RayLine2 line) { return(this.direction.AngleWith(line.direction)); }
// ======================================================== public bool IsEqualTo(RayLine2 line) { return(this.IsCoDirectionalTo(line) && this.StartPoint.IsEqualTo(line.StartPoint)); }
public bool IsParallelTo(RayLine2 line) { return(line.IsValid && line.Direction.IsParallelTo(B - A)); }
public Angle MaximalAngleWith(RayLine2 line) { return(line.MaximalAngleWith(this.VectorAB)); }
public bool IsOrthogonalTo(RayLine2 line) { return(line.IsValid && line.Direction.IsOrthogonalTo(B - A)); }