dgnlib
dgnlib.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: dgnlib.h 59ac0f6876270b8fc7508be94297ab7d94aac470 2017-05-22 15:27:41Z Even Rouault $
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  vsi_l_offset 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[1];
125  // Note: We set [1] to please clang UBSAN
126  // regarding structures that are extended at
127  // malloc time
128 
130 
139 typedef struct {
140  DGNElemCore core;
141 
144  double primary_axis;
145  double secondary_axis;
147  double rotation;
148  int quat[4];
149 
150  double startang;
151  double sweepang;
153 } DGNElemArc;
154 
165 typedef struct {
166  DGNElemCore core; /* must be at first position ! */
167 
168  int font_id;
170  double length_mult;
171  double height_mult;
172  double rotation;
174  char string[1];
175 } DGNElemText;
176 
188 typedef struct {
189  DGNElemCore core; /* must be at first position ! */
190 
191  int totlength;
194  int numelems;
195  int surftype;
198  int boundelms;
201 
211 typedef struct {
212  DGNElemCore core;
213 
214  int screen_flag;
215  GByte color_info[256][3];
217 
218 typedef struct {
219  int flags;
220  unsigned char levels[8];
221  DGNPoint origin;
222  DGNPoint delta;
223  double transmatrx[9];
224  double conversion;
225  unsigned long activez;
226 } DGNViewInfo;
227 
242 typedef struct {
243  DGNElemCore core; /* must be at first position ! */
244 
245  int dimension;
247  double origin_x;
248  double origin_y;
249  double origin_z;
252  char sub_units[3];
254  char master_units[3];
256  DGNViewInfo views[8];
257 
258 } DGNElemTCB;
259 
268 typedef struct {
269  DGNElemCore core; /* must be at first position ! */
270 
271  int totlength;
274  char name[7];
275  unsigned short cclass;
276  unsigned short levels[4];
281  double trans[9];
284  double xscale;
285  double yscale;
286  double rotation;
287 
289 
298 typedef struct {
299  DGNElemCore core; /* must be at first position ! */
300 
301  short celltype;
302  short attindx;
303  char name[7];
305  int numwords;
307  short dispsymb;
308  unsigned short cclass;
309  unsigned short levels[4];
311  char description[28];
314 
323 typedef struct {
324  DGNElemCore core; /* must be at first position ! */
325 
326  int totlength;
329  // FIXME: Most of the contents of this element type is currently
330  // unknown. Please get in touch with the authors if you have
331  // information about how to decode this element.
333 
334 typedef union { char *string; GInt32 integer; double real; } tagValueUnion;
335 
344 typedef struct {
345  DGNElemCore core; /* must be at first position ! */
346 
347  int tagType;
348  int tagSet;
349  int tagIndex;
350  int tagLength;
354 
360 typedef struct _DGNTagDef {
361  char *name;
362  int id;
363  char *prompt;
364  int type;
366 } DGNTagDef;
367 
368 #define DGNTT_STRING 1
369 #define DGNTT_INTEGER 3
370 #define DGNTT_FLOAT 4
371 
380 typedef struct {
381  DGNElemCore core; /* must be at first position ! */
382 
383  int tagCount;
384  int tagSet;
385  int flags;
386  char *tagSetName;
390 } DGNElemTagSet;
391 
399 typedef struct {
400  DGNElemCore core; /* must be at first position ! */
401 
402  short unknown;
403  int quat[4];
405  double radius_1;
407  double radius_2;
409 } DGNElemCone;
410 
421 typedef struct {
422  DGNElemCore core; /* must be at first position ! */
423 
424  int totlength;
426  int numelems;
428  short max_length;
429  short max_used;
430  short font_id;
433  double length_mult;
434  double height_mult;
435  double rotation;
439 
447 typedef struct {
448  DGNElemCore core; /* must be at first position ! */
449 
450  long desc_words;
453  unsigned char curve_type;
454  unsigned char u_order;
455  unsigned short u_properties;
457  short num_poles_u;
458  short num_knots_u;
459  short rule_lines_u;
461  unsigned char v_order;
462  unsigned short v_properties;
464  short num_poles_v;
465  short num_knots_v;
466  short rule_lines_v;
468  short num_bounds;
470 
478 typedef struct {
479  DGNElemCore core; /* must be at first position ! */
480 
481  long desc_words;
484  unsigned char order;
485  unsigned char properties;
486  unsigned char curve_type;
487  short num_poles;
488  short num_knots;
490 
498 typedef struct {
499  DGNElemCore core; /* must be at first position ! */
500 
501  short number;
502  short numverts;
503  DGNPoint vertices[1];
506 
514 typedef struct {
515  DGNElemCore core; /* must be at first position ! */
516 
517  float array[1];
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 /* Element types */
582 /* -------------------------------------------------------------------- */
583 #define DGNT_CELL_LIBRARY 1
584 #define DGNT_CELL_HEADER 2
585 #define DGNT_LINE 3
586 #define DGNT_LINE_STRING 4
587 #define DGNT_GROUP_DATA 5
588 #define DGNT_SHAPE 6
589 #define DGNT_TEXT_NODE 7
590 #define DGNT_DIGITIZER_SETUP 8
591 #define DGNT_TCB 9
592 #define DGNT_LEVEL_SYMBOLOGY 10
593 #define DGNT_CURVE 11
594 #define DGNT_COMPLEX_CHAIN_HEADER 12
595 #define DGNT_COMPLEX_SHAPE_HEADER 14
596 #define DGNT_ELLIPSE 15
597 #define DGNT_ARC 16
598 #define DGNT_TEXT 17
599 #define DGNT_3DSURFACE_HEADER 18
600 #define DGNT_3DSOLID_HEADER 19
601 #define DGNT_BSPLINE_POLE 21
602 #define DGNT_POINT_STRING 22
603 #define DGNT_BSPLINE_SURFACE_HEADER 24
604 #define DGNT_BSPLINE_SURFACE_BOUNDARY 25
605 #define DGNT_BSPLINE_KNOT 26
606 #define DGNT_BSPLINE_CURVE_HEADER 27
607 #define DGNT_BSPLINE_WEIGHT_FACTOR 28
608 #define DGNT_CONE 23
609 #define DGNT_SHARED_CELL_DEFN 34
610 #define DGNT_SHARED_CELL_ELEM 35
611 #define DGNT_TAG_VALUE 37
612 #define DGNT_APPLICATION_ELEM 66
613 
614 /* -------------------------------------------------------------------- */
615 /* Line Styles */
616 /* -------------------------------------------------------------------- */
617 #define DGNS_SOLID 0
618 #define DGNS_DOTTED 1
619 #define DGNS_MEDIUM_DASH 2
620 #define DGNS_LONG_DASH 3
621 #define DGNS_DOT_DASH 4
622 #define DGNS_SHORT_DASH 5
623 #define DGNS_DASH_DOUBLE_DOT 6
624 #define DGNS_LONG_DASH_SHORT_DASH 7
625 
626 /* -------------------------------------------------------------------- */
627 /* 3D Surface Types */
628 /* -------------------------------------------------------------------- */
629 #define DGNSUT_SURFACE_OF_PROJECTION 0
630 #define DGNSUT_BOUNDED_PLANE 1
631 #define DGNSUT_BOUNDED_PLANE2 2
632 #define DGNSUT_RIGHT_CIRCULAR_CYLINDER 3
633 #define DGNSUT_RIGHT_CIRCULAR_CONE 4
634 #define DGNSUT_TABULATED_CYLINDER 5
635 #define DGNSUT_TABULATED_CONE 6
636 #define DGNSUT_CONVOLUTE 7
637 #define DGNSUT_SURFACE_OF_REVOLUTION 8
638 #define DGNSUT_WARPED_SURFACE 9
639 
640 /* -------------------------------------------------------------------- */
641 /* 3D Solid Types */
642 /* -------------------------------------------------------------------- */
643 #define DGNSOT_VOLUME_OF_PROJECTION 0
644 #define DGNSOT_VOLUME_OF_REVOLUTION 1
645 #define DGNSOT_BOUNDED_VOLUME 2
646 
647 /* -------------------------------------------------------------------- */
648 /* Class */
649 /* -------------------------------------------------------------------- */
650 #define DGNC_PRIMARY 0
651 #define DGNC_PATTERN_COMPONENT 1
652 #define DGNC_CONSTRUCTION_ELEMENT 2
653 #define DGNC_DIMENSION_ELEMENT 3
654 #define DGNC_PRIMARY_RULE_ELEMENT 4
655 #define DGNC_LINEAR_PATTERNED_ELEMENT 5
656 #define DGNC_CONSTRUCTION_RULE_ELEMENT 6
657 
658 /* -------------------------------------------------------------------- */
659 /* Group Data level numbers. */
660 /* */
661 /* These are symbolic values for the typ 5 (DGNT_GROUP_DATA) */
662 /* level values that have special meanings. */
663 /* -------------------------------------------------------------------- */
664 #define DGN_GDL_COLOR_TABLE 1
665 #define DGN_GDL_NAMED_VIEW 3
666 #define DGN_GDL_REF_FILE 9
667 
668 /* -------------------------------------------------------------------- */
669 /* Word 17 property flags. */
670 /* -------------------------------------------------------------------- */
671 #define DGNPF_HOLE 0x8000
672 #define DGNPF_SNAPPABLE 0x4000
673 #define DGNPF_PLANAR 0x2000
674 #define DGNPF_ORIENTATION 0x1000
675 #define DGNPF_ATTRIBUTES 0x0800
676 #define DGNPF_MODIFIED 0x0400
677 #define DGNPF_NEW 0x0200
678 #define DGNPF_LOCKED 0x0100
679 #define DGNPF_CLASS 0x000f
680 
681 /* -------------------------------------------------------------------- */
682 /* DGNElementInfo flag values. */
683 /* -------------------------------------------------------------------- */
684 #define DGNEIF_DELETED 0x01
685 #define DGNEIF_COMPLEX 0x02
686 
687 /* -------------------------------------------------------------------- */
688 /* Justifications */
689 /* -------------------------------------------------------------------- */
690 #define DGNJ_LEFT_TOP 0
691 #define DGNJ_LEFT_CENTER 1
692 #define DGNJ_LEFT_BOTTOM 2
693 #define DGNJ_LEFTMARGIN_TOP 3 /* text node header only */
694 #define DGNJ_LEFTMARGIN_CENTER 4 /* text node header only */
695 #define DGNJ_LEFTMARGIN_BOTTOM 5 /* text node header only */
696 #define DGNJ_CENTER_TOP 6
697 #define DGNJ_CENTER_CENTER 7
698 #define DGNJ_CENTER_BOTTOM 8
699 #define DGNJ_RIGHTMARGIN_TOP 9 /* text node header only */
700 #define DGNJ_RIGHTMARGIN_CENTER 10 /* text node header only */
701 #define DGNJ_RIGHTMARGIN_BOTTOM 11 /* text node header only */
702 #define DGNJ_RIGHT_TOP 12
703 #define DGNJ_RIGHT_CENTER 13
704 #define DGNJ_RIGHT_BOTTOM 14
705 
706 /* -------------------------------------------------------------------- */
707 /* DGN file reading options. */
708 /* -------------------------------------------------------------------- */
709 #define DGNO_CAPTURE_RAW_DATA 0x01
710 
711 /* -------------------------------------------------------------------- */
712 /* Known attribute linkage types, including my synthetic ones. */
713 /* -------------------------------------------------------------------- */
714 #define DGNLT_DMRS 0x0000
715 #define DGNLT_INFORMIX 0x3848
716 #define DGNLT_ODBC 0x5e62
717 #define DGNLT_ORACLE 0x6091
718 #define DGNLT_RIS 0x71FB
719 #define DGNLT_SYBASE 0x4f58
720 #define DGNLT_XBASE 0x1971
721 #define DGNLT_SHAPE_FILL 0x0041
722 #define DGNLT_ASSOC_ID 0x7D2F
723 
724 /* -------------------------------------------------------------------- */
725 /* File creation options. */
726 /* -------------------------------------------------------------------- */
727 
728 #define DGNCF_USE_SEED_UNITS 0x01
729 #define DGNCF_USE_SEED_ORIGIN 0x02
730 #define DGNCF_COPY_SEED_FILE_COLOR_TABLE 0x04
731 #define DGNCF_COPY_WHOLE_SEED_FILE 0x08
732 
733 /* -------------------------------------------------------------------- */
734 /* B-Spline Curve flags. Also used for U-direction of surfaces */
735 /* -------------------------------------------------------------------- */
736 #define DGNBSC_CURVE_DISPLAY 0x10
737 #define DGNBSC_POLY_DISPLAY 0x20
738 #define DGNBSC_RATIONAL 0x40
739 #define DGNBSC_CLOSED 0x80
740 
741 /* -------------------------------------------------------------------- */
742 /* B-Spline Curve flags for V-direction of surfaces. */
743 /* -------------------------------------------------------------------- */
744 #define DGNBSS_ARC_SPACING 0x40
745 #define DGNBSS_CLOSED 0x80
746 
747 /* -------------------------------------------------------------------- */
748 /* API */
749 /* -------------------------------------------------------------------- */
751 typedef void *DGNHandle;
752 
753 DGNHandle CPL_DLL DGNOpen( const char *, int );
754 void CPL_DLL DGNSetOptions( DGNHandle, int );
755 int CPL_DLL DGNTestOpen( GByte *, int );
756 const DGNElementInfo CPL_DLL *DGNGetElementIndex( DGNHandle, int * );
757 int CPL_DLL DGNGetExtents( DGNHandle, double * );
758 int CPL_DLL DGNGetDimension( DGNHandle );
760 void CPL_DLL DGNFreeElement( DGNHandle, DGNElemCore * );
761 void CPL_DLL DGNRewind( DGNHandle );
762 int CPL_DLL DGNGotoElement( DGNHandle, int );
763 void CPL_DLL DGNClose( DGNHandle );
764 int CPL_DLL DGNLoadTCB( DGNHandle );
765 int CPL_DLL DGNLookupColor( DGNHandle, int, int *, int *, int * );
766 int CPL_DLL DGNGetShapeFillInfo( DGNHandle, DGNElemCore *, int * );
767 int CPL_DLL DGNGetAssocID( DGNHandle, DGNElemCore * );
769  DGNPoint *, DGNPoint * );
770 
771 void CPL_DLL DGNDumpElement( DGNHandle, DGNElemCore *, FILE * );
772 const char CPL_DLL *DGNTypeToName( int );
773 
774 void CPL_DLL DGNRotationToQuaternion( double, int * );
775 void CPL_DLL DGNQuaternionToMatrix( int *, float * );
776 int CPL_DLL DGNStrokeArc( DGNHandle, DGNElemArc *, int, DGNPoint * );
777 int CPL_DLL DGNStrokeCurve( DGNHandle, DGNElemMultiPoint*, int, DGNPoint * );
778 void CPL_DLL DGNSetSpatialFilter( DGNHandle hDGN,
779  double dfXMin, double dfYMin,
780  double dfXMax, double dfYMax );
781 int CPL_DLL DGNGetAttrLinkSize( DGNHandle, DGNElemCore *, int );
782 unsigned char CPL_DLL *
783  DGNGetLinkage( DGNHandle hDGN, DGNElemCore *psElement,
784  int iIndex, int *pnLinkageType,
785  int *pnEntityNum, int *pnMSLink, int *pnLinkSize);
786 
787 /* Write API */
788 
789 int CPL_DLL DGNWriteElement( DGNHandle, DGNElemCore * );
790 int CPL_DLL DGNResizeElement( DGNHandle, DGNElemCore *, int );
791 DGNHandle CPL_DLL
792  DGNCreate( const char *pszNewFilename, const char *pszSeedFile,
793  int nCreationFlags,
794  double dfOriginX, double dfOriginY, double dfOriginZ,
795  int nMasterUnitPerSubUnit, int nUORPerSubUnit,
796  const char *pszMasterUnits, const char *pszSubUnits );
797 DGNElemCore CPL_DLL *DGNCloneElement( DGNHandle hDGNSrc, DGNHandle hDGNDst,
798  DGNElemCore *psSrcElement );
799 int CPL_DLL DGNUpdateElemCore( DGNHandle hDGN, DGNElemCore *psElement,
800  int nLevel, int nGraphicGroup, int nColor,
801  int nWeight, int nStyle );
802 int CPL_DLL DGNUpdateElemCoreExtended( DGNHandle hDGN,
803  DGNElemCore *psElement );
804 
805 DGNElemCore CPL_DLL *
806  DGNCreateMultiPointElem( DGNHandle hDGN, int nType,
807  int nPointCount, DGNPoint*pasVertices );
808 DGNElemCore CPL_DLL *
809  DGNCreateArcElem2D( DGNHandle hDGN, int nType,
810  double dfOriginX, double dfOriginY,
811  double dfPrimaryAxis, double dfSecondaryAxis,
812  double dfRotation,
813  double dfStartAngle, double dfSweepAngle );
814 
815 DGNElemCore CPL_DLL *
816  DGNCreateArcElem( DGNHandle hDGN, int nType,
817  double dfOriginX, double dfOriginY,
818  double dfOriginZ,
819  double dfPrimaryAxis, double dfSecondaryAxis,
820  double dfStartAngle, double dfSweepAngle,
821  double dfRotation, int *panQuaternion );
822 
823 DGNElemCore CPL_DLL *
825  double center_1X, double center_1Y,
826  double center_1Z, double radius_1,
827  double center_2X, double center_2Y,
828  double center_2Z, double radius_2,
829  int *panQuaternion );
830 
831 DGNElemCore CPL_DLL *
832  DGNCreateTextElem( DGNHandle hDGN, const char *pszText,
833  int nFontId, int nJustification,
834  double dfLengthMult, double dfHeightMult,
835  double dfRotation, int *panQuaternion,
836  double dfOriginX, double dfOriginY, double dfOriginZ );
837 
838 DGNElemCore CPL_DLL *
839  DGNCreateColorTableElem( DGNHandle hDGN, int nScreenFlag,
840  GByte abyColorInfo[256][3] );
841 DGNElemCore CPL_DLL *
842 DGNCreateComplexHeaderElem( DGNHandle hDGN, int nType,
843  int nTotLength, int nNumElems );
844 DGNElemCore CPL_DLL *
846  int nNumElems, DGNElemCore **papsElems );
847 
848 DGNElemCore CPL_DLL *
849 DGNCreateSolidHeaderElem( DGNHandle hDGN, int nType, int nSurfType,
850  int nBoundElems, int nTotLength, int nNumElems );
851 DGNElemCore CPL_DLL *
852 DGNCreateSolidHeaderFromGroup( DGNHandle hDGN, int nType, int nSurfType,
853  int nBoundElems, int nNumElems,
854  DGNElemCore **papsElems );
855 
856 DGNElemCore CPL_DLL *
857 DGNCreateCellHeaderElem( DGNHandle hDGN, int nTotLength, const char *pszName,
858  short nClass, short *panLevels,
859  DGNPoint *psRangeLow, DGNPoint *psRangeHigh,
860  DGNPoint *psOrigin, double dfXScale, double dfYScale,
861  double dfRotation );
862 
863 DGNElemCore CPL_DLL *
864 DGNCreateCellHeaderFromGroup( DGNHandle hDGN, const char *pszName,
865  short nClass, short *panLevels,
866  int nNumElems, DGNElemCore **papsElems,
867  DGNPoint *psOrigin,
868  double dfXScale, double dfYScale,
869  double dfRotation );
870 
871 int CPL_DLL DGNAddMSLink( DGNHandle hDGN, DGNElemCore *psElement,
872  int nLinkageType, int nEntityNum, int nMSLink );
873 
874 int CPL_DLL DGNAddRawAttrLink( DGNHandle hDGN, DGNElemCore *psElement,
875  int nLinkSize, unsigned char *pabyRawLinkData );
876 
877 int CPL_DLL DGNAddShapeFillInfo( DGNHandle hDGN, DGNElemCore *psElement,
878  int nColor );
879 
880 int CPL_DLL DGNElemTypeHasDispHdr( int nElemType );
881 
882 CPL_C_END
883 
884 #endif /* ndef DGNLIB_H_INCLUDED */
DGNElemSharedCellDefn::totlength
int totlength
Definition: dgnlib.h:326
DGNAddMSLink
int CPL_DLL DGNAddMSLink(DGNHandle hDGN, DGNElemCore *psElement, int nLinkageType, int nEntityNum, int nMSLink)
Definition: dgnwrite.cpp:2300
DGNCreateSolidHeaderFromGroup
DGNElemCore CPL_DLL * DGNCreateSolidHeaderFromGroup(DGNHandle hDGN, int nType, int nSurfType, int nBoundElems, int nNumElems, DGNElemCore **papsElems)
Definition: dgnwrite.cpp:1874
DGNElemText::origin
DGNPoint origin
Definition: dgnlib.h:173
DGNPoint::y
double y
Definition: dgnlib.h:58
DGNElemArc
Definition: dgnlib.h:139
DGNElemBSplineCurveHeader::properties
unsigned char properties
Definition: dgnlib.h:485
DGNElemTextNode::node_number
int node_number
Definition: dgnlib.h:427
DGNSetOptions
void CPL_DLL DGNSetOptions(DGNHandle, int)
Definition: dgnopen.cpp:181
DGNElemBSplineSurfaceHeader
Definition: dgnlib.h:447
DGNElemCone::center_2
DGNPoint center_2
Definition: dgnlib.h:406
DGNElemTagSet::flags
int flags
Definition: dgnlib.h:385
DGNElemComplexHeader::numelems
int numelems
Definition: dgnlib.h:194
DGNElemBSplineSurfaceBoundary::number
short number
Definition: dgnlib.h:501
DGNUpdateElemCore
int CPL_DLL DGNUpdateElemCore(DGNHandle hDGN, DGNElemCore *psElement, int nLevel, int nGraphicGroup, int nColor, int nWeight, int nStyle)
Definition: dgnwrite.cpp:704
DGNGotoElement
int CPL_DLL DGNGotoElement(DGNHandle, int)
Definition: dgnread.cpp:67
DGNElemText
Definition: dgnlib.h:165
DGNElemTextNode::max_length
short max_length
Definition: dgnlib.h:428
DGNElemCellLibrary::cclass
unsigned short cclass
Definition: dgnlib.h:308
DGNElemArc::startang
double startang
Definition: dgnlib.h:150
DGNElemCellHeader
Definition: dgnlib.h:268
DGNElemCellLibrary::dispsymb
short dispsymb
Definition: dgnlib.h:307
DGNElemMultiPoint::num_vertices
int num_vertices
Definition: dgnlib.h:123
tagValueUnion
Definition: dgnlib.h:334
DGNElementInfo::level
unsigned char level
Definition: dgnlib.h:69
DGNElemCellLibrary::attindx
short attindx
Definition: dgnlib.h:302
DGNLoadTCB
int CPL_DLL DGNLoadTCB(DGNHandle)
Definition: dgnread.cpp:1726
DGNElemTextNode::length_mult
double length_mult
Definition: dgnlib.h:433
DGNElemBSplineSurfaceHeader::desc_words
long desc_words
Definition: dgnlib.h:450
DGNSetSpatialFilter
void CPL_DLL DGNSetSpatialFilter(DGNHandle hDGN, double dfXMin, double dfYMin, double dfXMax, double dfYMax)
Definition: dgnopen.cpp:214
DGNElemCore::deleted
int deleted
Definition: dgnlib.h:96
DGNElemTCB::dimension
int dimension
Definition: dgnlib.h:245
DGNCreateColorTableElem
DGNElemCore CPL_DLL * DGNCreateColorTableElem(DGNHandle hDGN, int nScreenFlag, GByte abyColorInfo[256][3])
Definition: dgnwrite.cpp:1549
DGNElemTCB::uor_per_subunit
long uor_per_subunit
Definition: dgnlib.h:251
DGNElemBSplineSurfaceHeader::u_properties
unsigned short u_properties
Definition: dgnlib.h:455
DGNElemBSplineSurfaceHeader::num_poles_u
short num_poles_u
Definition: dgnlib.h:457
DGNElemCore::style
int style
Definition: dgnlib.h:102
DGNDumpElement
void CPL_DLL DGNDumpElement(DGNHandle, DGNElemCore *, FILE *)
Definition: dgnhelp.cpp:554
DGNElemTextNode::numelems
int numelems
Definition: dgnlib.h:426
DGNClose
void CPL_DLL DGNClose(DGNHandle)
Definition: dgnopen.cpp:284
DGNElemText::rotation
double rotation
Definition: dgnlib.h:172
DGNElemTextNode::font_id
short font_id
Definition: dgnlib.h:430
DGNRewind
void CPL_DLL DGNRewind(DGNHandle)
Definition: dgnread.cpp:1638
DGNElemTextNode::height_mult
double height_mult
Definition: dgnlib.h:434
DGNElementInfo::stype
unsigned char stype
Definition: dgnlib.h:71
_DGNTagDef::defaultValue
tagValueUnion defaultValue
Definition: dgnlib.h:365
DGNGetAssocID
int CPL_DLL DGNGetAssocID(DGNHandle, DGNElemCore *)
Definition: dgnhelp.cpp:397
DGNGetLinkage
unsigned char CPL_DLL * DGNGetLinkage(DGNHandle hDGN, DGNElemCore *psElement, int iIndex, int *pnLinkageType, int *pnEntityNum, int *pnMSLink, int *pnLinkSize)
Definition: dgnhelp.cpp:1243
DGNElemCone::radius_1
double radius_1
Definition: dgnlib.h:405
DGNElementInfo::type
unsigned char type
Definition: dgnlib.h:70
DGNElementInfo::offset
vsi_l_offset offset
Definition: dgnlib.h:73
DGNElemCore::raw_data
unsigned char * raw_data
Definition: dgnlib.h:108
DGNTagDef
struct _DGNTagDef DGNTagDef
DGNCreateCellHeaderElem
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:1947
DGNCreateArcElem
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:1003
_DGNTagDef::prompt
char * prompt
Definition: dgnlib.h:363
DGNElemCore::attr_data
unsigned char * attr_data
Definition: dgnlib.h:105
DGNElemCellLibrary::numwords
int numwords
Definition: dgnlib.h:305
DGNElemTagValue::tagType
int tagType
Definition: dgnlib.h:347
DGNElemText::height_mult
double height_mult
Definition: dgnlib.h:171
DGNElemText::justification
int justification
Definition: dgnlib.h:169
DGNElemTCB::origin_y
double origin_y
Definition: dgnlib.h:248
DGNElemBSplineSurfaceBoundary::numverts
short numverts
Definition: dgnlib.h:502
DGNElemBSplineSurfaceHeader::num_knots_v
short num_knots_v
Definition: dgnlib.h:465
DGNElemBSplineSurfaceHeader::v_properties
unsigned short v_properties
Definition: dgnlib.h:462
DGNHandle
void * DGNHandle
Definition: dgnlib.h:751
DGNCreateSolidHeaderElem
DGNElemCore CPL_DLL * DGNCreateSolidHeaderElem(DGNHandle hDGN, int nType, int nSurfType, int nBoundElems, int nTotLength, int nNumElems)
Definition: dgnwrite.cpp:1791
DGNElemTextNode::origin
DGNPoint origin
Definition: dgnlib.h:436
DGNElemTagValue
Definition: dgnlib.h:344
DGNResizeElement
int CPL_DLL DGNResizeElement(DGNHandle, DGNElemCore *, int)
Definition: dgnwrite.cpp:72
DGNCreateCellHeaderFromGroup
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:2178
DGNElemCone::unknown
short unknown
Definition: dgnlib.h:402
DGNElemTagSet::tagSet
int tagSet
Definition: dgnlib.h:384
DGNElemBSplineSurfaceHeader::u_order
unsigned char u_order
Definition: dgnlib.h:454
DGNElemTagSet::tagCount
int tagCount
Definition: dgnlib.h:383
DGNViewInfo
Definition: dgnlib.h:218
DGNElemCone::radius_2
double radius_2
Definition: dgnlib.h:407
DGNElemBSplineSurfaceHeader::curve_type
unsigned char curve_type
Definition: dgnlib.h:453
DGNCreateTextElem
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:1374
DGNTypeToName
const char CPL_DLL * DGNTypeToName(int)
Definition: dgnhelp.cpp:1066
DGNElemTCB::origin_z
double origin_z
Definition: dgnlib.h:249
DGNElemComplexHeader::surftype
int surftype
Definition: dgnlib.h:195
DGNElemArc::sweepang
double sweepang
Definition: dgnlib.h:151
DGNElemText::font_id
int font_id
Definition: dgnlib.h:168
DGNElemTagSet::tagSetName
char * tagSetName
Definition: dgnlib.h:386
DGNElemCore::stype
int stype
Definition: dgnlib.h:92
DGNElemBSplineSurfaceHeader::rule_lines_v
short rule_lines_v
Definition: dgnlib.h:466
DGNElemTagValue::tagLength
int tagLength
Definition: dgnlib.h:350
DGNElemBSplineSurfaceHeader::v_order
unsigned char v_order
Definition: dgnlib.h:461
DGNElemBSplineCurveHeader::num_knots
short num_knots
Definition: dgnlib.h:488
DGNElemArc::origin
DGNPoint origin
Definition: dgnlib.h:142
DGNElemCore::complex
int complex
Definition: dgnlib.h:95
DGNElemCone::center_1
DGNPoint center_1
Definition: dgnlib.h:404
DGNElemTCB::subunits_per_master
long subunits_per_master
Definition: dgnlib.h:253
DGNPoint
Definition: dgnlib.h:56
DGNElemKnotWeight
Definition: dgnlib.h:514
DGNElemTCB::origin_x
double origin_x
Definition: dgnlib.h:247
DGNElemArc::secondary_axis
double secondary_axis
Definition: dgnlib.h:145
DGNElemCellLibrary::celltype
short celltype
Definition: dgnlib.h:301
DGNCreate
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::x
double x
Definition: dgnlib.h:57
DGNElemBSplineSurfaceBoundary
Definition: dgnlib.h:498
DGNElemCore::color
int color
Definition: dgnlib.h:100
DGNElemBSplineSurfaceHeader::num_knots_u
short num_knots_u
Definition: dgnlib.h:458
DGNElemTCB
Definition: dgnlib.h:242
DGNWriteElement
int CPL_DLL DGNWriteElement(DGNHandle, DGNElemCore *)
Definition: dgnwrite.cpp:187
DGNElemBSplineSurfaceHeader::num_bounds
short num_bounds
Definition: dgnlib.h:468
DGNElemBSplineCurveHeader::desc_words
long desc_words
Definition: dgnlib.h:481
DGNElemCone
Definition: dgnlib.h:399
DGNElemText::length_mult
double length_mult
Definition: dgnlib.h:170
DGNElemCore::raw_bytes
int raw_bytes
Definition: dgnlib.h:107
DGNOpen
DGNHandle CPL_DLL DGNOpen(const char *, int)
Definition: dgnopen.cpp:95
DGNCreateComplexHeaderFromGroup
DGNElemCore CPL_DLL * DGNCreateComplexHeaderFromGroup(DGNHandle hDGN, int nType, int nNumElems, DGNElemCore **papsElems)
Definition: dgnwrite.cpp:1698
DGNElemBSplineCurveHeader
Definition: dgnlib.h:478
DGNElemTextNode::totlength
int totlength
Definition: dgnlib.h:424
DGNElemCore::type
int type
Definition: dgnlib.h:94
DGNCreateComplexHeaderElem
DGNElemCore CPL_DLL * DGNCreateComplexHeaderElem(DGNHandle hDGN, int nType, int nTotLength, int nNumElems)
Definition: dgnwrite.cpp:1617
DGNElemTextNode::rotation
double rotation
Definition: dgnlib.h:435
_DGNTagDef
Definition: dgnlib.h:360
DGNElemCore::weight
int weight
Definition: dgnlib.h:101
_DGNTagDef::id
int id
Definition: dgnlib.h:362
DGNGetDimension
int CPL_DLL DGNGetDimension(DGNHandle)
Definition: dgnopen.cpp:304
_DGNTagDef::type
int type
Definition: dgnlib.h:364
_DGNTagDef::name
char * name
Definition: dgnlib.h:361
DGNElemTagSet::tagList
DGNTagDef * tagList
Definition: dgnlib.h:388
DGNCreateConeElem
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:1231
DGNElemSharedCellDefn
Definition: dgnlib.h:323
DGNAddRawAttrLink
int CPL_DLL DGNAddRawAttrLink(DGNHandle hDGN, DGNElemCore *psElement, int nLinkSize, unsigned char *pabyRawLinkData)
Definition: dgnwrite.cpp:2370
DGNGetShapeFillInfo
int CPL_DLL DGNGetShapeFillInfo(DGNHandle, DGNElemCore *, int *)
Definition: dgnhelp.cpp:359
DGNElemCore::level
int level
Definition: dgnlib.h:93
DGNTestOpen
int CPL_DLL DGNTestOpen(GByte *, int)
Definition: dgnopen.cpp:46
DGNElemArc::primary_axis
double primary_axis
Definition: dgnlib.h:144
DGNElemComplexHeader
Definition: dgnlib.h:188
DGNElemCore::graphic_group
int graphic_group
Definition: dgnlib.h:98
DGNElemArc::rotation
double rotation
Definition: dgnlib.h:147
DGNElemTextNode::line_spacing
long line_spacing
Definition: dgnlib.h:432
DGNElemTagValue::tagSet
int tagSet
Definition: dgnlib.h:348
DGNElemCore::element_id
int element_id
Definition: dgnlib.h:91
DGNElemComplexHeader::boundelms
int boundelms
Definition: dgnlib.h:198
DGNGetExtents
int CPL_DLL DGNGetExtents(DGNHandle, double *)
Definition: dgnread.cpp:1811
DGNElemTagValue::tagValue
tagValueUnion tagValue
Definition: dgnlib.h:351
DGNElemTextNode::max_used
short max_used
Definition: dgnlib.h:429
DGNElemTextNode::justification
short justification
Definition: dgnlib.h:431
DGNElemBSplineSurfaceHeader::num_poles_v
short num_poles_v
Definition: dgnlib.h:464
DGNElemTypeHasDispHdr
int CPL_DLL DGNElemTypeHasDispHdr(int nElemType)
Definition: dgnread.cpp:1229
DGNLookupColor
int CPL_DLL DGNLookupColor(DGNHandle, int, int *, int *, int *)
Definition: dgnhelp.cpp:315
DGNElemCore
Definition: dgnlib.h:87
DGNAddShapeFillInfo
int CPL_DLL DGNAddShapeFillInfo(DGNHandle hDGN, DGNElemCore *psElement, int nColor)
Definition: dgnwrite.cpp:2465
DGNElemComplexHeader::totlength
int totlength
Definition: dgnlib.h:191
DGNElemCellHeader::origin
DGNPoint origin
Definition: dgnlib.h:282
DGNElemBSplineSurfaceHeader::rule_lines_u
short rule_lines_u
Definition: dgnlib.h:459
DGNElemCore::properties
int properties
Definition: dgnlib.h:99
DGNElemBSplineCurveHeader::num_poles
short num_poles
Definition: dgnlib.h:487
DGNElemCellHeader::rnglow
DGNPoint rnglow
Definition: dgnlib.h:278
DGNElementInfo::flags
unsigned char flags
Definition: dgnlib.h:72
DGNElemCellLibrary
Definition: dgnlib.h:298
DGNReadElement
DGNElemCore CPL_DLL * DGNReadElement(DGNHandle)
Definition: dgnread.cpp:1142
DGNElemMultiPoint
Definition: dgnlib.h:120
DGNElemBSplineCurveHeader::curve_type
unsigned char curve_type
Definition: dgnlib.h:486
DGNElemBSplineCurveHeader::order
unsigned char order
Definition: dgnlib.h:484
DGNGetElementIndex
const DGNElementInfo CPL_DLL * DGNGetElementIndex(DGNHandle, int *)
Definition: dgnread.cpp:1777
DGNGetElementExtents
int CPL_DLL DGNGetElementExtents(DGNHandle, DGNElemCore *, DGNPoint *, DGNPoint *)
Definition: dgnread.cpp:219
DGNElemColorTable
Definition: dgnlib.h:211
DGNElemCellHeader::cclass
unsigned short cclass
Definition: dgnlib.h:275
DGNElemCellHeader::totlength
int totlength
Definition: dgnlib.h:271
DGNElemTextNode
Definition: dgnlib.h:421
DGNElemTagValue::tagIndex
int tagIndex
Definition: dgnlib.h:349
DGNCreateMultiPointElem
DGNElemCore CPL_DLL * DGNCreateMultiPointElem(DGNHandle hDGN, int nType, int nPointCount, DGNPoint *pasVertices)
Definition: dgnwrite.cpp:853
DGNElementInfo
Definition: dgnlib.h:68
DGNElemTagSet
Definition: dgnlib.h:380
DGNElemCore::attr_bytes
int attr_bytes
Definition: dgnlib.h:104
DGNPoint::z
double z
Definition: dgnlib.h:59
DGNElemCellHeader::rnghigh
DGNPoint rnghigh
Definition: dgnlib.h:279