dgnlib
|
00001 /****************************************************************************** 00002 * $Id: dgnlib.h 10645 2007-01-18 02:22:39Z warmerdam $ 00003 * 00004 * Project: Microstation DGN Access Library 00005 * Purpose: Definitions of public structures and API of DGN Library. 00006 * Author: Frank Warmerdam, warmerdam@pobox.com 00007 * 00008 ****************************************************************************** 00009 * Copyright (c) 2000, Avenza Systems Inc, http://www.avenza.com/ 00010 * 00011 * Permission is hereby granted, free of charge, to any person obtaining a 00012 * copy of this software and associated documentation files (the "Software"), 00013 * to deal in the Software without restriction, including without limitation 00014 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00015 * and/or sell copies of the Software, and to permit persons to whom the 00016 * Software is furnished to do so, subject to the following conditions: 00017 * 00018 * The above copyright notice and this permission notice shall be included 00019 * in all copies or substantial portions of the Software. 00020 * 00021 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00022 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00023 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00024 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00025 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00026 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00027 * DEALINGS IN THE SOFTWARE. 00028 ****************************************************************************/ 00029 00030 #ifndef _DGNLIB_H_INCLUDED 00031 #define _DGNLIB_H_INCLUDED 00032 00033 #include "cpl_conv.h" 00034 00035 CPL_C_START 00036 00037 #define CPLE_DGN_ERROR_BASE 00038 #define CPLE_ElementTooBig CPLE_DGN_ERROR_BASE+1 00039 00054 typedef struct { 00055 double x; 00056 double y; 00057 double z; 00058 } DGNPoint; 00059 00066 typedef struct { 00067 unsigned char level; 00068 unsigned char type; 00069 unsigned char stype; 00070 unsigned char flags; 00071 long offset; 00072 } DGNElementInfo; 00073 00085 typedef struct { 00086 int offset; 00087 int size; 00088 00089 int element_id; 00090 int stype; 00091 int level; 00092 int type; 00093 int complex; 00094 int deleted; 00096 int graphic_group; 00097 int properties; 00098 int color; 00099 int weight; 00100 int style; 00102 int attr_bytes; 00103 unsigned char *attr_data; 00105 int raw_bytes; 00106 unsigned char *raw_data; 00107 } DGNElemCore; 00108 00118 typedef struct { 00119 DGNElemCore core; 00120 00121 int num_vertices; 00122 DGNPoint vertices[2]; 00124 } DGNElemMultiPoint; 00125 00134 typedef struct { 00135 DGNElemCore core; 00136 00137 DGNPoint origin; 00139 double primary_axis; 00140 double secondary_axis; 00142 double rotation; 00143 int quat[4]; 00144 00145 double startang; 00146 double sweepang; 00148 } DGNElemArc; 00149 00160 typedef struct { 00161 DGNElemCore core; 00162 00163 int font_id; 00164 int justification; 00165 double length_mult; 00166 double height_mult; 00167 double rotation; 00168 DGNPoint origin; 00169 char string[1]; 00170 } DGNElemText; 00171 00183 typedef struct { 00184 DGNElemCore core; 00185 00186 int totlength; 00189 int numelems; 00190 int surftype; 00193 int boundelms; 00195 } DGNElemComplexHeader; 00196 00206 typedef struct { 00207 DGNElemCore core; 00208 00209 int screen_flag; 00210 GByte color_info[256][3]; 00211 } DGNElemColorTable; 00212 00213 typedef struct { 00214 int flags; 00215 unsigned char levels[8]; 00216 DGNPoint origin; 00217 DGNPoint delta; 00218 double transmatrx[9]; 00219 double conversion; 00220 unsigned long activez; 00221 } DGNViewInfo; 00222 00237 typedef struct { 00238 DGNElemCore core; 00239 00240 int dimension; 00242 double origin_x; 00243 double origin_y; 00244 double origin_z; 00246 long uor_per_subunit; 00247 char sub_units[3]; 00248 long subunits_per_master; 00249 char master_units[3]; 00251 DGNViewInfo views[8]; 00252 00253 } DGNElemTCB; 00254 00263 typedef struct { 00264 DGNElemCore core; 00265 00266 int totlength; 00269 char name[7]; 00270 unsigned short cclass; 00271 unsigned short levels[4]; 00273 DGNPoint rnglow; 00274 DGNPoint rnghigh; 00276 double trans[9]; 00277 DGNPoint origin; 00279 double xscale; 00280 double yscale; 00281 double rotation; 00282 00283 } DGNElemCellHeader; 00284 00293 typedef struct { 00294 DGNElemCore core; 00295 00296 short celltype; 00297 short attindx; 00298 char name[7]; 00300 int numwords; 00302 short dispsymb; 00303 unsigned short cclass; 00304 unsigned short levels[4]; 00306 char description[28]; 00308 } DGNElemCellLibrary; 00309 00318 typedef struct { 00319 DGNElemCore core; 00320 00321 int totlength; 00324 // FIXME: Most of the contents of this element type is currently 00325 // unknown. Please get in touch with the authors if you have 00326 // information about how to decode this element. 00327 } DGNElemSharedCellDefn; 00328 00329 typedef union { char *string; GInt32 integer; double real; } tagValueUnion; 00330 00339 typedef struct { 00340 DGNElemCore core; 00341 00342 int tagType; 00343 int tagSet; 00344 int tagIndex; 00345 int tagLength; 00346 tagValueUnion tagValue; 00348 } DGNElemTagValue; 00349 00355 typedef struct _DGNTagDef { 00356 char *name; 00357 int id; 00358 char *prompt; 00359 int type; 00360 tagValueUnion defaultValue; 00361 } DGNTagDef; 00362 00363 #define DGNTT_STRING 1 00364 #define DGNTT_INTEGER 3 00365 #define DGNTT_FLOAT 4 00366 00375 typedef struct { 00376 DGNElemCore core; 00377 00378 int tagCount; 00379 int tagSet; 00380 int flags; 00381 char *tagSetName; 00383 DGNTagDef *tagList; 00385 } DGNElemTagSet; 00386 00394 typedef struct { 00395 DGNElemCore core; 00396 00397 short unknown; 00398 int quat[4]; 00399 DGNPoint center_1; 00400 double radius_1; 00401 DGNPoint center_2; 00402 double radius_2; 00404 } DGNElemCone; 00405 00406 00417 typedef struct { 00418 DGNElemCore core; 00419 00420 int totlength; 00422 int numelems; 00423 int node_number; 00424 short max_length; 00425 short max_used; 00426 short font_id; 00427 short justification; 00428 long line_spacing; 00429 double length_mult; 00430 double height_mult; 00431 double rotation; 00432 DGNPoint origin; 00434 } DGNElemTextNode; 00435 00436 00444 typedef struct { 00445 DGNElemCore core; 00446 00447 long desc_words; 00450 unsigned char curve_type; 00451 unsigned char u_order; 00452 unsigned short u_properties; 00454 short num_poles_u; 00455 short num_knots_u; 00456 short rule_lines_u; 00458 unsigned char v_order; 00459 unsigned short v_properties; 00461 short num_poles_v; 00462 short num_knots_v; 00463 short rule_lines_v; 00465 short num_bounds; 00466 } DGNElemBSplineSurfaceHeader; 00467 00475 typedef struct { 00476 DGNElemCore core; 00477 00478 long desc_words; 00481 unsigned char order; 00482 unsigned char properties; 00483 unsigned char curve_type; 00484 short num_poles; 00485 short num_knots; 00486 } DGNElemBSplineCurveHeader; 00487 00495 typedef struct { 00496 DGNElemCore core; 00497 00498 short number; 00499 short numverts; 00500 DGNPoint vertices[1]; 00502 } DGNElemBSplineSurfaceBoundary; 00503 00511 typedef struct { 00512 DGNElemCore core; 00513 00514 float array[1]; 00517 } DGNElemKnotWeight; 00518 00519 00520 /* -------------------------------------------------------------------- */ 00521 /* Structure types */ 00522 /* -------------------------------------------------------------------- */ 00523 00525 #define DGNST_CORE 1 00526 00528 #define DGNST_MULTIPOINT 2 00529 00531 #define DGNST_COLORTABLE 3 00532 00534 #define DGNST_TCB 4 00535 00537 #define DGNST_ARC 5 00538 00540 #define DGNST_TEXT 6 00541 00543 #define DGNST_COMPLEX_HEADER 7 00544 00546 #define DGNST_CELL_HEADER 8 00547 00549 #define DGNST_TAG_VALUE 9 00550 00552 #define DGNST_TAG_SET 10 00553 00555 #define DGNST_CELL_LIBRARY 11 00556 00558 #define DGNST_CONE 12 00559 00561 #define DGNST_TEXT_NODE 13 00562 00564 #define DGNST_BSPLINE_SURFACE_HEADER 14 00565 00567 #define DGNST_BSPLINE_CURVE_HEADER 15 00568 00570 #define DGNST_BSPLINE_SURFACE_BOUNDARY 16 00571 00573 #define DGNST_KNOT_WEIGHT 17 00574 00576 #define DGNST_SHARED_CELL_DEFN 18 00577 00578 00579 /* -------------------------------------------------------------------- */ 00580 /* Element types */ 00581 /* -------------------------------------------------------------------- */ 00582 #define DGNT_CELL_LIBRARY 1 00583 #define DGNT_CELL_HEADER 2 00584 #define DGNT_LINE 3 00585 #define DGNT_LINE_STRING 4 00586 #define DGNT_GROUP_DATA 5 00587 #define DGNT_SHAPE 6 00588 #define DGNT_TEXT_NODE 7 00589 #define DGNT_DIGITIZER_SETUP 8 00590 #define DGNT_TCB 9 00591 #define DGNT_LEVEL_SYMBOLOGY 10 00592 #define DGNT_CURVE 11 00593 #define DGNT_COMPLEX_CHAIN_HEADER 12 00594 #define DGNT_COMPLEX_SHAPE_HEADER 14 00595 #define DGNT_ELLIPSE 15 00596 #define DGNT_ARC 16 00597 #define DGNT_TEXT 17 00598 #define DGNT_3DSURFACE_HEADER 18 00599 #define DGNT_3DSOLID_HEADER 19 00600 #define DGNT_BSPLINE_POLE 21 00601 #define DGNT_POINT_STRING 22 00602 #define DGNT_BSPLINE_SURFACE_HEADER 24 00603 #define DGNT_BSPLINE_SURFACE_BOUNDARY 25 00604 #define DGNT_BSPLINE_KNOT 26 00605 #define DGNT_BSPLINE_CURVE_HEADER 27 00606 #define DGNT_BSPLINE_WEIGHT_FACTOR 28 00607 #define DGNT_CONE 23 00608 #define DGNT_SHARED_CELL_DEFN 34 00609 #define DGNT_SHARED_CELL_ELEM 35 00610 #define DGNT_TAG_VALUE 37 00611 #define DGNT_APPLICATION_ELEM 66 00612 00613 /* -------------------------------------------------------------------- */ 00614 /* Line Styles */ 00615 /* -------------------------------------------------------------------- */ 00616 #define DGNS_SOLID 0 00617 #define DGNS_DOTTED 1 00618 #define DGNS_MEDIUM_DASH 2 00619 #define DGNS_LONG_DASH 3 00620 #define DGNS_DOT_DASH 4 00621 #define DGNS_SHORT_DASH 5 00622 #define DGNS_DASH_DOUBLE_DOT 6 00623 #define DGNS_LONG_DASH_SHORT_DASH 7 00624 00625 /* -------------------------------------------------------------------- */ 00626 /* 3D Surface Types */ 00627 /* -------------------------------------------------------------------- */ 00628 #define DGNSUT_SURFACE_OF_PROJECTION 0 00629 #define DGNSUT_BOUNDED_PLANE 1 00630 #define DGNSUT_BOUNDED_PLANE2 2 00631 #define DGNSUT_RIGHT_CIRCULAR_CYLINDER 3 00632 #define DGNSUT_RIGHT_CIRCULAR_CONE 4 00633 #define DGNSUT_TABULATED_CYLINDER 5 00634 #define DGNSUT_TABULATED_CONE 6 00635 #define DGNSUT_CONVOLUTE 7 00636 #define DGNSUT_SURFACE_OF_REVOLUTION 8 00637 #define DGNSUT_WARPED_SURFACE 9 00638 00639 /* -------------------------------------------------------------------- */ 00640 /* 3D Solid Types */ 00641 /* -------------------------------------------------------------------- */ 00642 #define DGNSOT_VOLUME_OF_PROJECTION 0 00643 #define DGNSOT_VOLUME_OF_REVOLUTION 1 00644 #define DGNSOT_BOUNDED_VOLUME 2 00645 00646 00647 /* -------------------------------------------------------------------- */ 00648 /* Class */ 00649 /* -------------------------------------------------------------------- */ 00650 #define DGNC_PRIMARY 0 00651 #define DGNC_PATTERN_COMPONENT 1 00652 #define DGNC_CONSTRUCTION_ELEMENT 2 00653 #define DGNC_DIMENSION_ELEMENT 3 00654 #define DGNC_PRIMARY_RULE_ELEMENT 4 00655 #define DGNC_LINEAR_PATTERNED_ELEMENT 5 00656 #define DGNC_CONSTRUCTION_RULE_ELEMENT 6 00657 00658 /* -------------------------------------------------------------------- */ 00659 /* Group Data level numbers. */ 00660 /* */ 00661 /* These are symbolic values for the typ 5 (DGNT_GROUP_DATA) */ 00662 /* level values that have special meanings. */ 00663 /* -------------------------------------------------------------------- */ 00664 #define DGN_GDL_COLOR_TABLE 1 00665 #define DGN_GDL_NAMED_VIEW 3 00666 #define DGN_GDL_REF_FILE 9 00667 00668 /* -------------------------------------------------------------------- */ 00669 /* Word 17 property flags. */ 00670 /* -------------------------------------------------------------------- */ 00671 #define DGNPF_HOLE 0x8000 00672 #define DGNPF_SNAPPABLE 0x4000 00673 #define DGNPF_PLANAR 0x2000 00674 #define DGNPF_ORIENTATION 0x1000 00675 #define DGNPF_ATTRIBUTES 0x0800 00676 #define DGNPF_MODIFIED 0x0400 00677 #define DGNPF_NEW 0x0200 00678 #define DGNPF_LOCKED 0x0100 00679 #define DGNPF_CLASS 0x000f 00680 00681 /* -------------------------------------------------------------------- */ 00682 /* DGNElementInfo flag values. */ 00683 /* -------------------------------------------------------------------- */ 00684 #define DGNEIF_DELETED 0x01 00685 #define DGNEIF_COMPLEX 0x02 00686 00687 /* -------------------------------------------------------------------- */ 00688 /* Justifications */ 00689 /* -------------------------------------------------------------------- */ 00690 #define DGNJ_LEFT_TOP 0 00691 #define DGNJ_LEFT_CENTER 1 00692 #define DGNJ_LEFT_BOTTOM 2 00693 #define DGNJ_LEFTMARGIN_TOP 3 /* text node header only */ 00694 #define DGNJ_LEFTMARGIN_CENTER 4 /* text node header only */ 00695 #define DGNJ_LEFTMARGIN_BOTTOM 5 /* text node header only */ 00696 #define DGNJ_CENTER_TOP 6 00697 #define DGNJ_CENTER_CENTER 7 00698 #define DGNJ_CENTER_BOTTOM 8 00699 #define DGNJ_RIGHTMARGIN_TOP 9 /* text node header only */ 00700 #define DGNJ_RIGHTMARGIN_CENTER 10 /* text node header only */ 00701 #define DGNJ_RIGHTMARGIN_BOTTOM 11 /* text node header only */ 00702 #define DGNJ_RIGHT_TOP 12 00703 #define DGNJ_RIGHT_CENTER 13 00704 #define DGNJ_RIGHT_BOTTOM 14 00705 00706 /* -------------------------------------------------------------------- */ 00707 /* DGN file reading options. */ 00708 /* -------------------------------------------------------------------- */ 00709 #define DGNO_CAPTURE_RAW_DATA 0x01 00710 00711 /* -------------------------------------------------------------------- */ 00712 /* Known attribute linkage types, including my synthetic ones. */ 00713 /* -------------------------------------------------------------------- */ 00714 #define DGNLT_DMRS 0x0000 00715 #define DGNLT_INFORMIX 0x3848 00716 #define DGNLT_ODBC 0x5e62 00717 #define DGNLT_ORACLE 0x6091 00718 #define DGNLT_RIS 0x71FB 00719 #define DGNLT_SYBASE 0x4f58 00720 #define DGNLT_XBASE 0x1971 00721 #define DGNLT_SHAPE_FILL 0x0041 00722 #define DGNLT_ASSOC_ID 0x7D2F 00723 00724 /* -------------------------------------------------------------------- */ 00725 /* File creation options. */ 00726 /* -------------------------------------------------------------------- */ 00727 00728 #define DGNCF_USE_SEED_UNITS 0x01 00729 #define DGNCF_USE_SEED_ORIGIN 0x02 00730 #define DGNCF_COPY_SEED_FILE_COLOR_TABLE 0x04 00731 #define DGNCF_COPY_WHOLE_SEED_FILE 0x08 00732 00733 /* -------------------------------------------------------------------- */ 00734 /* B-Spline Curve flags. Also used for U-direction of surfaces */ 00735 /* -------------------------------------------------------------------- */ 00736 #define DGNBSC_CURVE_DISPLAY 0x10 00737 #define DGNBSC_POLY_DISPLAY 0x20 00738 #define DGNBSC_RATIONAL 0x40 00739 #define DGNBSC_CLOSED 0x80 00740 00741 /* -------------------------------------------------------------------- */ 00742 /* B-Spline Curve flags for V-direction of surfaces. */ 00743 /* -------------------------------------------------------------------- */ 00744 #define DGNBSS_ARC_SPACING 0x40 00745 #define DGNBSS_CLOSED 0x80 00746 00747 /* -------------------------------------------------------------------- */ 00748 /* API */ 00749 /* -------------------------------------------------------------------- */ 00751 typedef void *DGNHandle; 00752 00753 DGNHandle CPL_DLL DGNOpen( const char *, int ); 00754 void CPL_DLL DGNSetOptions( DGNHandle, int ); 00755 int CPL_DLL DGNTestOpen( GByte *, int ); 00756 const DGNElementInfo CPL_DLL *DGNGetElementIndex( DGNHandle, int * ); 00757 int CPL_DLL DGNGetExtents( DGNHandle, double * ); 00758 int CPL_DLL DGNGetDimension( DGNHandle ); 00759 DGNElemCore CPL_DLL *DGNReadElement( DGNHandle ); 00760 void CPL_DLL DGNFreeElement( DGNHandle, DGNElemCore * ); 00761 void CPL_DLL DGNRewind( DGNHandle ); 00762 int CPL_DLL DGNGotoElement( DGNHandle, int ); 00763 void CPL_DLL DGNClose( DGNHandle ); 00764 int CPL_DLL DGNLoadTCB( DGNHandle ); 00765 int CPL_DLL DGNLookupColor( DGNHandle, int, int *, int *, int * ); 00766 int CPL_DLL DGNGetShapeFillInfo( DGNHandle, DGNElemCore *, int * ); 00767 int CPL_DLL DGNGetAssocID( DGNHandle, DGNElemCore * ); 00768 int CPL_DLL DGNGetElementExtents( DGNHandle, DGNElemCore *, 00769 DGNPoint *, DGNPoint * ); 00770 00771 void CPL_DLL DGNDumpElement( DGNHandle, DGNElemCore *, FILE * ); 00772 const char CPL_DLL *DGNTypeToName( int ); 00773 00774 void CPL_DLL DGNRotationToQuaternion( double, int * ); 00775 void CPL_DLL DGNQuaternionToMatrix( int *, float * ); 00776 int CPL_DLL DGNStrokeArc( DGNHandle, DGNElemArc *, int, DGNPoint * ); 00777 int CPL_DLL DGNStrokeCurve( DGNHandle, DGNElemMultiPoint*, int, DGNPoint * ); 00778 void CPL_DLL DGNSetSpatialFilter( DGNHandle hDGN, 00779 double dfXMin, double dfYMin, 00780 double dfXMax, double dfYMax ); 00781 int CPL_DLL DGNGetAttrLinkSize( DGNHandle, DGNElemCore *, int ); 00782 unsigned char CPL_DLL * 00783 DGNGetLinkage( DGNHandle hDGN, DGNElemCore *psElement, 00784 int iIndex, int *pnLinkageType, 00785 int *pnEntityNum, int *pnMSLink, int *pnLinkSize); 00786 00787 /* Write API */ 00788 00789 int CPL_DLL DGNWriteElement( DGNHandle, DGNElemCore * ); 00790 int CPL_DLL DGNResizeElement( DGNHandle, DGNElemCore *, int ); 00791 DGNHandle CPL_DLL 00792 DGNCreate( const char *pszNewFilename, const char *pszSeedFile, 00793 int nCreationFlags, 00794 double dfOriginX, double dfOriginY, double dfOriginZ, 00795 int nMasterUnitPerSubUnit, int nUORPerSubUnit, 00796 const char *pszMasterUnits, const char *pszSubUnits ); 00797 DGNElemCore CPL_DLL *DGNCloneElement( DGNHandle hDGNSrc, DGNHandle hDGNDst, 00798 DGNElemCore *psSrcElement ); 00799 int CPL_DLL DGNUpdateElemCore( DGNHandle hDGN, DGNElemCore *psElement, 00800 int nLevel, int nGraphicGroup, int nColor, 00801 int nWeight, int nStyle ); 00802 int CPL_DLL DGNUpdateElemCoreExtended( DGNHandle hDGN, 00803 DGNElemCore *psElement ); 00804 00805 DGNElemCore CPL_DLL * 00806 DGNCreateMultiPointElem( DGNHandle hDGN, int nType, 00807 int nPointCount, DGNPoint*pasVertices ); 00808 DGNElemCore CPL_DLL * 00809 DGNCreateArcElem2D( DGNHandle hDGN, int nType, 00810 double dfOriginX, double dfOriginY, 00811 double dfPrimaryAxis, double dfSecondaryAxis, 00812 double dfRotation, 00813 double dfStartAngle, double dfSweepAngle ); 00814 00815 DGNElemCore CPL_DLL * 00816 DGNCreateArcElem( DGNHandle hDGN, int nType, 00817 double dfOriginX, double dfOriginY, 00818 double dfOriginZ, 00819 double dfPrimaryAxis, double dfSecondaryAxis, 00820 double dfStartAngle, double dfSweepAngle, 00821 double dfRotation, int *panQuaternion ); 00822 00823 DGNElemCore CPL_DLL * 00824 DGNCreateConeElem( DGNHandle hDGN, 00825 double center_1X, double center_1Y, 00826 double center_1Z, double radius_1, 00827 double center_2X, double center_2Y, 00828 double center_2Z, double radius_2, 00829 int *panQuaternion ); 00830 00831 DGNElemCore CPL_DLL * 00832 DGNCreateTextElem( DGNHandle hDGN, const char *pszText, 00833 int nFontId, int nJustification, 00834 double dfLengthMult, double dfHeightMult, 00835 double dfRotation, int *panQuaternion, 00836 double dfOriginX, double dfOriginY, double dfOriginZ ); 00837 00838 DGNElemCore CPL_DLL * 00839 DGNCreateColorTableElem( DGNHandle hDGN, int nScreenFlag, 00840 GByte abyColorInfo[256][3] ); 00841 DGNElemCore CPL_DLL * 00842 DGNCreateComplexHeaderElem( DGNHandle hDGN, int nType, 00843 int nTotLength, int nNumElems ); 00844 DGNElemCore CPL_DLL * 00845 DGNCreateComplexHeaderFromGroup( DGNHandle hDGN, int nType, 00846 int nNumElems, DGNElemCore **papsElems ); 00847 00848 DGNElemCore CPL_DLL * 00849 DGNCreateSolidHeaderElem( DGNHandle hDGN, int nType, int nSurfType, 00850 int nBoundElems, int nTotLength, int nNumElems ); 00851 DGNElemCore CPL_DLL * 00852 DGNCreateSolidHeaderFromGroup( DGNHandle hDGN, int nType, int nSurfType, 00853 int nBoundElems, int nNumElems, 00854 DGNElemCore **papsElems ); 00855 00856 DGNElemCore CPL_DLL * 00857 DGNCreateCellHeaderElem( DGNHandle hDGN, int nTotLength, const char *pszName, 00858 short nClass, short *panLevels, 00859 DGNPoint *psRangeLow, DGNPoint *psRangeHigh, 00860 DGNPoint *psOrigin, double dfXScale, double dfYScale, 00861 double dfRotation ); 00862 00863 DGNElemCore CPL_DLL * 00864 DGNCreateCellHeaderFromGroup( DGNHandle hDGN, const char *pszName, 00865 short nClass, short *panLevels, 00866 int nNumElems, DGNElemCore **papsElems, 00867 DGNPoint *psOrigin, 00868 double dfXScale, double dfYScale, 00869 double dfRotation ); 00870 00871 int CPL_DLL DGNAddMSLink( DGNHandle hDGN, DGNElemCore *psElement, 00872 int nLinkageType, int nEntityNum, int nMSLink ); 00873 00874 int CPL_DLL DGNAddRawAttrLink( DGNHandle hDGN, DGNElemCore *psElement, 00875 int nLinkSize, unsigned char *pabyRawLinkData ); 00876 00877 int CPL_DLL DGNAddShapeFillInfo( DGNHandle hDGN, DGNElemCore *psElement, 00878 int nColor ); 00879 00880 int CPL_DLL DGNElemTypeHasDispHdr( int nElemType ); 00881 00882 CPL_C_END 00883 00884 #endif /* ndef _DGNLIB_H_INCLUDED */