⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dgnlib.h

📁 在Linux环境下读写DGN文件
💻 H
📖 第 1 页 / 共 2 页
字号:
    DGNPoint    rnglow;            /*!< X/Y/Z minimums for cell */    DGNPoint    rnghigh;           /*!< X/Y/Z minimums for cell */        double      trans[9];          /*!< 2D/3D Transformation Matrix */    DGNPoint    origin;            /*!< Cell Origin */    double      xscale;    double      yscale;    double      rotation;} DGNElemCellHeader;/**  * Cell Library. * * The core.stype code is DGNST_CELL_LIBRARY. * * Returned for DGNT_CELL_LIBRARY(1). */typedef struct {    DGNElemCore core;    short       celltype;          /*!< Cell type. */    short       attindx;           /*!< Attribute linkage. */    char        name[7];           /*!< Cell name */    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;/* -------------------------------------------------------------------- *//*      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/* -------------------------------------------------------------------- *//*      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_BSPLINE              21#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/* -------------------------------------------------------------------- *//*      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 * );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         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 );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 *             DGNCreateTextElem( DGNHandle hDGN, const char *pszText,                                 int nFontId, int nJustification,                                 double dfLengthMult, double dfHeightMult,                                 double dfRotation,                        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 nTotLength, int nNumElems );DGNElemCore *DGNCreateComplexHeaderFromGroup( DGNHandle hDGN, int nType,                                  int nNumElems, DGNElemCore **papsElems );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 );CPL_C_END#endif /* ndef _DGNLIB_H_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -