public bool DoesLocusIntersect(Loci pobjTarget) { PointF point = new PointF(0, 0); switch (this.Type) { case LociType.Line: switch (pobjTarget.Type) { case LociType.Line: return(IntersectionHelpers.DoLinesIntersect(this.Line, pobjTarget.Line, ref point)); case LociType.Point: return(IntersectionHelpers.DoLinesIntersect(this.Line, pobjTarget.CreateLineFromPoint(), ref point)); case LociType.Rectangle: return(IntersectionHelpers.DoesLineIntersectRectangle(pobjTarget.Rectangle, this.Line)); } break; case LociType.Point: switch (pobjTarget.Type) { case LociType.Line: return(IntersectionHelpers.DoLinesIntersect(pobjTarget.Line, this.CreateLineFromPoint(), ref point)); case LociType.Point: return(this.Point.Equals(pobjTarget.Point)); case LociType.Rectangle: return(pobjTarget.Rectangle.Contains(this.Point)); } break; case LociType.Rectangle: switch (pobjTarget.Type) { case LociType.Line: return(IntersectionHelpers.DoesLineIntersectRectangle(this.Rectangle, pobjTarget.Line)); case LociType.Point: return(this.Rectangle.Contains(pobjTarget.Point)); case LociType.Rectangle: return(pobjTarget.Rectangle.IntersectsWith(this.Rectangle)); } break; } throw new NotSupportedException(); }
public bool DoesLocusIntersect(Loci pobjTarget) { PointF point = new PointF(0, 0); switch (this.Type) { case LociType.Line: switch (pobjTarget.Type) { case LociType.Line: return IntersectionHelpers.DoLinesIntersect(this.Line, pobjTarget.Line, ref point); case LociType.Point: return IntersectionHelpers.DoLinesIntersect(this.Line, pobjTarget.CreateLineFromPoint(), ref point); case LociType.Rectangle: return IntersectionHelpers.DoesLineIntersectRectangle(pobjTarget.Rectangle, this.Line); } break; case LociType.Point: switch (pobjTarget.Type) { case LociType.Line: return IntersectionHelpers.DoLinesIntersect(pobjTarget.Line, this.CreateLineFromPoint(), ref point); case LociType.Point: return this.Point.Equals(pobjTarget.Point); case LociType.Rectangle: return pobjTarget.Rectangle.Contains(this.Point); } break; case LociType.Rectangle: switch (pobjTarget.Type) { case LociType.Line: return IntersectionHelpers.DoesLineIntersectRectangle(this.Rectangle, pobjTarget.Line); case LociType.Point: return this.Rectangle.Contains(pobjTarget.Point); case LociType.Rectangle: return pobjTarget.Rectangle.IntersectsWith(this.Rectangle); } break; } throw new NotSupportedException(); }