示例#1
0
        public Angle MaximalAngleWith(RayLine3 line)
        {
            if (!this.valid || !line.valid)
            {
                return(Angle.ZERO);
            }

            return(this.direction.MaximalAngleWithAxis(line.direction));
        }
示例#2
0
        public RayLine3 Reflect(RayLine3 line)
        {
            if (!this.valid)
            {
                return(line);
            }

            return(new RayLine3(Reflect(line.StartPoint), RelativelyReflect(line.Direction)));
        }
示例#3
0
        public Angle MinimalAngleWith(RayLine3 line)
        {
            if (!this.valid)
            {
                return(Angle.ZERO);
            }

            return(line.MinimalAngleWith(this.direction));
        }
示例#4
0
 public static RayLine3 TurnAt90Degrees(RayLine3 line)
 {
     return(new RayLine3(TurnAt90Degrees(line.StartPoint), TurnAt90Degrees(line.Direction)));
 }
示例#5
0
 public static RayLine3 Reflect(RayLine3 line)
 {
     return(new RayLine3(Reflect(line.StartPoint), Reflect(line.Direction)));
 }
示例#6
0
 public bool IsParallelTo(RayLine3 line)
 {
     return(this.valid && line.valid && this.direction.IsParallelTo(line.direction));
 }
示例#7
0
 public RayLine3(RayLine3 line)
 {
     this.StartPoint = line.StartPoint;
     this.direction  = line.direction;
     this.valid      = line.valid;
 }
示例#8
0
 public Angle AngleWith(RayLine3 line)
 {
     return(this.direction.AngleWith(line.direction));
 }
示例#9
0
        // ========================================================

        public bool IsEqualTo(RayLine3 line)
        {
            return(this.IsCoDirectionalTo(line) && this.StartPoint.IsEqualTo(line.StartPoint));
        }
示例#10
0
 public bool IsOrthogonalTo(RayLine3 line)
 {
     return(this.valid && line.valid && this.direction.IsOrthogonalTo(line.direction));
 }
示例#11
0
 public bool IsParallelTo(RayLine3 line)
 {
     return(line.IsValid && line.Direction.IsParallelTo(B - A));
 }
示例#12
0
 public Angle MaximalAngleWith(RayLine3 line)
 {
     return(line.MaximalAngleWith(this.VectorAB));
 }
示例#13
0
 public bool IsOrthogonalTo(RayLine3 line)
 {
     return(line.IsValid && line.Direction.IsOrthogonalTo(B - A));
 }