dgnlib
dgnlib.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: dgnlib.h 33713 2016-03-12 17:41:57Z goatbar $
3  *
4  * Project: Microstation DGN Access Library
5  * Purpose: Definitions of public structures and API of DGN Library.
6  * Author: Frank Warmerdam, warmerdam@pobox.com
7  *
8  ******************************************************************************
9  * Copyright (c) 2000, Avenza Systems Inc, http://www.avenza.com/
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  ****************************************************************************/
29 
30 #ifndef DGNLIB_H_INCLUDED
31 #define DGNLIB_H_INCLUDED
32 
33 #undef STRICT_CPLERRORNUM_TYPE
34 
35 #include "cpl_conv.h"
36 
37 CPL_C_START
38 
39 #define CPLE_DGN_ERROR_BASE
40 #define CPLE_ElementTooBig CPLE_DGN_ERROR_BASE+1
41 
56 typedef struct {
57  double x;
58  double y;
59  double z;
60 } DGNPoint;
61 
68 typedef struct {
69  unsigned char level;
70  unsigned char type;
71  unsigned char stype;
72  unsigned char flags;
73  long offset;
75 
87 typedef struct {
88  int offset;
89  int size;
90 
91  int element_id;
92  int stype;
93  int level;
94  int type;
95  int complex;
96  int deleted;
99  int properties;
100  int color;
101  int weight;
102  int style;
105  unsigned char *attr_data;
107  int raw_bytes;
108  unsigned char *raw_data;
109 } DGNElemCore;
110 
120 typedef struct {
121  DGNElemCore core;
122 
124  DGNPoint vertices[2];
127 
136 typedef struct {
137  DGNElemCore core;
138 
141  double primary_axis;
142  double secondary_axis;
144  double rotation;
145  int quat[4];
146 
147  double startang;
148  double sweepang;
150 } DGNElemArc;
151 
162 typedef struct {
163  DGNElemCore core; /* must be at first position ! */
164 
165  int font_id;
167  double length_mult;
168  double height_mult;
169  double rotation;
171  char string[1];
172 } DGNElemText;
173 
185 typedef struct {
186  DGNElemCore core; /* must be at first position ! */
187 
188  int totlength;
191  int numelems;
192  int surftype;
195  int boundelms;
198 
208 typedef struct {
209  DGNElemCore core;
210 
211  int screen_flag;
212  GByte color_info[256][3];
214 
215 typedef struct {
216  int flags;
217  unsigned char levels[8];
218  DGNPoint origin;
219  DGNPoint delta;
220  double transmatrx[9];
221  double conversion;
222  unsigned long activez;
223 } DGNViewInfo;
224 
239 typedef struct {
240  DGNElemCore core; /* must be at first position ! */
241 
242  int dimension;
244  double origin_x;
245  double origin_y;
246  double origin_z;
249  char sub_units[3];
251  char master_units[3];
253  DGNViewInfo views[8];
254 
255 } DGNElemTCB;
256 
265 typedef struct {
266  DGNElemCore core; /* must be at first position ! */
267 
268  int totlength;
271  char name[7];
272  unsigned short cclass;
273  unsigned short levels[4];
278  double trans[9];
281  double xscale;
282  double yscale;
283  double rotation;
284 
286 
295 typedef struct {
296  DGNElemCore core; /* must be at first position ! */
297 
298  short celltype;
299  short attindx;
300  char name[7];
302  int numwords;
304  short dispsymb;
305  unsigned short cclass;
306  unsigned short levels[4];
308  char description[28];
311 
320 typedef struct {
321  DGNElemCore core; /* must be at first position ! */
322 
323  int totlength;
326  // FIXME: Most of the contents of this element type is currently
327  // unknown. Please get in touch with the authors if you have
328  // information about how to decode this element.
330 
331 typedef union { char *string; GInt32 integer; double real; } tagValueUnion;
332 
341 typedef struct {
342  DGNElemCore core; /* must be at first position ! */
343 
344  int tagType;
345  int tagSet;
346  int tagIndex;
347  int tagLength;
351 
357 typedef struct _DGNTagDef {
358  char *name;
359  int id;
360  char *prompt;
361  int type;
363 } DGNTagDef;
364 
365 #define DGNTT_STRING 1
366 #define DGNTT_INTEGER 3
367 #define DGNTT_FLOAT 4
368 
377 typedef struct {
378  DGNElemCore core; /* must be at first position ! */
379 
380  int tagCount;
381  int tagSet;
382  int flags;
383  char *tagSetName;
387 } DGNElemTagSet;
388 
396 typedef struct {
397  DGNElemCore core; /* must be at first position ! */
398 
399  short unknown;
400  int quat[4];
402  double radius_1;
404  double radius_2;
406 } DGNElemCone;
407 
408 
419 typedef struct {
420  DGNElemCore core; /* must be at first position ! */
421 
422  int totlength;
424  int numelems;
426  short max_length;
427  short max_used;
428  short font_id;
431  double length_mult;
432  double height_mult;
433  double rotation;
437 
438 
446 typedef struct {
447  DGNElemCore core; /* must be at first position ! */
448 
449  long desc_words;
452  unsigned char curve_type;
453  unsigned char u_order;
454  unsigned short u_properties;
456  short num_poles_u;
457  short num_knots_u;
458  short rule_lines_u;
460  unsigned char v_order;
461  unsigned short v_properties;
463  short num_poles_v;
464  short num_knots_v;
465  short rule_lines_v;
467  short num_bounds;
469 
477 typedef struct {
478  DGNElemCore core; /* must be at first position ! */
479 
480  long desc_words;
483  unsigned char order;
484  unsigned char properties;
485  unsigned char curve_type;
486  short num_poles;
487  short num_knots;
489 
497 typedef struct {
498  DGNElemCore core; /* must be at first position ! */
499 
500  short number;
501  short numverts;
502  DGNPoint vertices[1];
505 
513 typedef struct {
514  DGNElemCore core; /* must be at first position ! */
515 
516  float array[1];
520 
521 
522 /* -------------------------------------------------------------------- */
523 /* Structure types */
524 /* -------------------------------------------------------------------- */
525 
527 #define DGNST_CORE 1
528 
530 #define DGNST_MULTIPOINT 2
531 
533 #define DGNST_COLORTABLE 3
534 
536 #define DGNST_TCB 4
537 
539 #define DGNST_ARC 5
540 
542 #define DGNST_TEXT 6
543 
545 #define DGNST_COMPLEX_HEADER 7
546 
548 #define DGNST_CELL_HEADER 8
549 
551 #define DGNST_TAG_VALUE 9
552 
554 #define DGNST_TAG_SET 10
555 
557 #define DGNST_CELL_LIBRARY 11
558 
560 #define DGNST_CONE 12
561 
563 #define DGNST_TEXT_NODE 13
564 
566 #define DGNST_BSPLINE_SURFACE_HEADER 14
567 
569 #define DGNST_BSPLINE_CURVE_HEADER 15
570 
572 #define DGNST_BSPLINE_SURFACE_BOUNDARY 16
573 
575 #define DGNST_KNOT_WEIGHT 17
576 
578 #define DGNST_SHARED_CELL_DEFN 18
579 
580 
581 /* -------------------------------------------------------------------- */
582 /* Element types */
583 /* -------------------------------------------------------------------- */
584 #define DGNT_CELL_LIBRARY 1
585 #define DGNT_CELL_HEADER 2
586 #define DGNT_LINE 3
587 #define DGNT_LINE_STRING 4
588 #define DGNT_GROUP_DATA 5
589 #define DGNT_SHAPE 6
590 #define DGNT_TEXT_NODE 7
591 #define DGNT_DIGITIZER_SETUP 8
592 #define DGNT_TCB 9
593 #define DGNT_LEVEL_SYMBOLOGY 10
594 #define DGNT_CURVE 11
595 #define DGNT_COMPLEX_CHAIN_HEADER 12
596 #define DGNT_COMPLEX_SHAPE_HEADER 14
597 #define DGNT_ELLIPSE 15
598 #define DGNT_ARC 16
599 #define DGNT_TEXT 17
600 #define DGNT_3DSURFACE_HEADER 18
601 #define DGNT_3DSOLID_HEADER 19
602 #define DGNT_BSPLINE_POLE 21
603 #define DGNT_POINT_STRING 22
604 #define DGNT_BSPLINE_SURFACE_HEADER 24
605 #define DGNT_BSPLINE_SURFACE_BOUNDARY 25
606 #define DGNT_BSPLINE_KNOT 26
607 #define DGNT_BSPLINE_CURVE_HEADER 27
608 #define DGNT_BSPLINE_WEIGHT_FACTOR 28
609 #define DGNT_CONE 23
610 #define DGNT_SHARED_CELL_DEFN 34
611 #define DGNT_SHARED_CELL_ELEM 35
612 #define DGNT_TAG_VALUE 37
613 #define DGNT_APPLICATION_ELEM 66
614 
615 /* -------------------------------------------------------------------- */
616 /* Line Styles */
617 /* -------------------------------------------------------------------- */
618 #define DGNS_SOLID 0
619 #define DGNS_DOTTED 1
620 #define DGNS_MEDIUM_DASH 2
621 #define DGNS_LONG_DASH 3
622 #define DGNS_DOT_DASH 4
623 #define DGNS_SHORT_DASH 5
624 #define DGNS_DASH_DOUBLE_DOT 6
625 #define DGNS_LONG_DASH_SHORT_DASH 7
626 
627 /* -------------------------------------------------------------------- */
628 /* 3D Surface Types */
629 /* -------------------------------------------------------------------- */
630 #define DGNSUT_SURFACE_OF_PROJECTION 0
631 #define DGNSUT_BOUNDED_PLANE 1
632 #define DGNSUT_BOUNDED_PLANE2 2
633 #define DGNSUT_RIGHT_CIRCULAR_CYLINDER 3
634 #define DGNSUT_RIGHT_CIRCULAR_CONE 4
635 #define DGNSUT_TABULATED_CYLINDER 5
636 #define DGNSUT_TABULATED_CONE 6
637 #define DGNSUT_CONVOLUTE 7
638 #define DGNSUT_SURFACE_OF_REVOLUTION 8
639 #define DGNSUT_WARPED_SURFACE 9
640 
641 /* -------------------------------------------------------------------- */
642 /* 3D Solid Types */
643 /* -------------------------------------------------------------------- */
644 #define DGNSOT_VOLUME_OF_PROJECTION 0
645 #define DGNSOT_VOLUME_OF_REVOLUTION 1
646 #define DGNSOT_BOUNDED_VOLUME 2
647 
648 
649 /* -------------------------------------------------------------------- */
650 /* Class */
651 /* -------------------------------------------------------------------- */
652 #define DGNC_PRIMARY 0
653 #define DGNC_PATTERN_COMPONENT 1
654 #define DGNC_CONSTRUCTION_ELEMENT 2
655 #define DGNC_DIMENSION_ELEMENT 3
656 #define DGNC_PRIMARY_RULE_ELEMENT 4
657 #define DGNC_LINEAR_PATTERNED_ELEMENT 5
658 #define DGNC_CONSTRUCTION_RULE_ELEMENT 6
659 
660 /* -------------------------------------------------------------------- */
661 /* Group Data level numbers. */
662 /* */
663 /* These are symbolic values for the typ 5 (DGNT_GROUP_DATA) */
664 /* level values that have special meanings. */
665 /* -------------------------------------------------------------------- */
666 #define DGN_GDL_COLOR_TABLE 1
667 #define DGN_GDL_NAMED_VIEW 3
668 #define DGN_GDL_REF_FILE 9
669 
670 /* -------------------------------------------------------------------- */
671 /* Word 17 property flags. */
672 /* -------------------------------------------------------------------- */
673 #define DGNPF_HOLE 0x8000
674 #define DGNPF_SNAPPABLE 0x4000
675 #define DGNPF_PLANAR 0x2000
676 #define DGNPF_ORIENTATION 0x1000
677 #define DGNPF_ATTRIBUTES 0x0800
678 #define DGNPF_MODIFIED 0x0400
679 #define DGNPF_NEW 0x0200
680 #define DGNPF_LOCKED 0x0100
681 #define DGNPF_CLASS 0x000f
682 
683 /* -------------------------------------------------------------------- */
684 /* DGNElementInfo flag values. */
685 /* -------------------------------------------------------------------- */
686 #define DGNEIF_DELETED 0x01
687 #define DGNEIF_COMPLEX 0x02
688 
689 /* -------------------------------------------------------------------- */
690 /* Justifications */
691 /* -------------------------------------------------------------------- */
692 #define DGNJ_LEFT_TOP 0
693 #define DGNJ_LEFT_CENTER 1
694 #define DGNJ_LEFT_BOTTOM 2
695 #define DGNJ_LEFTMARGIN_TOP 3 /* text node header only */
696 #define DGNJ_LEFTMARGIN_CENTER 4 /* text node header only */
697 #define DGNJ_LEFTMARGIN_BOTTOM 5 /* text node header only */
698 #define DGNJ_CENTER_TOP 6
699 #define DGNJ_CENTER_CENTER 7
700 #define DGNJ_CENTER_BOTTOM 8
701 #define DGNJ_RIGHTMARGIN_TOP 9 /* text node header only */
702 #define DGNJ_RIGHTMARGIN_CENTER 10 /* text node header only */
703 #define DGNJ_RIGHTMARGIN_BOTTOM 11 /* text node header only */
704 #define DGNJ_RIGHT_TOP 12
705 #define DGNJ_RIGHT_CENTER 13
706 #define DGNJ_RIGHT_BOTTOM 14
707 
708 /* -------------------------------------------------------------------- */
709 /* DGN file reading options. */
710 /* -------------------------------------------------------------------- */
711 #define DGNO_CAPTURE_RAW_DATA 0x01
712 
713 /* -------------------------------------------------------------------- */
714 /* Known attribute linkage types, including my synthetic ones. */
715 /* -------------------------------------------------------------------- */
716 #define DGNLT_DMRS 0x0000
717 #define DGNLT_INFORMIX 0x3848
718 #define DGNLT_ODBC 0x5e62
719 #define DGNLT_ORACLE 0x6091
720 #define DGNLT_RIS 0x71FB
721 #define DGNLT_SYBASE 0x4f58
722 #define DGNLT_XBASE 0x1971
723 #define DGNLT_SHAPE_FILL 0x0041
724 #define DGNLT_ASSOC_ID 0x7D2F
725 
726 /* -------------------------------------------------------------------- */
727 /* File creation options. */
728 /* -------------------------------------------------------------------- */
729 
730 #define DGNCF_USE_SEED_UNITS 0x01
731 #define DGNCF_USE_SEED_ORIGIN 0x02
732 #define DGNCF_COPY_SEED_FILE_COLOR_TABLE 0x04
733 #define DGNCF_COPY_WHOLE_SEED_FILE 0x08
734 
735 /* -------------------------------------------------------------------- */
736 /* B-Spline Curve flags. Also used for U-direction of surfaces */
737 /* -------------------------------------------------------------------- */
738 #define DGNBSC_CURVE_DISPLAY 0x10
739 #define DGNBSC_POLY_DISPLAY 0x20
740 #define DGNBSC_RATIONAL 0x40
741 #define DGNBSC_CLOSED 0x80
742 
743 /* -------------------------------------------------------------------- */
744 /* B-Spline Curve flags for V-direction of surfaces. */
745 /* -------------------------------------------------------------------- */
746 #define DGNBSS_ARC_SPACING 0x40
747 #define DGNBSS_CLOSED 0x80
748 
749 /* -------------------------------------------------------------------- */
750 /* API */
751 /* -------------------------------------------------------------------- */
753 typedef void *DGNHandle;
754 
755 DGNHandle CPL_DLL DGNOpen( const char *, int );
756 void CPL_DLL DGNSetOptions( DGNHandle, int );
757 int CPL_DLL DGNTestOpen( GByte *, int );
758 const DGNElementInfo CPL_DLL *DGNGetElementIndex( DGNHandle, int * );
759 int CPL_DLL DGNGetExtents( DGNHandle, double * );
760 int CPL_DLL DGNGetDimension( DGNHandle );
762 void CPL_DLL DGNFreeElement( DGNHandle, DGNElemCore * );
763 void CPL_DLL DGNRewind( DGNHandle );
764 int CPL_DLL DGNGotoElement( DGNHandle, int );
765 void CPL_DLL DGNClose( DGNHandle );
766 int CPL_DLL DGNLoadTCB( DGNHandle );
767 int CPL_DLL DGNLookupColor( DGNHandle, int, int *, int *, int * );
768 int CPL_DLL DGNGetShapeFillInfo( DGNHandle, DGNElemCore *, int * );
769 int CPL_DLL DGNGetAssocID( DGNHandle, DGNElemCore * );
771  DGNPoint *, DGNPoint * );
772 
773 void CPL_DLL DGNDumpElement( DGNHandle, DGNElemCore *, FILE * );
774 const char CPL_DLL *DGNTypeToName( int );
775 
776 void CPL_DLL DGNRotationToQuaternion( double, int * );
777 void CPL_DLL DGNQuaternionToMatrix( int *, float * );
778 int CPL_DLL DGNStrokeArc( DGNHandle, DGNElemArc *, int, DGNPoint * );
779 int CPL_DLL DGNStrokeCurve( DGNHandle, DGNElemMultiPoint*, int, DGNPoint * );
780 void CPL_DLL DGNSetSpatialFilter( DGNHandle hDGN,
781  double dfXMin, double dfYMin,
782  double dfXMax, double dfYMax );
783 int CPL_DLL DGNGetAttrLinkSize( DGNHandle, DGNElemCore *, int );
784 unsigned char CPL_DLL *
785  DGNGetLinkage( DGNHandle hDGN, DGNElemCore *psElement,
786  int iIndex, int *pnLinkageType,
787  int *pnEntityNum, int *pnMSLink, int *pnLinkSize);
788 
789 /* Write API */
790 
791 int CPL_DLL DGNWriteElement( DGNHandle, DGNElemCore * );
792 int CPL_DLL DGNResizeElement( DGNHandle, DGNElemCore *, int );
793 DGNHandle CPL_DLL
794  DGNCreate( const char *pszNewFilename, const char *pszSeedFile,
795  int nCreationFlags,
796  double dfOriginX, double dfOriginY, double dfOriginZ,
797  int nMasterUnitPerSubUnit, int nUORPerSubUnit,
798  const char *pszMasterUnits, const char *pszSubUnits );
799 DGNElemCore CPL_DLL *DGNCloneElement( DGNHandle hDGNSrc, DGNHandle hDGNDst,
800  DGNElemCore *psSrcElement );
801 int CPL_DLL DGNUpdateElemCore( DGNHandle hDGN, DGNElemCore *psElement,
802  int nLevel, int nGraphicGroup, int nColor,
803  int nWeight, int nStyle );
804 int CPL_DLL DGNUpdateElemCoreExtended( DGNHandle hDGN,
805  DGNElemCore *psElement );
806 
807 DGNElemCore CPL_DLL *
808  DGNCreateMultiPointElem( DGNHandle hDGN, int nType,
809  int nPointCount, DGNPoint*pasVertices );
810 DGNElemCore CPL_DLL *
811  DGNCreateArcElem2D( DGNHandle hDGN, int nType,
812  double dfOriginX, double dfOriginY,
813  double dfPrimaryAxis, double dfSecondaryAxis,
814  double dfRotation,
815  double dfStartAngle, double dfSweepAngle );
816 
817 DGNElemCore CPL_DLL *
818  DGNCreateArcElem( DGNHandle hDGN, int nType,
819  double dfOriginX, double dfOriginY,
820  double dfOriginZ,
821  double dfPrimaryAxis, double dfSecondaryAxis,
822  double dfStartAngle, double dfSweepAngle,
823  double dfRotation, int *panQuaternion );
824 
825 DGNElemCore CPL_DLL *
827  double center_1X, double center_1Y,
828  double center_1Z, double radius_1,
829  double center_2X, double center_2Y,
830  double center_2Z, double radius_2,
831  int *panQuaternion );
832 
833 DGNElemCore CPL_DLL *
834  DGNCreateTextElem( DGNHandle hDGN, const char *pszText,
835  int nFontId, int nJustification,
836  double dfLengthMult, double dfHeightMult,
837  double dfRotation, int *panQuaternion,
838  double dfOriginX, double dfOriginY, double dfOriginZ );
839 
840 DGNElemCore CPL_DLL *
841  DGNCreateColorTableElem( DGNHandle hDGN, int nScreenFlag,
842  GByte abyColorInfo[256][3] );
843 DGNElemCore CPL_DLL *
844 DGNCreateComplexHeaderElem( DGNHandle hDGN, int nType,
845  int nTotLength, int nNumElems );
846 DGNElemCore CPL_DLL *
848  int nNumElems, DGNElemCore **papsElems );
849 
850 DGNElemCore CPL_DLL *
851 DGNCreateSolidHeaderElem( DGNHandle hDGN, int nType, int nSurfType,
852  int nBoundElems, int nTotLength, int nNumElems );
853 DGNElemCore CPL_DLL *
854 DGNCreateSolidHeaderFromGroup( DGNHandle hDGN, int nType, int nSurfType,
855  int nBoundElems, int nNumElems,
856  DGNElemCore **papsElems );
857 
858 DGNElemCore CPL_DLL *
859 DGNCreateCellHeaderElem( DGNHandle hDGN, int nTotLength, const char *pszName,
860  short nClass, short *panLevels,
861  DGNPoint *psRangeLow, DGNPoint *psRangeHigh,
862  DGNPoint *psOrigin, double dfXScale, double dfYScale,
863  double dfRotation );
864 
865 DGNElemCore CPL_DLL *
866 DGNCreateCellHeaderFromGroup( DGNHandle hDGN, const char *pszName,
867  short nClass, short *panLevels,
868  int nNumElems, DGNElemCore **papsElems,
869  DGNPoint *psOrigin,
870  double dfXScale, double dfYScale,
871  double dfRotation );
872 
873 int CPL_DLL DGNAddMSLink( DGNHandle hDGN, DGNElemCore *psElement,
874  int nLinkageType, int nEntityNum, int nMSLink );
875 
876 int CPL_DLL DGNAddRawAttrLink( DGNHandle hDGN, DGNElemCore *psElement,
877  int nLinkSize, unsigned char *pabyRawLinkData );
878 
879 int CPL_DLL DGNAddShapeFillInfo( DGNHandle hDGN, DGNElemCore *psElement,
880  int nColor );
881 
882 int CPL_DLL DGNElemTypeHasDispHdr( int nElemType );
883 
884 CPL_C_END
885 
886 #endif /* ndef DGNLIB_H_INCLUDED */
short num_knots_v
Definition: dgnlib.h:464
int raw_bytes
Definition: dgnlib.h:107
DGNPoint origin
Definition: dgnlib.h:279
long uor_per_subunit
Definition: dgnlib.h:248
DGNElemCore CPL_DLL * DGNCreateComplexHeaderElem(DGNHandle hDGN, int nType, int nTotLength, int nNumElems)
Definition: dgnwrite.cpp:1638
long desc_words
Definition: dgnlib.h:480
int CPL_DLL DGNGetExtents(DGNHandle, double *)
Definition: dgnread.cpp:1720
int totlength
Definition: dgnlib.h:188
tagValueUnion tagValue
Definition: dgnlib.h:348
Definition: dgnlib.h:215
short num_poles_u
Definition: dgnlib.h:456
short num_knots
Definition: dgnlib.h:487
unsigned char curve_type
Definition: dgnlib.h:485
short unknown
Definition: dgnlib.h:399
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)
Definition: dgnwrite.cpp:1402
Definition: dgnlib.h:331
char * tagSetName
Definition: dgnlib.h:383
short attindx
Definition: dgnlib.h:299
short max_length
Definition: dgnlib.h:426
double height_mult
Definition: dgnlib.h:432
DGNElemCore CPL_DLL * DGNCreateSolidHeaderElem(DGNHandle hDGN, int nType, int nSurfType, int nBoundElems, int nTotLength, int nNumElems)
Definition: dgnwrite.cpp:1814
DGNElemCore CPL_DLL * DGNReadElement(DGNHandle)
Definition: dgnread.cpp:1065
Definition: dgnlib.h:396
int boundelms
Definition: dgnlib.h:195
short dispsymb
Definition: dgnlib.h:304
unsigned short u_properties
Definition: dgnlib.h:454
DGNPoint rnglow
Definition: dgnlib.h:275
Definition: dgnlib.h:120
short num_poles_v
Definition: dgnlib.h:463
int stype
Definition: dgnlib.h:92
int totlength
Definition: dgnlib.h:323
const DGNElementInfo CPL_DLL * DGNGetElementIndex(DGNHandle, int *)
Definition: dgnread.cpp:1686
int type
Definition: dgnlib.h:361
int CPL_DLL DGNGetElementExtents(DGNHandle, DGNElemCore *, DGNPoint *, DGNPoint *)
Definition: dgnread.cpp:211
int complex
Definition: dgnlib.h:95
int dimension
Definition: dgnlib.h:242
unsigned char order
Definition: dgnlib.h:483
char * name
Definition: dgnlib.h:358
int tagCount
Definition: dgnlib.h:380
DGNPoint center_1
Definition: dgnlib.h:401
int justification
Definition: dgnlib.h:166
double startang
Definition: dgnlib.h:147
long desc_words
Definition: dgnlib.h:449
int font_id
Definition: dgnlib.h:165
DGNPoint center_2
Definition: dgnlib.h:403
DGNElemCore CPL_DLL * DGNCreateSolidHeaderFromGroup(DGNHandle hDGN, int nType, int nSurfType, int nBoundElems, int nNumElems, DGNElemCore **papsElems)
Definition: dgnwrite.cpp:1897
double radius_1
Definition: dgnlib.h:402
int tagLength
Definition: dgnlib.h:347
short num_knots_u
Definition: dgnlib.h:457
DGNHandle CPL_DLL DGNOpen(const char *, int)
Definition: dgnopen.cpp:96
short number
Definition: dgnlib.h:500
int numwords
Definition: dgnlib.h:302
int numelems
Definition: dgnlib.h:424
Definition: dgnlib.h:87
unsigned char type
Definition: dgnlib.h:70
Definition: dgnlib.h:320
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)
Definition: dgnwrite.cpp:310
DGNPoint origin
Definition: dgnlib.h:434
int CPL_DLL DGNGotoElement(DGNHandle, int)
Definition: dgnread.cpp:57
int level
Definition: dgnlib.h:93
int attr_bytes
Definition: dgnlib.h:104
DGNPoint origin
Definition: dgnlib.h:139
void CPL_DLL DGNSetOptions(DGNHandle, int)
Definition: dgnopen.cpp:187
unsigned char curve_type
Definition: dgnlib.h:452
short numverts
Definition: dgnlib.h:501
int flags
Definition: dgnlib.h:382
double secondary_axis
Definition: dgnlib.h:142
double rotation
Definition: dgnlib.h:433
long subunits_per_master
Definition: dgnlib.h:250
Definition: dgnlib.h:162
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)
Definition: dgnwrite.cpp:1254
void CPL_DLL DGNDumpElement(DGNHandle, DGNElemCore *, FILE *)
Definition: dgnhelp.cpp:564
double sweepang
Definition: dgnlib.h:148
int CPL_DLL DGNLookupColor(DGNHandle, int, int *, int *, int *)
Definition: dgnhelp.cpp:317
int CPL_DLL DGNElemTypeHasDispHdr(int nElemType)
Definition: dgnread.cpp:1146
int id
Definition: dgnlib.h:359
double height_mult
Definition: dgnlib.h:168
Definition: dgnlib.h:477
double z
Definition: dgnlib.h:59
void CPL_DLL DGNSetSpatialFilter(DGNHandle hDGN, double dfXMin, double dfYMin, double dfXMax, double dfYMax)
Definition: dgnopen.cpp:220
int style
Definition: dgnlib.h:102
unsigned short cclass
Definition: dgnlib.h:272
double y
Definition: dgnlib.h:58
short num_bounds
Definition: dgnlib.h:467
tagValueUnion defaultValue
Definition: dgnlib.h:362
short max_used
Definition: dgnlib.h:427
double origin_y
Definition: dgnlib.h:245
unsigned char CPL_DLL * DGNGetLinkage(DGNHandle hDGN, DGNElemCore *psElement, int iIndex, int *pnLinkageType, int *pnEntityNum, int *pnMSLink, int *pnLinkSize)
Definition: dgnhelp.cpp:1262
int CPL_DLL DGNGetAssocID(DGNHandle, DGNElemCore *)
Definition: dgnhelp.cpp:401
struct _DGNTagDef DGNTagDef
int totlength
Definition: dgnlib.h:422
unsigned char u_order
Definition: dgnlib.h:453
Definition: dgnlib.h:419
unsigned char flags
Definition: dgnlib.h:72
short justification
Definition: dgnlib.h:429
double length_mult
Definition: dgnlib.h:167
short rule_lines_v
Definition: dgnlib.h:465
int CPL_DLL DGNAddShapeFillInfo(DGNHandle hDGN, DGNElemCore *psElement, int nColor)
Definition: dgnwrite.cpp:2500
short celltype
Definition: dgnlib.h:298
double rotation
Definition: dgnlib.h:169
int totlength
Definition: dgnlib.h:268
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)
Definition: dgnwrite.cpp:1027
short num_poles
Definition: dgnlib.h:486
double x
Definition: dgnlib.h:57
Definition: dgnlib.h:239
unsigned char * attr_data
Definition: dgnlib.h:105
void CPL_DLL DGNRewind(DGNHandle)
Definition: dgnread.cpp:1545
DGNElemCore CPL_DLL * DGNCreateMultiPointElem(DGNHandle hDGN, int nType, int nPointCount, DGNPoint *pasVertices)
Definition: dgnwrite.cpp:877
int properties
Definition: dgnlib.h:99
Definition: dgnlib.h:446
double origin_z
Definition: dgnlib.h:246
unsigned short v_properties
Definition: dgnlib.h:461
double origin_x
Definition: dgnlib.h:244
Definition: dgnlib.h:341
Definition: dgnlib.h:295
unsigned short cclass
Definition: dgnlib.h:305
Definition: dgnlib.h:265
Definition: dgnlib.h:208
DGNElemCore CPL_DLL * DGNCreateCellHeaderFromGroup(DGNHandle hDGN, const char *pszName, short nClass, short *panLevels, int nNumElems, DGNElemCore **papsElems, DGNPoint *psOrigin, double dfXScale, double dfYScale, double dfRotation)
Definition: dgnwrite.cpp:2205
DGNPoint origin
Definition: dgnlib.h:170
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)
Definition: dgnwrite.cpp:1971
unsigned char v_order
Definition: dgnlib.h:460
Definition: dgnlib.h:56
int tagIndex
Definition: dgnlib.h:346
Definition: dgnlib.h:185
const char CPL_DLL * DGNTypeToName(int)
Definition: dgnhelp.cpp:1085
int type
Definition: dgnlib.h:94
int element_id
Definition: dgnlib.h:91
void * DGNHandle
Definition: dgnlib.h:753
double rotation
Definition: dgnlib.h:144
int deleted
Definition: dgnlib.h:96
int CPL_DLL DGNResizeElement(DGNHandle, DGNElemCore *, int)
Definition: dgnwrite.cpp:69
double radius_2
Definition: dgnlib.h:404
int num_vertices
Definition: dgnlib.h:123
int CPL_DLL DGNAddMSLink(DGNHandle hDGN, DGNElemCore *psElement, int nLinkageType, int nEntityNum, int nMSLink)
Definition: dgnwrite.cpp:2334
unsigned char level
Definition: dgnlib.h:69
int node_number
Definition: dgnlib.h:425
long line_spacing
Definition: dgnlib.h:430
Definition: dgnlib.h:68
Definition: dgnlib.h:513
DGNPoint rnghigh
Definition: dgnlib.h:276
int CPL_DLL DGNUpdateElemCore(DGNHandle hDGN, DGNElemCore *psElement, int nLevel, int nGraphicGroup, int nColor, int nWeight, int nStyle)
Definition: dgnwrite.cpp:727
int surftype
Definition: dgnlib.h:192
short rule_lines_u
Definition: dgnlib.h:458
char * prompt
Definition: dgnlib.h:360
DGNTagDef * tagList
Definition: dgnlib.h:385
int CPL_DLL DGNLoadTCB(DGNHandle)
Definition: dgnread.cpp:1635
double length_mult
Definition: dgnlib.h:431
Definition: dgnlib.h:497
int CPL_DLL DGNWriteElement(DGNHandle, DGNElemCore *)
Definition: dgnwrite.cpp:184
int tagSet
Definition: dgnlib.h:345
int numelems
Definition: dgnlib.h:191
DGNElemCore CPL_DLL * DGNCreateColorTableElem(DGNHandle hDGN, int nScreenFlag, GByte abyColorInfo[256][3])
Definition: dgnwrite.cpp:1568
Definition: dgnlib.h:377
double primary_axis
Definition: dgnlib.h:141
int color
Definition: dgnlib.h:100
DGNElemCore CPL_DLL * DGNCreateComplexHeaderFromGroup(DGNHandle hDGN, int nType, int nNumElems, DGNElemCore **papsElems)
Definition: dgnwrite.cpp:1721
void CPL_DLL DGNClose(DGNHandle)
Definition: dgnopen.cpp:289
unsigned char stype
Definition: dgnlib.h:71
unsigned char properties
Definition: dgnlib.h:484
int CPL_DLL DGNGetDimension(DGNHandle)
Definition: dgnopen.cpp:309
int tagSet
Definition: dgnlib.h:381
int CPL_DLL DGNAddRawAttrLink(DGNHandle hDGN, DGNElemCore *psElement, int nLinkSize, unsigned char *pabyRawLinkData)
Definition: dgnwrite.cpp:2404
short font_id
Definition: dgnlib.h:428
int tagType
Definition: dgnlib.h:344
int CPL_DLL DGNGetShapeFillInfo(DGNHandle, DGNElemCore *, int *)
Definition: dgnhelp.cpp:361
Definition: dgnlib.h:357
unsigned char * raw_data
Definition: dgnlib.h:108
int graphic_group
Definition: dgnlib.h:98
int CPL_DLL DGNTestOpen(GByte *, int)
Definition: dgnopen.cpp:47
Definition: dgnlib.h:136
int weight
Definition: dgnlib.h:101
long offset
Definition: dgnlib.h:73