_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
$$