************ Changes from 1.3 to 1.4 ************ 3 Apr 2000 Added Tcl_GeoLineArrayNameUsed and Tcl_GeoLineArrayAdd functions to tclGeoLineArray interface. 10 Apr 2000 Deleted calls to GeoRdFile interface in newLatLonArrayFmXdr 10 Apr 2000 Put Tcl_GeoLineArrayAddSubCmd into command initialization loop in Tclgeolinearray_Init. 11 Apr 2000 Changed newLatLonArrayFmXdr to use Tcl_GeoLineArrayNameUsed and Tcl_GeoLineArrayAdd. Deleted calls to GeoRdFile interface in newLatLonArrayFmAscii. Deleted tclGeoRdFile.c and tclGeoRdFile.h. They are no longer used (the interface was a bad idea anyway). 14 Apr 2000 Replaced "geolines" with "geolinearray" in pkgIndex.tcl tclGeography.c: Replaced call to sscanf with Tcl_ListObjGetElements in SetLatLonFromAny and SetProjPtFromAny. 17 Apr 2000 Changed all functions in tclGeoLineArray to use Tcl Object interface. 18 Apr 2000 Changed all functions in tclGeoPlace to use Tcl Object interface. 24 Apr 2000 Changed geoMap.objName to geoMap.mapName in tkGeoMap.c, tkGeoMap.h, and tkGeoMapWdg.c 25,26 Apr 2000 Changed tkGeoMap.[ch] to use Tcl Object interface. 28,29 Apr 2000 Changed tkCanvGeoMap.[ch] to use Tcl Object interface. Modeled on /home/gordonc/tcl/tk8.3.0/generic/tkCanvArc.c Deleted USE_OLD_CANVAS definition from tkCanvGeoMap.c Added TK_CONFIG_OBJS flag to GeomapItemType and Tk_ConfigureWidget calls. 2 May 2000 Changed "geoplace geomaplistplaces" to "geoplace geomaplist" in geoplace command. Added geomaplist subcommand to geolinearray. Set initial dotsize to -1 in geoMapCreatePlace. 7 May 2000 Set initial dotsize to 0 in geoMapCreatePlace. Enlarged error messages in tclGeoPlace and tclGeoLineArray with TclMsg interface. 8 May 2000 Enlarged error messages in tkGeoMap with TclMsg interface. 9 May 2000 Made sure dotsize becomes non-zero in TkGeoMapDrawDot. 10 May 2000 Added geolinearray descr command. 14 May 2000 Added -descrlen and -format options to geolinearray fmascii Made FreeGeoLine return immediately if handed a NULL. 16 May 2000 Made geolinearray fmascii read a given number of lines into a descriptor. If descrlen is of form i or ib, read a number of bytes into descriptor. If descrlen is of form il, read a number of lines into descriptor. Only the first 256 bytes of each line are read. 17 May 2000 Remove free(latLonArray) in error branches of fmXdr and fmAscii functions. It was freeing already freed memory. tsk, tsk... 18 May 2000 Cleaned up error messages in tclGeoLineArray 22 May 2000 Added toXdr to tclGeoLineArray interface. 23 May 2000 Added toList to tclGeoLineArray interface. 24 May 2000 Modified tclGeoPlace interface. Now functions get a token to a place using TclGeoPlaceGet, which is the argument in TclGeoPlaceAddUser, TclGeoPlaceDropUser, and TclGeoPlaceLoc. 25 May 2000 Added ptperln option to geolinearray toascii Added geolinearray tobin and frombin 28 May 2000 Changed point sequence to dot-pixmap-text instead or pixmap-dot-text so that dots would not obscure small pixmaps. Put TkGeoLineArray's into linked list so they are drawn in proper order: first array drawn on bottom, subsequent arrays on top. 30 May 2000 Put TkGeoMapPlace's into linked list so they are drawn in proper order: first place drawn on bottom, subsequent places on top. 3 Jun 2000 Replace NOWHERE comparisons in geoProj.c and geoLines.c with GeoPtIsSomewhere calls. Added "somewhere" command to tclgeography package. Added somewhere call to RefPointCircledProjScript in tkCanvGeoMapProcs Added azrng subcommand to geoplace 4 Jun 2000 Created geography.tcl, with Circle proc and proc's for converting between degree-minute-second and decimal representations. Added openChannel function to tclGeoLineArray package to consolidate code for opening input channels. Removed untested and probably useless '|' syntax for writing to pipes from toXXX subcommands. 14 Jun 2000 Cleaned up the degree-to-units conversions in geography.h 15 Jun 2000 Cleaned up DomainLon and created IDomainLon in geography.h 18 Jun 2000 geoLineArrayToProj: latLonArrayToCylProj, check whether a line is entirely within longitude domain of the current projection. If so, don't bother looking for segments that cross boundaries. 23 Jun 2000 Changed names of all GeoLines functions to either GeoLine or GeoLineArray. Made GeoLines and GeoLineArrays grow by 25% instead of by fixed steps. 4 Jul 2000 geoLines.c: Shortened a bunch of variable names. Changed for loops to use pointer walking instead of index incrementing. Removed scale and rotation members from GeoProj interface. Removed scale and rotation from tclGeoProj command. Added Rotation structure and functions to geography.c Added scale and rotation members to tkGeoMap structure, with access through custom options. Moved declarations of GeoLine and GeoLineArray structures from geoLines.c to geoLines.h. Changed projection to proj for projection member of tkGeoMap structure. In tkGeoMap.c, wrapped calls to LatLonToProj inside call to ScaleRotateGeoPt, since LatLonToProj only does projection transformation, now. 7 Jul 2000 Added rotation to geoLineArrayToProj interface, i.e. now use both projection and rotation when converting latLon arrays to drawing arrays. Combined cartographic and device scale into pxPerProjM (pixels per projection meter) in tkGeoMap.c 11-12 Jul 2000 Changed tkGeoMap.c to use the changed geoLineArrayToProj interface. 19 Jul 2000 Moved projId and projUserId from widget and item structs into TkGeoMap struct. Added rotation config option to widget. 20 Jul 2000 Corrected tkGeoMapWdg procs for map vice projection conversions. 22-23 Jul 2000 Created MapPoint. Replaced GeoPoints that referred to 2D MapPoints in all source files. 26 Jul 2000 georadius command now requires a unit. 30 Jul 2000 Removed TclMsg interface. Moved lonbtwn from tclGeoPlace to tclGeography Changed name of georadius man page to geography. Indicated CHANGE IN USER INTERFACE: default is now meters. 31 Jul 2000 Moved cross function from geolinearray command to geography package. 1 Aug 2000 Fixed some indexing and initialization bugs in inrange in tclGeoPlace. Made sure base place does not appear in list of near places (a place is not close to itself). 6 Aug 2000 In geoLineArrayToMap.c replaced several uses of DegCmp with LonCmp as follows: diff geoLineArrayToMap.c backup/geoLineArrayToMap.c_000806143712 205c205 < if (LonCmp(lon0, east) == PrMd && LonCmp(lon1, west) == PrMd) --- > if (DegCmp(lon0, east) == 0 && DegCmp(lon1, west) == 0) 207c207 < if (LonCmp(lon0, west) == PrMd && LonCmp(lon1, east) == PrMd) --- > if (DegCmp(lon0, west) == 0 && DegCmp(lon1, east) == 0) 268c268 < if (LonCmp(lon0, east) == PrMd && LonCmp(lon1, west) == PrMd) --- > if (DegCmp(lon0, east) == 0 && DegCmp(lon1, west) == 0) 270c270 < if (LonCmp(lon0, west) == PrMd && LonCmp(lon1, east) == PrMd) --- > if (DegCmp(lon0, west) == 0 && DegCmp(lon1, east) == 0) 415c415 < if (LonCmp(lon0, east) == PrMd && LonCmp(lon1, west) == PrMd) --- > if (DegCmp(lon0, east) == 0 && DegCmp(lon1, west) == 0) 417c417 < if (LonCmp(lon0, west) == PrMd && LonCmp(lon1, east) == PrMd) --- > if (DegCmp(lon0, west) == 0 && DegCmp(lon1, east) == 0) 480c480 < if (LonCmp(lon0, east) == PrMd && LonCmp(lon1, west) == PrMd) --- > if (DegCmp(lon0, east) == 0 && DegCmp(lon1, west) == 0) 482c482 < if (LonCmp(lon0, west) == PrMd && LonCmp(lon1, east) == PrMd) --- > if (DegCmp(lon0, west) == 0 && DegCmp(lon1, east) == 0) Made incrRefCount and decrRefCount for geoproj private to tclGeoProj.c Usage is now arranged by TclGeoProjUse in all cases. Removed fprintf(stderr,...) error message from default case in LatLonArrayToMap Added nMiPerDeg to geography.c static constant set. Nautical mile is 1852.0 meters. Does not change with radius of Earth. 14 Aug 2000 Added MapLineArrayDestroy call to TkGeoMapEraseLines. 15 Aug 2000 In geoLineArrayToMap.c, replaced lnWest <= lnEast with DegCmp(lnWest, lnEast) == -1 Changed number of degree units per degree from 1000 to 10000. 28 Aug 2000 In tkGeoMapWdg.c, changed static int initCmdTable(Tcl_Interp *interp) to static void initCmdTable(void) Added center configuration option to geomap widget. 29 Aug 2000 Changed canvas geomap item configuration from solid border to 3D. 30 Aug 2000 Moved bgBorder, bdLineWidth, and relief members and configuration from canvas item and widget to shared TkGeoMap interface. Canvas item and widget now use Tk_GetGC and Tk_FreeGC instead of XCreateGC and XFreeGC. Create GC for widget and canvas item are now in create function instead of config function. 31 Aug 2000 Moved TkGeoMapUpdateLines and TkGeoMapUpdatePlaces calls to TkGeoMapToPixmap. Made -projection a CUSTOMOPTION. 2 Sep 2000 Created TkGeoMapAppendConfig function. Config specs are now set at initialization in TkGeoMap.c Put custom configuration option structs and functions into TkGeoMap.c as static locals. 3 Sep 2000 Added reference longitude to CylEqdist projection in geoProj.c and tclGeoProj.c. 6 Sep 2000 Put rotation functions from geography into their own interface in rotation.[ch] 7 Sep 2000 Put longitude and latitude comparison and domain functions into their own interface in geoCmp.[ch] Put Earth constants into earth.[ch] In GeoLineArraySetAlloc, if number of lines decreases, free extra lines before removing them. 11 Sep 2000 Shortened lots of variable names. 12 Sep 2000 Made GeoPtIsSomewhere, GeoPtIsNowhere, GeoPtNowhere, MapPtIsSomewhere, and MapPtIsNowhere macros in geography.h into functions in geography.c. Made GeoLineInit static local in geoLines.c. Likewise MapLineInit. Ensured nLines <= nLinesMax in GeoLnArrRealloc and MapLnArrRealloc and npts <= nptsMax in GeoLnRealloc and MapLnRealloc. 13 Sep 2000 Deleted lambertConfConicToMap. Lambert Conformal Conic now treated as cylindrical projection when projecting. 19 Sep 2000 Created lines interface. Made geoLine and mapLine interfaces clients of it. 20 Sep 2000 Removed earth.[ch]. Created global variable Rearth in geography.[ch] with some macros for converting distance units. Reinstalled TclMsg interface for error messages. 24 Sep 2000 Removed SecantPolarStereographic 25 Sep 2000 Fixed bug in tolist: for one line array, take index 0, not 1. Tsk, tsk... 26 Sep 2000 In lnSetAlloc, if reducing allocation, reduce nPts and recompute maxima and minima. 28 Sep 2000 GeoLnArrayDestroy, MapLnArrDestroy, and lineArrayDestroy leave argument line array untouched and return false if userCnt > 0. Made userCnt int instead of unsigned. 29 Sep 2000 Made geoplace userCnt an int. Place cannot be deleted if its userCnt > 0. 2 Oct 2000 Removed descriptor member from struct GeoProjInfo 9 Oct 2000 In tclGeoLineArray.c removed the block: if (GeoLnArrNLines(geoLnArr) == 0) { Tcl_AppendResult(interp, "No lines read from ", fileName, "\n", NULL); goto error; } when reading in lines. 12 Oct 2000 Added dmstodec command to tclgeography package. 15 Oct 2000 Added dectodm, dectodms, and cartg commands to tclgeography package. 16 Oct 2000 Deleted tclGeogProgs script. 2 Nov 2000 Added scalept and rotatpt commands to tclgeography package. Removed -tags from item creation line in tkCanvGeoMapProcs.tcl. ************ Changes from 1.4 to 1.4.1 ************ 6 Nov 2000 Changed Tcl_GetString to Tcl_GetStringFromObj. 9 Nov 2000 In tkCanvGeoMap.c, inserted old canvas commands if USE_OLD_CANVAS is defined. Removed TK_CONFIG_OBJS from tkGeoMapWdg.c Replaced Tcl_GetString with Tcl_GetStringFromObj everywhere, for compatibility with older versions of Tcl. 10 Nov 2000 In tkGeoMapWdg.c, put TK_CONFIG_OBJS branch into geoMapConfigure. Added loaded flag to Tclgeoproj_Init. ************ Changes from 1.4.1 to 1.5 ************ 20 Jan 2001 For commands dealing with places in tkGeoMap.c added geomap name to error message. Added ability to fill lines. 26 Jan 2001 Added iLonCmp and iLonBtwn functions to geoLnArrayToMap.c and used them for comparisons when reading in lines (makes it go 20 to 25% faster!). 29 Jan 2001 Added MapBnds function to geoLnArrToMap. In tkGeoMap.c, added clipping region block to TkGeoMapToPixmap and TkGeoMapUpdateLines. 30 Jan 2001 Changed SetSinusoidalProj to SetSinusoidal everywhere. Bug fix: In lnCreate, put 'ln->type = t;' immediate after allocation. Line was being missed for initialization with 0 points. Simplified line cutting for cylindrical projections in geoLnArrToMap.c. Now use clipping region in tkGeoMap.c. 31 Jan 2001 In TkGeoMapToPixmap, put polygon fill before drawing lines, dots and bitmaps. 1 Feb 2001 Added gwchpt and gwchlon proc's to tclgeography. Removed all GwchLonPt and GwchLon calls in geoProj.c. Added gwchlon and gwchpt calls to tkCanvGeoMapProcs.tcl. 2 Feb 2001 Removed displayProc from geoMapConfigure in tkGeoMapWdg.c. Added rlon argument to geoLnArrToCylMap. Added GeoProjUseLonDomain and GeoProjIgnoreLonDomain to geoProj to toggle automatic longitude domain adjustments. Modified geoProj Set and conversion functions to use the useLonDmn switch. Bug fix: put ceqd parameters into Cylindrical Equidistant functions (it is not a refPt projection). Added domnlon and domnlonpt functions to tclGeography. Removed gwchlon and gwchpt calls from tkCanvGeoMapProcs.tcl. 12 Feb 2001 latLonToLambertConfConic accepts all points except opposite pole. latLonToStereographic accepts all points except the one opposite refPt. 13 Feb 2001 Put GCircleX calls for calculating bndPt in latLonArrToHemisphere. 14 Feb 2001 Added geoLnArrToLambertConfConic function. It looks like the array transformation functions are working now. 16 Feb 2001 Fixed bugs in latLonToLambertConfConic at poles. 17 Feb 2001 Renamed libGeoMap.a as libGeography.a ************ Changes from 1.5 to 1.5.1 ************ 23 Feb 2001 In TkGeoMapToPixmap, eliminated window bounds from xBndPts calculation. ************ Changes from 1.5.1 to 1.5.2 ************ 26 Feb 2001 In MapBnd, added points at each degree for cylindrical projections instead of just at corners. In TkGeoMapToPixmap, restored window bounds in xBndPts calculation. 27 Feb 2001 In geoLnArrToMap.c, created bndTouch function to replace incorrect LonBtwn calls in geoLnArrToLambertConfConic and geoLnArrToCylMap. In geoProj.c, changed latLonToMercator to return MapPtNowhere if latitude is at north or south pole. In MapBnd and geoLnArrToCylMap, limited Mercator bounds to +/-80 degrees latitude. In TkGeoMapToPixmap, limited xBndPts to size of pixmap, xPts to +/- SHRT_MAX. ************ Changes from 1.5.2 to 1.5.3 ************ 28 Feb 2001 Added install_hdr.sh. Invoked it in Makefile.in and Makefile.ez. ************ Changes from 1.5.3 to 1.6 ************ 27 Mar 2001 Added GeoProjMatch function with proj specific functions in GeoProj.c. 29 Mar 2001 Created lnArrInit function. In lines.c, declared struct MapLineArr. 30 Mar 2001 Created lnArrFree function. 2 Apr 2001 In lines.c, declared struct GeoLnArr. Modified local GeoLnArr functions to use it instead of treating GeoLnArr as a lnArr. Removed lnArrCreate and lnArrDestroy functions. Not needed since GeoLnArr and MapLineArr have their own, special create and destroy functions. 4 Apr 2001 Added GeoLnArrGetXFn and GeoLnArrSetXFn. Documented GeoLnArrToMapLnArr, GeoLnArrGetXFn, and GeoLnArrSetXFn. Moved GeoLnArrXFn type declaration, GeoLnArrGetXFn and GeoLnArrSetXFn from geoLnArrToMap.h to geoLines.h. 18 Apr 2001 Added TkCanvGeoMapUpdatPlcRedrw function that updates all places but not lines. Arranged to call it when the geoplace database changes. Modified configure.in and Makefile.in so user does not need to use --with-tclinc if TCL_PREFIX from tclConfig.sh works. Likewise for tk. 22 Apr 2001 Added calls to Tcl_InitStubs and Tk_InitStubs to Init functions. Modified configure.in and Makefile.in to use stubs for Tcl/Tk version 8.1 and later. 24 Apr 2001 Added TkGeoMapDrawGeoLnArr and TkGeoMapEraseGeoLnArr. Renamed TkGeoMapDrawLines and TkGeoMapEraseLines as TkGeoMapDrawLnSubCmdProc and TkGeoMapEraseLnSubCmdProc, respectively. Made TkGeoMapDrawLnSubCmdProc, TkGeoMapEraseLnSubCmdProc, TkGeoMapKeyDrawLines, and TkGeoMapKeyEraseLines into front ends to TkGeoMapDrawGeoLnArr and TkGeoMapEraseGeoLnArr. 4 May 2001 Modified Makefile.in so that shared objects link with stubs libraries. Moved Tcl_InitStubs calls to top of Tkgeomapwdg_Init. 5 May 2001 Added optional bitmap background color option, in form color/bgColor, to geoplace drawbitmap command. 9 May 2001 Added tclgeomap target. Like tkgeomap, but without graphics. 10 May 2001 Added TclGeoLineArray structure. Modified functions in tclGeoLineArray and tkGeoMap to use TclGeoLineArrays instead of GeoLineArrays. 11 May 2001 Renamed TkGeoMapDrawLnSubCmdProc as TkGeoMapDrawLinesGM. Renamed TkGeoMapKeyDrawLines as TkGeoMapDrawLinesGLC. Adjusted it to serve commands named for geolinearrays. Renamed TkGeoMapEraseLnSubCmdProc as TkGeoMapEraseLinesGM. Renamed TkGeoMapKeyEraseLines as TkGeoMapEraseLinesGLC. Adjusted it to serve commands named for geolinearrays. 12 May 2001 Added namespaces to geolinearray names. Added interp argument to TclGeoLnArrNameUsed, TclGeoLnArrGet, and TclGeoLnArrRelease. 13 May 2001 Arranged to have "geolinearray list" list arrays in global and current namespace only. 16 May 2001 Augmented tclgeoplace library so that new geoplaces get corresponding commands to access and manipulate the place. 21 May 2001 Added namespace qualifiers to geoplace names. Added interp argument to TclGeoPlaceGet. 25 May 2001 Adjust geoplace list nearest and inrange functions to search current namespace and its children for places. 27 May 2001 Made TkGeoMapListPlacesGM list only places in current namespace and children. Replaced tclMsg.[ch] with tclUtil.[ch]. Created TclCurrNmSpc and TclFullName functions. Modified geolinearray list and geomaplist to list arrays in current and child namespaces. CVS version numbers for release 1.6 COPYING/1.1/Sun Mar 25 00:15:30 2001// ChangeLog/1.20/Mon May 28 04:47:11 2001// AUTHORS/1.2/Sun Jun 10 06:16:02 2001// TODO/1.6/Sun Jun 10 06:03:00 2001// NEWS/1.2/Mon Jun 11 05:18:20 2001// README/1.5/Mon Jun 11 05:20:50 2001// unix/install_man.sh/1.2/Wed Mar 28 03:19:06 2001// unix/install_hdr.sh/1.3/Fri Mar 30 23:11:01 2001// unix/configure/1.9/Fri May 4 04:51:42 2001// unix/configure.in/1.9/Fri May 4 04:51:06 2001// unix/Makefile.ez/1.7/Mon May 28 04:22:46 2001// unix/Makefile.in/1.18/Mon May 28 04:22:35 2001// unix/INSTALL/1.8/Sun Jun 10 06:15:34 2001// unix/README/1.2/Sun Jun 10 06:08:08 2001// xdr/cdefs.h/1.1/Tue Mar 27 05:13:32 2001// xdr/endian.h/1.1/Tue Mar 27 05:13:32 2001// xdr/types.h/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr.c/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr.h/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr_array.c/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr_float.c/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr_mem.c/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr_rec.c/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr_reference.c/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr_sizeof.c/1.1/Tue Mar 27 05:13:32 2001// xdr/xdr_stdio.c/1.1/Tue Mar 27 05:13:32 2001// generic/CodeNotes/1.1/Sun Mar 25 00:15:30 2001// generic/geoCmp.c/1.1/Sun Mar 25 00:15:30 2001// generic/geoCmp.h/1.1/Sun Mar 25 00:15:30 2001// generic/geography.c/1.1/Sun Mar 25 00:15:30 2001// generic/rotation.c/1.1/Sun Mar 25 00:15:30 2001// generic/tclGeoProj.h/1.1/Sun Mar 25 00:15:30 2001// generic/tkGeoMapWdg.h/1.1/Sun Mar 25 00:15:30 2001// generic/rotation.h/1.1/Wed Mar 28 06:03:11 2001// generic/geography.h/1.2/Fri Mar 30 23:10:51 2001// generic/mapLines.h/1.5/Thu Apr 5 04:28:31 2001// generic/geoLines.h/1.4/Tue Apr 10 00:04:02 2001// generic/geoLnArrToMap.h/1.6/Tue Apr 10 00:04:03 2001// generic/lines.c/1.8/Tue Apr 17 05:38:04 2001// generic/tkAppInit.c/1.1/Mon Apr 23 04:03:37 2001// generic/tkCanvGeoMap.h/1.2/Fri Apr 20 05:49:53 2001// generic/tclGeography.c/1.4/Wed Apr 25 07:17:18 2001// generic/tkCanvGeoMap.c/1.8/Fri May 4 04:47:25 2001// generic/tclAppInit.c/1.1/Fri May 11 05:10:42 2001// generic/tclGeoLineArray.h/1.6/Sun May 13 07:33:42 2001// generic/tclGeography.h/1.3/Wed May 16 01:13:14 2001// generic/tkGeoMap.h/1.9/Sat May 19 06:15:50 2001// generic/tclGeoPlace.h/1.5/Tue May 22 06:01:29 2001// generic/tclUtil.c/1.1/Mon May 28 04:48:03 2001// generic/tclUtil.h/1.1/Mon May 28 04:26:38 2001// generic/tkGeoMapWdg.c/1.12/Mon May 28 04:26:50 2001// generic/tkGeoMap.c/1.25/Tue Jun 5 05:24:35 2001// generic/geoLnArrToMap.c/1.4/Tue Jun 5 17:50:50 2001// generic/geoProj.c/1.3/Tue Jun 5 17:50:50 2001// generic/geoProj.h/1.3/Tue Jun 5 17:50:50 2001// generic/tclGeoProj.c/1.5/Tue Jun 5 17:50:51 2001// generic/tclGeoLineArray.c/1.23/Tue Jun 5 18:11:56 2001// generic/tclGeoPlace.c/1.19/Wed Jun 6 06:06:26 2001// library/pkgIndex.tcl/1.2/Wed Mar 28 06:16:08 2001// library/tkGeoMapWdgProcs.tcl/1.2/Wed Mar 28 06:16:16 2001// library/tkCanvGeoMapProcs.tcl/1.7/Tue Jun 5 17:50:51 2001// doc/html/geography.n.html/1.2/Wed Mar 28 06:13:47 2001// doc/html/GeoCmp.3.html/1.3/Thu Apr 5 06:20:47 2001// doc/html/GeoLn.3.html/1.3/Thu Apr 5 06:20:52 2001// doc/html/GeoLnArrToMap.3.html/1.4/Thu Apr 5 06:16:07 2001// doc/html/Geography.3.html/1.3/Thu Apr 5 06:21:11 2001// doc/html/MapLn.3.html/1.3/Thu Apr 5 06:21:14 2001// doc/html/MapLnArr.3.html/1.3/Thu Apr 5 06:21:17 2001// doc/html/Rotation.3.html/1.3/Thu Apr 5 06:21:20 2001// doc/html/TclGeoLineArray.3.html/1.3/Thu Apr 5 06:21:24 2001// doc/html/contents.html/1.3/Thu Apr 5 06:25:39 2001// doc/html/GeoLnArr.3.html/1.4/Thu May 10 06:17:13 2001// doc/html/TclGeoPlace.3.html/1.4/Tue May 22 06:20:14 2001// doc/html/geomap.n.html/1.7/Mon May 28 05:14:52 2001// doc/html/tkcanvgeomap.n.html/1.8/Mon May 28 05:14:23 2001// doc/html/geolinearray.n.html/1.7/Tue Jun 5 06:34:38 2001// doc/html/GeoProj.3.html/1.4/Tue Jun 5 17:50:49 2001// doc/html/geoproj.n.html/1.3/Tue Jun 5 17:50:49 2001// doc/html/geoplace.n.html/1.8/Wed Jun 6 06:14:57 2001// doc/man3/GeoCmp.3/1.2/Wed Mar 28 06:29:05 2001// doc/man3/GeoLn.3/1.2/Wed Mar 28 06:29:05 2001// doc/man3/Geography.3/1.2/Wed Mar 28 06:29:05 2001// doc/man3/MapLn.3/1.2/Wed Mar 28 06:29:05 2001// doc/man3/MapLnArr.3/1.2/Wed Mar 28 06:29:05 2001// doc/man3/Rotation.3/1.2/Wed Mar 28 06:29:05 2001// doc/man3/GeoLnArrToMap.3/1.4/Thu Apr 5 06:28:41 2001// doc/man3/install.sh/1.3/Tue Apr 24 00:00:54 2001// doc/man3/TclGeoLineArray.3/1.3/Wed Apr 25 02:16:10 2001// doc/man3/GeoLnArr.3/1.4/Thu May 10 06:53:34 2001// doc/man3/TclGeoPlace.3/1.3/Tue May 22 06:22:09 2001// doc/man3/GeoProj.3/1.3/Tue Jun 5 17:50:50 2001// doc/mann/install.sh/1.1/Sun Mar 25 00:29:16 2001// doc/mann/geography.n/1.2/Wed Mar 28 06:15:20 2001// doc/mann/geomap.n/1.7/Mon May 28 05:14:55 2001// doc/mann/tkcanvgeomap.n/1.7/Mon May 28 05:14:30 2001// doc/mann/geolinearray.n/1.8/Tue Jun 5 06:30:20 2001// doc/mann/geoproj.n/1.3/Tue Jun 5 17:50:50 2001// doc/mann/geoplace.n/1.7/Wed Jun 6 06:04:51 2001// ************ Changes from 1.6 to 1.6.1 ************ 2 Jul 2001 Bug fix in placeName set command. ************ Changes from 1.6.1 to 1.6.2 ************ 19 Oct 2001 Bug fix in geoplace inrange function (bad strcmp). Changed version number to 1.6.2 in makefiles. ************ Changes from 1.6.2 to 1.6.3 ************ 4 Nov 2001 Modified configure to use TCL_DIR from tclConfig.sh as prefix if user does not use --prefix option. Changed version number to 1.6.3. ************ Changes from 1.6.3 to 1.6.4 ************ 5 Dec 2001 Added GeoPtSet and MapPtSet Added tclGeography.h to headers to install. Added man pages for Tcl_LatLonObj and Tcl_MapPtObj. Changed version number to 1.6.4 ************ Changes from 1.6.4 to 1.6.5 ************ 17 Dec 2001 Moved line and linearray struct declarations to header files. Library users should still use the interface functions whenever possible. Putting the declarations into the headers makes the members visible to debuggers. Added sl_alloc.h for memory leak tracing. 20 Dec 2001 Added lines.h to install_hdr.sh. 2 Jan 2002 Added GeoPtSet and MapPtSet. Added REarth and SetREarth to get and set radius of Earth. 3 Jan 2002 Made lnArr in array of *ln instead of array of ln structs. Split geolinearray and maplinearray implementations. They are now in geoLines.c and mapLines.c, instead of lines.c. Functionality is similar, except that maplinearrays have no user count, or contain-point functions. Added GeoLnCreateFmPts and MapLnCreateFmPts functions. 4 Jan 2002 Modified geoLnArrToMap functions to use GeoLnArrPutGeoLn instead of GeoLnArrAddGeoLn. Fixed domain boundary calculation for Lambert Conformal Conic. 5 Jan 2002 Fixed some memory leaks in various files. ************ Changes from 1.6.5 to 1.6.5.1 ************ 6 Jan 2002 Bug fix in 'geoplace set command' ************ Changes from 1.6.5.1 to 1.7 ************ 17 Mar 2002 When creating geolinearray or geoplace, return error if any command by given name already exists. 12 Apr 2002 Added "transparent" geomap configuration option. 31 May 2002 Created TkGeoMapObj, which can be either a geolinearray or geoplace in a geomap. Lines and places are now in the same drawing sequence (before, lines were drawn first, then places). 2 Jun 2002 Replaced "break" statements when parsing options with "return TCL_ERROR." This might lead to partially modified objects coming from bad commands. Added layer member to TkGeoMapObj. It does not do anything yet. Updated man pages. 5 Jun 2002 Adding layer management 6 Jun 2002 Added CanvasGeoMapFrame, CanvasGeoMapCanvas, CanvasGeoMapMenu, and CanvasGeoMapId procs to tkCanvGeoMapProcs.tcl. ************ Changes from 1.7 to 2.0 ************ 3 Jul 2002 Removed code for geomap widget - superseded by canvas geomap item. (POTENTIAL INCOMPATIBILITY) 6 Jul 2002 Removed "geolines" command. Now must use "geolinearray" command. (POTENTIAL INCOMPATIBILITY) Modified parsing of TkGeoMapDrawLines so that it now assumes objv contains the full command line and not just a chunk. Reduced geolinearray subcommands to "fmxdr", "fmbin", "fmascii", "fmlist", "rm", and "list". The rest of the geolinearray commands are subcommands to array commands. (POTENTIAL INCOMPATIBILITY) 8 Jul 2002 In tclGeoLineArray.c, separated subcommand processing for "geolinearray" command and lineArray commands. All tclGeoLineArray callbacks now take the entire command line instead of just a chunk. 9 Jul 2002 Applied new tclGeoLineArray interface in tkGeoMap.c. 10 Jul 2002 Removed tkGeoMapWdg from pkgIndex.tcl 12 Jul 2002 Deleted TclGeoLineArrayNameUsed and TclGeoLineArrayName procedures. TclGeoLineArrays are now identified by their Tcl commands and clientData structures. Eliminated "geolinearray rm" and its callback. Geolinearrays are now removed by deleting the array's Tcl command. (POTENTIAL INCOMPATIBILITY) "geolinearray list" prints names of linearrays in the current namespace only. (POTENTIAL INCOMPATIBILITY) Removed userCnt member from GeoLnArr struct and associated functions. Added GeoLnArrFree function. GeoLnArrDestroy now returns void. Added TclGeoLnArrAddDeleteCallback and TclGeoLnArrCnxDeleteCallback procedures. 13 Jul 2002 Deleted TkGeoMapCenter, TkGeoMapCenter, TkGeoMapLatLonToMap, and TkGeoMapMapToLatLon procedures. Geolinearray array commands no longer return error when asking to erase the array in a geomap that is not displaying it. (POTENTIAL INCOMPATIBILITY) Lines hash table of TkGeoMap structure now uses ONE_WORD_KEYS. Keys are pointers to TclGeoLineArray structures, values are pointers to TkGeoMapObj structures. Added calls to TclGeoLnArrAddDeleteCallback and TclGeoLnArrCnxDeleteCallback to geolinearray draw and erase procedures. "geolinearray list" and "geolinearray geomaplist" now print names of linearrays in current and GLOBAL namespaces. (POTENTIAL INCOMPATIBILITY) 17 Jul 2002 Eliminated support for "geoplace draw* placeName mapName ..." commands. Places are drawn only with commands of form "placeName draw* mapName ..." (POTENTIAL INCOMPATIBILITY) 21 Jul 2002 Removed name and userCnt members and associated functions from GeoPlace struct. Eliminated "geoplace rm" command. (POTENTIAL INCOMPATIBILITY) 22 Jul 2002 Changed "geoplace list" so that it prints place names for current namespace and global namespace only. (POTENTIAL INCOMPATIBILITY) Added namespace qualifier to TclGeoPlaceGet. (POTENTIAL INCOMPATIBILITY) 24 Jul 2002 Added enum for units so unit option is parsed with Tcl_GetIndexFromObj. Added enum for bearings so bearing word is parsed with Tcl_GetIndexFromObj. Cardinal directions should be spelled out now (at least enough for unambiguous abbreviation). (POTENTIAL INCOMPATIBILITY) 25 Jul 2002 Replaced geoplace subcommand hash table with array of TclSubCmd's. Added TclConcatSubCmds procedure to TclUtil and applied it in TclGeoPlace and TclGeoLnArr. Updated documentation. Renamed geoPlaceCmd as geoplaceCallback. Added placeCmdCallback function. Added TclGeoPlaceAddUpdateTask, TclGeoPlaceCnxUpdateTask, TclGeoPlaceAddDeleteTask, and TclGeoPlaceCnxDeleteTask functions. Eliminated ChangeNotify struct and related functions. 26 Jul 2002 Fixed functions in tkGeoMap.c to use the new TclGeoPlace interface. Deleted lone color option in "placeName drawbitmap mapName bitmapName color" Color must now be specified with option value pairs. (POTENTIAL INCOMPATIBILITY) Added updatePlace to use with TclGeoPlaceUpdateProc and deletePlace to use with TclGeoPlaceDeleteProc to keep geomaps up to date as geoplace move and go away. 27 Jul 2002 Minor formatting changes to tclGeoPlace.c and tclGeoLineArray.tcl, to bring them into compliance with the "Tcl/Tk Engineering Manual." Eliminated TclMsg interface. 28 Jul 2002 Replaced TclSubCmd struct's with separate arrays for subcommand names and callback procedures. Tcl_GetIndexFromObjStruct was putting garbled strings into error messages. Tcl_GetIndexFromObj seems to be work better with key arrays that grow. Deleted TclConcatSubCmds procedure. 29 Jul 2002 In "geolinearray fmascii", if descriptor is given as a number of lines, drop the final newline on the last line. Bug fixes for options with "fmascii" and "toascii." Added some tests. Copied all.tcl from tcl8.3 source to run the tests. 30 Jul 2002 Removed calls to GeoDistanceUnit in tclGeoPlace.c. Units are now handled with a switch after a call to Tcl_GetIndexFromObj. 31 Jul 2002 TclGeoProjDefaultId now returns the default projection identifier instead of copying it into char * argument. Removed support for OLD_CANVAS definition. 1 Aug 2002 Transfered functions from tkGeoMap.[ch] and removed tkGeoMap.[ch]. There is no more need for separate interfaces since there is only the canvas item now. 2 Aug 2002 Added TclGeoLnArrName procedure. Replaces TkGeoMapUpdateLines and TkGeoMapUpdatePlaces with updateGeoMap, which updates everything. Eliminated TkGeoMapFree and geoMapUpdate procedures. Their code is used only once, so now it is in line. Removed tkwin member of GeoMapItem struct. It can be obtained from the canvas. Removed itemPtr member of GeomapObj struct. GeoMapItem is now identified in parameter list when needed. Changed parameter lists for lnArrToPixmap and placeToPixmap to resemble displayGeoMap function. Changed parameter lists for lnArrToPostscript and placeToPostscript to resemble geoMapToPostscript function. Changed declarations of type "struct Name {};" to "typedef struct {} name;" 3 Aug 2002 Created GeoMapKey structure and makeKey and getGeoMapFromObj functions. 4 Aug 2002 Changed variable names for coordinates for consistency. Now prefix 'map' denotes map coordinates and 'dw' denotes drawable coordinates. Map coordinates refers to lat-lon's that have been projected and rotated but not scaled. In other words, they are coordinates on a plane, cone, cylinder, or some other 2D figure tangent to or near the spherical Earth. 6 Aug 2002 Added canvas tags option. Bug fix to 'geoplace nearest' callback procedure. 7 Aug 2002 Modified drawDot procedure so that a dot is drawn whenever the command is called, unless explicit overridden with "-size 0". If no command line options are given, there is no further processing. Fields in the GeoMapPlace structure are left alone, where before they were set to defaults. (Bugfix) Changed required number of arguments for drawtext from 3 to 4. (Bugfix) listPlaces uses the new token keys instead of string keys. Added TclGeoPlaceName procedure. 10 Aug 2002 Replace TclGeoProjUse and TclGeoProjRelease with TclGeoProjAddUpdateTask and TclGeoProjCnxUpdateTask. Eliminated reference counts for TclGeoProj structure. Now a projection is said to be in use if there are update tasks assigned to it. 11 Aug 2002 Moved GeoProj struct into geoProj.h. Added prefixes to structure type names to prevent interference with other declarations. Changed proj member of TclGeoProj structure from struct GeoProj * to struct GeoProj (i.e. it is now a struct, not a pointer). (Potential incompatibility) Removed GeoProjCopy and copy callback. 12 Aug 2002 Eliminated geoProjFreeAll function. Eliminated cmdTable (subcommand table) from tclGeoProj.c. Subcommands are sought with Tcl_GetIndexFromObj. Replaced strcmp calls in setProj with Tcl_GetIndexFromObj search. In tclGeography.c, replaced SL_MALLOC and SL_FREE with calls to ckalloc and ckfree. 13 Aug 2002 Eliminated "REarth" Tcl variable. 14 Aug 2002 Eliminated all remaining instances of SL_MALLOC, SL_REALLOC, and SL_FREE. Replaced '#include "sl_alloc.h"' with '#include '. Removed sl_alloc.h from Makefile.in and Makefile.ez. Added tclgeomap to default build. Replaced calls to Tcl_Alloc, Tcl_Realloc, and Tcl_Free with calls to ckalloc, ckrealloc, and ckfree for memory that is not sent to Tcl. (Potential incompatibility) GeoProjDescriptor now returns descriptor instead of copying it into argument. GeoProjInit now returns void. If there is a failure, program quits. Eliminated GeoDistance unit function. 15 Aug 2002 Eliminated opaque pointer for GeoProj. GeoProj type is now "struct GeoProj" instead of "struct GeoProj *". Eliminated opaque pointers for GeoLn and GeoLnArr. GeoLn type is now "struct GeoLn" instead of "struct GeoLn *" and GeoLnArr type is now "struct GeoLnArr" instead of "struct GeoLnArr *". Eliminated opaque pointers for MapLn and MapLnArr. MapLn type is now "struct MapLn" instead of "struct MapLn *" and MapLnArr type is now "struct MapLnArr" instead of "struct MapLnArr *". Deleted lines.h 21 Aug 2002 GeoLnSetAlloc, GeoLnAddPt, GeoLnArrSetDescr and GeoLnArrSetAlloc now return void. 23 Aug 2002 Moved storage of projection parameters from union to 'void *'. 24 Aug 2002 Removed distance calculation from latLonToLambrtEqArea. Sinusoidal procedure keeps center of map at Equator. Changed formats in projection descriptors. 25 Aug 2002 (Bug fix) Added calls to TclGeoPlaceCnxUpdateTask and TclGeoPlaceCnxDeleteTask geoMapRmPlace. Created tkcanvgeomap.test. MapLnSetAlloc, MapLnAddPt, MapLnArrSetDescr, MapLnArrSetAlloc, MapLnArrAddLine and MapLnArrPutLine now return void. 27 Aug 2002 Moved declaration for GeoLnArrToMapLnArr from geoLnArrToMap.h to geoLines.h. 28 Aug 2002 Removed clipping region calls from displayGeoMap procedure. Now geomap item is drawn into a temporary pixmap. 1 Sep 2002 When converting geolinearrays to maplinearrays, segments are now clipped and wrapped manually instead of with masking. 2 Sep 2002 Added offPole function. LambertEqArea returns undefined for point further than 90.0 degrees from reference point. Removed bndry member and references from GeoMapItem structure. Inserted __WIN32__ blocks from John Vidolich. 3 Sep 2002 Changed structure type and procedure names for tcl and tk packages to conform to the Tcl/Tk Engineering Manual. (Potential incompatibility) Changed the following package names: "tclgeography" to "geography", "tclgeoproj" to "geoproj", "tclgeolinearray" to "geolinearray", and "tkcanvgeomap" to "geomap". Renamed tclGeoLineArray.c to tclGeolinearray.c Renamed tclGeoLineArray.h to tclGeolinearray.h Renamed tclGeoPlace.c to tclGeoplace.c Renamed tclGeoPlace.h to tclGeoplace.h Renamed tclGeoProj.c to tclGeoproj.c Renamed tclGeoProj.h to tclGeoproj.h Renamed tkCanvGeoMap.c to tkGeoMap.c Renamed tkCanvGeoMap.h to tkGeoMap.h Renamed tkCanvGeoMap.h to tkGeomap.h Moved GC's from GeoMapItem to GeoMapLines and GeoMapPlace structures. Instead of modifying GC's with XChangeGC, now they are taken from Tk's GC cache. 4 Sep 2002 Changed TclNameSpace function to TclUtilNameSpace. Changed TclFullName function to TclUtilFullName. 'geoplace erase' no longer returns error if asked to erase place from a geomap not displaying it. (Bug fix) Fixed parameter order in displayPlace definition. Added local versions of ckalloc, ckrealloc, and ckfree to geography.[ch] to use if compiling without Tcl. 5 Sep 2002 Added _ANSI_ARGS_ macro and K&R style declarations to generic source files. Deleted unused GCircleXLatCircle function. 6 Sep 2002 Replaced calls to XDrawPoint with calls to XFillRectangle (for Windows compatibility). Deleted GeoProjUseLonDomain and GeoProjIgnoreLonDomain functions. 10 Sep 2002 Changed internal representation of lat's and lon's from float degrees to integer microdegrees. 11 Sep 2002 Changed GeoStep, Azimuth, GeoDistance and SetProjection functions to always take and return integer microdegree angles. Bug fixes in geoLnArrToCylMap. 12 Sep 2002 Made Stereographic into a hemispheric projection. Minor adjustments to DomainLon and GwchLon procedures. 13 Sep 2002 Eliminated GeoLnArrToMapLnArr function. 19 Sep 2002 Added -glob, -regexp, and -nocase options to 'geolinearray list' and 'geoplace list' commands. Added calls to use XDrawPoint for one pixel dots if not WIN32. Created Angle data type to represent internal storage of an angle. The Angle data type declared to be an integer, for number of microdegrees. Changed DegCmp function to AngleCmp. 20 Sep 2002 Added BadAngle, AngleIsOK, AngleIsBad functions to indicate bad angles. AngleFmDeg, AngleFmRad, GeoPtSetDeg, and GeoPtSetRad return values with BadAngle() if any arguments are out of range. 23 Sep 2002 Added DomainLat function and latdomn command. Renamed tkCanvGeoMapProcs.tcl to tkGeoMap.tcl. (Potential incompatibility) Renamed tkCanvGeoMapProcs package to tkGeoMap. Added tclGeoMap.tcl, which provides the tclGeoMap package. Put procedures in tkGeoMap.tcl into tkGeoMap namespace. 24 Sep 2002 Added named compass directions to allowed geomap rotation values. 25 Sep 2002 Added "global" or "hemispheric" qualifier to projection descriptors. 27 Sep 2002 Created oceanBnds procedure. Spelled out option names in the man pages. (Bug fix) Eliminated spurious error message when setting layer to "top" or "bottom." Added reference to tkcanvgeomap in tclgeolinearray and tclgeoplace man pages. COPYING file acknowledges different authors and license terms in xdr directory. Documented LatDomain function. 30 Sep 2002 Capitalized element names in actionMap params array. Added macros to header files so that they can be compiled with C++. Diversified names of struct's and pointers to struct's to prevent C++ error messages. 1 Oct 2002 Bug fixes in actionMap procedure. 2 Oct 2002 Added actionMapSet procedure. 3 Oct 2002 Added lineCoords procedure. 4 Oct 2002 Removed MapPtSet procedure. Formatting changes in generic. 5 Oct 2002 Deleted unused and undocumented MapLnCreateFmPts function. 8 Oct 2002 Added Tclgeolinearray_Get procedure. 11 Oct 2002 Added custom options for GeoLnArrItem lineStyle and shape. 14 Oct 2002 (Bug fix) If canvas is unmapped, draw all lines in a geolinearray item. 17 Oct 2002 Replaced Tk_Uid's with strings in geolinearray item. 18 Oct 2002 Added geoLnArrToArea function. (Bug fix) Lots of bug fixes in tkgeolinearray.c to manage configuration and updates. Adjusted compile line for tkTrig.c to use Tk and X headers. Removed redundant hypot function. It seems to be part of the standard now(?). (Bug fix) Moved unreachable statement in parseRefPtOption. (Bug fix) Added some initializers. 19 Oct 2002 (Bug fix) Moved some initializers. Modified cvsToLatLon and latLonToCvs proc's to use with geolinearray items. Modified setProj proc to use with geolinearray items. 20 Oct 2002 (Bug fix) Now checking for NULL arguments in Tcl_GeoProjGet and GeoLnArrToMap. 21 Oct 2002 Added TK_CONFIG_NULL_OK to configuration for geoLnArrNm and projId. Adjusted config function accordingly. Removed actionMap and related procedures. 22 Oct 2002 Created geoLnArrToPostscript function. Created parseGeoLnArrOption and printGeoLnArrOption to process '-geolinearray' configuration option. (Bug fix) Changed deleteFmToken to call canvas 'delete command', which ensure the entire item is deleted. Previously, it just called the deleteProc, which disabled but did not delete the item. Added NULL checking to Tclgeolinearay_Name. Replaced deleteFromToken with geoLnArrForget, which removes the deleted array from the item, but does not delete the item. Changed option names for geolinearray item to match standard Tk options, where possible. Simplified boundary circle management. Changed cvsToLatLon and latLonToCvs to take cvs and tagOrId as arguments. 24 Oct 2002 Cursor becomes a watch when recomputing projection. 25 Oct 2002 Eliminated tkcanvgeomap item. 26 Oct 2002 Eliminated Tclgeoplace_Get function with namespace argument. Renamed geoPlaceGet as Tclgeoplace_Get. Thus, Tclgeoplace_Get is now simpler. 30 Oct 2002 Eliminated Tclgeoplace_AddGeoplaceSubCmds, Tclgeoplace_AddPlcCmdSubCmds, Tclgeolinearray_AddGLSubCmds and Tclgeolinearray_AddArrSubCmds functions. 31 Oct 2002 Created geoPlaceUpdate function and arranged to call it when a geoplace moves. 2 Nov 2002 Simplified man pages so that they do not use so many macros. This will simplify generation of html documentation. Replaced tkcanvgeomap.test with tkgeolinearray.test for testing geolinearray canvas item. 4 Nov 2002 Put all man pages into single doc directory. Rewrote install.sh as a Tcl script that identifies required links automatically (assuming commands are listed on one line with a '\-' in the NAMES section). Changed LatLonObj type to GeoPtObj. 5 Nov 2002 (Potential incompatibility) Eliminated bitmap background color. Now bitmaps use a clip mask set to the bitmap so that only non-zero pixels are drawn while the background shows through. 6 Nov 2002 (Potential incompatibility) Eliminated bitmap option from geolinearray item. It has more complexity than I want to deal with right now. Changed package names tclGeoMap and tkGeoMap to tclgeomap and tkgeomap, respectively. Made command names in these packages lower case. 7 Nov 2002 Added Ptr suffix to some variable names. (Bug fix) When reconfiguring, save copies of string contents, not the string addresses (which become invalid if string changes). Eliminated unused GeoLnArrXFn member and access functions. (Bug fix) Reworked updateCvs calls. Deleted Sinusoidal projection. It involves a lot of bookkeeping that I will deal with later. 10 Nov 2002 Tclgeolinearray_Add returns a TclGeoLnArr. (Potential incompatibility) Tclgeolinearray_Add does not add qualifiers to its array name argument. (Potential incompatibility) Tclgeolinearray_Get does not add qualifiers to its array name argument. 12 Nov 2002 Added tclgeomap::fillsegment procedure. Restored automatic namespace qualifiers on new geolinearray and geoplace names. 13 Nov 2002 (Bug fix) Added some padding to geolinearray bounding box. 6 Jan 2003 Minor corrections to source documentation. Renamed FreeMapPt to freeMapPt. Added USE_COMPAT_CONST to reduce warnings when compiling for Tcl/Tk 8.4. 19 Jan 2003 (Bug fix) createPlace assumes given place name is either global or fully qualified. This prevents TclUtilFullName from being called with its return value as its name argument. 20 Jan 2003 Replaced "-style" option for geolinearray item with "-dash" and "-dashoffset" using code lifted from Tk source. Some of this uses Tk struct members directly, so it might require modification in future versions. 21 Jan 2003 (Bug fix) Added some gsave and grestore calls to geolinearray Postscript code. Changed -dotsize option from TK_CONFIG_INT to TK_CONFIG_PIXELS. Replaced calls to XFillRectangle with XFillArc so dots on geolinearray items are circular. 22 Jan 2003 (Bug fix) Added calls to XFillRectangle for 1 pixel dots, because XFillArc does not go down to that size. Allowed negative line width or "none" to indicate no lines. 27 Jan 2003 (Potential incompatibility) Consolidated packages into tclgeomap and tkgeomap. Renamed runtime packages as tclgeomap_procs and tkgeomap_procs. 28 Jan 2003 Consolidated headers into tclgeomap.h and tkgeomap.h. Moved functions in tclUtil.c into tclgeomap.c. Deleted tclUtil.c. 29 Jan 2003 Moved functions copied from tkTrig.c and tkUtil.c in tk8.3.0 source into their own files. This clarifies the copyright notices. (Potential incompatibility) Renamed package commands: georadius -> ::geomap::georadius latlonok -> ::geomap::latlonok mapptok -> ::geomap::mapptok lonbtwn -> ::geomap::lonbtwn gclcross -> ::geomap::gclcross rotatpt -> ::geomap::rotatpt scalept -> ::geomap::scalept domnlonpt -> ::geomap::domnlonpt domnlat -> ::geomap::domnlat domnlon -> ::geomap::domnlon gwchpt -> ::geomap::gwchpt gwchlon -> ::geomap::gwchlon dmstodec -> ::geomap::dmstodec dectodm -> ::geomap::dectodm dectodms -> ::geomap::dectodms cartg -> ::geomap::cartg geolinearray -> ::geomap::lnarr geoplace -> ::geomap::place geoproj -> ::geomap::projection Renamed "geolinearray" item type as "geomap_lnarr" and "-geolinearray" configuration option to "-lnarr". Renamed "geoplace" item type as "geomap_place" and "-geoplace" configuration option to "-place". Namespace qualifiers are no longer added to -lnarr value. If linearray is in a namespace, qualifiers must be added explicitly. "geomap::place new" and "geomap::place set" command no longer automatically add namespace qualifiers. Eliminated TclUtilFullName function. 30 Jan 2003 Changed prefixes of global functions to Tclgeomap_ or Tkgeomap_. Moved contents of tkgeomapTrig.c into tkgeomapUtil.c and deleted tkgeomapTrig.c. Moved declarations into tkgeomapInt.h. Created tkgeomapInt.h with unexported global declarations. Moved functions from tkgeomapUtil.c into tkgeomap.c and deleted tkgeomapUtil.c. Moved functions from tclgeography.c into tclgeomap.c and deleted tclgeography.c. Renamed files: tclgeolinearray.c -> tclgeomapLnArr.c tclgeoplace.c -> tclgeomapPlace.c tclgeoproj.c -> tclgeomapProj.c tkgeolinearray.c -> tkgeomapLnArr.c tkgeoplace.c -> tkgeomapPlace.c Moved contents of geoCmp.c into geography.c and geoCmp.h into geography.h. Deleted geoCmp.c and geoCmp.h. Moved contents of rotation.c into geography.c and rotation.h into geography.h. Deleted rotation.c and rotation.h. 31 Jan 2003 Added tkgeomap_procs.n man page. Moved contents of tkgeolinearray.n and tkgeoplace.n into tkgeomap.n. Added tclgeomap_procs.n man page. Moved contents of tclgeolinearray.n and tclgeoplace.n into tclgeomap.n. 1 Feb 2003 Moved contents of geoCmp.3 and rotation.3 into geography.3. Deleted geoCmp.3 and rotation.3. 3 Feb 2003 Merged tclgeography.3 tclgeolinearray.3 tclgeoplace.3 tclgeoproj.3 man pages into tclgeomap.3. This makes the man page hierarchy match the header file hierarchy. 10 Feb 2003 Removed TclgeomapPlace parameter from Tclgeomap_PlaceUpdateProc and Tclgeomap_PlaceDeleteProc function types. 14 Feb 2003 (Potential incompatibility) Eliminated Tclgeomap_DefaultProjId function. (Potential incompatibility) "geomap::projection new" is gone. "geomap::projection" creates a command used to access and use the projection whose subcommands are "set", "info", "fmlatlon", and "tolatlon". The projection is deleted by deleting its command. (Potential incompatibility) Eliminated rm and list from projection subcommands. 24 Feb 2003 Updated geomap_lnarr and geomap_place items to use the new projection interface. 27 Feb 2003 Renamed Tclgeomap_DeleteLnArrProc as Tclgeomap_LnArrDeleteProc. 10 Mar 2003 Added -stipple option to geomap_lnarr items. 15 Mar 2003 Added draw_lnarr, draw_place, cvs_center, setrefpoint, setscale procedures. Modified setproj to automatically assume geomap tag. Added internal arrays to associate canvas widgets with map configurations. 16 Mar 2003 Created cvs_config command to consolidate calls to setrefpoint, setscale, and setproj. Moved grids and oceans procedures to tclgeomap_procs.tcl. Changed their names to grid_list and ocean_list. 19 Mar 2003 Added cvs_new command to initialize canvas map configuration. Put setrefpoint, setscale, and setproj bodies into cvs_config. Eliminated tagOrId argument from setproj, which now gets configuration from internal variables set with cvs_config. (bug fix) geoLnArrToPoint procedure assumes unfilled line is always a line, never a closed polygon, even if its endpoints match. 25 Mar 2003 Removed the cvs_new procedure. Now the configuration is created if needed by the cvs_config procedure. 1 Apr 2003 (Potential incompatibility) Deleted TclgeomapCurrNmSpc function. Deleted functions that depend on it: 'geomap::lnarr list' and 'geomap::place list'. Modified functions that might use it: 'geomap::place azrng', 'geomap::place distance', 'geomap::place inrange', and 'geomap::place nearest'. 3 Apr 2003 Added -clip option to geomap_lnarr and geomap_place items. 8 Apr 2003 Replaced GeoPtSetDeg and GeoPtSetRad with GeoPtFmDeg and GeoPtFmRad functions. 10 Apr 2003 (Potential incompatibility) Eliminated "lnArr limits" subcommand. (Potential incompatibility) Replaced GeoLnNPts, GeoLnNPtsMax, GeoLnLatMax, GeoLnLatMin, GeoLnLonMax, and GeoLnLonMin with single GeoLnGetInfo function. (Potential incompatibility) Replaced GeoLnArrNLines, GeoLnArrNLinesMax, GeoLnArrNPts, GeoLnArrNMax, GeoLnArrLatMax, GeoLnArrLatMin, GeoLnArrLonMax, and GeoLnArrLonMin with single GeoLnArrGetInfo function. Replaced geomap::cvs_recenter with geomap::cvs_coords procedure. (Bug fix) Check for empty text string before sending postscript. (Bug fix) Added newpath directive before creating arc. 11 Apr 2003 (Potential incompatibility) Replaced MapLnNPts, MapLnNPtsMax, MapLnOrdMax, MapLnOrdMin, MapLnAbsMax, and MapLnAbsMin with single MapLnGetInfo function. (Potential incompatibility) Replaced MapLnArrNLines, MapLnArrNLinesMax, MapLnArrNPts, MapLnArrNmax, MapLnArrOrdMax, MapLnArrOrdMin, MapLnArrAbsMax, MapLnArrAbsMin with single MapLnArrGetInfo function. 15 Apr 2003 Added "center" as allowed argument for geomap::coords 16 Apr 2003 Deleted -clip option. 17 Apr 2003 (bug fix) Now take account of border when computing canvas center (when stating width and height, winfo includes border, configure does not) (bug fix) Added code to ensure configuration and coords are initialized when calling geomap::draw_lnarr and geomap::draw_place. Added geomap::LockProj variable to make it possible to avoid some spurious updates. 18 Apr 2003 Added geomap::cget command. 1 May 2003 Created CanvasMap megawidget. 3 May 2003 Added projection and Configure bindings to CanvasMap megawidget. 7 May 2003 Created IGeoMap megawidget. Added rotation menu to IGeoMap megawidget. 9 May 2003 Replaced CanvasMap component of IGeoMap megawidget with just a canvas and adjusted procedures and bindings. Deleted CanvasMap megawidget. Replaced margins list with individual configuration options for each margin. 10 May 2003 Added -update option to IGeoMap megawidget. Replaced draw_lnarr and draw_place megawidget commands with 'draw lnarr' and 'draw place'. 11 May 2003 Fixed some bugs getting initial size of map_canvas widget in igeomap megawidget. Deleted configure, cget, coords, draw_lnarr, draw_place procedures in tkgeomap_procs. They have been superseded by the igeomap megawidget. 12 May 2003 Added xytolatlon and latlontoxy methods to igeomap megawidget. 21 May 2003 Added bogus geomap_place item so latlontoxy and xytolatlon will always work. Added -frozen option. 25 May 2003 (bug fix) Removed call to hide from forgetProj. It was causing crashes during shutdown. Modified draw procedure so that if item for the linearray or place already exists, the old item is reconfigured instead of a new one being created. Changed email address to tkgeomap@users.sourceforge.net. Added erase procedure. 26 May 2003 (bug fix) Correct fix for the bug fix of 25 May. Added call to Tclgeomap_CnxProjDeleteTask when deleting place item. (bug fix) Added call to hide when deleting geomap_lnarr item. 28 May 2003 Projection and Scale menu are hidden when empty. 29 May 2003 Changed procedure names latlontocvs to latlontoxy and cvstolatlon to xytolatlon. 30 May 2003 Added boundcirclecolor option. 2 Jun 2003 Divided igeomap into mapcanvas and igeomap megawidgets. The mapcanvas is much simpler. 3 Jun 2003 Simplified the -projection option for the MapCanvas mega-widget. It no longer makes bindings. Bindings for projections are now set by the -projname option of the igeomap megawidget. Added itemconfigure, itemcget, and itembind methods to mapcanvas mega-widget. Added bind method to mapcanvas mega-widget. Added Lock selection to igeomap projections menu. 4 Jun 2003 Added File->Postscript selection to igeomap. (bug fix) Check for map point gone nowhere before generating postscript for a place. (bug fix) Check for no line thickness before generating postscript for a lnarr. Deleted borderwidth and relief option from mapcanvas. It was making it too difficult to find the center of the window. Now center is always found using winfo. Added coords, delete, raise, lower, bbox, addtag, dtag, and find methods to mapcanvas. 5 Jun 2003 Eliminated -frozen option to igeomap. Added -modifier option. Added addmenu and deletemenu methods. 9 Jun 2003 Removed -projection option from MapCanvas. Now MapCanvas has -projname option that gets additional parameters from refpoint. 10 Jun 2003 Simplified projection descriptors. Coords can be specified as {x y} as well as x and y. 15 Jun 2003 Added configure and cget commands to transform command. 18 Jun 2003 Added "fmlatlon lnarr lnArrName" command to transform command. 19 Jun 2003 Removed transform command from package. It is too slow. 20 Jun 2003 Created geomap::mapcanvas procedure in tclgeomap_procs. This procedure is like the geomap::mapcanvas procedure in itkgeomap_procs, except that is does not require [incr tk]. 22 Jun 2003 Created geomap::igeomap procedure in tclgeomap_procs. This procedure is like the geomap::igeomap procedure in itkgeomap_procs, except that is does not require [incr tk]. 23 Jun 2003 In mapcanvas configuration and cget proc's, if option not known to map configuration, send it to the canvas. mapcanvas xytolatlon and latlontoxy procedures now accept list input. Added -catch option to xytolatlon and latlontoxy. 24 Jun 2003 Changed rotation option so that cget::rotation returns a double value. Adjusted map labels accordingly. Added Postscript menu to igeomap. 25 Jun 2003 Man pages are now installed without links for each command. This prevents geomap man pages from clobbering others. 30 Jun 2003 Added util directory with shape.tcl and awips_tkgm.tcl. Added code for shptobin. Added interstate highways to ptiger. 1 Jul 2003 Added usgs_gaz package. Now it generates weird but non-conflicting place names. 28 Jul 2003 Command returned by geomap::projection is in geomap namespace, i.e. name has form ::geomap::proj0, ::geomap::proj1, etc. 13 Aug 2003 (bug fix) Corrected type specifier in mapcanvas draw procedure. 14 Aug 2003 (bug fix) Removed place and lnarr tags from mapcanvas items, and adjusted later searches. It was causing errors in Boolean expressions with certain place names. (bug fix) mapcanvas erase procedure checks for type instead of tag. ************ Changes from 2.0 to 2.1 ************ 18 Aug 2003 Added Colors menu to igeomap widget. 19 Aug 2003 Made Colors menu a configuration option. ************ Changes from 2.1 to 2.1.1 ************ 26 Aug 2003 Deleted "Apply" button from color dialog in igeomap widget. Now changes take effect immediately. ************ Changes from 2.1.1 to 2.1.2 ************ 2 Sep 2003 (bug fix) Ensured color button path names are always lower case. ************ Changes from 2.1.2 to 2.1.3 ************ 4 Sep 2003 igeomap Colors menu Save button puts color values on a line that starts with "Colors" followed by a dump of the colorval array. ************ Changes from 2.1.3 to 2.1.4 ************ 9 Sep 2003 (bug fix) Added refpoint variable to mapcanvas cget procedure. ************ Changes from 2.1.4 to 2.1.5 ************ 29 Sep 2003 Buttonrelease does not reset reference longitude if map has not dragged. ************ Changes from 2.1.5 to 2.1.6 ************ 17 Oct 2003 Changed shared object name from libtcl to libtkgeomap in the link command. 18 Oct 2003 (bug fix) Added lineGC to some deletion procedures. (bug fix) Check for lineColor == None before reconfiguring. ************ Changes from 2.1.6 to 2.1.7 ************ (potential incompatibility) Dash option uses conventional X definition with -dashes and -linestyle options instead of pillaging Tk code. ************ Changes from 2.1.7 to 2.1.8 ************ Beautified the color selection dialog. ************ Changes from 2.1.8 to 2.1.9 ************ Improved graphics context management for geomap_places. geomap::circle procedure makes counterclockwise circle instead of clockwise. ************ Changes from 2.1.9 to 2.1.10 ************ (bug fix) Corrected method of computing place coordinates and bounding box when place is not in display. (bug fix) Modified hide functions so that they do not affect map coordinates. Now they only update the canvas coordinates. ************ Changes from 2.1.10 to 2.2 ************ Moved functions from tkTrig.c into local file of same name. (bug fix) Added dashes and line width to linearray postscript proc. Added -smooth and -splinesteps options to geomap_lnarr items. 12 Dec 2003 Added dump option to coords procedure. 13 Dec 2003 Added version command. 14 Dec 2003 Switched to Apache Software License. ************ Changes from 2.2 to 2.3 ************ 28 Dec 2003 Switched to GPL. ************ Changes from 2.3 to 2.4 ************ 11 Feb 2004 Changed configure and build to comply with Tcl Extension Architecture. 13 Feb 2004 Replaced libdir/$package with pkglibdir as destination for package libraries in mkIndex.tcl and Makefile. pkglibdir is now determined by configure instead of Makefile. This makes it possible to add a version suffix to the package library. Added PACKAGE_CFLAGS to compile macro. (bug fix)(?) Replaced bindir with libdir in RANLIB line for static library installation. Libraries go into lib, not bin. Changed installation order so that package independent libraries are copied into package library directory before index is made. 14 Feb 2004 Changed mkIndex.tcl so that index applies only to tclgeomap package instead of all packages in library directory. Reversed search order for Tcl application so that configure looks for the most recent version. 17 Feb 2004 configure.in looks for tclsh with version number taken from tclConfig.sh. 18 Feb 2004 Removed install_hdr.sh, not used by configure for Tcl Extension Architecture. Separated build trees for tclgeomap and tkgeomap. Added a make variable and macro to use it because FreeBSD make apparently does not do double substitutions. 23 Feb 2004 (bug fix) Moved memory free blocks in linearray commmand. Changed file descriptor to long to match size of ClientData *. This undesirable cludge prevents bugs on 64 bit machines. ************ Changes from 2.4 to 2.5 ************ 24 Mar 2004 Added a script to the configure process that runs tclsh and searches the auto_path directories for tclConfig.sh. Added TCL_INCLUDE_SPEC substitution to configuration. Added some more directories to search for tcl.h. (Potential incompatibility) Eliminated superfluous structure member access interfaces. 26 Mar 2004 In configure, forced re-evaluation of compiler variables with a call to SC_CONFIG_CFLAGS. This is because tclConfig.sh sometimes sets variables to values specific to Tcl instead of for the extension (specifically SHARED_LIB_SUFFIX on FreeBSD). Also replaced assignment to LIBOBJS with call to AC_LIBOBJ in response to a warning from auto_conf. Modified header installation. Now header files are placed in pkgincludedir and soft linked to includedir. Thus for a default installation, the header files will go to /usr/local/include/tclgeomap2.5, with soft links in /usr/local/include. Added some search paths to configure. 27 Mar 2004 Removed header file soft links from installation. The header files go to /usr/local/include/tclgeomap2.5. That's it. 28 Mar 2004 Replaced call to SC_CONFIG_CFLAGS with a code excerpt in configure.in that just sets SHARED_LIB_SUFFIX and SHLIB_SUFFIX. 31 Mar 2004 Changed search order for some directories so configure searches private directories first. Rearranged configure to use TCL_PREFIX from tclConfig.sh in absence of --prefix option. ************ Changes from 2.5 to 2.5.1 ************ Version number changed to keep synchronized with tkgeomap release. ************ Changes from 2.5.1 to 2.5.2 ************ Version number changed to keep synchronized with tkgeomap release. ************ Changes from 2.5.2 to 2.5.3 ************ Version number changed to keep synchronized with tkgeomap release. ************ Changes from 2.5.3 to 2.5.4 ************ Version number changed to keep synchronized with tkgeomap release. ************ Changes from 2.5.4 to 2.5.5 ************ Made it easier to bypass Tcl allocator. ************ Changes from 2.5.5 to 2.5.6 ************ Cleaned up code that makes it easier to bypass Tcl allocator. ************ Changes from 2.5.6 to 2.6 ************ Replaced GPL with Open Software License. Changed contact email to user0@tkgeomap.org. Removed standard allocators. Geography now uses Tcl allocators exclusively. ************ Changes from 2.6 to 2.6.1 ************ Changed version number to stay synchronized with tkgeomap release. ************ Changes from 2.6.1 to 2.6.2 ************ Changed to Haversine distance calculation algorithm. ************ Changes from 2.6.2 to 2.7 ************ Changed version number to remain synchronized with tkgeomap release. Added projections and proj_info procedures. Moved ProjRef and ProjDomain arrays to tclgeomap_procs package. ************ Changes from 2.7 to 2.8 ************ Changed version number to remain synchronized with tkgeomap release. ************ Changes from 2.7 to 2.8 ************ Changed version number to remain synchronized with tkgeomap release. ************ Changes from 2.9 to 2.10 ************ Added GeoTime interface and geomap::time command. ************ Changes from 2.10 to 2.10.1 ************ Bug fix. ************ Changes from 2.10.1 to 2.10.2 ************ Updated build with Tcl Extension Architecture 3.2. ************ Changes from 2.10.2 to 2.11 ************ Changed version number to remain synchronized with tkgeomap release. ************ Changes from 2.11 to 2.11.1 ************ Changed version number to remain synchronized with tkgeomap release. ************ Changes from 2.11.1 to 2.11.2 ************ Changed seconds member of GeoTime_Jul to double. (Potential incompatibility) Changed signature GeoTime_JulToCal so that it puts the calendar time into an argument instead of sending it as a return value. This is because fractional seconds were being truncated when the return value was copied. Mysterious. This occured on Linux topataua 2.6.12-gentoo-r4 #1 Wed Jul 13 23:22:06 GMT 2005 x86_64 AMD Athlon(tm) 64 Processor 3200+ AuthenticAMD GNU/Linux with gcc (GCC) 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) CORRECTION. GeoTime_JulToCal has the same signature. Unable to reproduce the mysterious bug. Seconds are still stored as doubles, although the bug was appearing with double seconds yesterday (2007/04/19). ************ Changes from 2.11.2 to 2.11.3 ************ (bug fix) Fixed some memory leaks. ************ Changes from 2.11.3 to 2.11.4 ************ Added rotation member to projection structure. This supercedes the separate rotation structure, which is now deprecated. (Potential incompatibility) Removed separate Rotation structure. Rotations are now part of a projection. In tclgeomap, rotation is set with a subcommand to the projection command. (Bug fix) Made rotation angle follow geography convention instead of trigonometric. (Bug fix) When rotating a point, compute coordinates first, then assign them back to the point. Added Tclgeomap_LnArrToMap function. It converts geoline arrays to mapline arrays and saves the mapline array in a table for reuse.