VS:OverlapLineLine

From Vectorworks Developer
Revision as of 14:35, 12 August 2013 by Root (talk | contribs) (1 revision)
Jump to navigation Jump to search

.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.