
		DGNLIB Source Distribution
		==========================

Current information on DGNLIB, including detailed API documentation
can be found at:

  http://gdal.velocet.ca/projects/dgn


Building
--------

This is a preliminary source distribution, and I have not gone to any
pains to make it easy to configure and build.  To build please do the 
following:

== Unix:

1. Update cpl_config.h to represent your platform accurately.  Generally all
that matters is to #define WORDS_BIGENDIAN on big endian platforms.  The
rest can likely be ignored.<p>

2. Compile the sample program.  On unix this can be accomplished something
like:

  % gcc dgndump.c *.cpp -lm -o dgndump

It is left as an excercise to the reader to figure out how to handle it on
Windows.

== Windows:

1. Ensure you have Microsoft Visual C++ 6.x or later installed.

2. Ensure the commandline VC++ environment is setup properly.  You may need
   to run the VCVARS32.BAT script from within the VC++ tree. 

3. Compile the code, and build statically linked executables for the sample
   programs and DLL using the following command.

   nmake /f makefile.vc



Release Notes
=============

Release 1.7
-----------

 o Improved calcuation of bounding box in DGLCreateTextElem() based on code
   from Matt Kelder. 

 o Added preliminary 3D write support. 

 o Modified DGNCreateTextElem() arguments, and deprecated DGNCreateArcElem2D()
   in favour of DGNCreateArcElem().

 o Report transformation matrix for ViewInfo when dumping.


Release 1.6
-----------

 o Bug fix in DGNGetLinkage() for DMRS recognition from Henk Jan Priester.

 o Added DGNCreateCellHeaderFromGroup() and DGNCreateCellHeaderElem() 
   functions in the write API.

 o Added a Microsoft VC++ makefile (Makefile.vc). 


Release 1.5
-----------

 o Added 2D write support!  

 o Fixed collection of background color in color table (color 255) as per
   bug report by Henk Jan Priester (Justcroft Technical Systems). 

 o Added support for association ids (DGNLT_ASSOC_ID, DGNGetAssocID()). 

 o Fixed problem with updating the DGNInfo.color_table field when a color
   table is read. 

 o Fixed problem with spatial queries either including all of a complex
   element (and it's members) or none. 

 o Added support for reading the eight view descriptions in the TCB element.

 o Added a Makefile in the source distribution.

 o Fixed error with tags in DGNFreeElement() as reported by Henk Jan Priester.



Release 1.4
-----------

 o Added "fast" spatial searching via the DGNSetSpatialFilter() function. 
   This basically just reads the extents information at beginning of 
   geometric features to see if they should be returned. 

 o Actually extract the global origin from the TCB, and use it when 
   transforming points.  Only a few files (ie. Brazos County roads.rds) use
   a non-zero origin.

 o Added experimental multi byte text support from Ason Kang
   (hiska@netian.com). 

 o Add experimental support for 3D files.  Somes 3d elements not supported. 
   3d quaterion for ellipse and arc elements not utilized. 

 o Added preliminary support for reading cell header structures based
   on input from Mike Cane. 

 o Moved a bunch of stuff into dgnread.cpp. 

 o Build default colortable into dgnhelp.cpp for use of DGNLookupColor(). 

 o Added DGNGetShapeFillInfo(). 

 o DGNGetShapeFillInfo() now tries to handle multi-part attribute linkages.


Release 1.3
-----------

 o Added raw_data/raw_bytes members of DGNElemCore, and DGNSetOptions()
   to allow control of when raw element image is retained. 

 o Added -r flag to dgndump to dump raw contents of desired elements. 

 o Add CPL_CVSID() to simplify tracking of versions. 

 o Fixed bug with freeing element index in DGNClose(). 


