VS:OverlapLineLine
.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix
Description
Returns two points the lap zone of two lines. Returns true if lines overlap.
FUNCTION OverlapLineLine(
begPt1X, begPt1Y, begPt1Z :REAL;
endPt1X, endPt1Y, endPt1Z :REAL;
begPt2X, begPt2Y, begPt2Z :REAL;
endPt2X, endPt2Y, endPt2Z :REAL;
VAR lapPt1X, lapPt1Y, lapPt1Z :REAL;
VAR lapPt2X, lapPt2Y, lapPt2Z :REAL;
tolerance :REAL) :BOOLEAN
def vs.OverlapLineLine(begPt1, endPt1, begPt2, endPt2, tolerance): return (BOOLEAN, lapPt1, lapPt2)
Parameters
begPt1X, begPt1Y, begPt1Z REAL endPt1X, endPt1Y, endPt1Z REAL begPt2X, begPt2Y, begPt2Z REAL endPt2X, endPt2Y, endPt2Z REAL lapPt1X, lapPt1Y, lapPt1Z REAL Output parameter. lapPt2X, lapPt2Y, lapPt2Z REAL Output parameter. tolerance REAL
Example
PROCEDURE Example; VAR beg_pt1, END_pt1, beg_pt2, END_pt2, lap_pt1, lap_pt2 :VECTOR; BEGIN CallTool(-201); GetSegPt1(FSActLayer, beg_pt1.x, beg_pt1.y); GetSegPt2(FSActLayer, END_pt1.x, END_pt1.y); CallTool(-201); GetSegPt1(FSActLayer, beg_pt2.x, beg_pt2.y); GetSegPt2(FSActLayer, END_pt2.x, END_pt2.y); IF OverlapLineLine(beg_pt1, end_pt1, beg_pt2, end_pt2, lap_pt1, lap_pt2, .1) THEN BEGIN Locus(lap_pt1.x, lap_pt1.y); Locus(lap_pt2.x, lap_pt2.y); END; END; RUN(Example);
Version
Availability: from All Versions
This is drop-in function.