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