📄 dgnlib.h
字号:
int numwords; /*!< Number of words in cell definition */ short dispsymb; /*!< Display symbol */ unsigned short cclass; /*!< Class bitmap */ unsigned short levels[4]; /*!< Levels used in cell */ char description[28]; /*!< Description */ } DGNElemCellLibrary;typedef union { char *string; GInt32 integer; double real; } tagValueUnion;/** * Tag Value. * * The core.stype code is DGNST_TAG_VALUE. * * Returned for DGNT_TAG_VALUE(37). */typedef struct { DGNElemCore core; int tagType; /*!< Tag type indicator, DGNTT_* */ int tagSet; /*!< Which tag set does this relate to? */ int tagIndex; /*!< Tag index within tag set. */ int tagLength; /*!< Length of tag information (text) */ tagValueUnion tagValue; /*!< Textual value of tag */} DGNElemTagValue;/** * Tag definition. * * Structure holding definition of one tag within a DGNTagSet. */typedef struct _DGNTagDef { char *name; /*!< Name of this tag. */ int id; /*!< Tag index/identifier. */ char *prompt; /*!< User prompt when requesting value. */ int type; /*!< Tag type (one of DGNTT_STRING(1), DGNTT_INTEGER(3) or DGNTT_FLOAT(4). */ tagValueUnion defaultValue; /*!< Default tag value */} DGNTagDef;#define DGNTT_STRING 1#define DGNTT_INTEGER 3#define DGNTT_FLOAT 4/** * Tag Set. * * The core.stype code is DGNST_TAG_SET. * * Returned for DGNT_APPLICATION_ELEM(66), Level: 24. */typedef struct { DGNElemCore core; int tagCount; /*!< Number of tags in tagList. */ int tagSet; /*!< Tag set index. */ int flags; /*!< Tag flags - not too much known. */ char *tagSetName; /*!< Tag set name. */ DGNTagDef *tagList; /*!< List of tag definitions in this set. */} DGNElemTagSet;/** * Cone element * * The core.stype code is DGNST_CONE. * * Used for: DGNT_CONE(23) */typedef struct { DGNElemCore core; short unknown; /*!< Unknown data */ int quat[4]; /*!< Orientation quaternion */ DGNPoint center_1; /*!< center of first circle */ double radius_1; /*!< radius of first circle */ DGNPoint center_2; /*!< center of second circle */ double radius_2; /*!< radius of second circle */} DGNElemCone;/* -------------------------------------------------------------------- *//* Structure types *//* -------------------------------------------------------------------- *//** DGNElemCore style: Element uses DGNElemCore structure */#define DGNST_CORE 1 /** DGNElemCore style: Element uses DGNElemMultiPoint structure */#define DGNST_MULTIPOINT 2 /** DGNElemCore style: Element uses DGNElemColorTable structure */#define DGNST_COLORTABLE 3 /** DGNElemCore style: Element uses DGNElemTCB structure */#define DGNST_TCB 4 /** DGNElemCore style: Element uses DGNElemArc structure */#define DGNST_ARC 5 /** DGNElemCore style: Element uses DGNElemText structure */#define DGNST_TEXT 6 /** DGNElemCore style: Element uses DGNElemComplexHeader structure */#define DGNST_COMPLEX_HEADER 7/** DGNElemCore style: Element uses DGNElemCellHeader structure */#define DGNST_CELL_HEADER 8/** DGNElemCore style: Element uses DGNElemTagValue structure */#define DGNST_TAG_VALUE 9/** DGNElemCore style: Element uses DGNElemTagSet structure */#define DGNST_TAG_SET 10/** DGNElemCore style: Element uses DGNElemCellLibrary structure */#define DGNST_CELL_LIBRARY 11/** DGNElemCore style: Element uses DGNElemCone structure */#define DGNST_CONE 12/* -------------------------------------------------------------------- *//* Element types *//* -------------------------------------------------------------------- */#define DGNT_CELL_LIBRARY 1#define DGNT_CELL_HEADER 2#define DGNT_LINE 3#define DGNT_LINE_STRING 4#define DGNT_GROUP_DATA 5#define DGNT_SHAPE 6#define DGNT_TEXT_NODE 7#define DGNT_DIGITIZER_SETUP 8#define DGNT_TCB 9#define DGNT_LEVEL_SYMBOLOGY 10#define DGNT_CURVE 11#define DGNT_COMPLEX_CHAIN_HEADER 12#define DGNT_COMPLEX_SHAPE_HEADER 14#define DGNT_ELLIPSE 15#define DGNT_ARC 16#define DGNT_TEXT 17#define DGNT_3DSURFACE_HEADER 18#define DGNT_3DSOLID_HEADER 19#define DGNT_BSPLINE 21#define DGNT_CONE 23#define DGNT_SHARED_CELL_DEFN 34#define DGNT_SHARED_CELL_ELEM 35#define DGNT_TAG_VALUE 37#define DGNT_APPLICATION_ELEM 66/* -------------------------------------------------------------------- *//* Line Styles *//* -------------------------------------------------------------------- */#define DGNS_SOLID 0#define DGNS_DOTTED 1#define DGNS_MEDIUM_DASH 2#define DGNS_LONG_DASH 3#define DGNS_DOT_DASH 4#define DGNS_SHORT_DASH 5#define DGNS_DASH_DOUBLE_DOT 6#define DGNS_LONG_DASH_SHORT_DASH 7/* -------------------------------------------------------------------- *//* 3D Surface Types *//* -------------------------------------------------------------------- */#define DGNSUT_SOLID 0#define DGNSUT_BOUNDED_PLANE 1#define DGNSUT_BOUNDED_PLANE2 2#define DGNSUT_RIGHT_CIRCULAR_CYLINDER 3#define DGNSUT_RIGHT_CIRCULAR_CONE 4#define DGNSUT_TABULATED_CYLINDER 5#define DGNSUT_TABULATED_CONE 6#define DGNSUT_CONVOLUTE 7#define DGNSUT_SURFACE_OF_REVOLUTION 8#define DGNSUT_WARPED_SURFACE 9/* -------------------------------------------------------------------- *//* 3D Solid Types *//* -------------------------------------------------------------------- */#define DGNSOT_VOLUME_OF_PROJECTION 0#define DGNSOT_VOLUME_OF_REVOLUTION 1#define DGNSOT_BOUNDED_VOLUME 2/* -------------------------------------------------------------------- *//* Class *//* -------------------------------------------------------------------- */#define DGNC_PRIMARY 0#define DGNC_PATTERN_COMPONENT 1#define DGNC_CONSTRUCTION_ELEMENT 2#define DGNC_DIMENSION_ELEMENT 3#define DGNC_PRIMARY_RULE_ELEMENT 4#define DGNC_LINEAR_PATTERNED_ELEMENT 5#define DGNC_CONSTRUCTION_RULE_ELEMENT 6/* -------------------------------------------------------------------- *//* Group Data level numbers. *//* *//* These are symbolic values for the typ 5 (DGNT_GROUP_DATA) *//* level values that have special meanings. *//* -------------------------------------------------------------------- */#define DGN_GDL_COLOR_TABLE 1#define DGN_GDL_NAMED_VIEW 3#define DGN_GDL_REF_FILE 9/* -------------------------------------------------------------------- *//* Word 17 property flags. *//* -------------------------------------------------------------------- */#define DGNPF_HOLE 0x8000#define DGNPF_SNAPPABLE 0x4000#define DGNPF_PLANAR 0x2000#define DGNPF_ORIENTATION 0x1000#define DGNPF_ATTRIBUTES 0x0800#define DGNPF_MODIFIED 0x0400#define DGNPF_NEW 0x0200#define DGNPF_LOCKED 0x0100#define DGNPF_CLASS 0x000f/* -------------------------------------------------------------------- *//* DGNElementInfo flag values. *//* -------------------------------------------------------------------- */#define DGNEIF_DELETED 0x01#define DGNEIF_COMPLEX 0x02/* -------------------------------------------------------------------- *//* Justifications *//* -------------------------------------------------------------------- */#define DGNJ_LEFT_TOP 0#define DGNJ_LEFT_CENTER 1#define DGNJ_LEFT_BOTTOM 2#define DGNJ_LEFTMARGIN_TOP 3 /* text node header only */#define DGNJ_LEFTMARGIN_CENTER 4 /* text node header only */#define DGNJ_LEFTMARGIN_BOTTOM 5 /* text node header only */#define DGNJ_CENTER_TOP 6#define DGNJ_CENTER_CENTER 6#define DGNJ_CENTER_BOTTOM 8#define DGNJ_RIGHTMARGIN_TOP 9 /* text node header only */#define DGNJ_RIGHTMARGIN_CENTER 10 /* text node header only */#define DGNJ_RIGHTMARGIN_BOTTOM 11 /* text node header only */#define DGNJ_RIGHT_TOP 12#define DGNJ_RIGHT_CENTER 13#define DGNJ_RIGHT_BOTTOM 14/* -------------------------------------------------------------------- *//* DGN file reading options. *//* -------------------------------------------------------------------- */#define DGNO_CAPTURE_RAW_DATA 0x01/* -------------------------------------------------------------------- *//* Known attribute linkage types, including my synthetic ones. *//* -------------------------------------------------------------------- */#define DGNLT_DMRS 0x0000#define DGNLT_INFORMIX 0x3848#define DGNLT_ODBC 0x5e62#define DGNLT_ORACLE 0x6091#define DGNLT_RIS 0x71FB#define DGNLT_SYBASE 0x4f58#define DGNLT_XBASE 0x1971#define DGNLT_SHAPE_FILL 0x0041#define DGNLT_ASSOC_ID 0x7D2F/* -------------------------------------------------------------------- *//* File creation options. *//* -------------------------------------------------------------------- */#define DGNCF_USE_SEED_UNITS 0x01#define DGNCF_USE_SEED_ORIGIN 0x02#define DGNCF_COPY_SEED_FILE_COLOR_TABLE 0x04#define DGNCF_COPY_WHOLE_SEED_FILE 0x08/* -------------------------------------------------------------------- *//* API *//* -------------------------------------------------------------------- *//** Opaque handle representing DGN file, used with DGN API. */typedef void *DGNHandle;DGNHandle CPL_DLL DGNOpen( const char *, int );void CPL_DLL DGNSetOptions( DGNHandle, int );int CPL_DLL DGNTestOpen( GByte *, int );const DGNElementInfo CPL_DLL *DGNGetElementIndex( DGNHandle, int * );int CPL_DLL DGNGetExtents( DGNHandle, double * );int CPL_DLL DGNGetDimension( DGNHandle );DGNElemCore CPL_DLL *DGNReadElement( DGNHandle );void CPL_DLL DGNFreeElement( DGNHandle, DGNElemCore * );void CPL_DLL DGNRewind( DGNHandle );int CPL_DLL DGNGotoElement( DGNHandle, int );void CPL_DLL DGNClose( DGNHandle );int CPL_DLL DGNLoadTCB( DGNHandle );int CPL_DLL DGNLookupColor( DGNHandle, int, int *, int *, int * );int CPL_DLL DGNGetShapeFillInfo( DGNHandle, DGNElemCore *, int * );int CPL_DLL DGNGetAssocID( DGNHandle, DGNElemCore * );int CPL_DLL DGNGetElementExtents( DGNHandle, DGNElemCore *, DGNPoint *, DGNPoint * );void CPL_DLL DGNDumpElement( DGNHandle, DGNElemCore *, FILE * );const char CPL_DLL *DGNTypeToName( int );void CPL_DLL DGNRotationToQuaternion( double, int * );void CPL_DLL DGNQuaternionToMatrix( int *, float * );int CPL_DLL DGNStrokeArc( DGNHandle, DGNElemArc *, int, DGNPoint * );int CPL_DLL DGNStrokeCurve( DGNHandle, DGNElemMultiPoint*, int, DGNPoint * );void CPL_DLL DGNSetSpatialFilter( DGNHandle hDGN, double dfXMin, double dfYMin, double dfXMax, double dfYMax );int CPL_DLL DGNGetAttrLinkSize( DGNHandle, DGNElemCore *, int );unsigned char CPL_DLL * DGNGetLinkage( DGNHandle hDGN, DGNElemCore *psElement, int iIndex, int *pnLinkageType, int *pnEntityNum, int *pnMSLink, int *pnLinkSize);/* Write API */ int CPL_DLL DGNWriteElement( DGNHandle, DGNElemCore * );int CPL_DLL DGNResizeElement( DGNHandle, DGNElemCore *, int );DGNHandle CPL_DLL DGNCreate( const char *pszNewFilename, const char *pszSeedFile, int nCreationFlags, double dfOriginX, double dfOriginY, double dfOriginZ, int nMasterUnitPerSubUnit, int nUORPerSubUnit, const char *pszMasterUnits, const char *pszSubUnits );DGNElemCore CPL_DLL *DGNCloneElement( DGNHandle hDGNSrc, DGNHandle hDGNDst, DGNElemCore *psSrcElement );int CPL_DLL DGNUpdateElemCore( DGNHandle hDGN, DGNElemCore *psElement, int nLevel, int nGraphicGroup, int nColor, int nWeight, int nStyle );int CPL_DLL DGNUpdateElemCoreExtended( DGNHandle hDGN, DGNElemCore *psElement );DGNElemCore CPL_DLL * DGNCreateMultiPointElem( DGNHandle hDGN, int nType, int nPointCount, DGNPoint*pasVertices );DGNElemCore CPL_DLL * DGNCreateArcElem2D( DGNHandle hDGN, int nType, double dfOriginX, double dfOriginY, double dfPrimaryAxis, double dfSecondaryAxis, double dfRotation, double dfStartAngle, double dfSweepAngle );DGNElemCore CPL_DLL * DGNCreateArcElem( DGNHandle hDGN, int nType, double dfOriginX, double dfOriginY, double dfOriginZ, double dfPrimaryAxis, double dfSecondaryAxis, double dfStartAngle, double dfSweepAngle, double dfRotation, int *panQuaternion );DGNElemCore CPL_DLL * DGNCreateConeElem( DGNHandle hDGN, double center_1X, double center_1Y, double center_1Z, double radius_1, double center_2X, double center_2Y, double center_2Z, double radius_2, int *panQuaternion );DGNElemCore CPL_DLL * DGNCreateTextElem( DGNHandle hDGN, const char *pszText, int nFontId, int nJustification, double dfLengthMult, double dfHeightMult, double dfRotation, int *panQuaternion, double dfOriginX, double dfOriginY, double dfOriginZ );DGNElemCore CPL_DLL * DGNCreateColorTableElem( DGNHandle hDGN, int nScreenFlag, GByte abyColorInfo[256][3] );DGNElemCore *DGNCreateComplexHeaderElem( DGNHandle hDGN, int nType, int nSurfType, int nTotLength, int nNumElems );DGNElemCore *DGNCreateComplexHeaderFromGroup( DGNHandle hDGN, int nType, int nSurfType, int nNumElems, DGNElemCore **papsElems );DGNElemCore CPL_DLL *DGNCreateCellHeaderElem( DGNHandle hDGN, int nTotLength, const char *pszName, short nClass, short *panLevels, DGNPoint *psRangeLow, DGNPoint *psRangeHigh, DGNPoint *psOrigin, double dfXScale, double dfYScale, double dfRotation ); DGNElemCore *DGNCreateCellHeaderFromGroup( DGNHandle hDGN, const char *pszName, short nClass, short *panLevels, int nNumElems, DGNElemCore **papsElems, DGNPoint *psOrigin, double dfXScale, double dfYScale, double dfRotation );int CPL_DLL DGNAddMSLink( DGNHandle hDGN, DGNElemCore *psElement, int nLinkageType, int nEntityNum, int nMSLink );int CPL_DLL DGNAddRawAttrLink( DGNHandle hDGN, DGNElemCore *psElement, int nLinkSize, unsigned char *pabyRawLinkData );int CPL_DLL DGNAddShapeFillInfo( DGNHandle hDGN, DGNElemCore *psElement, int nColor );int CPL_DLL DGNElemTypeHasDispHdr( int nElemType );CPL_C_END#endif /* ndef _DGNLIB_H_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -