#!/usr/bin/env python

__version__ = '$Revision: 8449 $'.split()[1]
__date__ = '$Date: 2008-01-31 11:11:50 -0500 (Thu, 31 Jan 2008) $'.split()[1]
__author__ = 'Kurt Schwehr'

__doc__='''

Filter xy xxx data position data

@requires: U{epydoc<http://epydoc.sourceforge.net/>} > 3.0
@requires: U{BitVector<http://cheeseshop.python.org/pypi/BitVector>}

@author: '''+__author__+'''
@version: ''' + __version__ +'''
@var __date__: Date of last svn commit
@undocumented: __version__ __author__ __doc__ parser
@status: Works
@license: GPL v2
@since: 2007-Aug-23
'''


############################################################
if __name__=='__main__':
    from optparse import OptionParser
    parser = OptionParser(usage="%prog [options] file1.xy [file2.xy ...]",version="%prog "+__version__)
    parser.add_option('-e','--epsilon'
                      ,dest='epsilon'
                      ,default=0.001
                      ,type='float'
                      ,help='Distance between adjacent points to consider them different[default: %default]')
    (options,args) = parser.parse_args()
    epsilon = options.epsilon
    
    for filename in args:
        last = None
        for line in file(filename):
            x,y=line.split()[:2]
            x=float(x)
            y=float(y)
            if last==None:
                last=(x,y)
                print line,
                continue
            if (x<last[0]-epsilon or x>last[0]+epsilon) and (y<last[1]-epsilon or y>last[1]+epsilon):
                last=(x,y)
                print line,

