static public bool IsIntersecting(this LineSegmentF2 item, LineF2 line) { float distance; VectorF2 point; return(item.TryGetIntersection(line, out distance, out point)); }
static public bool TryGetIntersection(this LineSegmentF2 item, LineSegmentF2 line_segment, out float distance, out VectorF2 point) { if (item.TryGetIntersection(line_segment.GetLine(), out distance, out point)) { if (line_segment.GetRectF2().Contains(point)) { return(true); } } return(false); }
static public bool TryGetIntersectionPercent(this LineSegmentF2 item, LineSegmentF2 line_segment, out float percent, out VectorF2 point) { float distance; if (item.TryGetIntersection(line_segment, out distance, out point)) { percent = distance / item.GetLength(); return(true); } percent = 0.0f; return(false); }
static public bool TrySplit(this LineSegmentF2 item, LineF2 line, out LineSegmentF2 line_segment1, out LineSegmentF2 line_segment2) { VectorF2 point; if (item.TryGetIntersection(line, out point)) { line_segment1 = new LineSegmentF2(item.p1, point); line_segment2 = new LineSegmentF2(point, item.p2); return(true); } line_segment1 = default(LineSegmentF2); line_segment2 = default(LineSegmentF2); return(false); }
static public bool TryGetIntersection(this LineSegmentF2 item, LineSegmentF2 line_segment, out VectorF2 point) { float distance; return(item.TryGetIntersection(line_segment, out distance, out point)); }