dgnlib
dgnlib.h
Go to the documentation of this file.
1/******************************************************************************
2 * $Id$
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
37CPL_C_START
38
39#define CPLE_DGN_ERROR_BASE
40#define CPLE_ElementTooBig CPLE_DGN_ERROR_BASE+1
41
56typedef struct {
57 double x;
58 double y;
59 double z;
60} DGNPoint;
61
68typedef struct {
69 unsigned char level;
70 unsigned char type;
71 unsigned char stype;
72 unsigned char flags;
73 vsi_l_offset offset;
75
87typedef struct {
88 int offset;
89 int size;
90
92 int stype;
93 int level;
94 int type;
95 int complex;
96 int deleted;
100 int color;
101 int weight;
102 int style;
105 unsigned char *attr_data;
108 unsigned char *raw_data;
110
120typedef 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
139typedef struct {
140 DGNElemCore core;
141
147 double rotation;
148 int quat[4];
149
150 double startang;
151 double sweepang;
153} DGNElemArc;
154
165typedef struct {
166 DGNElemCore core; /* must be at first position ! */
167
170 double length_mult;
171 double height_mult;
172 double rotation;
174 char string[1];
176
188typedef struct {
189 DGNElemCore core; /* must be at first position ! */
190
201
211typedef struct {
212 DGNElemCore core;
213
214 int screen_flag;
215 GByte color_info[256][3];
217
218typedef 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;
227
242typedef struct {
243 DGNElemCore core; /* must be at first position ! */
244
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
268typedef struct {
269 DGNElemCore core; /* must be at first position ! */
270
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
298typedef struct {
299 DGNElemCore core; /* must be at first position ! */
300
301 short celltype;
302 short attindx;
303 char name[7];
307 short dispsymb;
308 unsigned short cclass;
309 unsigned short levels[4];
311 char description[28];
314
323typedef struct {
324 DGNElemCore core; /* must be at first position ! */
325
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
334typedef union { char *string; GInt32 integer; double real; } tagValueUnion;
335
344typedef struct {
345 DGNElemCore core; /* must be at first position ! */
346
348 int tagSet;
354
360typedef struct _DGNTagDef {
361 char *name;
362 int id;
363 char *prompt;
364 int type;
367
368#define DGNTT_STRING 1
369#define DGNTT_INTEGER 3
370#define DGNTT_FLOAT 4
371
380typedef struct {
381 DGNElemCore core; /* must be at first position ! */
382
384 int tagSet;
385 int flags;
391
399typedef 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;
410
421typedef struct {
422 DGNElemCore core; /* must be at first position ! */
423
429 short max_used;
430 short font_id;
433 double length_mult;
434 double height_mult;
435 double rotation;
439
447typedef struct {
448 DGNElemCore core; /* must be at first position ! */
449
453 unsigned char curve_type;
454 unsigned char u_order;
455 unsigned short u_properties;
461 unsigned char v_order;
462 unsigned short v_properties;
470
478typedef struct {
479 DGNElemCore core; /* must be at first position ! */
480
484 unsigned char order;
485 unsigned char properties;
486 unsigned char curve_type;
487 short num_poles;
488 short num_knots;
490
498typedef struct {
499 DGNElemCore core; /* must be at first position ! */
500
501 short number;
502 short numverts;
503 DGNPoint vertices[1];
506
514typedef 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/* -------------------------------------------------------------------- */
751typedef void *DGNHandle;
752
753DGNHandle CPL_DLL DGNOpen( const char *, int );
754void CPL_DLL DGNSetOptions( DGNHandle, int );
755int CPL_DLL DGNTestOpen( GByte *, int );
756const DGNElementInfo CPL_DLL *DGNGetElementIndex( DGNHandle, int * );
757int CPL_DLL DGNGetExtents( DGNHandle, double * );
758int CPL_DLL DGNGetDimension( DGNHandle );
760void CPL_DLL DGNFreeElement( DGNHandle, DGNElemCore * );
761void CPL_DLL DGNRewind( DGNHandle );
762int CPL_DLL DGNGotoElement( DGNHandle, int );
763void CPL_DLL DGNClose( DGNHandle );
764int CPL_DLL DGNLoadTCB( DGNHandle );
765int CPL_DLL DGNLookupColor( DGNHandle, int, int *, int *, int * );
766int CPL_DLL DGNGetShapeFillInfo( DGNHandle, DGNElemCore *, int * );
767int CPL_DLL DGNGetAssocID( DGNHandle, DGNElemCore * );
769 DGNPoint *, DGNPoint * );
770
771void CPL_DLL DGNDumpElement( DGNHandle, DGNElemCore *, FILE * );
772const char CPL_DLL *DGNTypeToName( int );
773
774void CPL_DLL DGNRotationToQuaternion( double, int * );
775void CPL_DLL DGNQuaternionToMatrix( int *, float * );
776int CPL_DLL DGNStrokeArc( DGNHandle, DGNElemArc *, int, DGNPoint * );
777int CPL_DLL DGNStrokeCurve( DGNHandle, DGNElemMultiPoint*, int, DGNPoint * );
778void CPL_DLL DGNSetSpatialFilter( DGNHandle hDGN,
779 double dfXMin, double dfYMin,
780 double dfXMax, double dfYMax );
781int CPL_DLL DGNGetAttrLinkSize( DGNHandle, DGNElemCore *, int );
782unsigned 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
789int CPL_DLL DGNWriteElement( DGNHandle, DGNElemCore * );
790int CPL_DLL DGNResizeElement( DGNHandle, DGNElemCore *, int );
791DGNHandle 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 );
797DGNElemCore CPL_DLL *DGNCloneElement( DGNHandle hDGNSrc, DGNHandle hDGNDst,
798 DGNElemCore *psSrcElement );
799int CPL_DLL DGNUpdateElemCore( DGNHandle hDGN, DGNElemCore *psElement,
800 int nLevel, int nGraphicGroup, int nColor,
801 int nWeight, int nStyle );
802int CPL_DLL DGNUpdateElemCoreExtended( DGNHandle hDGN,
803 DGNElemCore *psElement );
804
805DGNElemCore CPL_DLL *
806 DGNCreateMultiPointElem( DGNHandle hDGN, int nType,
807 int nPointCount, DGNPoint*pasVertices );
808DGNElemCore 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
815DGNElemCore 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
823DGNElemCore 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
831DGNElemCore 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
838DGNElemCore CPL_DLL *
839 DGNCreateColorTableElem( DGNHandle hDGN, int nScreenFlag,
840 GByte abyColorInfo[256][3] );
841DGNElemCore CPL_DLL *
843 int nTotLength, int nNumElems );
844DGNElemCore CPL_DLL *
846 int nNumElems, DGNElemCore **papsElems );
847
848DGNElemCore CPL_DLL *
849DGNCreateSolidHeaderElem( DGNHandle hDGN, int nType, int nSurfType,
850 int nBoundElems, int nTotLength, int nNumElems );
851DGNElemCore CPL_DLL *
852DGNCreateSolidHeaderFromGroup( DGNHandle hDGN, int nType, int nSurfType,
853 int nBoundElems, int nNumElems,
854 DGNElemCore **papsElems );
855
856DGNElemCore CPL_DLL *
857DGNCreateCellHeaderElem( 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
863DGNElemCore CPL_DLL *
864DGNCreateCellHeaderFromGroup( 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
871int CPL_DLL DGNAddMSLink( DGNHandle hDGN, DGNElemCore *psElement,
872 int nLinkageType, int nEntityNum, int nMSLink );
873
874int CPL_DLL DGNAddRawAttrLink( DGNHandle hDGN, DGNElemCore *psElement,
875 int nLinkSize, unsigned char *pabyRawLinkData );
876
877int CPL_DLL DGNAddShapeFillInfo( DGNHandle hDGN, DGNElemCore *psElement,
878 int nColor );
879
880int CPL_DLL DGNElemTypeHasDispHdr( int nElemType );
881
882CPL_C_END
883
884#endif /* ndef DGNLIB_H_INCLUDED */
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
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
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
int CPL_DLL DGNGetShapeFillInfo(DGNHandle, DGNElemCore *, int *)
Definition: dgnhelp.cpp:359
int CPL_DLL DGNWriteElement(DGNHandle, DGNElemCore *)
Definition: dgnwrite.cpp:187
int CPL_DLL DGNGetElementExtents(DGNHandle, DGNElemCore *, DGNPoint *, DGNPoint *)
Definition: dgnread.cpp:219
const DGNElementInfo CPL_DLL * DGNGetElementIndex(DGNHandle, int *)
Definition: dgnread.cpp:1773
DGNElemCore CPL_DLL * DGNCreateSolidHeaderFromGroup(DGNHandle hDGN, int nType, int nSurfType, int nBoundElems, int nNumElems, DGNElemCore **papsElems)
Definition: dgnwrite.cpp:1874
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
DGNElemCore CPL_DLL * DGNCreateComplexHeaderElem(DGNHandle hDGN, int nType, int nTotLength, int nNumElems)
Definition: dgnwrite.cpp:1617
int CPL_DLL DGNGetDimension(DGNHandle)
Definition: dgnopen.cpp:304
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
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
DGNElemCore CPL_DLL * DGNCreateComplexHeaderFromGroup(DGNHandle hDGN, int nType, int nNumElems, DGNElemCore **papsElems)
Definition: dgnwrite.cpp:1698
int CPL_DLL DGNAddRawAttrLink(DGNHandle hDGN, DGNElemCore *psElement, int nLinkSize, unsigned char *pabyRawLinkData)
Definition: dgnwrite.cpp:2370
int CPL_DLL DGNGetAssocID(DGNHandle, DGNElemCore *)
Definition: dgnhelp.cpp:397
struct _DGNTagDef DGNTagDef
unsigned char CPL_DLL * DGNGetLinkage(DGNHandle hDGN, DGNElemCore *psElement, int iIndex, int *pnLinkageType, int *pnEntityNum, int *pnMSLink, int *pnLinkSize)
Definition: dgnhelp.cpp:1243
int CPL_DLL DGNTestOpen(GByte *, int)
Definition: dgnopen.cpp:46
int CPL_DLL DGNGetExtents(DGNHandle, double *)
Definition: dgnread.cpp:1807
int CPL_DLL DGNAddShapeFillInfo(DGNHandle hDGN, DGNElemCore *psElement, int nColor)
Definition: dgnwrite.cpp:2465
int CPL_DLL DGNAddMSLink(DGNHandle hDGN, DGNElemCore *psElement, int nLinkageType, int nEntityNum, int nMSLink)
Definition: dgnwrite.cpp:2300
void CPL_DLL DGNRewind(DGNHandle)
Definition: dgnread.cpp:1634
int CPL_DLL DGNElemTypeHasDispHdr(int nElemType)
Definition: dgnread.cpp:1225
DGNElemCore CPL_DLL * DGNCreateMultiPointElem(DGNHandle hDGN, int nType, int nPointCount, DGNPoint *pasVertices)
Definition: dgnwrite.cpp:853
void CPL_DLL DGNSetSpatialFilter(DGNHandle hDGN, double dfXMin, double dfYMin, double dfXMax, double dfYMax)
Definition: dgnopen.cpp:214
void * DGNHandle
Definition: dgnlib.h:751
void CPL_DLL DGNDumpElement(DGNHandle, DGNElemCore *, FILE *)
Definition: dgnhelp.cpp:554
DGNElemCore CPL_DLL * DGNReadElement(DGNHandle)
Definition: dgnread.cpp:1138
int CPL_DLL DGNLoadTCB(DGNHandle)
Definition: dgnread.cpp:1722
DGNElemCore CPL_DLL * DGNCreateColorTableElem(DGNHandle hDGN, int nScreenFlag, GByte abyColorInfo[256][3])
Definition: dgnwrite.cpp:1549
DGNHandle CPL_DLL DGNOpen(const char *, int)
Definition: dgnopen.cpp:95
const char CPL_DLL * DGNTypeToName(int)
Definition: dgnhelp.cpp:1066
void CPL_DLL DGNSetOptions(DGNHandle, int)
Definition: dgnopen.cpp:181
int CPL_DLL DGNResizeElement(DGNHandle, DGNElemCore *, int)
Definition: dgnwrite.cpp:72
int CPL_DLL DGNUpdateElemCore(DGNHandle hDGN, DGNElemCore *psElement, int nLevel, int nGraphicGroup, int nColor, int nWeight, int nStyle)
Definition: dgnwrite.cpp:704
int CPL_DLL DGNLookupColor(DGNHandle, int, int *, int *, int *)
Definition: dgnhelp.cpp:315
DGNElemCore CPL_DLL * DGNCreateSolidHeaderElem(DGNHandle hDGN, int nType, int nSurfType, int nBoundElems, int nTotLength, int nNumElems)
Definition: dgnwrite.cpp:1791
void CPL_DLL DGNClose(DGNHandle)
Definition: dgnopen.cpp:284
int CPL_DLL DGNGotoElement(DGNHandle, int)
Definition: dgnread.cpp:67
Definition: dgnlib.h:139
double secondary_axis
Definition: dgnlib.h:145
double startang
Definition: dgnlib.h:150
DGNPoint origin
Definition: dgnlib.h:142
double primary_axis
Definition: dgnlib.h:144
double rotation
Definition: dgnlib.h:147
double sweepang
Definition: dgnlib.h:151
Definition: dgnlib.h:478
unsigned char curve_type
Definition: dgnlib.h:486
short num_poles
Definition: dgnlib.h:487
short num_knots
Definition: dgnlib.h:488
unsigned char order
Definition: dgnlib.h:484
long desc_words
Definition: dgnlib.h:481
unsigned char properties
Definition: dgnlib.h:485
Definition: dgnlib.h:498
short number
Definition: dgnlib.h:501
short numverts
Definition: dgnlib.h:502
Definition: dgnlib.h:447
unsigned char curve_type
Definition: dgnlib.h:453
short num_bounds
Definition: dgnlib.h:468
short rule_lines_u
Definition: dgnlib.h:459
short num_knots_v
Definition: dgnlib.h:465
short num_knots_u
Definition: dgnlib.h:458
short num_poles_v
Definition: dgnlib.h:464
short num_poles_u
Definition: dgnlib.h:457
unsigned char v_order
Definition: dgnlib.h:461
unsigned short u_properties
Definition: dgnlib.h:455
long desc_words
Definition: dgnlib.h:450
unsigned short v_properties
Definition: dgnlib.h:462
unsigned char u_order
Definition: dgnlib.h:454
short rule_lines_v
Definition: dgnlib.h:466
Definition: dgnlib.h:268
int totlength
Definition: dgnlib.h:271
DGNPoint rnghigh
Definition: dgnlib.h:279
DGNPoint origin
Definition: dgnlib.h:282
unsigned short cclass
Definition: dgnlib.h:275
DGNPoint rnglow
Definition: dgnlib.h:278
Definition: dgnlib.h:298
unsigned short cclass
Definition: dgnlib.h:308
short celltype
Definition: dgnlib.h:301
int numwords
Definition: dgnlib.h:305
short dispsymb
Definition: dgnlib.h:307
short attindx
Definition: dgnlib.h:302
Definition: dgnlib.h:211
Definition: dgnlib.h:188
int totlength
Definition: dgnlib.h:191
int surftype
Definition: dgnlib.h:195
int numelems
Definition: dgnlib.h:194
int boundelms
Definition: dgnlib.h:198
Definition: dgnlib.h:399
double radius_1
Definition: dgnlib.h:405
short unknown
Definition: dgnlib.h:402
double radius_2
Definition: dgnlib.h:407
DGNPoint center_2
Definition: dgnlib.h:406
DGNPoint center_1
Definition: dgnlib.h:404
Definition: dgnlib.h:87
int style
Definition: dgnlib.h:102
int complex
Definition: dgnlib.h:95
int attr_bytes
Definition: dgnlib.h:104
int weight
Definition: dgnlib.h:101
int element_id
Definition: dgnlib.h:91
int properties
Definition: dgnlib.h:99
unsigned char * raw_data
Definition: dgnlib.h:108
int level
Definition: dgnlib.h:93
int type
Definition: dgnlib.h:94
int stype
Definition: dgnlib.h:92
int deleted
Definition: dgnlib.h:96
unsigned char * attr_data
Definition: dgnlib.h:105
int raw_bytes
Definition: dgnlib.h:107
int color
Definition: dgnlib.h:100
int graphic_group
Definition: dgnlib.h:98
Definition: dgnlib.h:514
Definition: dgnlib.h:120
int num_vertices
Definition: dgnlib.h:123
Definition: dgnlib.h:323
int totlength
Definition: dgnlib.h:326
Definition: dgnlib.h:242
double origin_y
Definition: dgnlib.h:248
double origin_x
Definition: dgnlib.h:247
double origin_z
Definition: dgnlib.h:249
long subunits_per_master
Definition: dgnlib.h:253
int dimension
Definition: dgnlib.h:245
long uor_per_subunit
Definition: dgnlib.h:251
Definition: dgnlib.h:380
DGNTagDef * tagList
Definition: dgnlib.h:388
char * tagSetName
Definition: dgnlib.h:386
int flags
Definition: dgnlib.h:385
int tagCount
Definition: dgnlib.h:383
int tagSet
Definition: dgnlib.h:384
Definition: dgnlib.h:344
int tagIndex
Definition: dgnlib.h:349
int tagLength
Definition: dgnlib.h:350
tagValueUnion tagValue
Definition: dgnlib.h:351
int tagSet
Definition: dgnlib.h:348
int tagType
Definition: dgnlib.h:347
Definition: dgnlib.h:421
DGNPoint origin
Definition: dgnlib.h:436
double height_mult
Definition: dgnlib.h:434
short font_id
Definition: dgnlib.h:430
double rotation
Definition: dgnlib.h:435
short max_length
Definition: dgnlib.h:428
double length_mult
Definition: dgnlib.h:433
short justification
Definition: dgnlib.h:431
long line_spacing
Definition: dgnlib.h:432
short max_used
Definition: dgnlib.h:429
int node_number
Definition: dgnlib.h:427
int numelems
Definition: dgnlib.h:426
int totlength
Definition: dgnlib.h:424
Definition: dgnlib.h:165
int justification
Definition: dgnlib.h:169
double height_mult
Definition: dgnlib.h:171
DGNPoint origin
Definition: dgnlib.h:173
double length_mult
Definition: dgnlib.h:170
double rotation
Definition: dgnlib.h:172
int font_id
Definition: dgnlib.h:168
Definition: dgnlib.h:68
unsigned char flags
Definition: dgnlib.h:72
vsi_l_offset offset
Definition: dgnlib.h:73
unsigned char level
Definition: dgnlib.h:69
unsigned char stype
Definition: dgnlib.h:71
unsigned char type
Definition: dgnlib.h:70
Definition: dgnlib.h:56
double x
Definition: dgnlib.h:57
double z
Definition: dgnlib.h:59
double y
Definition: dgnlib.h:58
Definition: dgnlib.h:218
Definition: dgnlib.h:360
int id
Definition: dgnlib.h:362
int type
Definition: dgnlib.h:364
tagValueUnion defaultValue
Definition: dgnlib.h:365
char * name
Definition: dgnlib.h:361
char * prompt
Definition: dgnlib.h:363
Definition: dgnlib.h:334