diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /pkg/images/tv/tvmark/mkfind.x | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'pkg/images/tv/tvmark/mkfind.x')
-rw-r--r-- | pkg/images/tv/tvmark/mkfind.x | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pkg/images/tv/tvmark/mkfind.x b/pkg/images/tv/tvmark/mkfind.x new file mode 100644 index 00000000..5824422a --- /dev/null +++ b/pkg/images/tv/tvmark/mkfind.x @@ -0,0 +1,52 @@ +include <mach.h> + +# MK_FIND -- Procedure to detect the object in a file closest to the +# input cursor position. + +int procedure mk_find (cl, xcur, ycur, xlist, ylist, label, id, ltid, tol) + +int cl # coordinates file descriptor +real xcur, ycur # x and y cursor position +real xlist, ylist # x and y list position +char label[ARB] # label string +int id # sequence number of detected object in list +int ltid # current sequence number in the list +real tol # tolerance for detection + +real x, y, dist2, ldist2, tol2 +int fscan(), nscan() + +begin + if (cl == NULL) + return (0) + call seek (cl, BOF) + ltid = 0 + + # Initialize + id = 0 + dist2 = MAX_REAL + tol2 = tol ** 2 + + # Fetch the coordinates. + while (fscan (cl) != EOF) { + call gargr (x) + call gargr (y) + call gargwrd (label, SZ_LINE) + if (nscan () < 2) + next + if (nscan () < 3) + label[1] = EOS + ltid = ltid + 1 + ldist2 = (x - xcur) ** 2 + (y - ycur) ** 2 + if (ldist2 > tol2) + next + if (ldist2 > dist2) + next + xlist = x + ylist = y + dist2 = ldist2 + id = ltid + } + + return (id) +end |