Copyright (c) 2000, Frank Warmerdam