Create dgnlib.h

/******************************************************************************
 * $Id: dgnlib.h,v 1.46 2006/01/25 18:43:19 kintel Exp $
 *
 * Project:  Microstation DGN Access Library
 * Purpose:  Definitions of public structures and API of DGN Library.
 * Author:   Frank Warmerdam, warmerdam@pobox.com
 *
 ******************************************************************************
 * Copyright (c) 2000, Avenza Systems Inc, http://www.avenza.com/
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 * DEALINGS IN THE SOFTWARE.
 ******************************************************************************
 *
 * $Log: dgnlib.h,v $
 * Revision 1.46  2006/01/25 18:43:19  kintel
 * B-Spline curve and surface support
 *
 * Revision 1.41  2005/12/19 15:37:18  fwarmerdam
 * Added CPL_DLL for some functions that were missing it.
 *
 * Revision 1.40  2005/12/18 22:10:12  kintel
 * Minor doc update
 *
 * Revision 1.39  2005/11/18 17:16:35  fwarmerdam
 * added TextNode implementation from Ilya Beylin
 *
 * Revision 1.38  2005/04/08 23:36:36  fwarmerdam
 * Fixed DGNJ_CENTER_CENTER value.
 *
 * Revision 1.37  2003/11/25 15:47:56  warmerda
 * Added surface type for complex headers: Marius
 *
 * Revision 1.36  2003/11/21 16:17:33  warmerda
 * fix missing handling of min/max Z in DGNCreateMultiPointElem()
 *
 * Revision 1.35  2003/11/19 05:26:19  warmerda
 * added DGNElemTypeHasDispHdr
 *
 * Revision 1.34  2003/11/07 13:59:45  warmerda
 * added DGNLoadTCB()
 *
 * Revision 1.33  2003/08/19 20:15:53  warmerda
 * Added support for Cone (23), 3D surface (18) and 3D solid (19) elements.
 * Added functions DGNQuaternionToMatrix() and DGNCreateConeElem().
 *   Marius Kintel
 *
 * Revision 1.32  2003/05/21 03:42:01  warmerda
 * Expanded tabs
 *
 * Revision 1.31  2003/05/15 14:47:24  warmerda
 * implement quaternion support on write
 *
 * Revision 1.30  2003/05/12 18:48:57  warmerda
 * added preliminary 3D write support
 *
 * Revision 1.29  2003/01/20 20:07:06  warmerda
 * added cell header writing api
 *
 * Revision 1.28  2002/11/13 21:28:23  warmerda
 * fix declaration order
 *
 * Revision 1.27  2002/11/13 21:26:32  warmerda
 * added more documentation
 *
 * Revision 1.26  2002/11/12 19:44:32  warmerda
 * added DGNViewInfo support
 *
 * Revision 1.25  2002/11/11 20:36:51  warmerda
 * fix justification list, added create related definitions
 *
 * Revision 1.24  2002/10/20 01:50:20  warmerda
 * added new write prototypes
 *
 * Revision 1.23  2002/10/07 13:14:18  warmerda
 * added association id support
 *
 * Revision 1.22  2002/10/07 12:56:04  warmerda
 * Added DGN_ASSOC_ID.
 *
 * Revision 1.21  2002/05/31 03:40:22  warmerda
 * added improved support for parsing attribute linkages
 *
 * Revision 1.20  2002/04/22 20:44:40  warmerda
 * added (partial) cell library support
 *
 * Revision 1.19  2002/03/14 21:38:52  warmerda
 * added DGNWriteElement, DGNResizeElement, make offset/size manditory
 *
 * Revision 1.18  2002/03/12 17:07:26  warmerda
 * added tagset and tag value element support
 *
 * Revision 1.17  2002/02/06 20:33:02  warmerda
 * preliminary addition of tagset support
 *
 * Revision 1.16  2002/01/21 20:50:12  warmerda
 * added SetSpatialFilter function
 *
 * Revision 1.15  2002/01/15 06:38:18  warmerda
 * added DGNGetShapeFillInfo
 *
 * Revision 1.14  2001/12/19 15:29:56  warmerda
 * added preliminary cell header support
 *
 * Revision 1.13  2001/08/21 03:01:39  warmerda
 * added raw_data support
 *
 * Revision 1.12  2001/06/25 15:07:51  warmerda
 * Added support for DGNElemComplexHeader
 * Don't include elements with the complex bit (such as shared cell definition
 * elements) in extents computation for fear they are in a different coord sys.
 *
 * Revision 1.11  2001/03/18 16:54:39  warmerda
 * added use of DGNTestOpen, remove extention test
 *
 * Revision 1.10  2001/03/07 19:29:46  warmerda
 * added support for stroking curves
 *
 * Revision 1.9  2001/03/07 13:56:44  warmerda
 * updated copyright to be held by Avenza Systems
 *
 * Revision 1.8  2001/03/07 13:48:59  warmerda
 * added DGNEIF_DELETED
 *
 * Revision 1.7  2001/02/02 22:20:15  warmerda
 * document DGNElemText, length/height_mult now double
 *
 * Revision 1.6  2001/01/16 21:17:28  warmerda
 * added justification enum
 *
 * Revision 1.5  2001/01/16 18:12:02  warmerda
 * added arc support, color lookup
 *
 * Revision 1.4  2001/01/10 16:11:33  warmerda
 * added lots of documentation, and extents api
 *
 * Revision 1.3  2000/12/28 21:28:43  warmerda
 * added element index support
 *
 * Revision 1.2  2000/12/14 17:10:57  warmerda
 * implemented TCB, Ellipse, TEXT
 *
 * Revision 1.1  2000/11/28 19:03:47  warmerda
 * New
 *
 */