_SPLINE_REDUCER.GRS
PROC/OSPLIN,MINDST,MINANG,MAXANG,MAXPAS,EPTVSW,$
NSPLIN,PNTCNT,PNTCN3,DIAGLV,SRESP
$$
$$ SUBROUTINE: _SPLINE_REDUCER.GRS
$$
$$ KEYWORDS:
$$ UTILITY
$$
$$ ABSTRACT:
$$ THIS ROUTINE READS AN EXISTING SPLINE AND DETERMINE WHICH POINTS
$$ MUST BE ELIMINATED TO AVOID "LOOP BACKS" IN THE NEW SPLINE. IT
$$ ALSO ELIMINATES POINTS THAT ARE WITHIN A MINIMUM DISTANCE AND
$$ CHANGE THE ANGLE OF THE SPLINE LESS THEN A MINIMUM ANGLE.
$$.
$$ SINCE THIS ROUTINE CAN DRASTICALLY ALTER THE SHAPE OF A SPLINE,
$$ IT SHOULD BE USED VERY CAREFULLY WHEN ACCURACY IS IMPORTANT.
$$ (SETTING THE MINANG TO -1, THE MAXANG TO 90 AND THE MINDST TO 0
$$ WILL SUPPRESS THE ELIMINATION OF CLOSE POINTS WHILE STILL FIXING
$$ SWITCH BACKS).
$$.
$$ NOTE: SPLINE POINT TANGENTS WERE NOT USED BECAUSE VECTORS FROM
$$ POINT TO POINT GAVE A CLEARER PICTURE OF SPLINE SWITCH BACK.
$$
$$ RELEASE HISTORY:
$$ 26-OCT-1995 Initial Implementation
$$ 07-DEC-1995 Bug fixes
$$ 03-JAN-1996 FINAL DOCUMENTATION
$$ 28-FEB-1996 Modified to smooth out splines, using min/max angle & distance
$$ calculations.
$$ 05-MAR-1996 Modified to perform multiple passes to clean up a spline.
$$ 18-JUL-1996 Initial submission to PTE Library
$$ 18-JUL-1996 Initial submission to GRIP International Library
$$ 13-OCT-2001 Contact Information Updated!
$$
$$ Called by:
$$ (A Utility Subroutine)
$$
$$ AUTHOR: Greg Krumrey, Information Manager
$$ COMPANY: Patriot Machine, Inc.
$$ 951 Harmsted Court
$$ St. Charles, MO 63301
$$ greg.krumrey@patriot-machine.com
$$ 636-940-1776 x 130
$$
$$ SYSTEM TYPE: This program is Machine-Independant.
$$
$$ THEORY/VARIABLE USAGE:
$$ OSPLIN - OLD SPLINE (INPUT)
$$ MINDST - MINIMUM DISTANCE REQUIRED BETWEEN SPLINE POINTS
$$ MINANG - MINIMUM ANGLE BETWEEN TANGENTS OF ADJECENT POINTS
$$ MAXANG - MAXIMUM ANGLE BETWEEN TANGENTS OF ADJECENT POINTS
$$ MAXPAS - MAXIMUM NUMBER OF PASSES BEFORE EXITING
$$ EPTVSW - END-POINT TANGENT VECTOR SWITCH:
$$ &YES - COPY VECTORS FROM END-POINTS OF OLD SPLINE
$$ &NO - CREATE NEW SPLINE USING ONLY POINTS.
$$ NSPLIN - NEWLY CREATED SPLINE (OUTPUT)
$$ PNTCNT - NUMBER OF POINTS IN ORIGINAL (INPUT) SPLINE
$$ PNTCN3 - NUMBER OF POINTS IN NEW (OUTPUT) SPLIN
$$ DIAGLV - DIAGNOSTIC LEVEL
$$ SRESP - SUBROUTINE RESPONSE (3=SUCCESS)
$$
$$ VERSIONS SUPPORTED: ALL
$$