Coverage Report

Created: 2026-11-12 06:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libredwg/include/dwg.h
Line
Count
Source
1
/*****************************************************************************/
2
/*  LibreDWG - free implementation of the DWG file format                    */
3
/*                                                                           */
4
/*  Copyright (C) 2009-2010,2018-2025 Free Software Foundation, Inc.         */
5
/*                                                                           */
6
/*  This library is free software, licensed under the terms of the GNU       */
7
/*  General Public License as published by the Free Software Foundation,     */
8
/*  either version 3 of the License, or (at your option) any later version.  */
9
/*  You should have received a copy of the GNU General Public License        */
10
/*  along with this program.  If not, see <http://www.gnu.org/licenses/>.    */
11
/*****************************************************************************/
12
13
/*
14
 * dwg.h: main public header file (the other variant is dwg_api.h)
15
 *
16
 * written by Felipe Castro
17
 * modified by Felipe Corrêa da Silva Sances
18
 * modified by Rodrigo Rodrigues da Silva
19
 * modified by Till Heuschmann
20
 * modified by Reini Urban
21
 * modified by Michal Josef Špaček
22
 */
23
24
#ifndef DWG_H
25
#define DWG_H
26
27
/* keep in sync with release tags */
28
0
#define LIBREDWG_VERSION_MAJOR 0
29
0
#define LIBREDWG_VERSION_MINOR 14
30
0
#define LIBREDWG_VERSION       ((LIBREDWG_VERSION_MAJOR * 100) + LIBREDWG_VERSION_MINOR)
31
32
/* for uint64_t, but not in swig */
33
#ifndef SWIGIMPORTED
34
#  include <stdbool.h>
35
#  include <stddef.h>
36
#  include <stdint.h>
37
#  include <inttypes.h>
38
39
/* wchar for R2007+ support
40
 * But we need the win32 UTF-16 variant, not UTF-32.
41
 * i.e. only on Windows, AIX, Solaris
42
 */
43
# if defined(HAVE_WCHAR_H) && defined(SIZEOF_WCHAR_T)
44
#    if SIZEOF_WCHAR_T == 2
45
#      include <wchar.h>
46
#      define HAVE_NATIVE_WCHAR2
47
#      define DWGCHAR wchar_t
48
#      define dwg_wchar_t wchar_t
49
#    endif
50
#  endif
51
#endif
52
53
#ifndef EXPORT
54
# ifdef SWIG
55
#  define EXPORT extern
56
# elif defined(_WIN32) && defined(ENABLE_SHARED)
57
#  ifdef DLL_EXPORT
58
#    define EXPORT  __declspec(dllexport)
59
#  else
60
#    define EXPORT  __declspec(dllimport)
61
#  endif
62
# elif defined(__clang__) || defined(__clang) || \
63
        (defined( __GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 303)
64
#  define EXPORT __attribute__((visibility("default")))
65
# else
66
#  define EXPORT
67
# endif
68
#endif
69
70
#ifndef __counted_by
71
#  if (defined(__clang__) && (__clang_major__ >= 18)) || \
72
      (defined( __GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 1500)
73
#    define __counted_by(x) __attribute__((__counted_by__(x)))
74
#    ifdef __cplusplus
75
#      undef __counted_by
76
#      define __counted_by(x)
77
#    endif
78
#  else
79
#    define __counted_by(x)
80
#  endif
81
#endif
82
83
#ifdef __cplusplus
84
extern "C" {
85
# ifndef restrict
86
#  define restrict __restrict
87
# endif
88
#endif
89
90
#define BITCODE_DOUBLE double
91
92
/* The FORMAT_* are for logging only */
93
typedef unsigned char BITCODE_RC;
94
#if defined _MSC_VER && !defined __clang__
95
# define FORMAT_RC "0x%2x"
96
# define SCANF_2X "%2hhX"
97
#else
98
# define FORMAT_RC "0x%hhx"
99
0
# define SCANF_2X "%2hhX"
100
#endif
101
#define FORMAT_RCd "%d"
102
#define FORMAT_RCu "%u"
103
#define FORMAT_RCx "0x%x"
104
typedef signed char BITCODE_RCd;
105
typedef unsigned char BITCODE_RCu;
106
typedef unsigned char BITCODE_RCx;
107
typedef unsigned char BITCODE_B;
108
#define FORMAT_B "%d"
109
typedef unsigned char BITCODE_BB;
110
#define FORMAT_BB "%u"
111
/* Since R24 */
112
typedef unsigned char BITCODE_3B;
113
#define FORMAT_3B "%u"
114
//#ifdef HAVE_STDINT_H
115
//#define BITCODE_BS uint16_t
116
//#define BITCODE_RS uint16_t
117
//#define BITCODE_BL uint32_t
118
//#define BITCODE_RL uint32_t
119
//#define BITCODE_BLd int32_t
120
//#define BITCODE_RLd int32_t
121
typedef uint16_t BITCODE_BS;
122
typedef int16_t BITCODE_BSd;
123
typedef uint16_t BITCODE_BSx;
124
typedef uint16_t BITCODE_RS;
125
typedef int16_t BITCODE_RSd;
126
typedef uint16_t BITCODE_RSx;
127
typedef uint32_t BITCODE_BL;
128
typedef uint32_t BITCODE_BLx;
129
typedef int32_t BITCODE_BLd;
130
typedef uint32_t BITCODE_RL;
131
typedef uint32_t BITCODE_RLx;
132
typedef int32_t BITCODE_RLd;
133
/* e.g. old cygwin 64 vs 32 */
134
/*#else
135
# if defined(__WORDSIZE) && __WORDSIZE == 64
136
  typedef unsigned short int BITCODE_BS;
137
  typedef unsigned short int BITCODE_RS;
138
  typedef unsigned int BITCODE_BL;
139
  typedef unsigned int BITCODE_RL;
140
  typedef int BITCODE_BLd;
141
  typedef int BITCODE_RLd;
142
# else
143
  typedef unsigned short int BITCODE_BS;
144
  typedef unsigned short int BITCODE_RS;
145
  typedef unsigned long BITCODE_BL;
146
  typedef unsigned long BITCODE_RL;
147
  typedef long BITCODE_BLd;
148
  typedef long BITCODE_RLd;
149
# endif
150
#endif
151
*/
152
//#ifdef HAVE_INTTYPES_H
153
#define FORMAT_BS "%" PRIu16
154
#define FORMAT_BSd "%" PRId16
155
#define FORMAT_BSx "0x%" PRIx16
156
#define FORMAT_RS "%" PRIu16
157
#define FORMAT_RSd "%" PRId16
158
#define FORMAT_RSx "0x%" PRIx16
159
#define FORMAT_BL "%" PRIu32
160
#define FORMAT_RL "%" PRIu32
161
#define FORMAT_BLd "%" PRId32
162
#define FORMAT_RLd "%" PRId32
163
#define FORMAT_RLx "0x%" PRIx32
164
#define FORMAT_BLX "%" PRIX32
165
#define FORMAT_BLx "0x%" PRIx32
166
/*#else
167
# define FORMAT_BS "%hu"
168
# define FORMAT_RS "%hu"
169
# define FORMAT_BL "%u"
170
# define FORMAT_RL "%u"
171
# define FORMAT_BLd "%d"
172
# define FORMAT_RLd "%d"
173
# define FORMAT_BLX "%X"
174
# define FORMAT_BLx "%x"
175
#endif
176
*/
177
typedef BITCODE_DOUBLE BITCODE_RD;
178
#define FORMAT_RD "%g"
179
/* Since R2004 */
180
typedef uint64_t BITCODE_RLL;
181
typedef uint64_t BITCODE_RLLx;
182
typedef int64_t BITCODE_RLLd;
183
typedef uint64_t BITCODE_BLL;
184
1
#define FORMAT_RLLx "%" PRIX64
185
#define FORMAT_RLL "0x%" PRIX64
186
#define FORMAT_RLLd "%" PRId64
187
#define FORMAT_BLL "%" PRIu64
188
typedef int32_t BITCODE_MC;
189
#define FORMAT_MC "%" PRId32
190
typedef uint64_t BITCODE_UMC;
191
#define FORMAT_UMC FORMAT_RLL
192
typedef BITCODE_BL BITCODE_MS;
193
#define FORMAT_MS FORMAT_BL
194
#ifndef HAVE_NATIVE_WCHAR2
195
  typedef BITCODE_RS dwg_wchar_t;
196
0
# define DWGCHAR dwg_wchar_t
197
#endif
198
typedef unsigned char* BITCODE_TF;
199
#define FORMAT_TF "\"%s\""
200
typedef char* BITCODE_TV;
201
#define FORMAT_TV "\"%s\""
202
#define BITCODE_T16 BITCODE_TV
203
#define FORMAT_T16 FORMAT_TV
204
#define BITCODE_TU16 BITCODE_TU
205
#define FORMAT_TU16 FORMAT_TU
206
0
#define BITCODE_T32 BITCODE_TV
207
#define FORMAT_T32 FORMAT_TV
208
#define BITCODE_TU32 BITCODE_TV
209
#define FORMAT_TU32 FORMAT_TV
210
typedef BITCODE_DOUBLE BITCODE_BT;
211
#define FORMAT_BT "%g"
212
typedef BITCODE_DOUBLE BITCODE_DD;
213
#define FORMAT_DD "%g"
214
typedef BITCODE_DOUBLE BITCODE_BD;
215
#define FORMAT_BD "%g"
216
typedef BITCODE_RC BITCODE_4BITS;
217
typedef BITCODE_RLLx BITCODE_HV; // handle value (not vector)
218
1
#define FORMAT_HV FORMAT_RLLx
219
#define FORMAT_4BITS "%1x"
220
/* double stored as string. ARCALIGNEDTEXT */
221
typedef BITCODE_TV BITCODE_D2T;
222
#define FORMAT_D2T "%s"
223
224
/* TODO: implement version dependent string parsing */
225
/* encode codepages/utf8 */
226
50.3k
#define BITCODE_T  BITCODE_TV
227
#ifdef HAVE_NATIVE_WCHAR2
228
  typedef dwg_wchar_t* BITCODE_TU; /* native UCS-2 wchar_t */
229
# define FORMAT_TU "\"%ls\""
230
#else
231
  typedef BITCODE_RS* BITCODE_TU;  /* UCS-2 unicode text */
232
# define FORMAT_TU "\"%hn\""       /* will print garbage */
233
#endif
234
235
typedef struct _dwg_time_bll
236
{
237
  BITCODE_BL days;
238
  BITCODE_BL ms;
239
  BITCODE_BD value;
240
} Dwg_Bitcode_TimeBLL;
241
242
typedef struct _dwg_bitcode_2rd
243
{
244
  BITCODE_RD x;
245
  BITCODE_RD y;
246
} Dwg_Bitcode_2RD;
247
248
typedef struct _dwg_bitcode_2bd
249
{
250
  BITCODE_BD x;
251
  BITCODE_BD y;
252
} Dwg_Bitcode_2BD;
253
254
typedef struct _dwg_bitcode_3rd
255
{
256
  BITCODE_RD x;
257
  BITCODE_RD y;
258
  BITCODE_RD z;
259
} Dwg_Bitcode_3RD;
260
261
typedef struct _dwg_bitcode_3bd
262
{
263
  BITCODE_BD x;
264
  BITCODE_BD y;
265
  BITCODE_BD z;
266
} Dwg_Bitcode_3BD;
267
268
typedef Dwg_Bitcode_TimeBLL BITCODE_TIMEBLL;
269
typedef Dwg_Bitcode_TimeBLL BITCODE_TIMERLL;
270
/* #define FORMAT_TIMEBLL FORMAT_BL "." FORMAT_BL */
271
typedef Dwg_Bitcode_2RD  BITCODE_2RD;
272
typedef Dwg_Bitcode_2BD  BITCODE_2BD;
273
typedef Dwg_Bitcode_2BD  BITCODE_2DPOINT;
274
typedef Dwg_Bitcode_2BD  BITCODE_2BD_1;
275
typedef Dwg_Bitcode_3RD  BITCODE_3RD;
276
typedef Dwg_Bitcode_3BD  BITCODE_3BD;
277
typedef Dwg_Bitcode_3BD  BITCODE_3DPOINT;
278
typedef Dwg_Bitcode_3BD  BITCODE_3BD_1;
279
typedef Dwg_Bitcode_3BD  BITCODE_BE;
280
#define BITCODE_3DVECTOR BITCODE_3BD_1
281
282
typedef enum DWG_VERSION_TYPE
283
{
284
  R_INVALID,
285
  // Releases based on https://autodesk.blogs.com/between_the_lines/autocad-release-history.html
286
  R_1_1,  /* MC0.0/1  MicroCAD Release 1 */
287
  R_1_2,  /* AC1.2/2  AutoCAD Release 2 */
288
  R_1_3,  /* AC1.3/?  AutoCAD Release 3 */
289
  R_1_4,  /* AC1.40/3 AutoCAD Release 4 */
290
  R_2_0b, /* AC1.50/4 AutoCAD 2.0 beta */
291
  R_2_0,  /* AC1.50/4 AutoCAD Release 5 */
292
  R_2_10, /* AC2.10/5 AutoCAD Release 6 */
293
  R_2_21, /* AC2.21/6 AutoCAD Release ? */
294
  R_2_22, /* AC2.22/7 AutoCAD Release ? */
295
  R_2_4,  /* AC1001/8 AutoCAD Release ? */
296
  R_2_5,  /* AC1002/9 AutoCAD Release 7 */
297
  R_2_6,  /* AC1003/10 AutoCAD Release 8 */
298
  R_9,    /* AC1004/0xb AutoCAD Release 9 */
299
  R_9c1,  /* AC1005/0xc AutoCAD Release 9c1 */
300
  R_10,   /* AC1006/0xd AutoCAD Release 10 */
301
  R_11b1, /* AC1007/0xe AutoCAD 11 beta 1 */
302
  R_11b2, /* AC1008/0xf AutoCAD 11 beta 2 */
303
  R_11,   /* AC1009/0x10 AutoCAD Release 11/12 (LT R1/R2) */
304
  R_12 = R_11,
305
  R_13b1, /* AC1010/0x11 AutoCAD 13 beta 1 */
306
  R_13b2, /* AC1011/0x12 AutoCAD 13 beta 2 */
307
  R_13,   /* AC1012/0x13 AutoCAD Release 13 */
308
  R_13c3, /* AC1013/0x14 AutoCAD Release 13c3 */
309
  R_14,   /* AC1014/0x15 AutoCAD Release 14 */
310
  R_2000b,  /* AC1500/0x16 AutoCAD 2000 beta */
311
  R_2000, /* AC1015/0x17 AutoCAD Release 2000 */
312
  R_2000i,  /* AC1016/0x17 AutoCAD Release 2000i */
313
  R_2002, /* AC1017/0x17 AutoCAD Release 2002 */
314
  R_2004a,  /* AC402a/0x18 AutoCAD 2004 alpha a */
315
  R_2004b,  /* AC402b/0x18 AutoCAD 2004 alpha b */
316
  R_2004c,  /* AC1018/0x18 AutoCAD 2004 beta */
317
  R_2004, /* AC1018/0x19 AutoCAD Release 2004 - 2006 */
318
  //R_2005, /* AC1019/0x19 AutoCAD 2005 */
319
  //R_2006, /* AC1020/0x19 AutoCAD 2006 */
320
  R_2007a,  /* AC701a/0x19 AutoCAD 2007 alpha 1 */
321
  R_2007b,  /* AC1021/0x19 AutoCAD 2007 beta */
322
  R_2007, /* AC1021/0x1b AutoCAD Release 2007 - 2009 */
323
  //R_2008, /* AC1022/0x1b AutoCAD 2008 */
324
  //R_2009, /* AC1023/0x1b AutoCAD 2009 */
325
  R_2010b,  /* AC1024/0x1b AutoCAD 2009 */
326
  R_2010, /* AC1024/0x1c AutoCAD Release 2010 - 2012 */
327
  //R_2011, /* AC1025/0x1d AutoCAD 2011 */
328
  //R_2012, /* AC1026/0x1e AutoCAD 2012 */
329
  R_2013b,  /* AC1027/0x1e AutoCAD 2013 beta */
330
  R_2013, /* AC1027/0x1f AutoCAD Release 2013 - 2017 */
331
  //R_2014, /* AC1028/0x1f AutoCAD 2014 */
332
  //R_2015, /* AC1029/0x1f AutoCAD 2015 */
333
  //R_2016, /* AC1030/0x1f AutoCAD 2016 */
334
  //R_2017, /* AC1031/0x20 AutoCAD 2017 */
335
  R_2018b,  /* AC1032/0x20 AutoCAD 2018 beta */
336
  R_2018, /* AC1032/0x21 AutoCAD Release 2018 - 2021 */
337
  //R_2019, /* AC1033/0x22 AutoCAD 2019 */
338
  //R_2020, /* AC1034/0x23 AutoCAD 2020 */
339
  //R_2021, /* AC1035/0x24 AutoCAD 2021 */
340
  R_2022b,  /* AC103-4 AutoCAD 2022 beta? */
341
  R_AFTER
342
} Dwg_Version_Type;
343
#define DWG_VERSIONS (int)(R_AFTER+1)
344
345
typedef struct dwg_versions {
346
  Dwg_Version_Type r;
347
  const char *const type;
348
  const char *const hdr; // char[6] mostly
349
  const char *const desc;
350
  uint8_t dwg_version;
351
  uint8_t maint_rel_version;
352
} Dwg_Versions;
353
354
typedef enum DWG_CLASS_STABILITY {
355
  DWG_CLASS_STABLE,
356
  DWG_CLASS_UNSTABLE,
357
  DWG_CLASS_DEBUGGING,
358
  DWG_CLASS_UNHANDLED
359
} Dwg_Class_Stability;
360
361
typedef enum DWG_ENTITY_SECTIONS {
362
  DWG_ENTITY_SECTION = 0,
363
  DWG_BLOCKS_SECTION = 0x40,
364
  DWG_EXTRA_SECTION = 0x80
365
} Dwg_Entity_Sections;
366
367
/**
368
 Object supertypes that exist in dwg-files.
369
 */
370
typedef enum DWG_OBJECT_SUPERTYPE
371
{
372
  DWG_SUPERTYPE_ENTITY, DWG_SUPERTYPE_OBJECT
373
} Dwg_Object_Supertype;
374
375
/**
376
 Object and Entity types that exist in dwg-files.
377
 */
378
typedef enum DWG_OBJECT_TYPE
379
{
380
  DWG_TYPE_UNUSED = 0x00,
381
  DWG_TYPE_TEXT = 0x01,
382
  DWG_TYPE_ATTRIB = 0x02,
383
  DWG_TYPE_ATTDEF = 0x03,
384
  DWG_TYPE_BLOCK = 0x04,
385
  DWG_TYPE_ENDBLK = 0x05,
386
  DWG_TYPE_SEQEND = 0x06,
387
  DWG_TYPE_INSERT = 0x07,
388
  DWG_TYPE_MINSERT = 0x08,
389
  // DWG_TYPE_TRACE_old = 0x09, /* old TRACE r10-r11 only */
390
  DWG_TYPE_VERTEX_2D = 0x0a,
391
  DWG_TYPE_VERTEX_3D = 0x0b,
392
  DWG_TYPE_VERTEX_MESH = 0x0c,
393
  DWG_TYPE_VERTEX_PFACE = 0x0d,
394
  DWG_TYPE_VERTEX_PFACE_FACE = 0x0e,
395
  DWG_TYPE_POLYLINE_2D = 0x0f,
396
  DWG_TYPE_POLYLINE_3D = 0x10,
397
  DWG_TYPE_ARC = 0x11,
398
  DWG_TYPE_CIRCLE = 0x12,
399
  DWG_TYPE_LINE = 0x13,
400
  DWG_TYPE_DIMENSION_ORDINATE = 0x14,
401
  DWG_TYPE_DIMENSION_LINEAR = 0x15,
402
  DWG_TYPE_DIMENSION_ALIGNED = 0x16,
403
  DWG_TYPE_DIMENSION_ANG3PT = 0x17,
404
  DWG_TYPE_DIMENSION_ANG2LN = 0x18,
405
  DWG_TYPE_DIMENSION_RADIUS = 0x19,
406
  DWG_TYPE_DIMENSION_DIAMETER = 0x1A,
407
  DWG_TYPE_POINT = 0x1b,
408
  DWG_TYPE__3DFACE = 0x1c,
409
  DWG_TYPE_POLYLINE_PFACE = 0x1d,
410
  DWG_TYPE_POLYLINE_MESH = 0x1e,
411
  DWG_TYPE_SOLID = 0x1f,
412
  DWG_TYPE_TRACE = 0x20,
413
  DWG_TYPE_SHAPE = 0x21,
414
  DWG_TYPE_VIEWPORT = 0x22,
415
  DWG_TYPE_ELLIPSE = 0x23,
416
  DWG_TYPE_SPLINE = 0x24,
417
  DWG_TYPE_REGION = 0x25,
418
  DWG_TYPE__3DSOLID = 0x26,
419
  DWG_TYPE_BODY = 0x27,
420
  DWG_TYPE_RAY = 0x28,
421
  DWG_TYPE_XLINE = 0x29,
422
  DWG_TYPE_DICTIONARY = 0x2a,
423
  DWG_TYPE_OLEFRAME = 0x2b,
424
  DWG_TYPE_MTEXT = 0x2c,
425
  DWG_TYPE_LEADER = 0x2d,
426
  DWG_TYPE_TOLERANCE = 0x2e,
427
  DWG_TYPE_MLINE = 0x2f,
428
  DWG_TYPE_BLOCK_CONTROL = 0x30,
429
  DWG_TYPE_BLOCK_HEADER = 0x31,
430
  DWG_TYPE_LAYER_CONTROL = 0x32,
431
  DWG_TYPE_LAYER = 0x33,
432
  DWG_TYPE_STYLE_CONTROL = 0x34, /* 52 SHAPEFILE_CONTROL */
433
  DWG_TYPE_STYLE = 0x35,
434
  /* DWG_TYPE_<UNKNOWN> = 0x36, */
435
  /* DWG_TYPE_<UNKNOWN> = 0x37, */
436
  DWG_TYPE_LTYPE_CONTROL = 0x38,
437
  DWG_TYPE_LTYPE = 0x39,
438
  /* DWG_TYPE_<UNKNOWN> = 0x3a, */
439
  /* DWG_TYPE_<UNKNOWN> = 0x3b, */
440
  DWG_TYPE_VIEW_CONTROL = 0x3c,
441
  DWG_TYPE_VIEW = 0x3d,
442
  DWG_TYPE_UCS_CONTROL = 0x3e,
443
  DWG_TYPE_UCS = 0x3f,
444
  DWG_TYPE_VPORT_CONTROL = 0x40,
445
  DWG_TYPE_VPORT = 0x41,
446
  DWG_TYPE_APPID_CONTROL = 0x42,
447
  DWG_TYPE_APPID = 0x43,
448
  DWG_TYPE_DIMSTYLE_CONTROL = 0x44,
449
  DWG_TYPE_DIMSTYLE = 0x45,
450
  DWG_TYPE_VX_CONTROL = 0x46,
451
  DWG_TYPE_VX_TABLE_RECORD = 0x47,
452
  DWG_TYPE_GROUP = 0x48,
453
  DWG_TYPE_MLINESTYLE = 0x49,
454
  DWG_TYPE_OLE2FRAME = 0x4a,
455
  DWG_TYPE_DUMMY = 0x4b,
456
  DWG_TYPE_LONG_TRANSACTION = 0x4c,
457
  DWG_TYPE_LWPOLYLINE = 0x4d, /* ?? */
458
  DWG_TYPE_HATCH = 0x4e,
459
  DWG_TYPE_XRECORD = 0x4f,
460
  DWG_TYPE_PLACEHOLDER = 0x50,
461
  DWG_TYPE_VBA_PROJECT = 0x51,
462
  DWG_TYPE_LAYOUT = 0x52,
463
464
  DWG_TYPE_PROXY_ENTITY = 0x1f2, /* 498 */
465
  DWG_TYPE_PROXY_OBJECT = 0x1f3, /* 499 */
466
467
  /* non-fixed types > 500. not stored as type, but as fixedtype */
468
469
  DWG_TYPE_ACDSRECORD = 500,
470
  DWG_TYPE_ACDSSCHEMA,
471
  DWG_TYPE_ACIDBLOCKREFERENCE,
472
  DWG_TYPE_ACMECOMMANDHISTORY,
473
  DWG_TYPE_ACMESCOPE,
474
  DWG_TYPE_ACMESTATEMGR,
475
  DWG_TYPE_ACSH_BOOLEAN_CLASS,
476
  DWG_TYPE_ACSH_BOX_CLASS,
477
  DWG_TYPE_ACSH_BREP_CLASS,
478
  DWG_TYPE_ACSH_CHAMFER_CLASS,
479
  DWG_TYPE_ACSH_CONE_CLASS,
480
  DWG_TYPE_ACSH_CYLINDER_CLASS,
481
  DWG_TYPE_ACSH_EXTRUSION_CLASS,
482
  DWG_TYPE_ACSH_FILLET_CLASS,
483
  DWG_TYPE_ACSH_HISTORY_CLASS,
484
  DWG_TYPE_ACSH_LOFT_CLASS,
485
  DWG_TYPE_ACSH_PYRAMID_CLASS,
486
  DWG_TYPE_ACSH_REVOLVE_CLASS,
487
  DWG_TYPE_ACSH_SPHERE_CLASS,
488
  DWG_TYPE_ACSH_SWEEP_CLASS,
489
  DWG_TYPE_ACSH_TORUS_CLASS,
490
  DWG_TYPE_ACSH_WEDGE_CLASS,
491
  DWG_TYPE_ALDIMOBJECTCONTEXTDATA,
492
  DWG_TYPE_ALIGNMENTPARAMETERENTITY,
493
  DWG_TYPE_ANGDIMOBJECTCONTEXTDATA,
494
  DWG_TYPE_ANNOTSCALEOBJECTCONTEXTDATA,
495
  DWG_TYPE_ARCALIGNEDTEXT,
496
  DWG_TYPE_ARC_DIMENSION,
497
  DWG_TYPE_ASSOC2DCONSTRAINTGROUP,
498
  DWG_TYPE_ASSOC3POINTANGULARDIMACTIONBODY,
499
  DWG_TYPE_ASSOCACTION,
500
  DWG_TYPE_ASSOCACTIONPARAM,
501
  DWG_TYPE_ASSOCALIGNEDDIMACTIONBODY,
502
  DWG_TYPE_ASSOCARRAYACTIONBODY,
503
  DWG_TYPE_ASSOCARRAYMODIFYACTIONBODY,
504
  DWG_TYPE_ASSOCARRAYMODIFYPARAMETERS,
505
  DWG_TYPE_ASSOCARRAYPATHPARAMETERS,
506
  DWG_TYPE_ASSOCARRAYPOLARPARAMETERS,
507
  DWG_TYPE_ASSOCARRAYRECTANGULARPARAMETERS,
508
  DWG_TYPE_ASSOCASMBODYACTIONPARAM,
509
  DWG_TYPE_ASSOCBLENDSURFACEACTIONBODY,
510
  DWG_TYPE_ASSOCCOMPOUNDACTIONPARAM,
511
  DWG_TYPE_ASSOCDEPENDENCY,
512
  DWG_TYPE_ASSOCDIMDEPENDENCYBODY,
513
  DWG_TYPE_ASSOCEDGEACTIONPARAM,
514
  DWG_TYPE_ASSOCEDGECHAMFERACTIONBODY,
515
  DWG_TYPE_ASSOCEDGEFILLETACTIONBODY,
516
  DWG_TYPE_ASSOCEXTENDSURFACEACTIONBODY,
517
  DWG_TYPE_ASSOCEXTRUDEDSURFACEACTIONBODY,
518
  DWG_TYPE_ASSOCFACEACTIONPARAM,
519
  DWG_TYPE_ASSOCFILLETSURFACEACTIONBODY,
520
  DWG_TYPE_ASSOCGEOMDEPENDENCY,
521
  DWG_TYPE_ASSOCLOFTEDSURFACEACTIONBODY,
522
  DWG_TYPE_ASSOCMLEADERACTIONBODY,
523
  DWG_TYPE_ASSOCNETWORK,
524
  DWG_TYPE_ASSOCNETWORKSURFACEACTIONBODY,
525
  DWG_TYPE_ASSOCOBJECTACTIONPARAM,
526
  DWG_TYPE_ASSOCOFFSETSURFACEACTIONBODY,
527
  DWG_TYPE_ASSOCORDINATEDIMACTIONBODY,
528
  DWG_TYPE_ASSOCOSNAPPOINTREFACTIONPARAM,
529
  DWG_TYPE_ASSOCPATCHSURFACEACTIONBODY,
530
  DWG_TYPE_ASSOCPATHACTIONPARAM,
531
  DWG_TYPE_ASSOCPERSSUBENTMANAGER,
532
  DWG_TYPE_ASSOCPLANESURFACEACTIONBODY,
533
  DWG_TYPE_ASSOCPOINTREFACTIONPARAM,
534
  DWG_TYPE_ASSOCRESTOREENTITYSTATEACTIONBODY,
535
  DWG_TYPE_ASSOCREVOLVEDSURFACEACTIONBODY,
536
  DWG_TYPE_ASSOCROTATEDDIMACTIONBODY,
537
  DWG_TYPE_ASSOCSWEPTSURFACEACTIONBODY,
538
  DWG_TYPE_ASSOCTRIMSURFACEACTIONBODY,
539
  DWG_TYPE_ASSOCVALUEDEPENDENCY,
540
  DWG_TYPE_ASSOCVARIABLE,
541
  DWG_TYPE_ASSOCVERTEXACTIONPARAM,
542
  DWG_TYPE_BASEPOINTPARAMETERENTITY,
543
  DWG_TYPE_BLKREFOBJECTCONTEXTDATA,
544
  DWG_TYPE_BLOCKALIGNEDCONSTRAINTPARAMETER,
545
  DWG_TYPE_BLOCKALIGNMENTGRIP,
546
  DWG_TYPE_BLOCKALIGNMENTPARAMETER,
547
  DWG_TYPE_BLOCKANGULARCONSTRAINTPARAMETER,
548
  DWG_TYPE_BLOCKARRAYACTION,
549
  DWG_TYPE_BLOCKBASEPOINTPARAMETER,
550
  DWG_TYPE_BLOCKDIAMETRICCONSTRAINTPARAMETER,
551
  DWG_TYPE_BLOCKFLIPACTION,
552
  DWG_TYPE_BLOCKFLIPGRIP,
553
  DWG_TYPE_BLOCKFLIPPARAMETER,
554
  DWG_TYPE_BLOCKGRIPLOCATIONCOMPONENT,
555
  DWG_TYPE_BLOCKHORIZONTALCONSTRAINTPARAMETER,
556
  DWG_TYPE_BLOCKLINEARCONSTRAINTPARAMETER,
557
  DWG_TYPE_BLOCKLINEARGRIP,
558
  DWG_TYPE_BLOCKLINEARPARAMETER,
559
  DWG_TYPE_BLOCKLOOKUPACTION,
560
  DWG_TYPE_BLOCKLOOKUPGRIP,
561
  DWG_TYPE_BLOCKLOOKUPPARAMETER,
562
  DWG_TYPE_BLOCKMOVEACTION,
563
  DWG_TYPE_BLOCKPARAMDEPENDENCYBODY,
564
  DWG_TYPE_BLOCKPOINTPARAMETER,
565
  DWG_TYPE_BLOCKPOLARGRIP,
566
  DWG_TYPE_BLOCKPOLARPARAMETER,
567
  DWG_TYPE_BLOCKPOLARSTRETCHACTION,
568
  DWG_TYPE_BLOCKPROPERTIESTABLE,
569
  DWG_TYPE_BLOCKPROPERTIESTABLEGRIP,
570
  DWG_TYPE_BLOCKRADIALCONSTRAINTPARAMETER,
571
  DWG_TYPE_BLOCKREPRESENTATION,
572
  DWG_TYPE_BLOCKROTATEACTION,
573
  DWG_TYPE_BLOCKROTATIONGRIP,
574
  DWG_TYPE_BLOCKROTATIONPARAMETER,
575
  DWG_TYPE_BLOCKSCALEACTION,
576
  DWG_TYPE_BLOCKSTRETCHACTION,
577
  DWG_TYPE_BLOCKUSERPARAMETER,
578
  DWG_TYPE_BLOCKVERTICALCONSTRAINTPARAMETER,
579
  DWG_TYPE_BLOCKVISIBILITYGRIP,
580
  DWG_TYPE_BLOCKVISIBILITYPARAMETER,
581
  DWG_TYPE_BLOCKXYGRIP,
582
  DWG_TYPE_BLOCKXYPARAMETER,
583
  DWG_TYPE_CAMERA,
584
  DWG_TYPE_CELLSTYLEMAP,
585
  DWG_TYPE_CONTEXTDATAMANAGER,
586
  DWG_TYPE_CSACDOCUMENTOPTIONS,
587
  DWG_TYPE_CURVEPATH,
588
  DWG_TYPE_DATALINK,
589
  DWG_TYPE_DATATABLE,
590
  DWG_TYPE_DBCOLOR,
591
  DWG_TYPE_DETAILVIEWSTYLE,
592
  DWG_TYPE_DGNDEFINITION,
593
  DWG_TYPE_DGNUNDERLAY,
594
  DWG_TYPE_DICTIONARYVAR,
595
  DWG_TYPE_DICTIONARYWDFLT,
596
  DWG_TYPE_DIMASSOC,
597
  DWG_TYPE_DMDIMOBJECTCONTEXTDATA,
598
  DWG_TYPE_DWFDEFINITION,
599
  DWG_TYPE_DWFUNDERLAY,
600
  DWG_TYPE_DYNAMICBLOCKPROXYNODE,
601
  DWG_TYPE_DYNAMICBLOCKPURGEPREVENTER,
602
  DWG_TYPE_EVALUATION_GRAPH,
603
  DWG_TYPE_EXTRUDEDSURFACE,
604
  DWG_TYPE_FCFOBJECTCONTEXTDATA,
605
  DWG_TYPE_FIELD,
606
  DWG_TYPE_FIELDLIST,
607
  DWG_TYPE_FLIPPARAMETERENTITY,
608
  DWG_TYPE_FLIPACTIONENTITY, // AcDbBlockFlipActionEntity,
609
  DWG_TYPE_GEODATA,
610
  DWG_TYPE_GEOMAPIMAGE,
611
  DWG_TYPE_GEOPOSITIONMARKER,
612
  DWG_TYPE_GRADIENT_BACKGROUND,
613
  DWG_TYPE_GROUND_PLANE_BACKGROUND,
614
  DWG_TYPE_HELIX,
615
  DWG_TYPE_IBL_BACKGROUND,
616
  DWG_TYPE_IDBUFFER,
617
  DWG_TYPE_IMAGE,
618
  DWG_TYPE_IMAGEDEF,
619
  DWG_TYPE_IMAGEDEF_REACTOR,
620
  DWG_TYPE_IMAGE_BACKGROUND,
621
  DWG_TYPE_INDEX,
622
  DWG_TYPE_LARGE_RADIAL_DIMENSION,
623
  DWG_TYPE_LAYER_FILTER,
624
  DWG_TYPE_LAYER_INDEX,
625
  DWG_TYPE_LAYOUTPRINTCONFIG,
626
  DWG_TYPE_LEADEROBJECTCONTEXTDATA,
627
  DWG_TYPE_LIGHT,
628
  DWG_TYPE_LIGHTLIST,
629
  DWG_TYPE_LINEARPARAMETERENTITY,
630
  DWG_TYPE_LOFTEDSURFACE,
631
  DWG_TYPE_MATERIAL,
632
  DWG_TYPE_MENTALRAYRENDERSETTINGS,
633
  DWG_TYPE_MESH,
634
  DWG_TYPE_MLEADEROBJECTCONTEXTDATA,
635
  DWG_TYPE_MLEADERSTYLE,
636
  DWG_TYPE_MOVEACTIONENTITY,
637
  DWG_TYPE_MOTIONPATH,
638
  DWG_TYPE_MPOLYGON,
639
  DWG_TYPE_MTEXTATTRIBUTEOBJECTCONTEXTDATA,
640
  DWG_TYPE_MTEXTOBJECTCONTEXTDATA,
641
  DWG_TYPE_MULTILEADER,
642
  DWG_TYPE_NAVISWORKSMODEL,
643
  DWG_TYPE_NAVISWORKSMODELDEF,
644
  DWG_TYPE_NPOCOLLECTION,
645
  DWG_TYPE_NURBSURFACE,
646
  DWG_TYPE_OBJECT_PTR,
647
  DWG_TYPE_ORDDIMOBJECTCONTEXTDATA,
648
  DWG_TYPE_PARTIAL_VIEWING_INDEX,
649
  //DWG_TYPE_PARTIAL_VIEWING_FILTER,
650
  DWG_TYPE_PDFDEFINITION,
651
  DWG_TYPE_PDFUNDERLAY,
652
  DWG_TYPE_PERSUBENTMGR,
653
  DWG_TYPE_PLANESURFACE,
654
  DWG_TYPE_PLOTSETTINGS,
655
  DWG_TYPE_POINTCLOUD,
656
  DWG_TYPE_POINTCLOUDCOLORMAP,
657
  DWG_TYPE_POINTCLOUDDEF,
658
  DWG_TYPE_POINTCLOUDDEFEX,
659
  DWG_TYPE_POINTCLOUDDEF_REACTOR,
660
  DWG_TYPE_POINTCLOUDDEF_REACTOR_EX,
661
  DWG_TYPE_POINTCLOUDEX,
662
  DWG_TYPE_POINTPARAMETERENTITY,
663
  DWG_TYPE_POINTPATH,
664
  DWG_TYPE_POLARGRIPENTITY,
665
  DWG_TYPE_RADIMLGOBJECTCONTEXTDATA,
666
  DWG_TYPE_RADIMOBJECTCONTEXTDATA,
667
  DWG_TYPE_RAPIDRTRENDERSETTINGS,
668
  DWG_TYPE_RASTERVARIABLES,
669
  DWG_TYPE_RENDERENTRY,
670
  DWG_TYPE_RENDERENVIRONMENT,
671
  DWG_TYPE_RENDERGLOBAL,
672
  DWG_TYPE_RENDERSETTINGS,
673
  DWG_TYPE_REVOLVEDSURFACE,
674
  DWG_TYPE_ROTATIONPARAMETERENTITY,
675
  DWG_TYPE_ROTATEACTIONENTITY,
676
  DWG_TYPE_RTEXT,
677
  DWG_TYPE_SCALE,
678
  DWG_TYPE_SCALEACTIONENTITY,
679
  DWG_TYPE_SECTIONOBJECT,
680
  DWG_TYPE_SECTIONVIEWSTYLE,
681
  DWG_TYPE_SECTION_MANAGER,
682
  DWG_TYPE_SECTION_SETTINGS,
683
  DWG_TYPE_SKYLIGHT_BACKGROUND,
684
  DWG_TYPE_SOLID_BACKGROUND,
685
  DWG_TYPE_SORTENTSTABLE,
686
  DWG_TYPE_SPATIAL_FILTER,
687
  DWG_TYPE_SPATIAL_INDEX,
688
  DWG_TYPE_STRETCHACTIONENTITY,
689
  DWG_TYPE_SUN,
690
  DWG_TYPE_SUNSTUDY,
691
  DWG_TYPE_SWEPTSURFACE,
692
  DWG_TYPE_TABLE,
693
  DWG_TYPE_TABLECONTENT,
694
  DWG_TYPE_TABLEGEOMETRY,
695
  DWG_TYPE_TABLESTYLE,
696
  DWG_TYPE_TEXTOBJECTCONTEXTDATA,
697
  DWG_TYPE_TVDEVICEPROPERTIES,
698
  DWG_TYPE_VISIBILITYGRIPENTITY,
699
  DWG_TYPE_VISIBILITYPARAMETERENTITY,
700
  DWG_TYPE_VISUALSTYLE,
701
  DWG_TYPE_WIPEOUT,
702
  DWG_TYPE_WIPEOUTVARIABLES,
703
  DWG_TYPE_XREFPANELOBJECT,
704
  DWG_TYPE_XYPARAMETERENTITY,
705
  DWG_TYPE_BREAKDATA,
706
  DWG_TYPE_BREAKPOINTREF,
707
  DWG_TYPE_FLIPGRIPENTITY,
708
  DWG_TYPE_LINEARGRIPENTITY,
709
  DWG_TYPE_ROTATIONGRIPENTITY,
710
  DWG_TYPE_XYGRIPENTITY,
711
712
  /* preR13 entities */
713
  DWG_TYPE__3DLINE,
714
  DWG_TYPE_REPEAT,
715
  DWG_TYPE_ENDREP,
716
  DWG_TYPE_JUMP,
717
  /* pre2.0 entities */
718
  DWG_TYPE_LOAD,
719
  // after 1.0 add new types here for binary compat
720
721
  // all known UNHANDLED classes (mostly AEC)
722
  // DWG_TYPE_ACAD_PROXY_OBJECT_WRAPPER,
723
  DWG_TYPE_ABSHDRAWINGSETTINGS,
724
  DWG_TYPE_ACAECUSTOBJ,
725
  DWG_TYPE_ACAEEEMGROBJ,
726
  DWG_TYPE_ACAMCOMP,
727
  DWG_TYPE_ACAMCOMPDEF,
728
  DWG_TYPE_ACAMCOMPDEFMGR,
729
  DWG_TYPE_ACAMCONTEXTMODELER,
730
  DWG_TYPE_ACAMGDIMSTD,
731
  DWG_TYPE_ACAMGFILTERDAT,
732
  DWG_TYPE_ACAMGHOLECHARTSTDCSN,
733
  DWG_TYPE_ACAMGHOLECHARTSTDDIN,
734
  DWG_TYPE_ACAMGHOLECHARTSTDISO,
735
  DWG_TYPE_ACAMGLAYSTD,
736
  DWG_TYPE_ACAMGRCOMPDEF,
737
  DWG_TYPE_ACAMGRCOMPDEFSET,
738
  DWG_TYPE_ACAMGTITLESTD,
739
  DWG_TYPE_ACAMMVDBACKUPOBJECT,
740
  DWG_TYPE_ACAMPROJECT,
741
  DWG_TYPE_ACAMSHAFTCOMPDEF,
742
  DWG_TYPE_ACAMSTDPCOMPDEF,
743
  DWG_TYPE_ACAMWBLOCKTEMPENTS,
744
  DWG_TYPE_ACARRAYJIGENTITY,
745
  DWG_TYPE_ACCMCONTEXT,
746
  DWG_TYPE_ACDBCIRCARCRES,
747
  DWG_TYPE_ACDBDIMENSIONRES,
748
  DWG_TYPE_ACDBENTITYCACHE,
749
  DWG_TYPE_ACDBLINERES,
750
  DWG_TYPE_ACDBSTDPARTRES_ARC,
751
  DWG_TYPE_ACDBSTDPARTRES_LINE,
752
  DWG_TYPE_ACDB_HATCHSCALECONTEXTDATA_CLASS,
753
  DWG_TYPE_ACDB_HATCHVIEWCONTEXTDATA_CLASS,
754
  DWG_TYPE_ACDB_PROXY_ENTITY_DATA,
755
  DWG_TYPE_ACGREFACADMASTER,
756
  DWG_TYPE_ACGREFMASTER,
757
  DWG_TYPE_ACIMINTSYSVAR,
758
  DWG_TYPE_ACIMREALSYSVAR,
759
  DWG_TYPE_ACIMSTRSYSVAR,
760
  DWG_TYPE_ACIMSYSVARMAN,
761
  DWG_TYPE_ACMANOOTATIONVIEWSTANDARDANSI,
762
  DWG_TYPE_ACMANOOTATIONVIEWSTANDARDCSN,
763
  DWG_TYPE_ACMANOOTATIONVIEWSTANDARDDIN,
764
  DWG_TYPE_ACMANOOTATIONVIEWSTANDARDISO,
765
  DWG_TYPE_ACMAPLEGENDDBOBJECT,
766
  DWG_TYPE_ACMAPLEGENDITEMDBOBJECT,
767
  DWG_TYPE_ACMAPMAPVIEWPORTDBOBJECT,
768
  DWG_TYPE_ACMAPPRINTLAYOUTELEMENTDBOBJECTCONTAINER,
769
  DWG_TYPE_ACMBALLOON,
770
  DWG_TYPE_ACMBOM,
771
  DWG_TYPE_ACMBOMROW,
772
  DWG_TYPE_ACMBOMROWSTRUCT,
773
  DWG_TYPE_ACMBOMSTANDARDANSI,
774
  DWG_TYPE_ACMBOMSTANDARDCSN,
775
  DWG_TYPE_ACMBOMSTANDARDDIN,
776
  DWG_TYPE_ACMBOMSTANDARDISO,
777
  DWG_TYPE_ACMCENTERLINESTANDARDANSI,
778
  DWG_TYPE_ACMCENTERLINESTANDARDCSN,
779
  DWG_TYPE_ACMCENTERLINESTANDARDDIN,
780
  DWG_TYPE_ACMCENTERLINESTANDARDISO,
781
  DWG_TYPE_ACMDATADICTIONARY,
782
  DWG_TYPE_ACMDATAENTRY,
783
  DWG_TYPE_ACMDATAENTRYBLOCK,
784
  DWG_TYPE_ACMDATUMID,
785
  DWG_TYPE_ACMDATUMSTANDARDANSI,
786
  DWG_TYPE_ACMDATUMSTANDARDCSN,
787
  DWG_TYPE_ACMDATUMSTANDARDDIN,
788
  DWG_TYPE_ACMDATUMSTANDARDISO,
789
  DWG_TYPE_ACMDATUMSTANDARDISO2012,
790
  DWG_TYPE_ACMDETAILSTANDARDANSI,
791
  DWG_TYPE_ACMDETAILSTANDARDCSN,
792
  DWG_TYPE_ACMDETAILSTANDARDDIN,
793
  DWG_TYPE_ACMDETAILSTANDARDISO,
794
  DWG_TYPE_ACMDETAILTANDARDCUSTOM,
795
  DWG_TYPE_ACMDIMBREAKPERSREACTOR,
796
  DWG_TYPE_ACMEDRAWINGMAN,
797
  DWG_TYPE_ACMEVIEW,
798
  DWG_TYPE_ACME_DATABASE,
799
  DWG_TYPE_ACME_DOCUMENT,
800
  DWG_TYPE_ACMFCFRAME,
801
  DWG_TYPE_ACMFCFSTANDARDANSI,
802
  DWG_TYPE_ACMFCFSTANDARDCSN,
803
  DWG_TYPE_ACMFCFSTANDARDDIN,
804
  DWG_TYPE_ACMFCFSTANDARDISO,
805
  DWG_TYPE_ACMFCFSTANDARDISO2004,
806
  DWG_TYPE_ACMFCFSTANDARDISO2012,
807
  DWG_TYPE_ACMIDSTANDARDANSI,
808
  DWG_TYPE_ACMIDSTANDARDCSN,
809
  DWG_TYPE_ACMIDSTANDARDDIN,
810
  DWG_TYPE_ACMIDSTANDARDISO,
811
  DWG_TYPE_ACMIDSTANDARDISO2004,
812
  DWG_TYPE_ACMIDSTANDARDISO2012,
813
  DWG_TYPE_ACMNOTESTANDARDANSI,
814
  DWG_TYPE_ACMNOTESTANDARDCSN,
815
  DWG_TYPE_ACMNOTESTANDARDDIN,
816
  DWG_TYPE_ACMNOTESTANDARDISO,
817
  DWG_TYPE_ACMPARTLIST,
818
  DWG_TYPE_ACMPICKOBJ,
819
  DWG_TYPE_ACMSECTIONSTANDARDANSI,
820
  DWG_TYPE_ACMSECTIONSTANDARDCSN2002,
821
  DWG_TYPE_ACMSECTIONSTANDARDCUSTOM,
822
  DWG_TYPE_ACMSECTIONSTANDARDDIN,
823
  DWG_TYPE_ACMSECTIONSTANDARDISO,
824
  DWG_TYPE_ACMSECTIONSTANDARDISO2001,
825
  DWG_TYPE_ACMSTANDARDANSI,
826
  DWG_TYPE_ACMSTANDARDCSN,
827
  DWG_TYPE_ACMSTANDARDDIN,
828
  DWG_TYPE_ACMSTANDARDISO,
829
  DWG_TYPE_ACMSURFSTANDARDANSI,
830
  DWG_TYPE_ACMSURFSTANDARDCSN,
831
  DWG_TYPE_ACMSURFSTANDARDDIN,
832
  DWG_TYPE_ACMSURFSTANDARDISO,
833
  DWG_TYPE_ACMSURFSTANDARDISO2002,
834
  DWG_TYPE_ACMSURFSYM,
835
  DWG_TYPE_ACMTAPERSTANDARDANSI,
836
  DWG_TYPE_ACMTAPERSTANDARDCSN,
837
  DWG_TYPE_ACMTAPERSTANDARDDIN,
838
  DWG_TYPE_ACMTAPERSTANDARDISO,
839
  DWG_TYPE_ACMTHREADLINESTANDARDANSI,
840
  DWG_TYPE_ACMTHREADLINESTANDARDCSN,
841
  DWG_TYPE_ACMTHREADLINESTANDARDDIN,
842
  DWG_TYPE_ACMTHREADLINESTANDARDISO,
843
  DWG_TYPE_ACMWELDSTANDARDANSI,
844
  DWG_TYPE_ACMWELDSTANDARDCSN,
845
  DWG_TYPE_ACMWELDSTANDARDDIN,
846
  DWG_TYPE_ACMWELDSTANDARDISO,
847
  DWG_TYPE_ACMWELDSYM,
848
  DWG_TYPE_ACRFATTGENMGR,
849
  DWG_TYPE_ACRFINSADJ,
850
  DWG_TYPE_ACRFINSADJUSTERMGR,
851
  DWG_TYPE_ACRFMCADAPIATTHOLDER,
852
  DWG_TYPE_ACRFOBJATTMGR,
853
  DWG_TYPE_ACSH_SUBENT_MATERIAL_CLASS,
854
  DWG_TYPE_AC_AM_2D_XREF_MGR,
855
  DWG_TYPE_AC_AM_BASIC_VIEW,
856
  DWG_TYPE_AC_AM_BASIC_VIEW_DEF,
857
  DWG_TYPE_AC_AM_COMPLEX_HIDE_SITUATION,
858
  DWG_TYPE_AC_AM_COMP_VIEW_DEF,
859
  DWG_TYPE_AC_AM_COMP_VIEW_INST,
860
  DWG_TYPE_AC_AM_DIRTY_NODES,
861
  DWG_TYPE_AC_AM_HIDE_SITUATION,
862
  DWG_TYPE_AC_AM_MAPPER_CACHE,
863
  DWG_TYPE_AC_AM_MASTER_VIEW_DEF,
864
  DWG_TYPE_AC_AM_MVD_DEP_MGR,
865
  DWG_TYPE_AC_AM_OVERRIDE_FILTER,
866
  DWG_TYPE_AC_AM_PROPS_OVERRIDE,
867
  DWG_TYPE_AC_AM_SHAFT_HIDE_SITUATION,
868
  DWG_TYPE_AC_AM_STDP_VIEW_DEF,
869
  DWG_TYPE_AC_AM_TRANSFORM_GHOST,
870
  DWG_TYPE_ADAPPL,
871
  DWG_TYPE_AECC_ALIGNMENT_DESIGN_CHECK_SET,
872
  DWG_TYPE_AECC_ALIGNMENT_LABEL_SET,
873
  DWG_TYPE_AECC_ALIGNMENT_LABEL_SET_EXT,
874
  DWG_TYPE_AECC_ALIGNMENT_PARCEL_NODE,
875
  DWG_TYPE_AECC_ALIGNMENT_STYLE,
876
  DWG_TYPE_AECC_APPURTENANCE_STYLE,
877
  DWG_TYPE_AECC_ASSEMBLY_STYLE,
878
  DWG_TYPE_AECC_BUILDING_SITE_STYLE,
879
  DWG_TYPE_AECC_CANT_DIAGRAM_VIEW_STYLE,
880
  DWG_TYPE_AECC_CATCHMENT_STYLE,
881
  DWG_TYPE_AECC_CLASS_NODE,
882
  DWG_TYPE_AECC_CONTOURVIEW,
883
  DWG_TYPE_AECC_CORRIDOR_STYLE,
884
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT,
885
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_CANT_LABEL_GROUP,
886
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_CSV,
887
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_CURVE_LABEL,
888
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_DESIGNSPEED_LABEL_GROUP,
889
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_GEOMPT_LABEL_GROUP,
890
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_INDEXED_PI_LABEL,
891
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_MINOR_STATION_LABEL_GROUP,
892
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_PI_LABEL,
893
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_SPIRAL_LABEL,
894
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_STAEQU_LABEL_GROUP,
895
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_STATION_LABEL_GROUP,
896
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_STATION_OFFSET_LABEL,
897
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_SUPERELEVATION_LABEL_GROUP,
898
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_TABLE,
899
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_TANGENT_LABEL,
900
  DWG_TYPE_AECC_DISP_REP_ALIGNMENT_VERTICAL_GEOMPT_LABELING,
901
  DWG_TYPE_AECC_DISP_REP_APPURTENANCE,
902
  DWG_TYPE_AECC_DISP_REP_APPURTENANCE_CSV,
903
  DWG_TYPE_AECC_DISP_REP_APPURTENANCE_LABELING,
904
  DWG_TYPE_AECC_DISP_REP_APPURTENANCE_PROFILE_LABELING,
905
  DWG_TYPE_AECC_DISP_REP_ASSEMBLY,
906
  DWG_TYPE_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE,
907
  DWG_TYPE_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_PROFILE,
908
  DWG_TYPE_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_SECTION,
909
  DWG_TYPE_AECC_DISP_REP_AUTO_FEATURE_LINE,
910
  DWG_TYPE_AECC_DISP_REP_AUTO_FEATURE_LINE_CSV,
911
  DWG_TYPE_AECC_DISP_REP_AUTO_FEATURE_LINE_PROFILE,
912
  DWG_TYPE_AECC_DISP_REP_AUTO_FEATURE_LINE_SECTION,
913
  DWG_TYPE_AECC_DISP_REP_BUILDINGSITE,
914
  DWG_TYPE_AECC_DISP_REP_BUILDINGUTIL_CONNECTOR,
915
  DWG_TYPE_AECC_DISP_REP_CANT_DIAGRAM_VIEW,
916
  DWG_TYPE_AECC_DISP_REP_CATCHMENT_AREA,
917
  DWG_TYPE_AECC_DISP_REP_CATCHMENT_AREA_LABEL,
918
  DWG_TYPE_AECC_DISP_REP_CORRIDOR,
919
  DWG_TYPE_AECC_DISP_REP_CROSSING_PIPE_PROFILE_LABELING,
920
  DWG_TYPE_AECC_DISP_REP_CROSSING_PRESSURE_PIPE_PROFILE_LABELING,
921
  DWG_TYPE_AECC_DISP_REP_CSVSTATIONSLIDER,
922
  DWG_TYPE_AECC_DISP_REP_FACE,
923
  DWG_TYPE_AECC_DISP_REP_FEATURE,
924
  DWG_TYPE_AECC_DISP_REP_FEATURE_LABEL,
925
  DWG_TYPE_AECC_DISP_REP_FEATURE_LINE,
926
  DWG_TYPE_AECC_DISP_REP_FEATURE_LINE_CSV,
927
  DWG_TYPE_AECC_DISP_REP_FEATURE_LINE_PROFILE,
928
  DWG_TYPE_AECC_DISP_REP_FEATURE_LINE_SECTION,
929
  DWG_TYPE_AECC_DISP_REP_FITTING,
930
  DWG_TYPE_AECC_DISP_REP_FITTING_CSV,
931
  DWG_TYPE_AECC_DISP_REP_FITTING_LABELING,
932
  DWG_TYPE_AECC_DISP_REP_FITTING_PROFILE_LABELING,
933
  DWG_TYPE_AECC_DISP_REP_FLOW_SEGMENT_LABEL,
934
  DWG_TYPE_AECC_DISP_REP_GENERAL_SEGMENT_LABEL,
935
  DWG_TYPE_AECC_DISP_REP_GRADING,
936
  DWG_TYPE_AECC_DISP_REP_GRAPH,
937
  DWG_TYPE_AECC_DISP_REP_GRAPHPROFILE_NETWORKPART,
938
  DWG_TYPE_AECC_DISP_REP_GRAPHPROFILE_PRESSUREPART,
939
  DWG_TYPE_AECC_DISP_REP_GRID_SURFACE,
940
  DWG_TYPE_AECC_DISP_REP_GRID_SURFACE_CSV,
941
  DWG_TYPE_AECC_DISP_REP_HORGEOMETRY_BAND_LABEL_GROUP,
942
  DWG_TYPE_AECC_DISP_REP_HYDRO_REGION,
943
  DWG_TYPE_AECC_DISP_REP_INTERFERENCE_CHECK,
944
  DWG_TYPE_AECC_DISP_REP_INTERFERENCE_PART,
945
  DWG_TYPE_AECC_DISP_REP_INTERFERENCE_PART_SECTION,
946
  DWG_TYPE_AECC_DISP_REP_INTERSECTION,
947
  DWG_TYPE_AECC_DISP_REP_INTERSECTION_LOCATION_LABELING,
948
  DWG_TYPE_AECC_DISP_REP_LABELING,
949
  DWG_TYPE_AECC_DISP_REP_LEGEND_TABLE,
950
  DWG_TYPE_AECC_DISP_REP_LINE_BETWEEN_POINTS_LABEL,
951
  DWG_TYPE_AECC_DISP_REP_LOTLINE_CSV,
952
  DWG_TYPE_AECC_DISP_REP_MASSHAULLINE,
953
  DWG_TYPE_AECC_DISP_REP_MASS_HAUL_VIEW,
954
  DWG_TYPE_AECC_DISP_REP_MATCHLINE_LABELING,
955
  DWG_TYPE_AECC_DISP_REP_MATCH_LINE,
956
  DWG_TYPE_AECC_DISP_REP_MATERIAL_SECTION,
957
  DWG_TYPE_AECC_DISP_REP_NETWORK,
958
  DWG_TYPE_AECC_DISP_REP_NOTE_LABEL,
959
  DWG_TYPE_AECC_DISP_REP_OFFSET_ELEV_LABEL,
960
  DWG_TYPE_AECC_DISP_REP_PARCEL_BOUNDARY,
961
  DWG_TYPE_AECC_DISP_REP_PARCEL_FACE_LABEL,
962
  DWG_TYPE_AECC_DISP_REP_PARCEL_SEGMENT,
963
  DWG_TYPE_AECC_DISP_REP_PARCEL_SEGMENT_LABEL,
964
  DWG_TYPE_AECC_DISP_REP_PARCEL_SEGMENT_TABLE,
965
  DWG_TYPE_AECC_DISP_REP_PARCEL_TABLE,
966
  DWG_TYPE_AECC_DISP_REP_PIPE,
967
  DWG_TYPE_AECC_DISP_REP_PIPENETWORK_BAND_LABEL_GROUP,
968
  DWG_TYPE_AECC_DISP_REP_PIPE_CSV,
969
  DWG_TYPE_AECC_DISP_REP_PIPE_LABELING,
970
  DWG_TYPE_AECC_DISP_REP_PIPE_PROFILE_LABELING,
971
  DWG_TYPE_AECC_DISP_REP_PIPE_SECTION_LABELING,
972
  DWG_TYPE_AECC_DISP_REP_PIPE_TABLE,
973
  DWG_TYPE_AECC_DISP_REP_POINT_ENT,
974
  DWG_TYPE_AECC_DISP_REP_POINT_GROUP,
975
  DWG_TYPE_AECC_DISP_REP_POINT_TABLE,
976
  DWG_TYPE_AECC_DISP_REP_PRESSUREPIPENETWORK,
977
  DWG_TYPE_AECC_DISP_REP_PRESSURE_PART_TABLE,
978
  DWG_TYPE_AECC_DISP_REP_PRESSURE_PIPE,
979
  DWG_TYPE_AECC_DISP_REP_PRESSURE_PIPE_CSV,
980
  DWG_TYPE_AECC_DISP_REP_PRESSURE_PIPE_LABELING,
981
  DWG_TYPE_AECC_DISP_REP_PRESSURE_PIPE_PROFILE_LABELING,
982
  DWG_TYPE_AECC_DISP_REP_PRESSURE_PIPE_SECTION_LABELING,
983
  DWG_TYPE_AECC_DISP_REP_PROFILE,
984
  DWG_TYPE_AECC_DISP_REP_PROFILEDATA_BAND_LABEL_GROUP,
985
  DWG_TYPE_AECC_DISP_REP_PROFILE_PROJECTION,
986
  DWG_TYPE_AECC_DISP_REP_PROFILE_PROJECTION_LABEL,
987
  DWG_TYPE_AECC_DISP_REP_PROFILE_VIEW,
988
  DWG_TYPE_AECC_DISP_REP_PROFILE_VIEW_DEPTH_LABEL,
989
  DWG_TYPE_AECC_DISP_REP_QUANTITY_TAKEOFF_AGGREGATE_EARTHWORK_TABLE,
990
  DWG_TYPE_AECC_DISP_REP_RIGHT_OF_WAY,
991
  DWG_TYPE_AECC_DISP_REP_SAMPLELINE_LABELING,
992
  DWG_TYPE_AECC_DISP_REP_SAMPLE_LINE,
993
  DWG_TYPE_AECC_DISP_REP_SAMPLE_LINE_GROUP,
994
  DWG_TYPE_AECC_DISP_REP_SECTION,
995
  DWG_TYPE_AECC_DISP_REP_SECTIONALDATA_BAND_LABEL_GROUP,
996
  DWG_TYPE_AECC_DISP_REP_SECTIONDATA_BAND_LABEL_GROUP,
997
  DWG_TYPE_AECC_DISP_REP_SECTIONSEGMENT_BAND_LABEL_GROUP,
998
  DWG_TYPE_AECC_DISP_REP_SECTION_CORRIDOR,
999
  DWG_TYPE_AECC_DISP_REP_SECTION_CORRIDOR_POINT_LABEL_GROUP,
1000
  DWG_TYPE_AECC_DISP_REP_SECTION_GRADEBREAK_LABEL_GROUP,
1001
  DWG_TYPE_AECC_DISP_REP_SECTION_MINOR_OFFSET_LABEL_GROUP,
1002
  DWG_TYPE_AECC_DISP_REP_SECTION_OFFSET_LABEL_GROUP,
1003
  DWG_TYPE_AECC_DISP_REP_SECTION_PIPENETWORK,
1004
  DWG_TYPE_AECC_DISP_REP_SECTION_PRESSUREPIPENETWORK,
1005
  DWG_TYPE_AECC_DISP_REP_SECTION_PROJECTION,
1006
  DWG_TYPE_AECC_DISP_REP_SECTION_PROJECTION_LABEL,
1007
  DWG_TYPE_AECC_DISP_REP_SECTION_SEGMENT_LABEL_GROUP,
1008
  DWG_TYPE_AECC_DISP_REP_SECTION_VIEW,
1009
  DWG_TYPE_AECC_DISP_REP_SECTION_VIEW_DEPTH_LABEL,
1010
  DWG_TYPE_AECC_DISP_REP_SECTION_VIEW_QUANTITY_TAKEOFF_TABLE,
1011
  DWG_TYPE_AECC_DISP_REP_SHEET,
1012
  DWG_TYPE_AECC_DISP_REP_SPANNING_PIPE_LABELING,
1013
  DWG_TYPE_AECC_DISP_REP_SPANNING_PIPE_PROFILE_LABELING,
1014
  DWG_TYPE_AECC_DISP_REP_STATION_ELEV_LABEL,
1015
  DWG_TYPE_AECC_DISP_REP_STRUCTURE,
1016
  DWG_TYPE_AECC_DISP_REP_STRUCTURE_CSV,
1017
  DWG_TYPE_AECC_DISP_REP_STRUCTURE_LABELING,
1018
  DWG_TYPE_AECC_DISP_REP_STRUCTURE_PROFILE_LABELING,
1019
  DWG_TYPE_AECC_DISP_REP_STRUCTURE_SECTION_LABELING,
1020
  DWG_TYPE_AECC_DISP_REP_SUBASSEMBLY,
1021
  DWG_TYPE_AECC_DISP_REP_SUPERELEVATION_BAND_LABEL_GROUP,
1022
  DWG_TYPE_AECC_DISP_REP_SUPERELEVATION_DIAGRAM_VIEW,
1023
  DWG_TYPE_AECC_DISP_REP_SURFACE_CONTOUR_LABEL_GROUP,
1024
  DWG_TYPE_AECC_DISP_REP_SURFACE_ELEVATION_LABEL,
1025
  DWG_TYPE_AECC_DISP_REP_SURFACE_SLOPE_LABEL,
1026
  DWG_TYPE_AECC_DISP_REP_SURVEY_FIGURE_LABEL_GROUP,
1027
  DWG_TYPE_AECC_DISP_REP_SVFIGURE,
1028
  DWG_TYPE_AECC_DISP_REP_SVFIGURE_CSV,
1029
  DWG_TYPE_AECC_DISP_REP_SVFIGURE_PROFILE,
1030
  DWG_TYPE_AECC_DISP_REP_SVFIGURE_SECTION,
1031
  DWG_TYPE_AECC_DISP_REP_SVFIGURE_SEGMENT_LABEL,
1032
  DWG_TYPE_AECC_DISP_REP_SVNETWORK,
1033
  DWG_TYPE_AECC_DISP_REP_TANGENT_INTERSECTION_TABLE,
1034
  DWG_TYPE_AECC_DISP_REP_TIN_SURFACE,
1035
  DWG_TYPE_AECC_DISP_REP_TIN_SURFACE_CSV,
1036
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_CRESTCURVE_LABEL_GROUP,
1037
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_CSV,
1038
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_HAGEOMPT_LABEL_GROUP,
1039
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_LINE_LABEL_GROUP,
1040
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_MINOR_STATION_LABEL_GROUP,
1041
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_PVI_LABEL_GROUP,
1042
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_SAGCURVE_LABEL_GROUP,
1043
  DWG_TYPE_AECC_DISP_REP_VALIGNMENT_STATION_LABEL_GROUP,
1044
  DWG_TYPE_AECC_DISP_REP_VERTICALGEOMETRY_BAND_LABEL_GROUP,
1045
  DWG_TYPE_AECC_DISP_REP_VIEWFRAME_LABELING,
1046
  DWG_TYPE_AECC_DISP_REP_VIEW_FRAME,
1047
  DWG_TYPE_AECC_FEATURELINE_STYLE,
1048
  DWG_TYPE_AECC_FEATURE_STYLE,
1049
  DWG_TYPE_AECC_FITTING_STYLE,
1050
  DWG_TYPE_AECC_FORMAT_MANAGER_OBJECT,
1051
  DWG_TYPE_AECC_GRADEVIEW,
1052
  DWG_TYPE_AECC_GRADING_CRITERIA,
1053
  DWG_TYPE_AECC_GRADING_CRITERIA_SET,
1054
  DWG_TYPE_AECC_GRADING_GROUP,
1055
  DWG_TYPE_AECC_GRADING_STYLE,
1056
  DWG_TYPE_AECC_IMPORT_STORM_SEWER_DEFAULTS,
1057
  DWG_TYPE_AECC_INTERFERENCE_STYLE,
1058
  DWG_TYPE_AECC_INTERSECTION_STYLE,
1059
  DWG_TYPE_AECC_LABEL_COLLECTOR_STYLE,
1060
  DWG_TYPE_AECC_LABEL_NODE,
1061
  DWG_TYPE_AECC_LABEL_RADIAL_LINE_STYLE,
1062
  DWG_TYPE_AECC_LABEL_TEXT_ITERATOR_CURVE_OR_SPIRAL_STYLE,
1063
  DWG_TYPE_AECC_LABEL_TEXT_ITERATOR_STYLE,
1064
  DWG_TYPE_AECC_LABEL_TEXT_STYLE,
1065
  DWG_TYPE_AECC_LABEL_VECTOR_ARROW_STYLE,
1066
  DWG_TYPE_AECC_LEGEND_TABLE_STYLE,
1067
  DWG_TYPE_AECC_MASS_HAUL_LINE_STYLE,
1068
  DWG_TYPE_AECC_MASS_HAUL_VIEW_STYLE,
1069
  DWG_TYPE_AECC_MATCHLINE_STYLE,
1070
  DWG_TYPE_AECC_MATERIAL_STYLE,
1071
  DWG_TYPE_AECC_NETWORK_PART_CATALOG_DEF_NODE,
1072
  DWG_TYPE_AECC_NETWORK_PART_FAMILY_ITEM,
1073
  DWG_TYPE_AECC_NETWORK_PART_LIST,
1074
  DWG_TYPE_AECC_NETWORK_RULE,
1075
  DWG_TYPE_AECC_PARCEL_NODE,
1076
  DWG_TYPE_AECC_PARCEL_STYLE,
1077
  DWG_TYPE_AECC_PART_SIZE_FILTER,
1078
  DWG_TYPE_AECC_PIPE_RULES,
1079
  DWG_TYPE_AECC_PIPE_STYLE,
1080
  DWG_TYPE_AECC_PIPE_STYLE_EXTENSION,
1081
  DWG_TYPE_AECC_POINTCLOUD_STYLE,
1082
  DWG_TYPE_AECC_POINTVIEW,
1083
  DWG_TYPE_AECC_POINT_STYLE,
1084
  DWG_TYPE_AECC_PRESSURE_PART_LIST,
1085
  DWG_TYPE_AECC_PRESSURE_PIPE_STYLE,
1086
  DWG_TYPE_AECC_PROFILESECTIONENTITY_STYLE,
1087
  DWG_TYPE_AECC_PROFILE_DESIGN_CHECK_SET,
1088
  DWG_TYPE_AECC_PROFILE_LABEL_SET,
1089
  DWG_TYPE_AECC_PROFILE_STYLE,
1090
  DWG_TYPE_AECC_PROFILE_VIEW_BAND_STYLE_SET,
1091
  DWG_TYPE_AECC_PROFILE_VIEW_DATA_BAND_STYLE,
1092
  DWG_TYPE_AECC_PROFILE_VIEW_HORIZONTAL_GEOMETRY_BAND_STYLE,
1093
  DWG_TYPE_AECC_PROFILE_VIEW_PIPE_NETWORK_BAND_STYLE,
1094
  DWG_TYPE_AECC_PROFILE_VIEW_SECTIONAL_DATA_BAND_STYLE,
1095
  DWG_TYPE_AECC_PROFILE_VIEW_STYLE,
1096
  DWG_TYPE_AECC_PROFILE_VIEW_SUPERELEVATION_DIAGRAM_BAND_STYLE,
1097
  DWG_TYPE_AECC_PROFILE_VIEW_VERTICAL_GEOMETRY_BAND_STYLE,
1098
  DWG_TYPE_AECC_QUANTITY_TAKEOFF_CRITERIA,
1099
  DWG_TYPE_AECC_ROADWAYLINK_STYLE,
1100
  DWG_TYPE_AECC_ROADWAYMARKER_STYLE,
1101
  DWG_TYPE_AECC_ROADWAYSHAPE_STYLE,
1102
  DWG_TYPE_AECC_ROADWAY_STYLE_SET,
1103
  DWG_TYPE_AECC_ROOT_SETTINGS_NODE,
1104
  DWG_TYPE_AECC_SAMPLE_LINE_GROUP_STYLE,
1105
  DWG_TYPE_AECC_SAMPLE_LINE_STYLE,
1106
  DWG_TYPE_AECC_SECTION_LABEL_SET,
1107
  DWG_TYPE_AECC_SECTION_STYLE,
1108
  DWG_TYPE_AECC_SECTION_VIEW_BAND_STYLE_SET,
1109
  DWG_TYPE_AECC_SECTION_VIEW_DATA_BAND_STYLE,
1110
  DWG_TYPE_AECC_SECTION_VIEW_ROAD_SURFACE_BAND_STYLE,
1111
  DWG_TYPE_AECC_SECTION_VIEW_STYLE,
1112
  DWG_TYPE_AECC_SETTINGS_NODE,
1113
  DWG_TYPE_AECC_SHEET_STYLE,
1114
  DWG_TYPE_AECC_SLOPE_PATTERN_STYLE,
1115
  DWG_TYPE_AECC_STATION_FORMAT_STYLE,
1116
  DWG_TYPE_AECC_STRUCTURE_RULES,
1117
  DWG_TYPE_AECC_STUCTURE_STYLE,
1118
  DWG_TYPE_AECC_SUPERELEVATION_DIAGRAM_VIEW_STYLE,
1119
  DWG_TYPE_AECC_SURFACE_STYLE,
1120
  DWG_TYPE_AECC_SVFIGURE_STYLE,
1121
  DWG_TYPE_AECC_SVNETWORK_STYLE,
1122
  DWG_TYPE_AECC_TABLE_STYLE,
1123
  DWG_TYPE_AECC_TAG_MANAGER,
1124
  DWG_TYPE_AECC_TREE_NODE,
1125
  DWG_TYPE_AECC_USER_DEFINED_ATTRIBUTE_CLASSIFICATION,
1126
  DWG_TYPE_AECC_VALIGNMENT_STYLE_EXTENSION,
1127
  DWG_TYPE_AECC_VIEW_FRAME_STYLE,
1128
  DWG_TYPE_AECS_DISP_PROPS_MEMBER,
1129
  DWG_TYPE_AECS_DISP_PROPS_MEMBER_LOGICAL,
1130
  DWG_TYPE_AECS_DISP_PROPS_MEMBER_PLAN,
1131
  DWG_TYPE_AECS_DISP_PROPS_MEMBER_PLAN_SKETCH,
1132
  DWG_TYPE_AECS_DISP_PROPS_MEMBER_PROJECTED,
1133
  DWG_TYPE_AECS_DISP_REP_MEMBER_ELEVATION_DESIGN,
1134
  DWG_TYPE_AECS_DISP_REP_MEMBER_ELEVATION_DETAIL,
1135
  DWG_TYPE_AECS_DISP_REP_MEMBER_LOGICAL,
1136
  DWG_TYPE_AECS_DISP_REP_MEMBER_MODEL_DESIGN,
1137
  DWG_TYPE_AECS_DISP_REP_MEMBER_MODEL_DETAIL,
1138
  DWG_TYPE_AECS_DISP_REP_MEMBER_PLAN_DESIGN,
1139
  DWG_TYPE_AECS_DISP_REP_MEMBER_PLAN_DETAIL,
1140
  DWG_TYPE_AECS_DISP_REP_MEMBER_PLAN_SKETCH,
1141
  DWG_TYPE_AECS_MEMBER_NODE_SHAPE,
1142
  DWG_TYPE_AECS_MEMBER_STYLE,
1143
  DWG_TYPE_AEC_2DSECTION_STYLE,
1144
  DWG_TYPE_AEC_AECDBDISPREPBDGELEVLINEPLAN100,
1145
  DWG_TYPE_AEC_AECDBDISPREPBDGELEVLINEPLAN50,
1146
  DWG_TYPE_AEC_AECDBDISPREPBDGSECTIONLINEPLAN100,
1147
  DWG_TYPE_AEC_AECDBDISPREPBDGSECTIONLINEPLAN50,
1148
  DWG_TYPE_AEC_AECDBDISPREPCEILINGGRIDPLAN100,
1149
  DWG_TYPE_AEC_AECDBDISPREPCEILINGGRIDPLAN50,
1150
  DWG_TYPE_AEC_AECDBDISPREPCOLUMNGRIDPLAN100,
1151
  DWG_TYPE_AEC_AECDBDISPREPCOLUMNGRIDPLAN50,
1152
  DWG_TYPE_AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN100,
1153
  DWG_TYPE_AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN50,
1154
  DWG_TYPE_AEC_AECDBDISPREPCURTAINWALLUNITPLAN100,
1155
  DWG_TYPE_AEC_AECDBDISPREPCURTAINWALLUNITPLAN50,
1156
  DWG_TYPE_AEC_AECDBDISPREPMVBLOCKREFPLAN100,
1157
  DWG_TYPE_AEC_AECDBDISPREPMVBLOCKREFPLAN50,
1158
  DWG_TYPE_AEC_AECDBDISPREPROOFPLAN100,
1159
  DWG_TYPE_AEC_AECDBDISPREPROOFPLAN50,
1160
  DWG_TYPE_AEC_AECDBDISPREPROOFSLABPLAN100,
1161
  DWG_TYPE_AEC_AECDBDISPREPROOFSLABPLAN50,
1162
  DWG_TYPE_AEC_AECDBDISPREPSLABPLAN100,
1163
  DWG_TYPE_AEC_AECDBDISPREPSLABPLAN50,
1164
  DWG_TYPE_AEC_AECDBDISPREPSPACEPLAN100,
1165
  DWG_TYPE_AEC_AECDBDISPREPSPACEPLAN50,
1166
  DWG_TYPE_AEC_AECDBDISPREPWALLPLAN100,
1167
  DWG_TYPE_AEC_AECDBDISPREPWALLPLAN50,
1168
  DWG_TYPE_AEC_AECDBDISPREPWINDOWASSEMBLYPLAN100,
1169
  DWG_TYPE_AEC_AECDBDISPREPWINDOWASSEMBLYPLAN50,
1170
  DWG_TYPE_AEC_AECDBDISPREPZONE100,
1171
  DWG_TYPE_AEC_AECDBDISPREPZONE50,
1172
  DWG_TYPE_AEC_AECDBZONEDEF,
1173
  DWG_TYPE_AEC_AECDBZONESTYLE,
1174
  DWG_TYPE_AEC_ANCHOR_OPENINGBASE_TO_WALL,
1175
  DWG_TYPE_AEC_CLASSIFICATION_DEF,
1176
  DWG_TYPE_AEC_CLASSIFICATION_SYSTEM_DEF,
1177
  DWG_TYPE_AEC_CLEANUP_GROUP_DEF,
1178
  DWG_TYPE_AEC_CURTAIN_WALL_LAYOUT_STYLE,
1179
  DWG_TYPE_AEC_CURTAIN_WALL_UNIT_STYLE,
1180
  DWG_TYPE_AEC_CVSECTIONVIEW,
1181
  DWG_TYPE_AEC_DB_DISP_REP_DIM_GROUP_PLAN,
1182
  DWG_TYPE_AEC_DB_DISP_REP_DIM_GROUP_PLAN100,
1183
  DWG_TYPE_AEC_DB_DISP_REP_DIM_GROUP_PLAN50,
1184
  DWG_TYPE_AEC_DIM_STYLE,
1185
  DWG_TYPE_AEC_DISPLAYTHEME_STYLE,
1186
  DWG_TYPE_AEC_DISP_PROPS_2D_SECTION,
1187
  DWG_TYPE_AEC_DISP_PROPS_CLIP_VOLUME,
1188
  DWG_TYPE_AEC_DISP_PROPS_CLIP_VOLUME_RESULT,
1189
  DWG_TYPE_AEC_DISP_PROPS_DIM,
1190
  DWG_TYPE_AEC_DISP_PROPS_DISPLAYTHEME,
1191
  DWG_TYPE_AEC_DISP_PROPS_DOOR,
1192
  DWG_TYPE_AEC_DISP_PROPS_DOOR_NOMINAL,
1193
  DWG_TYPE_AEC_DISP_PROPS_DOOR_PLAN_100,
1194
  DWG_TYPE_AEC_DISP_PROPS_DOOR_PLAN_50,
1195
  DWG_TYPE_AEC_DISP_PROPS_DOOR_THRESHOLD_PLAN,
1196
  DWG_TYPE_AEC_DISP_PROPS_DOOR_THRESHOLD_SYMBOL_PLAN,
1197
  DWG_TYPE_AEC_DISP_PROPS_EDITINPLACEPROFILE_MODEL,
1198
  DWG_TYPE_AEC_DISP_PROPS_ENT,
1199
  DWG_TYPE_AEC_DISP_PROPS_ENT_REF,
1200
  DWG_TYPE_AEC_DISP_PROPS_GRID_ASSEMBLY_MODEL,
1201
  DWG_TYPE_AEC_DISP_PROPS_GRID_ASSEMBLY_PLAN,
1202
  DWG_TYPE_AEC_DISP_PROPS_LAYOUT_CURVE,
1203
  DWG_TYPE_AEC_DISP_PROPS_LAYOUT_GRID2D,
1204
  DWG_TYPE_AEC_DISP_PROPS_LAYOUT_GRID3D,
1205
  DWG_TYPE_AEC_DISP_PROPS_MASKBLOCK,
1206
  DWG_TYPE_AEC_DISP_PROPS_MASS_ELEM_MODEL,
1207
  DWG_TYPE_AEC_DISP_PROPS_MASS_GROUP,
1208
  DWG_TYPE_AEC_DISP_PROPS_MATERIAL,
1209
  DWG_TYPE_AEC_DISP_PROPS_OPENING,
1210
  DWG_TYPE_AEC_DISP_PROPS_POLYGON_MODEL,
1211
  DWG_TYPE_AEC_DISP_PROPS_POLYGON_TRUECOLOUR,
1212
  DWG_TYPE_AEC_DISP_PROPS_RAILING_MODEL,
1213
  DWG_TYPE_AEC_DISP_PROPS_RAILING_PLAN,
1214
  DWG_TYPE_AEC_DISP_PROPS_ROOF,
1215
  DWG_TYPE_AEC_DISP_PROPS_ROOFSLAB,
1216
  DWG_TYPE_AEC_DISP_PROPS_ROOFSLAB_PLAN,
1217
  DWG_TYPE_AEC_DISP_PROPS_SCHEDULE_TABLE,
1218
  DWG_TYPE_AEC_DISP_PROPS_SLAB,
1219
  DWG_TYPE_AEC_DISP_PROPS_SLAB_PLAN,
1220
  DWG_TYPE_AEC_DISP_PROPS_SLICE,
1221
  DWG_TYPE_AEC_DISP_PROPS_SPACE_DECOMPOSED,
1222
  DWG_TYPE_AEC_DISP_PROPS_SPACE_MODEL,
1223
  DWG_TYPE_AEC_DISP_PROPS_SPACE_PLAN,
1224
  DWG_TYPE_AEC_DISP_PROPS_STAIR_MODEL,
1225
  DWG_TYPE_AEC_DISP_PROPS_STAIR_PLAN,
1226
  DWG_TYPE_AEC_DISP_PROPS_STAIR_PLAN_OVERLAPPING,
1227
  DWG_TYPE_AEC_DISP_PROPS_WALL_GRAPH,
1228
  DWG_TYPE_AEC_DISP_PROPS_WALL_MODEL,
1229
  DWG_TYPE_AEC_DISP_PROPS_WALL_PLAN,
1230
  DWG_TYPE_AEC_DISP_PROPS_WALL_SCHEM,
1231
  DWG_TYPE_AEC_DISP_PROPS_WINDOW,
1232
  DWG_TYPE_AEC_DISP_PROPS_WINDOW_ASSEMBLY_SILL_PLAN,
1233
  DWG_TYPE_AEC_DISP_PROPS_WINDOW_NOMINAL,
1234
  DWG_TYPE_AEC_DISP_PROPS_WINDOW_PLAN_100,
1235
  DWG_TYPE_AEC_DISP_PROPS_WINDOW_PLAN_50,
1236
  DWG_TYPE_AEC_DISP_PROPS_WINDOW_SILL_PLAN,
1237
  DWG_TYPE_AEC_DISP_PROPS_ZONE,
1238
  DWG_TYPE_AEC_DISP_REP_2D_SECTION,
1239
  DWG_TYPE_AEC_DISPREPAECDBDISPREPMASSELEMPLAN100,
1240
  DWG_TYPE_AEC_DISPREPAECDBDISPREPMASSELEMPLAN50,
1241
  DWG_TYPE_AEC_DISPREPAECDBDISPREPMASSGROUPPLAN100,
1242
  DWG_TYPE_AEC_DISPREPAECDBDISPREPMASSGROUPPLAN50,
1243
  DWG_TYPE_AEC_DISPREPAECDBDISPREPOPENINGPLAN100,
1244
  DWG_TYPE_AEC_DISPREPAECDBDISPREPOPENINGPLAN50,
1245
  DWG_TYPE_AEC_DISPREPAECDBDISPREPOPENINGPLANREFLECTED,
1246
  DWG_TYPE_AEC_DISPREPAECDBDISPREPOPENINGSILLPLAN,
1247
  DWG_TYPE_AEC_DISP_REP_ANCHOR,
1248
  DWG_TYPE_AEC_DISP_REP_ANCHOR_BUB_TO_GRID,
1249
  DWG_TYPE_AEC_DISP_REP_ANCHOR_BUB_TO_GRID_MODEL,
1250
  DWG_TYPE_AEC_DISP_REP_ANCHOR_BUB_TO_GRID_RCP,
1251
  DWG_TYPE_AEC_DISP_REP_ANCHOR_ENT_TO_NODE,
1252
  DWG_TYPE_AEC_DISP_REP_ANCHOR_EXT_TAG_TO_ENT,
1253
  DWG_TYPE_AEC_DISP_REP_ANCHOR_TAG_TO_ENT,
1254
  DWG_TYPE_AEC_DISP_REP_BDG_ELEVLINE_MODEL,
1255
  DWG_TYPE_AEC_DISP_REP_BDG_ELEVLINE_PLAN,
1256
  DWG_TYPE_AEC_DISP_REP_BDG_ELEVLINE_RCP,
1257
  DWG_TYPE_AEC_DISP_REP_BDG_SECTIONLINE_MODEL,
1258
  DWG_TYPE_AEC_DISP_REP_BDG_SECTIONLINE_PLAN,
1259
  DWG_TYPE_AEC_DISP_REP_BDG_SECTIONLINE_RCP,
1260
  DWG_TYPE_AEC_DISP_REP_BDG_SECTION_MODEL,
1261
  DWG_TYPE_AEC_DISP_REP_BDG_SECTION_SUBDIV,
1262
  DWG_TYPE_AEC_DISP_REP_CEILING_GRID,
1263
  DWG_TYPE_AEC_DISP_REP_CEILING_GRID_MODEL,
1264
  DWG_TYPE_AEC_DISP_REP_CEILING_GRID_RCP,
1265
  DWG_TYPE_AEC_DISP_REP_CLIP_VOLUME_MODEL,
1266
  DWG_TYPE_AEC_DISP_REP_CLIP_VOLUME_PLAN,
1267
  DWG_TYPE_AEC_DISP_REP_CLIP_VOLUME_RESULT,
1268
  DWG_TYPE_AEC_DISP_REP_CLIP_VOLUME_RESULT_SUBDIV,
1269
  DWG_TYPE_AEC_DISP_REP_COL_BLOCK,
1270
  DWG_TYPE_AEC_DISP_REP_COL_CIRCARC2D,
1271
  DWG_TYPE_AEC_DISP_REP_COL_CONCOINCIDENT,
1272
  DWG_TYPE_AEC_DISP_REP_COL_CONCONCENTRIC,
1273
  DWG_TYPE_AEC_DISP_REP_COL_CONEQUALDISTANCE,
1274
  DWG_TYPE_AEC_DISP_REP_COL_CONMIDPOINT,
1275
  DWG_TYPE_AEC_DISP_REP_COL_CONNECTOR,
1276
  DWG_TYPE_AEC_DISP_REP_COL_CONNORMAL,
1277
  DWG_TYPE_AEC_DISP_REP_COL_CONPARALLEL,
1278
  DWG_TYPE_AEC_DISP_REP_COL_CONPERPENDICULAR,
1279
  DWG_TYPE_AEC_DISP_REP_COL_CONSYMMETRIC,
1280
  DWG_TYPE_AEC_DISP_REP_COL_CONTANGENT,
1281
  DWG_TYPE_AEC_DISP_REP_COL_DIMANGLE,
1282
  DWG_TYPE_AEC_DISP_REP_COL_DIMDIAMETER,
1283
  DWG_TYPE_AEC_DISP_REP_COL_DIMDISTANCE,
1284
  DWG_TYPE_AEC_DISP_REP_COL_DIMLENGTH,
1285
  DWG_TYPE_AEC_DISP_REP_COL_DIMMAJORRADIUS,
1286
  DWG_TYPE_AEC_DISP_REP_COL_DIMMINORRADIUS,
1287
  DWG_TYPE_AEC_DISP_REP_COL_ELLIPARC2D,
1288
  DWG_TYPE_AEC_DISP_REP_COL_LAYOUTDATA,
1289
  DWG_TYPE_AEC_DISP_REP_COL_LINE2D,
1290
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_ADD,
1291
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_CUTPLANE,
1292
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_EXTRUSION,
1293
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_GROUP,
1294
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_LOFT,
1295
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_PATH,
1296
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_REVOLVE,
1297
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_SUBTRACT,
1298
  DWG_TYPE_AEC_DISP_REP_COL_MODIFIER_TRANSITION,
1299
  DWG_TYPE_AEC_DISP_REP_COL_POINT2D,
1300
  DWG_TYPE_AEC_DISP_REP_COL_PROFILE,
1301
  DWG_TYPE_AEC_DISP_REP_COLUMN_GRID,
1302
  DWG_TYPE_AEC_DISP_REP_COLUMN_GRID_MODEL,
1303
  DWG_TYPE_AEC_DISP_REP_COLUMN_GRID_RCP,
1304
  DWG_TYPE_AEC_DISP_REP_COL_WORKPLANE,
1305
  DWG_TYPE_AEC_DISP_REP_COL_WORKPLANE_REF,
1306
  DWG_TYPE_AEC_DISP_REP_CONFIG,
1307
  DWG_TYPE_AEC_DISP_REP_CURTAIN_WALL_LAYOUT_MODEL,
1308
  DWG_TYPE_AEC_DISP_REP_CURTAIN_WALL_LAYOUT_PLAN,
1309
  DWG_TYPE_AEC_DISP_REP_CURTAIN_WALL_UNIT_MODEL,
1310
  DWG_TYPE_AEC_DISP_REP_CURTAIN_WALL_UNIT_PLAN,
1311
  DWG_TYPE_AEC_DISP_REP_DCM_DIMRADIUS,
1312
  DWG_TYPE_AEC_DISP_REP_DISPLAYTHEME,
1313
  DWG_TYPE_AEC_DISP_REP_DOOR_ELEV,
1314
  DWG_TYPE_AEC_DISP_REP_DOOR_MODEL,
1315
  DWG_TYPE_AEC_DISP_REP_DOOR_NOMINAL,
1316
  DWG_TYPE_AEC_DISP_REP_DOOR_PLAN,
1317
  DWG_TYPE_AEC_DISP_REP_DOOR_PLAN_50,
1318
  DWG_TYPE_AEC_DISP_REP_DOOR_PLAN_HEKTO,
1319
  DWG_TYPE_AEC_DISP_REP_DOOR_RCP,
1320
  DWG_TYPE_AEC_DISP_REP_DOOR_THRESHOLD_PLAN,
1321
  DWG_TYPE_AEC_DISP_REP_DOOR_THRESHOLD_SYMBOL_PLAN,
1322
  DWG_TYPE_AEC_DISP_REP_EDITINPLACEPROFILE,
1323
  DWG_TYPE_AEC_DISP_REP_ENT_REF,
1324
  DWG_TYPE_AEC_DISP_REP_LAYOUT_CURVE,
1325
  DWG_TYPE_AEC_DISP_REP_LAYOUT_GRID2D,
1326
  DWG_TYPE_AEC_DISP_REP_LAYOUT_GRID3D,
1327
  DWG_TYPE_AEC_DISP_REP_MASKBLOCK_REF,
1328
  DWG_TYPE_AEC_DISP_REP_MASKBLOCK_REF_RCP,
1329
  DWG_TYPE_AEC_DISP_REP_MASS_ELEM_MODEL,
1330
  DWG_TYPE_AEC_DISP_REP_MASS_ELEM_RCP,
1331
  DWG_TYPE_AEC_DISP_REP_MASS_ELEM_SCHEM,
1332
  DWG_TYPE_AEC_DISP_REP_MASS_GROUP_MODEL,
1333
  DWG_TYPE_AEC_DISP_REP_MASS_GROUP_PLAN,
1334
  DWG_TYPE_AEC_DISP_REP_MASS_GROUP_RCP,
1335
  DWG_TYPE_AEC_DISP_REP_MATERIAL,
1336
  DWG_TYPE_AEC_DISP_REP_MVBLOCK_REF,
1337
  DWG_TYPE_AEC_DISP_REP_MVBLOCK_REF_MODEL,
1338
  DWG_TYPE_AEC_DISP_REP_MVBLOCK_REF_RCP,
1339
  DWG_TYPE_AEC_DISP_REP_OPENING,
1340
  DWG_TYPE_AEC_DISP_REP_OPENING_MODEL,
1341
  DWG_TYPE_AEC_DISP_REP_POLYGON_MODEL,
1342
  DWG_TYPE_AEC_DISP_REP_POLYGON_TRUECOLOUR,
1343
  DWG_TYPE_AEC_DISP_REP_RAILING_MODEL,
1344
  DWG_TYPE_AEC_DISP_REP_RAILING_PLAN,
1345
  DWG_TYPE_AEC_DISP_REP_RAILING_PLAN_100,
1346
  DWG_TYPE_AEC_DISP_REP_RAILING_PLAN_50,
1347
  DWG_TYPE_AEC_DISP_REP_ROOF_MODEL,
1348
  DWG_TYPE_AEC_DISP_REP_ROOF_PLAN,
1349
  DWG_TYPE_AEC_DISP_REP_ROOF_RCP,
1350
  DWG_TYPE_AEC_DISP_REP_ROOFSLAB_MODEL,
1351
  DWG_TYPE_AEC_DISP_REP_ROOFSLAB_PLAN,
1352
  DWG_TYPE_AEC_DISP_REP_SCHEDULE_TABLE,
1353
  DWG_TYPE_AEC_DISP_REP_SET,
1354
  DWG_TYPE_AEC_DISP_REP_SLAB_MODEL,
1355
  DWG_TYPE_AEC_DISP_REP_SLAB_PLAN,
1356
  DWG_TYPE_AEC_DISP_REP_SLICE,
1357
  DWG_TYPE_AEC_DISP_REP_SPACE_DECOMPOSED,
1358
  DWG_TYPE_AEC_DISP_REP_SPACE_MODEL,
1359
  DWG_TYPE_AEC_DISP_REP_SPACE_PLAN,
1360
  DWG_TYPE_AEC_DISP_REP_SPACE_RCP,
1361
  DWG_TYPE_AEC_DISP_REP_SPACE_VOLUME,
1362
  DWG_TYPE_AEC_DISP_REP_STAIR_MODEL,
1363
  DWG_TYPE_AEC_DISP_REP_STAIR_PLAN,
1364
  DWG_TYPE_AEC_DISP_REP_STAIR_PLAN_100,
1365
  DWG_TYPE_AEC_DISP_REP_STAIR_PLAN_50,
1366
  DWG_TYPE_AEC_DISP_REP_STAIR_PLAN_OVERLAPPING,
1367
  DWG_TYPE_AEC_DISP_REP_STAIR_RCP,
1368
  DWG_TYPE_AEC_DISP_REP_WALL_GRAPH,
1369
  DWG_TYPE_AEC_DISP_REP_WALL_MODEL,
1370
  DWG_TYPE_AEC_DISP_REP_WALL_PLAN,
1371
  DWG_TYPE_AEC_DISP_REP_WALL_RCP,
1372
  DWG_TYPE_AEC_DISP_REP_WALL_SCHEM,
1373
  DWG_TYPE_AEC_DISP_REP_WINDOW_ASSEMBLY_MODEL,
1374
  DWG_TYPE_AEC_DISP_REP_WINDOW_ASSEMBLY_PLAN,
1375
  DWG_TYPE_AEC_DISP_REP_WINDOWASSEMBLY_SILL_PLAN,
1376
  DWG_TYPE_AEC_DISP_REP_WINDOW_ELEV,
1377
  DWG_TYPE_AEC_DISP_REP_WINDOW_MODEL,
1378
  DWG_TYPE_AEC_DISP_REP_WINDOW_NOMINAL,
1379
  DWG_TYPE_AEC_DISP_REP_WINDOW_PLAN,
1380
  DWG_TYPE_AEC_DISP_REP_WINDOW_PLAN_100,
1381
  DWG_TYPE_AEC_DISP_REP_WINDOW_PLAN_50,
1382
  DWG_TYPE_AEC_DISP_REP_WINDOW_RCP,
1383
  DWG_TYPE_AEC_DISP_REP_WINDOW_SILL_PLAN,
1384
  DWG_TYPE_AEC_DISP_REP_ZONE,
1385
  DWG_TYPE_AEC_DISPROPSMASSELEMPLANCOMMON,
1386
  DWG_TYPE_AEC_DISPROPSMASSGROUPPLANCOMMON,
1387
  DWG_TYPE_AEC_DISPROPSOPENINGPLANCOMMON,
1388
  DWG_TYPE_AEC_DISPROPSOPENINGPLANCOMMONHATCHED,
1389
  DWG_TYPE_AEC_DISPROPSOPENINGSILLPLAN,
1390
  DWG_TYPE_AEC_DISP_ROPS_RAILING_PLAN_100,
1391
  DWG_TYPE_AEC_DISP_ROPS_RAILING_PLAN_50,
1392
  DWG_TYPE_AEC_DISP_ROPS_STAIR_PLAN_100,
1393
  DWG_TYPE_AEC_DISP_ROPS_STAIR_PLAN_50,
1394
  DWG_TYPE_AEC_DOOR_STYLE,
1395
  DWG_TYPE_AEC_ENDCAP_STYLE,
1396
  DWG_TYPE_AEC_FRAME_DEF,
1397
  DWG_TYPE_AEC_LAYERKEY_STYLE,
1398
  DWG_TYPE_AEC_LIST_DEF,
1399
  DWG_TYPE_AEC_MASKBLOCK_DEF,
1400
  DWG_TYPE_AEC_MASS_ELEM_STYLE,
1401
  DWG_TYPE_AEC_MATERIAL_DEF,
1402
  DWG_TYPE_AEC_MVBLOCK_DEF,
1403
  DWG_TYPE_AEC_MVBLOCK_REF,
1404
  DWG_TYPE_AEC_NOTIFICATION_TRACKER,
1405
  DWG_TYPE_AEC_POLYGON,
1406
  DWG_TYPE_AEC_POLYGON_STYLE,
1407
  DWG_TYPE_AEC_PROPERTY_SET_DEF,
1408
  DWG_TYPE_AEC_RAILING_STYLE,
1409
  DWG_TYPE_AEC_REFEDIT_STATUS_TRACKER, // AecDbRefEditStatusTracker / AecArchBase80|...,
1410
  DWG_TYPE_AEC_ROOFSLABEDGE_STYLE,
1411
  DWG_TYPE_AEC_ROOFSLAB_STYLE,
1412
  DWG_TYPE_AEC_SCHEDULE_DATA_FORMAT,
1413
  DWG_TYPE_AEC_SLABEDGE_STYLE,
1414
  DWG_TYPE_AEC_SLAB_STYLE,
1415
  DWG_TYPE_AEC_SPACE_STYLES,
1416
  DWG_TYPE_AEC_STAIR_STYLE,
1417
  DWG_TYPE_AEC_STAIR_WINDER_STYLE,
1418
  DWG_TYPE_AEC_STAIR_WINDER_TYPE_BALANCED,
1419
  DWG_TYPE_AEC_STAIR_WINDER_TYPE_MANUAL,
1420
  DWG_TYPE_AEC_STAIR_WINDER_TYPE_SINGLE_POINT,
1421
  DWG_TYPE_AEC_VARS_AECBBLDSRV,
1422
  DWG_TYPE_AEC_VARS_ARCHBASE,
1423
  DWG_TYPE_AEC_VARS_DWG_SETUP,
1424
  DWG_TYPE_AEC_VARS_MUNICH,
1425
  DWG_TYPE_AEC_VARS_STRUCTUREBASE,
1426
  DWG_TYPE_AEC_WALLMOD_STYLE,
1427
  DWG_TYPE_AEC_WALL_STYLE,
1428
  DWG_TYPE_AEC_WINDOW_ASSEMBLY_STYLE,
1429
  DWG_TYPE_AEC_WINDOW_STYLE,
1430
  DWG_TYPE_ALIGNMENTGRIPENTITY,
1431
  DWG_TYPE_AMCONTEXTMGR,
1432
  DWG_TYPE_AMDTADMENUSTATE,
1433
  DWG_TYPE_AMDTAMMENUSTATE,
1434
  DWG_TYPE_AMDTBROWSERDBTAB,
1435
  DWG_TYPE_AMDTDMMENUSTATE,
1436
  DWG_TYPE_AMDTEDGESTANDARDDIN,
1437
  DWG_TYPE_AMDTEDGESTANDARDDIN13715,
1438
  DWG_TYPE_AMDTEDGESTANDARDISO,
1439
  DWG_TYPE_AMDTEDGESTANDARDISO13715,
1440
  DWG_TYPE_AMDTFORMULAUPDATEDISPATCHER,
1441
  DWG_TYPE_AMDTINTERNALREACTOR,
1442
  DWG_TYPE_AMDTMCOMMENUSTATE,
1443
  DWG_TYPE_AMDTMENUSTATEMGR,
1444
  DWG_TYPE_AMDTNOTE,
1445
  DWG_TYPE_AMDTNOTETEMPLATEDB,
1446
  DWG_TYPE_AMDTSECTIONSYM,
1447
  DWG_TYPE_AMDTSECTIONSYMLABEL,
1448
  DWG_TYPE_AMDTSYSATTR,
1449
  DWG_TYPE_AMGOBJPROPCFG,
1450
  DWG_TYPE_AMGSETTINGSOBJ,
1451
  DWG_TYPE_AMIMASTER,
1452
  DWG_TYPE_AM_DRAWING_MGR,
1453
  DWG_TYPE_AM_DWGMGR_NAME,
1454
  DWG_TYPE_AM_DWG_DOCUMENT,
1455
  DWG_TYPE_AM_DWG_SHEET,
1456
  DWG_TYPE_AM_VIEWDIMPARMAP,
1457
  DWG_TYPE_BINRECORD,
1458
  DWG_TYPE_CAMSCATALOGAPPOBJECT,
1459
  DWG_TYPE_CAMSSTRUCTBTNSTATE,
1460
  DWG_TYPE_CATALOGSTATE,
1461
  DWG_TYPE_CBROWSERAPPOBJECT,
1462
  DWG_TYPE_DEPMGR, // AcAdDepMgr / DesignerAssemblies,
1463
  DWG_TYPE_DMBASEELEMENT, // AcMapDMBaseElement / AcMapDisplayManagement,
1464
  DWG_TYPE_DMDEFAULTSTYLE, // AcMapDMDefaultStyle / AcMapDisplayManagement,
1465
  DWG_TYPE_DMLEGEND,
1466
  DWG_TYPE_DMMAP, // AcMapDMMap / AcMapDisplayManagement,
1467
  DWG_TYPE_DMMAPMANAGER, // AcMapDMMapManager / AcMapDisplayManagement,
1468
  DWG_TYPE_DMSTYLECATEGORY, // AcMapDMStyleCategory / AcMapDisplayManagement,
1469
  DWG_TYPE_DMSTYLELIBRARY, // AcMapDMStyleLibrary / AcMapDisplayManagement,
1470
  DWG_TYPE_DMSTYLEREFERENCE, // AcMapDMStyleReference / AcMapDisplayManagement,
1471
  DWG_TYPE_DMSTYLIZEDENTITIESTABLE, // AcMapDMStylizedEntitiesTable / AcMapDisplayManagement,
1472
  DWG_TYPE_DMSURROGATESTYLESETS, // AcMapDMSurrogateStyleSets / AcMapDisplayManagement,
1473
  DWG_TYPE_DM_PLACEHOLDER, // AcDmSelsetPlaceholder / McadcomServices,
1474
  DWG_TYPE_EXACTERMXREFMAP, // ExAcTermXrefMap / EXAC_SERVICE,
1475
  DWG_TYPE_EXACXREFPANELOBJECT, // ExAcXREFPanelObject / EXAC_ESW,
1476
  DWG_TYPE_EXPO_NOTIFYBLOCK,
1477
  DWG_TYPE_EXPO_NOTIFYHALL,
1478
  DWG_TYPE_EXPO_NOTIFYPILLAR,
1479
  DWG_TYPE_EXPO_NOTIFYSTAND,
1480
  DWG_TYPE_EXPO_NOTIFYSTANDNOPOLY,
1481
  DWG_TYPE_GSMANAGER, // AcMeGSManager / AcMeServices,
1482
  DWG_TYPE_IRD_DSC_DICT,
1483
  DWG_TYPE_IRD_DSC_RECORD,
1484
  DWG_TYPE_IRD_OBJ_RECORD,
1485
  DWG_TYPE_MAPFSMRVOBJECT,
1486
  DWG_TYPE_MAPGWSUNDOOBJECT, // AcMapGWSUndoRecorder / AcMapFeatureSourceManager,
1487
  DWG_TYPE_MAPIAMMOUDLE,
1488
  DWG_TYPE_MAPMETADATAOBJECT,
1489
  DWG_TYPE_MAPRESOURCEMANAGEROBJECT,
1490
  DWG_TYPE_McDbContainer2,
1491
  DWG_TYPE_McDbMarker,
1492
  DWG_TYPE_NAMEDAPPL,
1493
  DWG_TYPE_NEWSTDPARTPARLIST,
1494
  DWG_TYPE_NOTEPOSITION, // mcsDbObjectNotePosition,
1495
  DWG_TYPE_OBJCLONER,
1496
  DWG_TYPE_PARAMMGR,
1497
  DWG_TYPE_PARAMSCOPE,
1498
  DWG_TYPE_PILLAR,
1499
  DWG_TYPE_STDPART2D,
1500
  DWG_TYPE_TCH_ARROW,
1501
  DWG_TYPE_TCH_AXIS_LABEL,
1502
  DWG_TYPE_TCH_BLOCK_INSERT,
1503
  DWG_TYPE_TCH_COLUMN,
1504
  DWG_TYPE_TCH_DBCONFIG,
1505
  DWG_TYPE_TCH_DIMENSION2,
1506
  DWG_TYPE_TCH_DRAWINGINDEX,
1507
  DWG_TYPE_TCH_HANDRAIL,
1508
  DWG_TYPE_TCH_LINESTAIR,
1509
  DWG_TYPE_TCH_OPENING,
1510
  DWG_TYPE_TCH_RECTSTAIR,
1511
  DWG_TYPE_TCH_SLAB,
1512
  DWG_TYPE_TCH_SPACE,
1513
  DWG_TYPE_TCH_TEXT,
1514
  DWG_TYPE_TCH_WALL,
1515
  DWG_TYPE_TGrupoPuntos,
1516
  DWG_TYPE_VAACIMAGEINVENTORY,
1517
  DWG_TYPE_VAACXREFPANELOBJECT,
1518
1519
  DWG_TYPE_FREED        = 0xfffd,
1520
  DWG_TYPE_UNKNOWN_ENT  = 0xfffe,
1521
  DWG_TYPE_UNKNOWN_OBJ  = 0xffff,
1522
} Dwg_Object_Type;
1523
1524
typedef enum DWG_OBJECT_TYPE_R11
1525
{
1526
  // UNUSED_R11: i.e. all the added table or iterator objects (mspace block)
1527
  DWG_TYPE_UNUSED_r11 = 0,
1528
  DWG_TYPE_LINE_r11 = 1,
1529
  DWG_TYPE_POINT_r11 = 2,
1530
  DWG_TYPE_CIRCLE_r11 = 3,
1531
  DWG_TYPE_SHAPE_r11 = 4,
1532
  DWG_TYPE_REPEAT_r11 = 5,
1533
  DWG_TYPE_ENDREP_r11 = 6,
1534
  DWG_TYPE_TEXT_r11 = 7,
1535
  DWG_TYPE_ARC_r11 = 8,
1536
  DWG_TYPE_TRACE_r11 = 9,
1537
  DWG_TYPE_LOAD_r11 = 10,
1538
  DWG_TYPE_SOLID_r11 = 11,
1539
  DWG_TYPE_BLOCK_r11 = 12,
1540
  DWG_TYPE_ENDBLK_r11 = 13,
1541
  DWG_TYPE_INSERT_r11 = 14, // includes also MINSERT
1542
  DWG_TYPE_ATTDEF_r11 = 15,
1543
  DWG_TYPE_ATTRIB_r11 = 16,
1544
  DWG_TYPE_SEQEND_r11 = 17,
1545
  DWG_TYPE_JUMP_r11 = 18,
1546
  DWG_TYPE_POLYLINE_r11 = 19, // also mesh/pfaces
1547
  DWG_TYPE_VERTEX_r11 = 20,   // also mesh/pface vertices
1548
  DWG_TYPE_3DLINE_r11 = 21,
1549
  DWG_TYPE_3DFACE_r11 = 22,
1550
  DWG_TYPE_DIMENSION_r11 = 23, // all types
1551
  DWG_TYPE_VIEWPORT_r11 = 24,
1552
  DWG_TYPE_UNKNOWN_r11 = 25,
1553
} Dwg_Object_Type_r11;
1554
1555
/**
1556
 Error codes returned.
1557
 */
1558
typedef enum DWG_ERROR
1559
{
1560
  DWG_NOERR = 0,
1561
  /* sorted by severity */
1562
  DWG_ERR_WRONGCRC         = 1,
1563
  DWG_ERR_NOTYETSUPPORTED  = 1 << 1, /* 2 */
1564
  DWG_ERR_UNHANDLEDCLASS   = 1 << 2, /* 4 */
1565
  DWG_ERR_INVALIDTYPE      = 1 << 3, /* 8 */
1566
  DWG_ERR_INVALIDHANDLE    = 1 << 4, /* 16 */
1567
  DWG_ERR_INVALIDEED       = 1 << 5, /* 32 */
1568
  DWG_ERR_VALUEOUTOFBOUNDS = 1 << 6, /* 64 */
1569
  /* -------- critical errors ------- */
1570
  DWG_ERR_CLASSESNOTFOUND  = 1 << 7, /* 128 */
1571
  DWG_ERR_SECTIONNOTFOUND  = 1 << 8, /* 256 */
1572
  DWG_ERR_PAGENOTFOUND     = 1 << 9, /* 512 */
1573
  DWG_ERR_INTERNALERROR    = 1 << 10,/* 1024 */
1574
  DWG_ERR_INVALIDDWG       = 1 << 11,/* 2048 */
1575
  DWG_ERR_IOERROR          = 1 << 12,/* 4096 */
1576
  DWG_ERR_OUTOFMEM         = 1 << 13,/* 8192 */
1577
1578
} Dwg_Error;
1579
10.3M
#define DWG_ERR_CRITICAL DWG_ERR_CLASSESNOTFOUND
1580
1581
/**
1582
   handles resolve absolute or relative indices to objects.
1583
1584
   code 2-5: represents the type of the relation: hard/soft, owner/id.
1585
1586
   code TYPEDOBJHANDLE:
1587
    2 Soft owner,
1588
    3 Hard owner,
1589
    4 Soft pointer,
1590
    5 Hard pointer
1591
1592
   code > 6: the handle is stored as an offset from some other handle.
1593
1594
   code OFFSETOBJHANDLE for soft owners or pointers:
1595
    6 ref + 1,
1596
    8 ref - 1,
1597
    a ref + offset,
1598
    c ref - offset
1599
1600
  See \ref Dwg_Handle
1601
 */
1602
typedef struct _dwg_handle
1603
{
1604
  BITCODE_RC code; /*!< OFFSETOBJHANDLE if > 6 */
1605
  BITCODE_RC size;
1606
  BITCODE_HV value;
1607
  BITCODE_B is_global; // to be freed or not
1608
} Dwg_Handle;
1609
1610
#define FORMAT_H "%u.%u." FORMAT_HV
1611
#define ARGS_H(hdl) (hdl).code, (hdl).size, (hdl).value
1612
#define FORMAT_REF "(%u.%u." FORMAT_HV ") abs:" FORMAT_HV
1613
#define ARGS_REF(ref) (ref)->handleref.code, (ref)->handleref.size, \
1614
    (ref)->handleref.value, (ref)->absolute_ref
1615
#define FORMAT_REF11 "(%d, %hd, " FORMAT_HV ")"
1616
#define ARGS_REF11(ref) (ref)->handleref.size, (ref)->r11_idx, \
1617
       (ref)->absolute_ref
1618
1619
/**
1620
object references: obj is resolved by handleref (e.g. via
1621
dwg_resolve_handleref) when reading a DWG to the respective \ref
1622
Dwg_Object, and absolute_ref is resolved to the global
1623
_dwg_struct::object_ref index. It is the same as the hex number in the
1624
DXF handles.
1625
1626
Used as \ref Dwg_Object_Ref
1627
*/
1628
typedef struct _dwg_object_ref
1629
{
1630
  struct _dwg_object* obj;
1631
  Dwg_Handle handleref;
1632
  BITCODE_RLL absolute_ref;
1633
  BITCODE_RSd r11_idx; // preR13 only, the TABLE index (also used for DXF)
1634
} Dwg_Object_Ref;
1635
1636
typedef Dwg_Object_Ref* BITCODE_H;
1637
1638
typedef enum DWG_HDL_CODE
1639
{
1640
   DWG_HDL_OWNER   = 0,
1641
   DWG_HDL_SOFTOWN = 2,
1642
   DWG_HDL_HARDOWN = 3,
1643
   DWG_HDL_SOFTPTR = 4, // can be relative
1644
   DWG_HDL_HARDPTR = 5,
1645
} Dwg_Hdl_Code;
1646
1647
typedef enum DWG_COLOR_METHOD
1648
{
1649
  DWG_COLOR_METHOD_VOID = 0,
1650
  DWG_COLOR_METHOD_BYLAYER = 0xc0, /* (also c3 and rgb of 0x100) */
1651
  DWG_COLOR_METHOD_BYBLOCK = 0xc1, /* (also c3 and rgb of 0) */
1652
  DWG_COLOR_METHOD_ACI = 0xc2,     /* Color index, for entities (default),
1653
                                      with names with an additional name flag RC */
1654
  DWG_COLOR_METHOD_TRUECOLOR = 0xc3,
1655
  DWG_COLOR_METHOD_FGCOLOR = 0xc5,
1656
  DWG_COLOR_METHOD_NONE = 0xc8, /* (also c3 and rgb of 0x101) */
1657
} Dwg_Color_Method;
1658
1659
/**
1660
 CMC or ENC colors: color index or rgb value. layers are off when the index
1661
 is negative.
1662
 Used as \ref Dwg_Color
1663
 */
1664
typedef struct _dwg_color /* CmColor: R15 and earlier */
1665
{
1666
  BITCODE_BSd index;  /* <0: turned off. 0: BYBLOCK, 256: BYLAYER */
1667
  BITCODE_BS flag;    /* 1: has name, 2: has book_name. */
1668
  BITCODE_BS raw;     /* ENC only */
1669
  BITCODE_BL rgb;     /* DXF 420 */
1670
  Dwg_Color_Method method; /* first byte of rgb */
1671
  BITCODE_T  name;       /* DXF 430 */
1672
  BITCODE_T  book_name;  /* DXF 430, DXF: "book_name$name" */
1673
  // Entities only:
1674
  BITCODE_H  handle;
1675
  BITCODE_BL alpha_raw;
1676
  BITCODE_BB alpha_type; /* 0 BYLAYER, 1 BYBLOCK, 3 alpha */
1677
  BITCODE_RC alpha;      /* DXF 440. 0-255 */
1678
} Dwg_Color;
1679
1680
typedef Dwg_Color BITCODE_CMC;
1681
typedef Dwg_Color BITCODE_CMTC; // truecolor even before r2004
1682
typedef Dwg_Color BITCODE_ENC;
1683
1684
EXPORT const char* dwg_color_method_name (unsigned method);
1685
1686
/**
1687
 ASCII or Unicode text in xdata \ref Dwg_Resbuf
1688
 */
1689
struct _dwg_binary_chunk
1690
{
1691
  unsigned short size;
1692
  unsigned codepage:15;
1693
  unsigned is_tu:1;
1694
  union {
1695
    char *data;
1696
    DWGCHAR *wdata;
1697
  } u;
1698
};
1699
1700
/**
1701
 result buffers: xdata linked list of dxf group - value pairs.
1702
 Used as \ref Dwg_Resbuf
1703
 */
1704
typedef struct _dwg_resbuf
1705
{
1706
  short type;
1707
  union
1708
  {
1709
    double  pt[3];
1710
    char    i8;
1711
    short   i16;
1712
    int     i32;
1713
    BITCODE_BLL i64;
1714
    BITCODE_HV absref;
1715
    double  dbl;
1716
    struct _dwg_binary_chunk str;
1717
  } value;
1718
  struct _dwg_resbuf *nextrb;
1719
} Dwg_Resbuf;
1720
1721
/**
1722
 \struct Dwg_Header_Variables
1723
 DWG header variables for all versions.
1724
 If uppercase related to the DXF HEADER $ name.
1725
1726
 \ref _dwg_header_variables
1727
 */
1728
typedef struct _dwg_header_variables {
1729
  BITCODE_RL size;
1730
  BITCODE_RL bitsize_hi;   /*!< r2010+ */
1731
  BITCODE_RL bitsize;
1732
  BITCODE_RC ACADMAINTVER; /*!< r13+ */
1733
  BITCODE_BLL REQUIREDVERSIONS; /*!< r2013+ */
1734
  BITCODE_TV DWGCODEPAGE;  /*!< DXF 3, r11+ */
1735
  BITCODE_RS codepage;     /*!< <r11 */
1736
  BITCODE_BD unit1_ratio; /* 412148564080.0 */
1737
  BITCODE_BD unit2_ratio; /* 1.0 */
1738
  BITCODE_BD unit3_ratio; /* 1.0 */
1739
  BITCODE_BD unit4_ratio; /* 1.0 */
1740
  BITCODE_TV unit1_name; /* "" 4x pre R13/2007... */
1741
  BITCODE_TV unit2_name; /* "" */
1742
  BITCODE_TV unit3_name; /* "" */
1743
  BITCODE_TV unit4_name; /* "" */
1744
  BITCODE_BL unknown_8; /* 24L */
1745
  BITCODE_BL unknown_9; /* 0L */
1746
  BITCODE_BS unknown_10; /* 0 r13-r14 */
1747
  BITCODE_H VX_TABLE_RECORD; /*!< r11-r2000 code 5, no DXF */
1748
  BITCODE_B DIMASO;
1749
  BITCODE_B DIMSHO;
1750
  BITCODE_B DIMSAV; /* undocumented */
1751
  BITCODE_B PLINEGEN;
1752
  BITCODE_B ORTHOMODE;
1753
  BITCODE_B REGENMODE;
1754
  BITCODE_B FILLMODE;
1755
  BITCODE_B QTEXTMODE;
1756
  BITCODE_B PSLTSCALE; /* r10- */
1757
  BITCODE_B LIMCHECK;
1758
  BITCODE_RC MENUEXT[46];
1759
  BITCODE_B BLIPMODE;
1760
  BITCODE_B unknown_11;
1761
  BITCODE_B USRTIMER;
1762
  BITCODE_B FASTZOOM;  /* -r11 */
1763
  BITCODE_B FLATLAND;
1764
  BITCODE_B VIEWMODE;
1765
  BITCODE_B SKPOLY;
1766
  BITCODE_RS unknown_mon;  /* -r11 */
1767
  BITCODE_RS unknown_day;  /* -r11 */
1768
  BITCODE_RS unknown_year; /* -r11 */
1769
  BITCODE_RS unknown_hour; /* -r11 */
1770
  BITCODE_RS unknown_min;  /* -r11 */
1771
  BITCODE_RS unknown_sec;  /* -r11 */
1772
  BITCODE_RS unknown_ms;  /* -r11 */
1773
  BITCODE_B ANGDIR;
1774
  BITCODE_B SPLFRAME;
1775
  BITCODE_B ATTREQ;
1776
  BITCODE_B ATTDIA;
1777
  BITCODE_B MIRRTEXT;
1778
  BITCODE_B WORLDVIEW;
1779
  BITCODE_B WIREFRAME; /* Undocumented */
1780
  BITCODE_B TILEMODE;
1781
  BITCODE_B PLIMCHECK;
1782
  BITCODE_B VISRETAIN;
1783
  BITCODE_B DELOBJ;
1784
  BITCODE_B DISPSILH;
1785
  BITCODE_B PELLIPSE;
1786
  BITCODE_BS SAVEIMAGES; //some r13 only
1787
  BITCODE_BS PROXYGRAPHICS;
1788
  BITCODE_BS MEASUREMENT; /* 0 English, 1 Metric. Stored as Section 4 */
1789
  BITCODE_BS DRAGMODE;
1790
  BITCODE_BSd TREEDEPTH; /* r11- */
1791
  BITCODE_BS LUNITS;
1792
  BITCODE_BS LUPREC;
1793
  BITCODE_BS AUNITS;
1794
  BITCODE_BS AUPREC;
1795
  BITCODE_BS ATTMODE;
1796
  BITCODE_BS COORDS;
1797
  BITCODE_BS PDMODE;
1798
  BITCODE_BS PICKSTYLE;
1799
  BITCODE_BS OSMODE;
1800
  BITCODE_BL unknown_12;
1801
  BITCODE_BL unknown_13;
1802
  BITCODE_BL unknown_14;
1803
  BITCODE_BSd USERI1;
1804
  BITCODE_BSd USERI2;
1805
  BITCODE_BSd USERI3;
1806
  BITCODE_BSd USERI4;
1807
  BITCODE_BSd USERI5;
1808
  BITCODE_BS SPLINESEGS;
1809
  BITCODE_BS SURFU;
1810
  BITCODE_BS SURFV;
1811
  BITCODE_BS SURFTYPE;
1812
  BITCODE_BS SURFTAB1;
1813
  BITCODE_BS SURFTAB2;
1814
  BITCODE_BS SPLINETYPE;
1815
  BITCODE_BS SHADEDGE;
1816
  BITCODE_BS SHADEDIF;
1817
  BITCODE_BS UNITMODE;
1818
  BITCODE_BS MAXACTVP;
1819
  BITCODE_BS ISOLINES;
1820
  BITCODE_BS CMLJUST;
1821
  BITCODE_BS TEXTQLTY;
1822
  BITCODE_BL unknown_14b;
1823
  BITCODE_BD LTSCALE;
1824
  BITCODE_BD TEXTSIZE;
1825
  BITCODE_BD TRACEWID;
1826
  BITCODE_BD SKETCHINC;
1827
  BITCODE_BD FILLETRAD;
1828
  BITCODE_BD THICKNESS;
1829
  BITCODE_BD ANGBASE;
1830
  BITCODE_BD PDSIZE;
1831
  BITCODE_BD PLINEWID;
1832
  BITCODE_BD USERR1;
1833
  BITCODE_BD USERR2;
1834
  BITCODE_BD USERR3;
1835
  BITCODE_BD USERR4;
1836
  BITCODE_BD USERR5;
1837
  BITCODE_BD CHAMFERA;
1838
  BITCODE_BD CHAMFERB;
1839
  BITCODE_BD CHAMFERC;
1840
  BITCODE_BD CHAMFERD;
1841
  BITCODE_BD FACETRES;
1842
  BITCODE_BD CMLSCALE;
1843
  BITCODE_BD CELTSCALE;
1844
  BITCODE_BD VIEWTWIST;
1845
  BITCODE_TV MENU;
1846
  BITCODE_TIMEBLL TDCREATE;
1847
  BITCODE_TIMEBLL TDUPDATE;
1848
  BITCODE_TIMEBLL TDUCREATE;
1849
  BITCODE_TIMEBLL TDUUPDATE;
1850
  BITCODE_BL unknown_15;
1851
  BITCODE_BL unknown_16;
1852
  BITCODE_BL unknown_17;
1853
  BITCODE_TIMEBLL TDINDWG;
1854
  BITCODE_TIMEBLL TDUSRTIMER;
1855
  BITCODE_CMC CECOLOR;
1856
  BITCODE_BS HANDLING; /* <r14: default 1 */
1857
  BITCODE_H HANDSEED;
1858
  BITCODE_RL unknown_4f2; /* -r11 */
1859
  BITCODE_RS unknown_5; /* r2-r11 */
1860
  BITCODE_RS unknown_6; /* r10-r11 */
1861
  BITCODE_RS unknown_6a; /* r2-r9 */
1862
  BITCODE_RS unknown_6b; /* r2-r9 */
1863
  BITCODE_RS unknown_6c; /* r2-r9 */
1864
  BITCODE_H CLAYER; /*!< code 5, DXF 8 */
1865
  BITCODE_H TEXTSTYLE;  /*!< code 5, DXF 7 */
1866
  BITCODE_H CELTYPE;  /*!< code 5, DXF 6 */
1867
  BITCODE_H CMATERIAL;  /*!< r2007+ code 5, no DXF */
1868
  BITCODE_H DIMSTYLE; /*!< code 5, DXF 2 */
1869
  BITCODE_H CMLSTYLE; /*!< code 5, DXF 2 */
1870
  BITCODE_BD PSVPSCALE;
1871
  BITCODE_3BD PINSBASE;   /*!< r13+ ... */
1872
  BITCODE_3BD PEXTMIN;
1873
  BITCODE_3BD PEXTMAX;
1874
  BITCODE_2DPOINT PLIMMIN;
1875
  BITCODE_2DPOINT PLIMMAX;
1876
  BITCODE_BD  PELEVATION;
1877
  BITCODE_3BD PUCSORG;
1878
  BITCODE_3BD PUCSXDIR;
1879
  BITCODE_3BD PUCSYDIR;
1880
  BITCODE_H PUCSNAME;   /*!< r13+ code 5, DXF 2 */
1881
  BITCODE_H PUCSBASE;   /*!< r2000+ code 5, DXF 2 */
1882
  BITCODE_H PUCSORTHOREF; /*!< r2000+ code 5, DXF 2 */
1883
  BITCODE_BS PUCSORTHOVIEW;
1884
  BITCODE_3BD PUCSORGTOP;
1885
  BITCODE_3BD PUCSORGBOTTOM;
1886
  BITCODE_3BD PUCSORGLEFT;
1887
  BITCODE_3BD PUCSORGRIGHT;
1888
  BITCODE_3BD PUCSORGFRONT;
1889
  BITCODE_3BD PUCSORGBACK;
1890
  BITCODE_3BD INSBASE;
1891
  BITCODE_3BD EXTMIN;
1892
  BITCODE_3BD EXTMAX;
1893
  BITCODE_3BD VIEWDIR;
1894
  BITCODE_3BD TARGET;
1895
  BITCODE_2DPOINT LIMMIN;
1896
  BITCODE_2DPOINT LIMMAX;
1897
  BITCODE_3RD VIEWCTR;  /* -r11 */
1898
  BITCODE_BD ELEVATION;
1899
  BITCODE_RD VIEWSIZE;  /* -r11 */
1900
  BITCODE_RS SNAPMODE;  /* -r11 */
1901
  BITCODE_2RD SNAPUNIT; /* -r11 */
1902
  BITCODE_2RD SNAPBASE; /* -r11 */
1903
  BITCODE_RD SNAPANG;   /* -r11 */
1904
  BITCODE_RS SNAPSTYLE;  /* -r11 */
1905
  BITCODE_RS SNAPISOPAIR; /* -r11 */
1906
  BITCODE_RS GRIDMODE;  /* -r11 */
1907
  BITCODE_2RD GRIDUNIT; /* -r11 */
1908
  BITCODE_BS AXISMODE;  /* -r11 */
1909
  BITCODE_2RD AXISUNIT; /* -r11 */
1910
  BITCODE_3RD VPOINTX; /* -r11 */
1911
  BITCODE_3RD VPOINTY; /* -r11 */
1912
  BITCODE_3RD VPOINTZ; /* -r11 */
1913
  BITCODE_3RD VPOINTXALT; /* -r11 */
1914
  BITCODE_3RD VPOINTYALT; /* -r11 */
1915
  BITCODE_3RD VPOINTZALT; /* -r11 */
1916
  BITCODE_RS flag_3d; /* -r11 */
1917
  BITCODE_3BD UCSORG;
1918
  BITCODE_3BD UCSXDIR;
1919
  BITCODE_3BD UCSYDIR;
1920
  BITCODE_H UCSNAME;    /*!< code 5, DXF 2 */
1921
  BITCODE_H UCSBASE;    /*!< code 5, DXF 2 */
1922
  BITCODE_BS UCSORTHOVIEW;
1923
  BITCODE_H UCSORTHOREF;  /*!< code 5, DXF 2 */
1924
  BITCODE_3BD UCSORGTOP;
1925
  BITCODE_3BD UCSORGBOTTOM;
1926
  BITCODE_3BD UCSORGLEFT;
1927
  BITCODE_3BD UCSORGRIGHT;
1928
  BITCODE_3BD UCSORGFRONT;
1929
  BITCODE_3BD UCSORGBACK;
1930
  BITCODE_TV DIMPOST;
1931
  BITCODE_TV DIMAPOST;
1932
  BITCODE_B DIMTOL;
1933
  BITCODE_B DIMLIM;
1934
  BITCODE_B DIMTIH;
1935
  BITCODE_B DIMTOH;
1936
  BITCODE_B DIMSE1;
1937
  BITCODE_B DIMSE2;
1938
  BITCODE_B DIMALT;
1939
  BITCODE_B DIMTOFL;
1940
  BITCODE_B DIMSAH;
1941
  BITCODE_B DIMTIX;
1942
  BITCODE_B DIMSOXD;
1943
  BITCODE_BS DIMALTD;   /*!< r13-r14 only RC */
1944
  BITCODE_BS DIMZIN;    /*!< r13-r14 only RC */
1945
  BITCODE_B DIMSD1;
1946
  BITCODE_B DIMSD2;
1947
  BITCODE_BS DIMTOLJ;   /*!< r13-r14 only RC */
1948
  BITCODE_BS DIMJUST;   /*!< r13-r14 only RC */
1949
  BITCODE_BS DIMFIT;    /*!< r13-r14 only RC */
1950
  BITCODE_B DIMUPT;
1951
  BITCODE_BS DIMTZIN;   /*!< r13-r14 only RC */
1952
  BITCODE_BS DIMTAD;    /*!< r13-r14 only RC */
1953
  BITCODE_BS DIMUNIT;
1954
  BITCODE_BS DIMAUNIT;
1955
  BITCODE_BS DIMDEC;
1956
  BITCODE_BS DIMTDEC;
1957
  BITCODE_BS DIMALTU;
1958
  BITCODE_BS DIMALTTD;
1959
  BITCODE_H DIMTXSTY; /*!< code 5, DXF 7 */
1960
  BITCODE_BD DIMSCALE;
1961
  BITCODE_BD DIMARROW; /* r1.2-r1.4 */
1962
  BITCODE_BD DIMASZ;
1963
  BITCODE_BD DIMEXO;
1964
  BITCODE_BD DIMDLI;
1965
  BITCODE_BD DIMEXE;
1966
  BITCODE_BD DIMRND;
1967
  BITCODE_BD DIMDLE;
1968
  BITCODE_BD DIMTP;
1969
  BITCODE_BD DIMTM;
1970
  BITCODE_BD DIMFXL;
1971
  BITCODE_BD DIMJOGANG;
1972
  BITCODE_BS DIMTFILL;
1973
  BITCODE_CMC DIMTFILLCLR;
1974
  BITCODE_BS DIMAZIN;
1975
  BITCODE_BS DIMARCSYM;
1976
  BITCODE_BD DIMTXT;
1977
  BITCODE_BD DIMCEN;
1978
  BITCODE_BD DIMTSZ;
1979
  BITCODE_BD DIMALTF;
1980
  BITCODE_BD DIMLFAC;
1981
  BITCODE_BD DIMTVP;
1982
  BITCODE_BD DIMTFAC;
1983
  BITCODE_BD DIMGAP;
1984
  BITCODE_T DIMPOST_T; /* preR13 => handle */
1985
  BITCODE_T DIMAPOST_T;
1986
  BITCODE_T DIMBLK_T;
1987
  BITCODE_T DIMBLK1_T;
1988
  BITCODE_T DIMBLK2_T;
1989
  BITCODE_T unknown_string; /* r10-r11 */
1990
  BITCODE_BD DIMALTRND;
1991
  BITCODE_RS DIMCLRD_C; /* preR13 => CMC */
1992
  BITCODE_RS DIMCLRE_C;
1993
  BITCODE_RS DIMCLRT_C;
1994
  BITCODE_CMC DIMCLRD;
1995
  BITCODE_CMC DIMCLRE;
1996
  BITCODE_CMC DIMCLRT;
1997
  BITCODE_BS DIMADEC;   /*!< r2000+ ... */
1998
  BITCODE_BS DIMFRAC;
1999
  BITCODE_BS DIMLUNIT;
2000
  BITCODE_BS DIMDSEP;
2001
  BITCODE_BS DIMTMOVE;
2002
  BITCODE_BS DIMALTZ;  /*!< r13-r14 only RC */
2003
  BITCODE_BS DIMALTTZ; /*!< r13-r14 only RC */
2004
  BITCODE_BS DIMATFIT;
2005
  BITCODE_B  DIMFXLON;  /*!< r2007+ */
2006
  BITCODE_B  DIMTXTDIRECTION; /*!< r2010+ */
2007
  BITCODE_BD DIMALTMZF; /*!< r2010+ */
2008
  BITCODE_T  DIMALTMZS; /*!< r2010+ */
2009
  BITCODE_BD DIMMZF;    /*!< r2010+ */
2010
  BITCODE_T  DIMMZS;    /*!< r2010+ */
2011
  /*BITCODE_H DIMTXSTY;*/  /*!< r2000+ */
2012
  BITCODE_H DIMLDRBLK;  /*!< r2000+ code 5, DXF 1 */
2013
  BITCODE_H DIMBLK;     /*!< r2000+ code 5, DXF 1 */
2014
  BITCODE_H DIMBLK1;    /*!< r2000+ code 5, DXF 1 */
2015
  BITCODE_H DIMBLK2;    /*!< r2000+ code 5, DXF 1 */
2016
  BITCODE_H DIMLTYPE; /*!< r2007+ code 5, DXF 6 */
2017
  BITCODE_H DIMLTEX1; /*!< r2007+ code 5, DXF 6 */
2018
  BITCODE_H DIMLTEX2; /*!< r2007+ code 5, DXF 6 */
2019
  BITCODE_BSd DIMLWD;  /*!< r2000+ */
2020
  BITCODE_BSd DIMLWE;  /*!< r2000+ */
2021
  BITCODE_H BLOCK_CONTROL_OBJECT; /*!< code 3 */
2022
  BITCODE_H LAYER_CONTROL_OBJECT; /*!< code 3 */
2023
  BITCODE_H STYLE_CONTROL_OBJECT; /*!< code 3 */
2024
  BITCODE_H LTYPE_CONTROL_OBJECT; /*!< code 3 */
2025
  BITCODE_H VIEW_CONTROL_OBJECT; /*!< code 3 */
2026
  BITCODE_H UCS_CONTROL_OBJECT; /*!< code 3 */
2027
  BITCODE_H VPORT_CONTROL_OBJECT; /*!< code 3 */
2028
  BITCODE_H APPID_CONTROL_OBJECT; /*!< code 3 */
2029
  BITCODE_H DIMSTYLE_CONTROL_OBJECT; /*!< code 3 */
2030
  BITCODE_H VX_CONTROL_OBJECT; /*!< r11-r2000 code 3 */
2031
  BITCODE_H DICTIONARY_ACAD_GROUP;  /*!< code 5 */
2032
  BITCODE_H DICTIONARY_ACAD_MLINESTYLE; /*!< code 5 */
2033
  BITCODE_H DICTIONARY_NAMED_OBJECT;  /*!< code 5, the "NOD" */
2034
  BITCODE_BS TSTACKALIGN;           /*!< r2000+ */
2035
  BITCODE_BS TSTACKSIZE;            /*!< r2000+ */
2036
  BITCODE_T  HYPERLINKBASE;         /*!< r2000+ */
2037
  BITCODE_TV STYLESHEET;            /*!< r2000+ */
2038
  BITCODE_H DICTIONARY_LAYOUT;      /*!< r2000+ code 5 */
2039
  BITCODE_H DICTIONARY_PLOTSETTINGS;   /*!< r2000+ code 5 */
2040
  BITCODE_H DICTIONARY_PLOTSTYLENAME;  /*!< r2000+ code 5 */
2041
  BITCODE_H DICTIONARY_MATERIAL;    /*!< r2004+ code 5 */
2042
  BITCODE_H DICTIONARY_COLOR;       /*!< r2004+ code 5 */
2043
  BITCODE_H DICTIONARY_VISUALSTYLE; /*!< r2007+ code 5 */
2044
  BITCODE_H DICTIONARY_LIGHTLIST;   /*!< r2010+ code 5 ?? */
2045
  BITCODE_H unknown_20;             /*!< r2013+ code 5 LIGHTLIST? */
2046
  BITCODE_BL FLAGS;
2047
  BITCODE_BSd CELWEIGHT; /*!< = FLAGS & 0x1f, see dxf_cvt_lweight() DXF 370 (int16) */
2048
  BITCODE_B  ENDCAPS;    /*!< = FLAGS & 0x60 */
2049
  BITCODE_B  JOINSTYLE;  /*!< = FLAGS & 0x180 */
2050
  BITCODE_B  LWDISPLAY;  /*!< = !(FLAGS & 0x200) */
2051
  BITCODE_B  XEDIT;      /*!< = !(FLAGS & 0x400) */
2052
  BITCODE_B  EXTNAMES;   /*!< = FLAGS & 0x800 */
2053
  BITCODE_B  PSTYLEMODE; /*!< = FLAGS & 0x2000 */
2054
  BITCODE_B  OLESTARTUP; /*!< = FLAGS & 0x4000 */
2055
  BITCODE_BS INSUNITS;
2056
  BITCODE_BS CEPSNTYPE;
2057
  BITCODE_H CPSNID;      /*!< when CEPSNTYPE = 3, code 5 */
2058
  BITCODE_TV FINGERPRINTGUID;
2059
  BITCODE_TV VERSIONGUID;
2060
  BITCODE_RC SORTENTS;
2061
  BITCODE_RC INDEXCTL;
2062
  BITCODE_RC HIDETEXT;
2063
  BITCODE_RC XCLIPFRAME;
2064
  BITCODE_RC DIMASSOC;
2065
  BITCODE_RC HALOGAP;
2066
  BITCODE_BS OBSCOLOR;
2067
  BITCODE_BS INTERSECTIONCOLOR;
2068
  BITCODE_RC OBSLTYPE;
2069
  BITCODE_RC INTERSECTIONDISPLAY;
2070
  BITCODE_TV PROJECTNAME;
2071
  BITCODE_H BLOCK_RECORD_PSPACE;  /*!< code 5 */
2072
  BITCODE_H BLOCK_RECORD_MSPACE;  /*!< code 5 */
2073
  BITCODE_H LTYPE_BYLAYER;  /*!< code 5 */
2074
  BITCODE_H LTYPE_BYBLOCK;  /*!< code 5 */
2075
  BITCODE_H LTYPE_CONTINUOUS; /*!< code 5 */
2076
  BITCODE_B CAMERADISPLAY; /*!< r2007+ ... */
2077
  BITCODE_BL unknown_21;
2078
  BITCODE_BL unknown_22;
2079
  BITCODE_BD unknown_23;
2080
  BITCODE_BD STEPSPERSEC;
2081
  BITCODE_BD STEPSIZE;
2082
  BITCODE_BD _3DDWFPREC;
2083
  BITCODE_BD LENSLENGTH;
2084
  BITCODE_BD CAMERAHEIGHT;
2085
  BITCODE_RC SOLIDHIST;
2086
  BITCODE_RC SHOWHIST;
2087
  BITCODE_BD PSOLWIDTH;
2088
  BITCODE_BD PSOLHEIGHT;
2089
  BITCODE_BD LOFTANG1;
2090
  BITCODE_BD LOFTANG2;
2091
  BITCODE_BD LOFTMAG1;
2092
  BITCODE_BD LOFTMAG2;
2093
  BITCODE_BS LOFTPARAM;
2094
  BITCODE_RC LOFTNORMALS;
2095
  BITCODE_BD LATITUDE;
2096
  BITCODE_BD LONGITUDE;
2097
  BITCODE_BD NORTHDIRECTION;
2098
  BITCODE_BL TIMEZONE;
2099
  BITCODE_RC LIGHTGLYPHDISPLAY;
2100
  BITCODE_RC TILEMODELIGHTSYNCH;
2101
  BITCODE_RC DWFFRAME;
2102
  BITCODE_RC DGNFRAME;
2103
  BITCODE_B REALWORLDSCALE;
2104
  BITCODE_CMC INTERFERECOLOR;
2105
  BITCODE_H INTERFEREOBJVS; /*!< r2007+ code 5, DXF 345 VISUALSTYLE */
2106
  BITCODE_H INTERFEREVPVS;  /*!< r2007+ code 5, DXF 346 VISUALSTYLE */
2107
  BITCODE_H DRAGVS;   /*!< r2007+ code 5, DXF 349 VISUALSTYLE */
2108
  BITCODE_RC CSHADOW;
2109
  BITCODE_BD SHADOWPLANELOCATION;
2110
  BITCODE_BS unknown_54; /*!< r14+ ... optional */
2111
  BITCODE_BS unknown_55;
2112
  BITCODE_BS unknown_56;
2113
  BITCODE_BS unknown_57;
2114
  BITCODE_RL dwg_size;     /* -r1.40 */
2115
  BITCODE_RS numentities;  /* r2.0 - r10 */
2116
  BITCODE_RS circle_zoom;  /* in percent, 0-100 */
2117
  BITCODE_BD FRONTZ;
2118
  BITCODE_BD BACKZ;
2119
  BITCODE_RC UCSICON;
2120
  BITCODE_RL oldCECOLOR_hi; /* r11, or RD */
2121
  BITCODE_RL oldCECOLOR_lo; /* r11 */
2122
  BITCODE_RS layer_colors[128]; /* r1.1 - r1.4 */
2123
  BITCODE_RS unknown_51e;  /* r11 */
2124
  BITCODE_RS unknown_520;  /* r11 */
2125
  BITCODE_RSd unknown_52c;  /* r11 */
2126
  BITCODE_RS unknown_52e;  /* r11 */
2127
  BITCODE_RC unknown_530;  /* r11 */
2128
  BITCODE_RS unknown_59;   /* r11 */
2129
  BITCODE_RD aspect_ratio; /* r11 */
2130
} Dwg_Header_Variables;
2131
2132
/* OBJECTS *******************************************************************/
2133
/**
2134
 UNUSED (0) entity. Unknown entities are stored as blob
2135
 */
2136
typedef int Dwg_Entity_UNUSED;
2137
2138
/** \ref Dwg_Entity_TEXT
2139
 TEXT (1/7) entity
2140
 */
2141
typedef struct _dwg_entity_TEXT
2142
{
2143
  struct _dwg_object_entity *parent;
2144
2145
  BITCODE_RC dataflags;        /*!< r2000+. should be renamed to opts for r11 compat */
2146
  BITCODE_RD elevation;        /*!< DXF 30 (z coord of 10), when dataflags & 1 */
2147
  BITCODE_2DPOINT ins_pt;      /*!< DXF 10 */
2148
  BITCODE_2DPOINT alignment_pt; /*!< DXF 11. optional, when dataflags & 2, i.e 72/73 != 0 */
2149
  BITCODE_BE extrusion;       /*!< DXF 210. Default 0,0,1 */
2150
  BITCODE_RD thickness;       /*!< DXF 39 */
2151
  BITCODE_RD oblique_angle;   /*!< DXF 51 */
2152
  BITCODE_RD rotation;        /*!< DXF 50 */
2153
  BITCODE_RD height;          /*!< DXF 40 */
2154
  BITCODE_RD width_factor;    /*!< DXF 41 */
2155
  BITCODE_T  text_value;      /*!< DXF 1 */
2156
  BITCODE_BS generation;      /*!< DXF 71 */
2157
  BITCODE_BS horiz_alignment; /*!< DXF 72. options 0-5:
2158
                                 0 = Left; 1= Center; 2 = Right; 3 = Aligned;
2159
                                 4 = Middle; 5 = Fit */
2160
  BITCODE_BS vert_alignment;  /*!< DXF 73. options 0-3:
2161
                                 0 = Baseline; 1 = Bottom; 2 = Middle; 3 = Top */
2162
  BITCODE_H style;        /*!< code 5, DXF 7, optional */
2163
} Dwg_Entity_TEXT;
2164
2165
/**
2166
 * R2010+ Subclass of ATTRIB, ATTDEF, GEOPOSITIONMARKER
2167
 * See also MTEXTOBJECTCONTEXTDATA
2168
 */
2169
typedef struct _dwg_AcDbMTextObjectEmbedded
2170
{
2171
  /* common fields */
2172
  BITCODE_BB entmode;       /*<! DXF 70 */
2173
  BITCODE_BL num_reactors;
2174
  BITCODE_B has_ds_data;
2175
  BITCODE_CMC color;
2176
  BITCODE_B is_xdic_missing;
2177
  BITCODE_BD ltype_scale;
2178
  BITCODE_BB ltype_flags;
2179
  BITCODE_BB plotstyle_flags;
2180
  BITCODE_BB material_flags;
2181
  BITCODE_RC shadow_flags;
2182
  BITCODE_B has_full_visualstyle;
2183
  BITCODE_B has_face_visualstyle;
2184
  BITCODE_B has_edge_visualstyle;
2185
  BITCODE_BS invisible;
2186
  BITCODE_RC linewt;
2187
  BITCODE_H layer;
2188
  /* MTEXT fields. See there. */
2189
  BITCODE_3BD ins_pt;     /*!< DXF 10 */
2190
  BITCODE_3BD extrusion;  /*!< DXF 210 */
2191
  BITCODE_3BD x_axis_dir;   /*!< DXF 11 */
2192
  BITCODE_BD rect_height; /*!< DXF 40 */
2193
  BITCODE_BD rect_width;  /*!< DXF 41 */
2194
  BITCODE_BD text_height;       /*!< DXF 40 */
2195
  BITCODE_BS attachment;        /*<! DXF 71 */
2196
  BITCODE_BS flow_dir;          /*!< DXF 72 */
2197
  BITCODE_BD extents_width; /*!< DXF 42 */
2198
  BITCODE_BD extents_height;  /*!< DXF 43 */
2199
  BITCODE_T text;               /*!< DXF 1 */
2200
  BITCODE_H style;              /*!< DXF 7 */
2201
  BITCODE_BS linespace_style;   /*!< DXF 73. r2000+ */
2202
  BITCODE_BD linespace_factor;  /*!< DXF 44. r2000+ */
2203
  BITCODE_B unknown_b0;         // always 0
2204
  BITCODE_BL bg_fill_flag;      /*!< DXF 90. r2004+ */
2205
  BITCODE_BD bg_fill_scale;     /*!< DXF 45. r2004+ */
2206
  BITCODE_CMC bg_fill_color;    /*!< DXF 63. r2004+ */
2207
  BITCODE_BL bg_fill_trans;     /*!< DXF 441. r2004+. unused */
2208
  BITCODE_B is_not_annotative;  /*!< r2018+: */
2209
  BITCODE_BS class_version;     /*!< always 0 */
2210
  BITCODE_B default_flag;       /*!< DXF 70 */
2211
  BITCODE_H appid;
2212
  BITCODE_BL ignore_attachment;
2213
  BITCODE_BS column_type;       /*!< DXF 71 0: none, 1: static, 2: dynamic. */
2214
  BITCODE_BL numfragments;      /*!< DXF 72 if static */
2215
  BITCODE_BD column_width;      /*!< DXF 44 */
2216
  BITCODE_BD gutter;            /*!< DXF 45 */
2217
  BITCODE_B auto_height;        /*!< DXF 73 */
2218
  BITCODE_B flow_reversed;      /*!< DXF 74 */
2219
  BITCODE_BL num_column_heights;/*!< DXF 72 if dynamic and not auto_height */
2220
  BITCODE_BD *column_heights;   /*!< DXF 46 */
2221
} Dwg_AcDbMTextObjectEmbedded;
2222
2223
/** \ref Dwg_Entity_ATTRIB
2224
 ATTRIB (2/16) entity
2225
 */
2226
typedef struct _dwg_entity_ATTRIB
2227
{
2228
  struct _dwg_object_entity *parent;
2229
2230
  BITCODE_BD elevation;
2231
  BITCODE_2DPOINT ins_pt;
2232
  BITCODE_2DPOINT alignment_pt;
2233
  BITCODE_BE extrusion;
2234
  BITCODE_RD thickness;
2235
  BITCODE_RD oblique_angle;
2236
  BITCODE_RD rotation;
2237
  BITCODE_RD height;
2238
  BITCODE_RD width_factor;
2239
  BITCODE_T text_value;
2240
  BITCODE_BS generation;
2241
  BITCODE_BS horiz_alignment;
2242
  BITCODE_BS vert_alignment;
2243
  BITCODE_RC dataflags;
2244
  // AcDbAttributeDefinition
2245
  BITCODE_RC is_locked_in_block; /* R2007+ */
2246
  BITCODE_RC keep_duplicate_records; /* R2007+ */
2247
  BITCODE_T tag;
2248
  BITCODE_BS field_length;
2249
  BITCODE_RC flags; /* => HEADER.AFLAGS. bitmask of:
2250
                       0 none
2251
                       1 invisible, overridden by ATTDISP
2252
                       2 constant, no prompt
2253
                       4 verify on insert
2254
                       8 preset, inserted only with its default values, not editable. */
2255
  BITCODE_B lock_position_flag; /* R2007+ */
2256
  BITCODE_H style;
2257
  BITCODE_RC mtext_type;    /* R2018+ */
2258
  Dwg_AcDbMTextObjectEmbedded mtext;
2259
  BITCODE_B is_really_locked;       /*<! DXF 70 */
2260
  BITCODE_BS annotative_data_size;/* R2018+ */
2261
  BITCODE_RC* annotative_data;    /* R2018+ */
2262
  BITCODE_BS annotative_flag;     /* R2018+ */
2263
  BITCODE_H  annotative_style;    /* R2018+ */
2264
} Dwg_Entity_ATTRIB;
2265
2266
/** \ref Dwg_Entity_ATTDEF
2267
 ATTDEF (3/15) entity
2268
 */
2269
typedef struct _dwg_entity_ATTDEF
2270
{
2271
  struct _dwg_object_entity *parent;
2272
2273
  BITCODE_BD elevation;
2274
  BITCODE_2DPOINT ins_pt;
2275
  BITCODE_2DPOINT alignment_pt;
2276
  BITCODE_BE extrusion;
2277
  BITCODE_RD thickness;
2278
  BITCODE_RD oblique_angle;
2279
  BITCODE_RD rotation;
2280
  BITCODE_RD height;
2281
  BITCODE_RD width_factor;
2282
  BITCODE_T default_value;
2283
  BITCODE_BS generation;
2284
  BITCODE_BS horiz_alignment;
2285
  BITCODE_BS vert_alignment;
2286
  BITCODE_RC dataflags;
2287
  // AcDbAttributeDefinition
2288
  BITCODE_RC is_locked_in_block; /* R2007+ */
2289
  BITCODE_RC keep_duplicate_records; /* R2007+ */
2290
  BITCODE_T tag;
2291
  BITCODE_BS field_length;
2292
  BITCODE_RC flags; /* => HEADER.AFLAGS. bitmask of:
2293
                       0 none
2294
                       1 invisible, overridden by ATTDISP
2295
                       2 constant, no prompt
2296
                       4 verify on insert
2297
                       8 preset, inserted only with its default values, not editable. */
2298
  BITCODE_B lock_position_flag; /* R2007+ */
2299
  BITCODE_H style;
2300
  BITCODE_RC mtext_type;          /* R2018+ */
2301
  Dwg_AcDbMTextObjectEmbedded mtext;
2302
  BITCODE_B is_really_locked;       /*<! DXF 70 */
2303
  BITCODE_BS annotative_data_size;/* R2018+ */
2304
  BITCODE_RC* annotative_data;    /* R2018+ */
2305
  BITCODE_BS annotative_flag;    /* R2018+ */
2306
  BITCODE_H  annotative_style;    /* R2018+ */
2307
  // BITCODE_BS num_secondary_atts;  /* R2018+ TODO */
2308
  // BITCODE_H *secondary_atts;
2309
2310
  BITCODE_T prompt;
2311
} Dwg_Entity_ATTDEF;
2312
2313
/**
2314
 BLOCK (4/12) entity
2315
 */
2316
typedef struct _dwg_entity_BLOCK
2317
{
2318
  struct _dwg_object_entity *parent;
2319
2320
  BITCODE_T name;       // DXF 2
2321
  BITCODE_T xref_pname; // DXF 3
2322
  BITCODE_2RD base_pt;  // preR13 only
2323
} Dwg_Entity_BLOCK;
2324
2325
/**
2326
 ENDBLK (5/13) entity
2327
 */
2328
typedef struct _dwg_entity_ENDBLK
2329
{
2330
  struct _dwg_object_entity *parent;
2331
} Dwg_Entity_ENDBLK;
2332
2333
/**
2334
 SEQEND (6/17) entity
2335
 */
2336
typedef struct _dwg_entity_SEQEND
2337
{
2338
  struct _dwg_object_entity *parent;
2339
  BITCODE_RL begin_addr_r11;
2340
} Dwg_Entity_SEQEND;
2341
2342
/**
2343
 INSERT (7/14) entity
2344
 */
2345
typedef struct _dwg_entity_INSERT
2346
{
2347
  struct _dwg_object_entity *parent;
2348
2349
  BITCODE_3DPOINT   ins_pt;
2350
  BITCODE_BB        scale_flag;
2351
  BITCODE_3DPOINT   scale;
2352
  BITCODE_BD        rotation;
2353
  BITCODE_BE        extrusion;
2354
  BITCODE_B         has_attribs;
2355
  BITCODE_BL        num_owned;
2356
2357
  BITCODE_H   block_header; /* DXF 2 */
2358
  BITCODE_H   first_attrib;
2359
  BITCODE_H   last_attrib;
2360
  BITCODE_H*  attribs;
2361
  BITCODE_H   seqend;
2362
2363
  BITCODE_RS  num_cols; /* pre-R13 */
2364
  BITCODE_RS  num_rows;
2365
  BITCODE_RD  col_spacing;
2366
  BITCODE_RD  row_spacing;
2367
  BITCODE_TV  block_name; /* pre-R2.0 */
2368
} Dwg_Entity_INSERT;
2369
/* Inventor's AcIdBlockReference. Same layout as INSERT */
2370
typedef struct _dwg_entity_INSERT Dwg_Entity_ACIDBLOCKREFERENCE;
2371
2372
/**
2373
 MINSERT (8) entity
2374
 */
2375
typedef struct _dwg_entity_MINSERT
2376
{
2377
  struct _dwg_object_entity *parent;
2378
2379
  BITCODE_3DPOINT   ins_pt;
2380
  BITCODE_BB        scale_flag;
2381
  BITCODE_3DPOINT   scale;
2382
  BITCODE_BD        rotation;
2383
  BITCODE_BE        extrusion;
2384
  BITCODE_B         has_attribs;
2385
  BITCODE_BL        num_owned;
2386
2387
  BITCODE_BS  num_cols;
2388
  BITCODE_BS  num_rows;
2389
  BITCODE_BD  col_spacing;
2390
  BITCODE_BD  row_spacing;
2391
2392
  BITCODE_H   block_header;
2393
  BITCODE_H   first_attrib;
2394
  BITCODE_H   last_attrib;
2395
  BITCODE_H*  attribs;
2396
  BITCODE_H   seqend;
2397
} Dwg_Entity_MINSERT;
2398
2399
/**
2400
 VERTEX_2D (10/20) entity
2401
 */
2402
typedef struct _dwg_entity_VERTEX_2D
2403
{
2404
  struct _dwg_object_entity *parent;
2405
2406
  BITCODE_RC flag;  /*<! DXF 70 (see LOG_FLAG_VERTEX)
2407
                      1:  EXTRA_VERTEX
2408
                      2:  CURVE_FIT
2409
                      8:  SPLINE_FIT
2410
                      16: SPLINE_FRAME_CONTROL_POINT
2411
                    */
2412
  BITCODE_3BD point;
2413
  BITCODE_BD start_width;
2414
  BITCODE_BD end_width;
2415
  BITCODE_BL id; /* R2010+ */
2416
  BITCODE_BD bulge;
2417
  BITCODE_BD tangent_dir;
2418
} Dwg_Entity_VERTEX_2D;
2419
2420
/**
2421
 VERTEX_3D (11) entity
2422
 */
2423
typedef struct _dwg_entity_VERTEX_3D
2424
{
2425
  struct _dwg_object_entity *parent;
2426
2427
  BITCODE_RC flag;  /*<! DXF 70 (see LOG_FLAG_VERTEX)
2428
                      8:  SPLINE_FIT
2429
                      16: SPLINE_FRAME_CONTROL_POINT
2430
                      32: 3D
2431
                      64: MESH (AcDbPolyFaceMeshVertex)
2432
                    */
2433
  BITCODE_3BD point;
2434
} Dwg_Entity_VERTEX_3D;
2435
2436
/**
2437
 VERTEX_MESH (12) - same as VERTEX_3D entity
2438
 flag: 64 (MESH)
2439
 */
2440
typedef Dwg_Entity_VERTEX_3D Dwg_Entity_VERTEX_MESH;
2441
2442
/**
2443
 VERTEX_PFACE (13) - same as VERTEX_3D entity
2444
 flag: 64 (MESH)
2445
       128 (PFACE_MESH)
2446
 */
2447
typedef Dwg_Entity_VERTEX_3D Dwg_Entity_VERTEX_PFACE;
2448
2449
/**
2450
 VERTEX_PFACE_FACE (14) entity
2451
 */
2452
typedef struct _dwg_entity_VERTEX_PFACE_FACE
2453
{
2454
  struct _dwg_object_entity *parent;
2455
2456
  BITCODE_RC flag;
2457
  BITCODE_BSd vertind[4];
2458
} Dwg_Entity_VERTEX_PFACE_FACE;
2459
2460
#define COMMON_ENTITY_POLYLINE                                                \
2461
  struct _dwg_object_entity *parent;                                          \
2462
  BITCODE_B has_vertex;                                                       \
2463
  BITCODE_BL num_owned;                                                       \
2464
  BITCODE_H first_vertex;                                                     \
2465
  BITCODE_H last_vertex;                                                      \
2466
  BITCODE_H *vertex;                                                          \
2467
  BITCODE_H seqend
2468
2469
/**
2470
 2D POLYLINE (15/19) entity
2471
 */
2472
typedef struct _dwg_entity_POLYLINE_2D
2473
{
2474
  COMMON_ENTITY_POLYLINE;
2475
2476
  BITCODE_BS flag;        /* 1: closed, 2: curve_fit, 4: spline_fit, 8: 3d, 0x10: 3dmesh,
2477
                             0x20: mesh_closed_in_n, 0x40: polyface_mesh, 0x80: ltype_continuous */
2478
  BITCODE_BS curve_type;
2479
  BITCODE_BD start_width;
2480
  BITCODE_BD end_width;
2481
  BITCODE_BT thickness;
2482
  BITCODE_BD elevation;
2483
  BITCODE_BE extrusion;
2484
  BITCODE_BL extra_r11_size;
2485
  BITCODE_TV extra_r11_text;
2486
  BITCODE_BS num_m_verts; // sometime used in preR13, to delete
2487
  BITCODE_BS num_n_verts; // sometime used in preR13, to delete
2488
} Dwg_Entity_POLYLINE_2D;
2489
2490
/**
2491
 3D POLYLINE (16/19) entity
2492
 */
2493
typedef struct _dwg_entity_POLYLINE_3D
2494
{
2495
  COMMON_ENTITY_POLYLINE;
2496
2497
  BITCODE_RC curve_type;
2498
  BITCODE_BD start_width;
2499
  BITCODE_BD end_width;
2500
  BITCODE_RC flag;
2501
  BITCODE_BE extrusion;
2502
} Dwg_Entity_POLYLINE_3D;
2503
2504
/**
2505
 ARC (17/8) entity
2506
 */
2507
typedef struct _dwg_entity_ARC
2508
{
2509
  struct _dwg_object_entity *parent;
2510
2511
  BITCODE_3BD center;
2512
  BITCODE_BD radius;
2513
  BITCODE_BT thickness;
2514
  BITCODE_BE extrusion;
2515
  BITCODE_BD start_angle;
2516
  BITCODE_BD end_angle;
2517
} Dwg_Entity_ARC;
2518
2519
/**
2520
 CIRCLE (18/3) entity
2521
 */
2522
typedef struct _dwg_entity_CIRCLE
2523
{
2524
  struct _dwg_object_entity *parent;
2525
2526
  BITCODE_3BD center;
2527
  BITCODE_BD radius;
2528
  BITCODE_BT thickness;
2529
  BITCODE_BE extrusion;
2530
} Dwg_Entity_CIRCLE;
2531
2532
/**
2533
 LINE (19/1) entity
2534
 */
2535
typedef struct _dwg_entity_LINE
2536
{
2537
  struct _dwg_object_entity *parent;
2538
2539
  BITCODE_RC z_is_zero;
2540
  BITCODE_3BD start;
2541
  BITCODE_3BD end;
2542
  BITCODE_BT thickness;
2543
  BITCODE_BE extrusion;
2544
  BITCODE_2RD unknown_r11; // GH #586
2545
} Dwg_Entity_LINE;
2546
2547
/**
2548
 * Macro for common DIMENSION declaration
2549
 *
2550
 * flag 70: value & 31: 0-6 denote the type, + bitmask 32-128.
2551
 * 0: linear, 1: aligned, 2: ang2ln, 3: diameter, 4: radius
2552
 * 5: ang3pt, 6: ordinate.
2553
 * 32: block (2) used by this dimension only.
2554
 * 64: if set, ordinate is type X, else ordinate is type Y.
2555
 * 128: non-default dimension text location
2556
 */
2557
#define DIMENSION_COMMON                         \
2558
  struct _dwg_object_entity *parent;             \
2559
  BITCODE_RC class_version; /* R2010+ */         \
2560
  BITCODE_BE extrusion;                          \
2561
  BITCODE_3BD def_pt;                            \
2562
  BITCODE_2RD text_midpt;                        \
2563
  BITCODE_BD elevation;                          \
2564
  BITCODE_RC flag; /* calculated, DXF only 70 */ \
2565
  BITCODE_RC flag1; /* as in the DWG */          \
2566
  BITCODE_T user_text;                           \
2567
  BITCODE_BD text_rotation;                      \
2568
  BITCODE_BD horiz_dir;                          \
2569
  BITCODE_3BD_1 ins_scale;                       \
2570
  BITCODE_BD ins_rotation;                       \
2571
  BITCODE_BS attachment;                         \
2572
  BITCODE_BS lspace_style;                       \
2573
  BITCODE_BD lspace_factor;                      \
2574
  BITCODE_BD act_measurement;                    \
2575
  BITCODE_B unknown;                             \
2576
  BITCODE_B flip_arrow1;                         \
2577
  BITCODE_B flip_arrow2;                         \
2578
  BITCODE_2RD clone_ins_pt;                      \
2579
  BITCODE_H dimstyle;                            \
2580
  BITCODE_H block
2581
2582
typedef struct _dwg_DIMENSION_common
2583
{
2584
  DIMENSION_COMMON;
2585
} Dwg_DIMENSION_common;
2586
2587
/**
2588
 ordinate dimension - DIMENSION_ORDINATE (20) entity
2589
 */
2590
typedef struct _dwg_entity_DIMENSION_ORDINATE
2591
{
2592
  DIMENSION_COMMON;
2593
  BITCODE_3BD feature_location_pt;
2594
  BITCODE_3BD leader_endpt;
2595
  BITCODE_RC flag2; // use_x_axis
2596
} Dwg_Entity_DIMENSION_ORDINATE;
2597
2598
/**
2599
 linear dimension - DIMENSION_LINEAR (21/23) entity
2600
 */
2601
typedef struct _dwg_entity_DIMENSION_LINEAR
2602
{
2603
  DIMENSION_COMMON;
2604
  BITCODE_3BD xline1_pt;
2605
  BITCODE_3BD xline2_pt;
2606
  BITCODE_BD oblique_angle;
2607
  BITCODE_BD dim_rotation;
2608
} Dwg_Entity_DIMENSION_LINEAR;
2609
2610
/**
2611
 aligned dimension - DIMENSION_ALIGNED (22) entity
2612
 */
2613
typedef struct _dwg_entity_DIMENSION_ALIGNED
2614
{
2615
  DIMENSION_COMMON;
2616
  BITCODE_3BD xline1_pt;
2617
  BITCODE_3BD xline2_pt;
2618
  BITCODE_BD oblique_angle;
2619
} Dwg_Entity_DIMENSION_ALIGNED;
2620
2621
/**
2622
 angular 3pt dimension - DIMENSION_ANG3PT (23) entity
2623
 */
2624
typedef struct _dwg_entity_DIMENSION_ANG3PT
2625
{
2626
  DIMENSION_COMMON;
2627
  BITCODE_3BD xline1_pt;
2628
  BITCODE_3BD xline2_pt;
2629
  BITCODE_3BD center_pt;
2630
  BITCODE_3RD xline2end_pt; // preR13 only, DXF 16
2631
} Dwg_Entity_DIMENSION_ANG3PT;
2632
2633
/**
2634
 angular 2 line dimension - DIMENSION_ANG2LN (24) entity
2635
 */
2636
typedef struct _dwg_entity_DIMENSION_ANG2LN
2637
{
2638
  DIMENSION_COMMON;
2639
  BITCODE_3BD xline1start_pt;
2640
  BITCODE_3BD xline1end_pt;
2641
  BITCODE_3BD xline2start_pt;
2642
  BITCODE_3BD xline2end_pt;
2643
} Dwg_Entity_DIMENSION_ANG2LN;
2644
2645
/**
2646
 radius dimension - DIMENSION_RADIUS (25) entity
2647
 */
2648
typedef struct _dwg_entity_DIMENSION_RADIUS
2649
{
2650
  DIMENSION_COMMON;
2651
  BITCODE_3BD first_arc_pt; /*!< DXF 15 */
2652
  BITCODE_BD leader_len;    /*!< DXF 40 */
2653
} Dwg_Entity_DIMENSION_RADIUS;
2654
2655
/**
2656
 diameter dimension - DIMENSION_DIAMETER (26) entity
2657
 */
2658
typedef struct _dwg_entity_DIMENSION_DIAMETER
2659
{
2660
  DIMENSION_COMMON;             /* DXF 10 def_pt = = far_chord_pt */
2661
  BITCODE_3BD first_arc_pt;   /*!< DXF 15 */
2662
  BITCODE_BD leader_len;        /*!< DXF 40 */
2663
} Dwg_Entity_DIMENSION_DIAMETER;
2664
2665
/**
2666
 arc dimension - ARC_DIMENSION (varies) entity
2667
 */
2668
typedef struct _dwg_entity_ARC_DIMENSION
2669
{
2670
  DIMENSION_COMMON;
2671
  BITCODE_3BD xline1_pt;  /* DXF 13 */
2672
  BITCODE_3BD xline2_pt;  /* DXF 14 */
2673
  BITCODE_3BD center_pt;  /* DXF 15 */
2674
  BITCODE_B is_partial;   /* DXF 70 */
2675
  BITCODE_BD arc_start_param; /* DXF 40 */
2676
  BITCODE_BD arc_end_param; /* DXF 41 */
2677
  BITCODE_B has_leader;   /* DXF 71 */
2678
  BITCODE_3BD leader1_pt; /* DXF 16 */
2679
  BITCODE_3BD leader2_pt; /* DXF 17 */
2680
} Dwg_Entity_ARC_DIMENSION;
2681
2682
/**
2683
 jogged radius dimension - LARGE_RADIAL_DIMENSION (varies) entity
2684
 */
2685
typedef struct _dwg_entity_LARGE_RADIAL_DIMENSION
2686
{
2687
  DIMENSION_COMMON;
2688
  BITCODE_BD jog_angle;     /*!< DXF 40 */
2689
  BITCODE_3BD jog_pt;       /*!< DXF 13-33 */
2690
  BITCODE_3BD ovr_center;   /*!< DXF 14-34 Overridden center */
2691
  BITCODE_3BD chord_pt;     /*!< DXF 15-35 */
2692
} Dwg_Entity_LARGE_RADIAL_DIMENSION;
2693
2694
/**
2695
 Struct for:  POINT (27/2)
2696
 */
2697
typedef struct _dwg_entity_POINT
2698
{
2699
  struct _dwg_object_entity *parent;
2700
2701
  BITCODE_BD x;
2702
  BITCODE_BD y;
2703
  BITCODE_BD z;
2704
  BITCODE_BT thickness;
2705
  BITCODE_BE extrusion;
2706
  BITCODE_BD x_ang;
2707
} Dwg_Entity_POINT;
2708
2709
/**
2710
 Struct for:  3D FACE (28/22)
2711
 */
2712
typedef struct _dwg_entity_3DFACE
2713
{
2714
  struct _dwg_object_entity *parent;
2715
2716
  BITCODE_B has_no_flags;
2717
  BITCODE_B z_is_zero;
2718
  BITCODE_3BD corner1;
2719
  BITCODE_3BD corner2;
2720
  BITCODE_3BD corner3;
2721
  BITCODE_3BD corner4;
2722
  BITCODE_BS invis_flags;
2723
} Dwg_Entity__3DFACE;
2724
2725
/**
2726
 Struct for:  POLYLINE (PFACE) (29)
2727
 */
2728
typedef struct _dwg_entity_POLYLINE_PFACE
2729
{
2730
  COMMON_ENTITY_POLYLINE;
2731
2732
  BITCODE_BS flag;
2733
  BITCODE_BS numverts;
2734
  BITCODE_BS numfaces;
2735
} Dwg_Entity_POLYLINE_PFACE;
2736
2737
/**
2738
 Struct for:  POLYLINE (MESH) (30)
2739
 */
2740
typedef struct _dwg_entity_POLYLINE_MESH
2741
{
2742
  COMMON_ENTITY_POLYLINE;
2743
2744
  BITCODE_BS flag;
2745
  BITCODE_BS curve_type;
2746
  BITCODE_BS num_m_verts;
2747
  BITCODE_BS num_n_verts;
2748
  BITCODE_BS m_density;
2749
  BITCODE_BS n_density;
2750
} Dwg_Entity_POLYLINE_MESH;
2751
2752
/**
2753
 Struct for:  SOLID (31/11)
2754
 */
2755
2756
typedef struct _dwg_entity_SOLID
2757
{
2758
  struct _dwg_object_entity *parent;
2759
2760
  BITCODE_BT thickness;
2761
  BITCODE_BD elevation;
2762
  BITCODE_2RD corner1;
2763
  BITCODE_2RD corner2;
2764
  BITCODE_2RD corner3;
2765
  BITCODE_2RD corner4;
2766
  BITCODE_BE extrusion;
2767
} Dwg_Entity_SOLID;
2768
2769
/**
2770
 Struct for:  TRACE (32/9)
2771
 */
2772
2773
typedef struct _dwg_entity_TRACE
2774
{
2775
  struct _dwg_object_entity *parent;
2776
2777
  BITCODE_BT thickness;
2778
  BITCODE_BD elevation;
2779
  BITCODE_2RD corner1;
2780
  BITCODE_2RD corner2;
2781
  BITCODE_2RD corner3;
2782
  BITCODE_2RD corner4;
2783
  BITCODE_BE extrusion;
2784
} Dwg_Entity_TRACE;
2785
2786
/**
2787
 Struct for:  SHAPE (33/4)
2788
 */
2789
2790
typedef struct _dwg_entity_SHAPE
2791
{
2792
  struct _dwg_object_entity *parent;
2793
2794
  BITCODE_3BD ins_pt;  // DXF 10-30
2795
  BITCODE_BD scale;    // DXF 40
2796
  BITCODE_BD rotation; // DXF 50
2797
  BITCODE_BD width_factor; // DXF 41
2798
  BITCODE_BD oblique_angle;// DXF 51
2799
  BITCODE_BD thickness; // DXF 39
2800
  BITCODE_BS style_id;  // DXF 2, STYLE index in dwg to SHAPEFILE
2801
  BITCODE_BE extrusion; // DXF 210
2802
  BITCODE_H style;
2803
} Dwg_Entity_SHAPE;
2804
2805
/**
2806
 Struct for:  VIEWPORT ENTITY (34/24)
2807
 */
2808
2809
typedef struct _dwg_entity_VIEWPORT
2810
{
2811
  struct _dwg_object_entity *parent;
2812
2813
  BITCODE_3BD center;
2814
  BITCODE_BD width;
2815
  BITCODE_BD height;
2816
  BITCODE_RS on_off; /* DXF 68, -1 should be accepted also */
2817
  BITCODE_RS id;     /* DXF 69 */
2818
2819
  BITCODE_3BD view_target;
2820
  BITCODE_3BD VIEWDIR;
2821
  BITCODE_BD VIEWTWIST;
2822
  BITCODE_BD VIEWSIZE; // the height
2823
  BITCODE_BD LENSLENGTH;
2824
  BITCODE_BD FRONTZ;
2825
  BITCODE_BD BACKZ;
2826
  BITCODE_BD SNAPANG;
2827
  BITCODE_2RD VIEWCTR;
2828
  BITCODE_2RD SNAPBASE;
2829
  BITCODE_2RD SNAPUNIT;
2830
  BITCODE_2RD GRIDUNIT;
2831
  BITCODE_BS circle_zoom;
2832
  BITCODE_BS grid_major;
2833
  BITCODE_BL num_frozen_layers;
2834
  BITCODE_BL status_flag;
2835
  BITCODE_TV style_sheet;
2836
  BITCODE_RC render_mode;
2837
  BITCODE_B ucs_at_origin;
2838
  BITCODE_B UCSVP;
2839
  BITCODE_3BD ucsorg;
2840
  BITCODE_3BD ucsxdir;
2841
  BITCODE_3BD ucsydir;
2842
  BITCODE_BD ucs_elevation;
2843
  BITCODE_BS UCSORTHOVIEW;
2844
  BITCODE_BS shadeplot_mode;
2845
  BITCODE_B use_default_lights;
2846
  BITCODE_RC default_lighting_type;
2847
  BITCODE_BD brightness;
2848
  BITCODE_BD contrast;
2849
  BITCODE_CMC ambient_color;
2850
  BITCODE_H vport_entity_header;
2851
  BITCODE_H *frozen_layers;
2852
  BITCODE_H clip_boundary;
2853
  BITCODE_H named_ucs;
2854
  BITCODE_H base_ucs;
2855
  BITCODE_H background;
2856
  BITCODE_H visualstyle;
2857
  BITCODE_H shadeplot;
2858
  BITCODE_H sun;
2859
} Dwg_Entity_VIEWPORT;
2860
2861
/**
2862
 ELLIPSE (35) entity
2863
 */
2864
typedef struct _dwg_entity_ELLIPSE
2865
{
2866
  struct _dwg_object_entity *parent;
2867
2868
  BITCODE_3BD center;    /* DXF 10 */
2869
  BITCODE_3BD sm_axis;   /* DXF 11, major axis */
2870
  BITCODE_BE extrusion;  /* DXF 210, the normal */
2871
  BITCODE_BD axis_ratio; /* DXF 40, i.e RadiusRatio, minor radius / major radius */
2872
  BITCODE_BD start_angle;/* DXF 41, default 0 */
2873
  BITCODE_BD end_angle;  /* DXF 42, default 2*PI */
2874
} Dwg_Entity_ELLIPSE;
2875
2876
/**
2877
 spline - SPLINE (36) entity
2878
 */
2879
typedef struct _dwg_SPLINE_control_point
2880
{
2881
  struct _dwg_entity_SPLINE *parent;
2882
2883
  double x;
2884
  double y;
2885
  double z;
2886
  double w;
2887
} Dwg_SPLINE_control_point;
2888
2889
enum
2890
{
2891
  SPLINETYPE_QUADRATIC = 5, // degree==2
2892
  SPLINETYPE_CUBIC = 6,     // default. degree==3
2893
};
2894
enum
2895
{
2896
  SPLINE_SCENARIO_SPLINE = 1,
2897
  SPLINE_SCENARIO_BEZIER = 2,
2898
};
2899
enum
2900
{ /* 2013+ */
2901
  SPLINE_SPLINEFLAGS_METHOD_FIT_POINTS = 1,
2902
  SPLINE_SPLINEFLAGS_CV_FRAME_SHOW = 2,
2903
  SPLINE_SPLINEFLAGS_CLOSED = 4,
2904
};
2905
enum
2906
{ /* 2013+ */
2907
  SPLINE_KNOTPARAM_CHORD = 0,
2908
  SPLINE_KNOTPARAM_SQUARE_ROOT = 1,
2909
  SPLINE_KNOTPARAM_UNIFORM = 2,
2910
  SPLINE_KNOTPARAM_CUSTOM = 15
2911
};
2912
2913
typedef struct _dwg_entity_SPLINE
2914
{
2915
  struct _dwg_object_entity *parent;
2916
2917
  BITCODE_RS flag; /* computed */
2918
  BITCODE_BS scenario; /* 1 spline, 2 bezier */
2919
  BITCODE_BS degree;   /* 2 quadratic, 3 cubic */
2920
  BITCODE_BL splineflags; /* 2013+: method fit points = 1, CV frame show = 2, closed = 4 */
2921
  BITCODE_BL knotparam;   /* 2013+: Chord = 0, Square root = 1, Uniform = 2, Custom = 15 */
2922
  BITCODE_BD fit_tol;
2923
  BITCODE_3BD beg_tan_vec;
2924
  BITCODE_3BD end_tan_vec;
2925
  BITCODE_B closed_b; /* bit 0 of 70 */
2926
  BITCODE_B periodic; /* bit 1 of 70 */
2927
  BITCODE_B rational; /* bit 2 of 70 */
2928
  BITCODE_B weighted; /* bit 4 of 70 */
2929
  BITCODE_BD knot_tol;
2930
  BITCODE_BD ctrl_tol;
2931
  BITCODE_BS num_fit_pts;
2932
  BITCODE_3DPOINT* fit_pts;
2933
  BITCODE_BL num_knots;
2934
  BITCODE_BD* knots;
2935
  BITCODE_BL num_ctrl_pts;
2936
  Dwg_SPLINE_control_point* ctrl_pts;
2937
} Dwg_Entity_SPLINE;
2938
2939
/**
2940
 3DSOLID (38) entity
2941
 */
2942
1.08k
#define Dwg_Entity_3DSOLID Dwg_Entity__3DSOLID
2943
typedef struct _dwg_3DSOLID_wire
2944
{
2945
  struct _dwg_entity_3DSOLID *parent;
2946
  BITCODE_RC type;
2947
  BITCODE_BLd selection_marker;
2948
  BITCODE_BL color;
2949
  BITCODE_BLd acis_index;
2950
  BITCODE_BL num_points;
2951
  BITCODE_3BD* points;
2952
  BITCODE_B transform_present;
2953
  BITCODE_3BD axis_x;
2954
  BITCODE_3BD axis_y;
2955
  BITCODE_3BD axis_z;
2956
  BITCODE_3BD translation;
2957
  BITCODE_3BD scale;
2958
  BITCODE_B has_rotation;
2959
  BITCODE_B has_reflection;
2960
  BITCODE_B has_shear;
2961
} Dwg_3DSOLID_wire;
2962
2963
typedef struct _dwg_3DSOLID_silhouette
2964
{
2965
  struct _dwg_entity_3DSOLID *parent;
2966
  BITCODE_BL vp_id;
2967
  BITCODE_3BD vp_target;
2968
  BITCODE_3BD vp_dir_from_target;
2969
  BITCODE_3BD vp_up_dir;
2970
  BITCODE_B vp_perspective;
2971
  BITCODE_B has_wires;
2972
  BITCODE_BL num_wires;
2973
  Dwg_3DSOLID_wire * wires;
2974
} Dwg_3DSOLID_silhouette;
2975
2976
typedef struct _dwg_3DSOLID_material
2977
{
2978
  struct _dwg_entity_3DSOLID *parent;
2979
  BITCODE_BL array_index;
2980
  BITCODE_BL mat_absref;
2981
  BITCODE_H  material_handle; /* code 5 */
2982
} Dwg_3DSOLID_material;
2983
2984
#define _3DSOLID_FIELDS                                                 \
2985
  BITCODE_B acis_empty;                                                 \
2986
  BITCODE_B unknown;                                                    \
2987
  BITCODE_BS version;                                                   \
2988
  BITCODE_BL num_blocks;                                                \
2989
  BITCODE_BL* block_size;                                               \
2990
  char** encr_sat_data;                                                 \
2991
  BITCODE_BL sab_size;                                                  \
2992
  BITCODE_RC* acis_data; /* The decrypted SAT v1 or the SAB v2 stream */ \
2993
  BITCODE_B wireframe_data_present;                                     \
2994
  BITCODE_B point_present;                                              \
2995
  BITCODE_3BD point;                                                    \
2996
  BITCODE_BL isolines; /* i.e. wires */                                 \
2997
  BITCODE_B isoline_present; /* ie. has_wires */                        \
2998
  BITCODE_BL num_wires;                                                 \
2999
  Dwg_3DSOLID_wire * wires;                                             \
3000
  BITCODE_BL num_silhouettes;                                           \
3001
  Dwg_3DSOLID_silhouette * silhouettes;                                 \
3002
  BITCODE_B _dxf_sab_converted;  /* internally calculated */            \
3003
  BITCODE_B acis_empty2;                                                \
3004
  struct _dwg_entity_3DSOLID* extra_acis_data;                          \
3005
  BITCODE_BL num_materials;                                             \
3006
  Dwg_3DSOLID_material *materials;                                      \
3007
  BITCODE_RC revision_guid[39];                                         \
3008
  BITCODE_BL revision_major;                                            \
3009
  BITCODE_BS revision_minor1;                                           \
3010
  BITCODE_BS revision_minor2;                                           \
3011
  BITCODE_RC revision_bytes[9];                                         \
3012
  BITCODE_BL end_marker;                                                \
3013
  BITCODE_H history_id;                                                 \
3014
  BITCODE_B has_revision_guid;                                          \
3015
  BITCODE_B acis_empty_bit
3016
3017
typedef struct _dwg_entity_3DSOLID
3018
{
3019
  struct _dwg_object_entity *parent;
3020
  _3DSOLID_FIELDS;
3021
#if 0
3022
  BITCODE_B acis_empty;  /*!< no DXF */
3023
  BITCODE_B unknown;
3024
  BITCODE_BS version;    /*!< DXF 70 Modeler format version =1*/
3025
  BITCODE_BL num_blocks;
3026
  BITCODE_BL* block_size;
3027
  char** encr_sat_data;       /*!< DXF 1, the encrypted SAT data */
3028
  BITCODE_RC*  acis_data;     /*!< decrypted SAT data */
3029
  BITCODE_B wireframe_data_present;
3030
  BITCODE_B point_present;
3031
  BITCODE_3BD point;
3032
  BITCODE_BL num_isolines;
3033
  BITCODE_B isoline_present;
3034
  BITCODE_BL num_wires;
3035
  Dwg_3DSOLID_wire * wires;
3036
  BITCODE_BL num_silhouettes;
3037
  Dwg_3DSOLID_silhouette * silhouettes;
3038
  BITCODE_B acis_empty2;
3039
  struct _dwg_entity_3DSOLID* extra_acis_data;/* is it the best approach? */
3040
  BITCODE_BL unknown_2007;
3041
  BITCODE_H history_id;
3042
  BITCODE_B acis_empty_bit;
3043
#endif
3044
} Dwg_Entity__3DSOLID;
3045
3046
/**
3047
 REGION (37) entity
3048
 */
3049
typedef Dwg_Entity__3DSOLID Dwg_Entity_REGION;
3050
3051
/**
3052
 BODY (39) entity
3053
 */
3054
typedef Dwg_Entity__3DSOLID Dwg_Entity_BODY;
3055
3056
/**
3057
 ray - RAY (40) entity
3058
 */
3059
typedef struct _dwg_entity_RAY
3060
{
3061
  struct _dwg_object_entity *parent;
3062
3063
  BITCODE_3BD point;   /*!< DXF 10 */
3064
  BITCODE_3BD vector;  /*!< DXF 11 */
3065
} Dwg_Entity_RAY;
3066
3067
/**
3068
 XLINE (41) entity
3069
 */
3070
typedef Dwg_Entity_RAY Dwg_Entity_XLINE;
3071
3072
/**
3073
 DICTIONARY (42)
3074
 This structure is used for all the new tables.
3075
 Beware: Keep same offsets as DICTIONARYWDFLT
3076
 */
3077
typedef struct _dwg_object_DICTIONARY
3078
{
3079
  struct _dwg_object_object *parent;
3080
3081
  BITCODE_BL numitems;    /*!< no DXF */
3082
  BITCODE_RC is_hardowner;/*!< DXF 280 */
3083
  BITCODE_BS cloning;     /*!< DXF 281, ie merge_style */
3084
  BITCODE_T* texts;       /*!< DXF 3 */
3085
  BITCODE_H* itemhandles; /*!< DXF 350/360, pairwise with texts */
3086
} Dwg_Object_DICTIONARY;
3087
3088
/**
3089
 Class DICTIONARYWDFLT (varies)
3090
 */
3091
typedef struct _dwg_object_DICTIONARYWDFLT
3092
{
3093
  struct _dwg_object_object *parent;
3094
3095
  BITCODE_BL numitems;    /*!< no DXF */
3096
  BITCODE_RC is_hardowner;/*!< DXF 280 */
3097
  BITCODE_BS cloning;     /*!< DXF 281, ie merge_style */
3098
  BITCODE_T* texts;       /*!< DXF 3 */
3099
  BITCODE_H* itemhandles; /*!< DXF 350/360, pairwise with texts */
3100
3101
  BITCODE_H defaultid;
3102
} Dwg_Object_DICTIONARYWDFLT;
3103
3104
/**
3105
 OLEFRAME (43) entity
3106
 (replaced by OLE2FRAME (74) later)
3107
 */
3108
typedef struct _dwg_entity_OLEFRAME
3109
{
3110
  struct _dwg_object_entity *parent;
3111
3112
  BITCODE_BS flag;
3113
  BITCODE_BS mode;
3114
  BITCODE_BL data_size;
3115
  BITCODE_TF data;
3116
} Dwg_Entity_OLEFRAME;
3117
3118
/**
3119
 MTEXT (44) entity
3120
 */
3121
typedef struct _dwg_entity_MTEXT
3122
{
3123
  struct _dwg_object_entity *parent;
3124
3125
  BITCODE_3BD ins_pt;    /*!< DXF 10 */
3126
  BITCODE_BE extrusion;    /*!< DXF 210 */
3127
  BITCODE_3BD x_axis_dir;  /*!< DXF 11, defines the rotation */
3128
  BITCODE_BD rect_height;  /*!< no DXF */
3129
  BITCODE_BD rect_width;   /*!< DXF 41 */
3130
  BITCODE_BD text_height;  /*!< DXF 40 >= 0.0 */
3131
  BITCODE_BS attachment;   /*!< DXF 71.
3132
                             1 = Top left, 2 = Top center, 3 = Top
3133
                             right, 4 = Middle left, 5 = Middle
3134
                             center, 6 = Middle right, 7 = Bottom
3135
                             left, 8 = Bottom center, 9 = Bottom
3136
                             right */
3137
  BITCODE_BS flow_dir;     /*!< DXF 72.
3138
                              1 = Left to right, 3 = Top to bottom,
3139
                              5 = By style (the flow direction is inherited
3140
                              from the associated text style) */
3141
  BITCODE_BD extents_width;  /*!< DXF 42 */
3142
  BITCODE_BD extents_height; /*!< DXF 43 the actual height */
3143
  BITCODE_T text;           /*!< DXF 1 */
3144
  BITCODE_H style;           /*!< DXF 7 */
3145
  BITCODE_BS linespace_style; /*!< DXF 73. r2000+ */
3146
  BITCODE_BD linespace_factor;/*!< DXF 44. r2000+. Mtext line spacing factor (optional):
3147
                               Percentage of default (3-on-5) line spacing to
3148
                               be applied. Valid values range from 0.25 to 4.00 */
3149
  BITCODE_B unknown_b0;      // always 0
3150
  BITCODE_BL bg_fill_flag;   /*!< DXF 90. r2004+
3151
                               0 = Background fill off,
3152
                               1 = Use background fill color,
3153
                               2 = Use drawing window color as background fill color.
3154
                              16 = textframe (r2018+) */
3155
  BITCODE_BD bg_fill_scale;  /*!< DXF 45. r2004+
3156
                               margin around the text. */
3157
  BITCODE_CMC bg_fill_color; /*!< DXF 63. r2004+. on bg_fill_flag==1 */
3158
  BITCODE_BL bg_fill_trans;  /*!< DXF 441. r2004+. unused */
3159
  BITCODE_B is_not_annotative;   /*!< r2018+: */
3160
  BITCODE_BS class_version;      /*!< always 0 */
3161
  BITCODE_B default_flag;        /*!< DXF 70. default true */
3162
  BITCODE_H appid;
3163
  BITCODE_BL ignore_attachment;  /*!< redundant copy, not BS */
3164
  BITCODE_BS column_type;        /*!< DXF 71 0: none, 1: static, 2: dynamic. */
3165
  BITCODE_BL numfragments;       /*!< DXF 72 if static */
3166
  BITCODE_BD column_width;       /*!< DXF 44 */
3167
  BITCODE_BD gutter;             /*!< DXF 45 */
3168
  BITCODE_B auto_height;         /*!< DXF 73 */
3169
  BITCODE_B flow_reversed;       /*!< DXF 74 */
3170
  BITCODE_BL num_column_heights; /*!< DXF 72 if dynamic and not auto_height */
3171
  BITCODE_BD *column_heights;    /*!< DXF 46 */
3172
} Dwg_Entity_MTEXT;
3173
3174
/**
3175
 LEADER (45) entity
3176
 */
3177
typedef struct _dwg_entity_LEADER
3178
{
3179
  struct _dwg_object_entity *parent;
3180
3181
  BITCODE_B unknown_bit_1;  /* always seems to be zero */
3182
  BITCODE_BS path_type;     /*< DXF(72) 0: line, 1: spline (oda bug) */
3183
  BITCODE_BS annot_type;    /*< DXF(73) 0: text, 1: tol, 2: insert, 3 (def): none */
3184
  BITCODE_BL num_points;    /*< DXF(76) */
3185
  BITCODE_3DPOINT* points;  /*< DXF(10) */
3186
  BITCODE_3DPOINT origin;
3187
  BITCODE_BE extrusion;
3188
  BITCODE_3DPOINT x_direction;  /*< DXF(211) */
3189
  BITCODE_3DPOINT inspt_offset; /*< DXF(212) */
3190
  BITCODE_3DPOINT endptproj; /* DXF(213) R_13c3-R_2007 */
3191
  BITCODE_BD dimgap;         /* R_13-R_14 only */
3192
  BITCODE_BD box_height;     /*< DXF(40) */
3193
  BITCODE_BD box_width;      /*< DXF(41) */
3194
  BITCODE_B hookline_dir;    /* if hook line is on x direction */
3195
  BITCODE_B hookline_on;     /*< DXF(75) computed from arrowhead_type & 8 */
3196
  BITCODE_B arrowhead_on;
3197
  BITCODE_BS arrowhead_type;
3198
  BITCODE_BD dimasz;
3199
  BITCODE_B unknown_bit_2;
3200
  BITCODE_B unknown_bit_3;
3201
  BITCODE_BS unknown_short_1;
3202
  BITCODE_BS byblock_color;
3203
  BITCODE_B unknown_bit_4;
3204
  BITCODE_B unknown_bit_5;
3205
  BITCODE_H associated_annotation; /* DXF 340 Hard reference to associated annotation (mtext, tolerance, or insert entity) */
3206
  BITCODE_H dimstyle;
3207
} Dwg_Entity_LEADER;
3208
3209
/**
3210
 TOLERANCE (46) entity
3211
 See https://docs.intellicad.org/files/oda/2021_11/oda_drawings_docs/db_fcf.html
3212
 for special {\F symbols in the text_value
3213
 */
3214
typedef struct _dwg_entity_TOLERANCE
3215
{
3216
  struct _dwg_object_entity *parent;
3217
3218
  BITCODE_BS unknown_short;
3219
  BITCODE_BD height;
3220
  BITCODE_BD dimgap;
3221
  BITCODE_3BD ins_pt;
3222
  BITCODE_3BD x_direction;
3223
  BITCODE_BE extrusion;
3224
  BITCODE_T text_value;
3225
  BITCODE_H dimstyle;
3226
} Dwg_Entity_TOLERANCE;
3227
3228
/**
3229
 MLINE (47) entity
3230
 */
3231
typedef struct _dwg_MLINE_line
3232
{
3233
  struct _dwg_MLINE_vertex *parent;
3234
  BITCODE_BS num_segparms;
3235
  BITCODE_BD * segparms;
3236
  BITCODE_BS num_areafillparms;
3237
  BITCODE_BD* areafillparms;
3238
} Dwg_MLINE_line;
3239
3240
typedef struct _dwg_MLINE_vertex
3241
{
3242
  struct _dwg_entity_MLINE *parent;
3243
  BITCODE_3BD vertex;
3244
  BITCODE_3BD vertex_direction;
3245
  BITCODE_3BD miter_direction;
3246
  BITCODE_RC num_lines;
3247
  Dwg_MLINE_line* lines;
3248
} Dwg_MLINE_vertex;
3249
3250
typedef struct _dwg_entity_MLINE
3251
{
3252
  struct _dwg_object_entity *parent;
3253
3254
  BITCODE_BD scale;
3255
  BITCODE_RC justification;
3256
  BITCODE_3BD base_point;
3257
  BITCODE_BE extrusion;
3258
  BITCODE_BS flags;
3259
  BITCODE_RC num_lines; /* Linesinstyle */
3260
  BITCODE_BS num_verts;
3261
  Dwg_MLINE_vertex* verts;
3262
  BITCODE_H mlinestyle;
3263
} Dwg_Entity_MLINE;
3264
3265
#define COMMON_TABLE_CONTROL_FIELDS  \
3266
  struct _dwg_object_object *parent; \
3267
  BITCODE_BS num_entries;            \
3268
  BITCODE_H* entries;                \
3269
  BITCODE_RS flags_r11
3270
3271
// table entries may be imported from xref's
3272
3273
#define COMMON_TABLE_FIELDS               \
3274
  struct _dwg_object_object *parent;      \
3275
  BITCODE_RC flag;                        \
3276
  BITCODE_T  name;                        \
3277
  BITCODE_RSd used;                       \
3278
  /* may be referenced by xref: */        \
3279
  BITCODE_B  is_xref_ref;                 \
3280
  /* is a xref reference: */              \
3281
  BITCODE_BS is_xref_resolved; /* 0 or 256 */ \
3282
  /* is dependent on xref: */             \
3283
  BITCODE_B  is_xref_dep;                 \
3284
  BITCODE_H  xref
3285
3286
/**
3287
 BLOCK_CONTROL (48) object, table header
3288
 */
3289
typedef struct _dwg_object_BLOCK_CONTROL
3290
{
3291
  COMMON_TABLE_CONTROL_FIELDS;
3292
  BITCODE_H model_space;
3293
  BITCODE_H paper_space;
3294
} Dwg_Object_BLOCK_CONTROL;
3295
3296
/**
3297
 BLOCK_HEADER (49/T1) object, table entry
3298
 */
3299
typedef struct _dwg_object_BLOCK_HEADER
3300
{
3301
  COMMON_TABLE_FIELDS;
3302
  BITCODE_BL __iterator;
3303
  BITCODE_B anonymous;    /* flag 70 bit 1 */
3304
  BITCODE_B hasattrs;     /* flag 70 bit 2 */
3305
  BITCODE_B blkisxref;    /* flag 70 bit 3 */
3306
  BITCODE_B xrefoverlaid; /* flag 70 bit 4 */
3307
  BITCODE_B xref_loaded;  /* flag 70 bit 6 */
3308
  BITCODE_BL num_owned;
3309
  BITCODE_3DPOINT base_pt;
3310
  BITCODE_TV xref_pname;
3311
  BITCODE_RL num_inserts;
3312
  BITCODE_TV description;
3313
  BITCODE_BL preview_size; /* no DXF. BLL? */
3314
  BITCODE_TF preview;      /* DXF 310. Called PreviewIcon */
3315
  BITCODE_BS insert_units;
3316
  BITCODE_B explodable;
3317
  BITCODE_RC block_scaling;
3318
  BITCODE_H block_entity;
3319
  BITCODE_H first_entity;
3320
  BITCODE_H last_entity;
3321
  BITCODE_H* entities;
3322
  BITCODE_H endblk_entity;
3323
  BITCODE_H* inserts;
3324
  BITCODE_H layout;
3325
  BITCODE_RS flag2;       /* preR13 */
3326
  BITCODE_RC unknown_r11;
3327
  BITCODE_RL block_offset_r11;
3328
} Dwg_Object_BLOCK_HEADER;
3329
3330
/**
3331
 LAYER_CONTROL (50) object, table header
3332
 */
3333
typedef struct _dwg_object_LAYER_CONTROL
3334
{
3335
  COMMON_TABLE_CONTROL_FIELDS;
3336
} Dwg_Object_LAYER_CONTROL;
3337
3338
/**
3339
 LAYER (51/T2) object, table entry
3340
 */
3341
typedef struct _dwg_object_LAYER
3342
{
3343
  /*<! flag0 DWG r2000+
3344
     1:  frozen
3345
     2:  off
3346
     4:  frozen_in_new
3347
     8:  locked
3348
     16: plotflag
3349
     bits 6-10: linewt
3350
 */
3351
  COMMON_TABLE_FIELDS;
3352
  BITCODE_BS flag0;       /* The DWG variant of 70, flag is for DXF */
3353
  BITCODE_B frozen;
3354
  BITCODE_B off;
3355
  BITCODE_B frozen_in_new;
3356
  BITCODE_B locked;
3357
  BITCODE_B plotflag;     /* DXF 290 (optional) */
3358
  BITCODE_RC linewt;
3359
  BITCODE_CMC color;
3360
  BITCODE_H plotstyle;    /* DXF 390 */
3361
  BITCODE_H material;     /* DXF 347 */
3362
  BITCODE_H ltype;        /* DXF 6 */
3363
  BITCODE_H visualstyle;  /* DXF 348 */
3364
} Dwg_Object_LAYER;
3365
3366
/**
3367
 STYLE_CONTROL (52) object, table header
3368
 */
3369
typedef struct _dwg_object_STYLE_CONTROL
3370
{
3371
  COMMON_TABLE_CONTROL_FIELDS;
3372
} Dwg_Object_STYLE_CONTROL;
3373
3374
/**
3375
 STYLE (53/T3) object, table entry.
3376
 TextStyleTableRecord. Some call it SHAPEFILE.
3377
 */
3378
typedef struct _dwg_object_STYLE
3379
{
3380
  /*<! flag DXF 70:
3381
     1:  is_vertical
3382
     2:  is_upsidedown
3383
     4:  is_shape
3384
     8:  underlined
3385
     16: overlined (0x10)
3386
     32: is_shx
3387
     64: pre_loaded (0x40)
3388
    128: is_backward (0x80)
3389
    256: shape_loaded (0x100)
3390
    512: is_striked (0x200)
3391
 */
3392
  COMMON_TABLE_FIELDS;
3393
  BITCODE_B is_shape;
3394
  BITCODE_B is_vertical;
3395
  BITCODE_BD text_size;
3396
  BITCODE_BD width_factor;
3397
  BITCODE_BD oblique_angle;
3398
  BITCODE_RC generation;
3399
  BITCODE_BD last_height;
3400
  BITCODE_T font_file;
3401
  BITCODE_T bigfont_file;
3402
} Dwg_Object_STYLE;
3403
3404
/* 54 and 55 are UNKNOWN OBJECTS */
3405
3406
/**
3407
 LTYPE_CONTROL (56) object, table header
3408
 */
3409
typedef struct _dwg_object_LTYPE_CONTROL
3410
{
3411
  COMMON_TABLE_CONTROL_FIELDS;
3412
  BITCODE_H bylayer;
3413
  BITCODE_H byblock;
3414
} Dwg_Object_LTYPE_CONTROL;
3415
3416
/**
3417
 LTYPE (57/T4) object, table entry
3418
 */
3419
3420
typedef struct _dwg_LTYPE_dash {
3421
  struct _dwg_object_LTYPE *parent;
3422
  BITCODE_BD length;
3423
  BITCODE_BS complex_shapecode; /* on shape_flag 2: shape number.
3424
                                   4: index into strings_area. */
3425
  BITCODE_H style;
3426
  BITCODE_RD x_offset;
3427
  BITCODE_RD y_offset;
3428
  BITCODE_BD scale;
3429
  BITCODE_BD rotation;
3430
  BITCODE_BS shape_flag; /* 1: text rotated 0, 2: complex_shapecode is index,
3431
                            4: complex_shapecode is index into strings_area. */
3432
  BITCODE_T  text;       /* DXF 9, only if shape_flag & 2. e.g. GAS_LINE */
3433
} Dwg_LTYPE_dash;
3434
3435
typedef struct _dwg_object_LTYPE
3436
{
3437
  COMMON_TABLE_FIELDS;
3438
  BITCODE_TV description;
3439
  BITCODE_BD pattern_len;
3440
  BITCODE_RC alignment;
3441
  BITCODE_RC numdashes; // can be 0 in r11, even with 12 entries
3442
  // could be made a union if we care
3443
  Dwg_LTYPE_dash* dashes;
3444
  BITCODE_RD dashes_r11[12];
3445
  BITCODE_B has_strings_area; /* if some shape_flag & 4 (ODA bug) */
3446
  BITCODE_TF strings_area; /* 256 or 512 byte since r2007 */
3447
  BITCODE_RC unknown_r11;
3448
} Dwg_Object_LTYPE;
3449
3450
/* 58 and 59 are UNKNOWN OBJECTS */
3451
3452
/**
3453
 VIEW_CONTROL (60) object, table header
3454
 */
3455
typedef struct _dwg_object_VIEW_CONTROL
3456
{
3457
  COMMON_TABLE_CONTROL_FIELDS;
3458
} Dwg_Object_VIEW_CONTROL;
3459
3460
/**
3461
 VIEW (61/T5) object, table entry
3462
 */
3463
typedef struct _dwg_object_VIEW
3464
{
3465
  COMMON_TABLE_FIELDS;
3466
  // AbstractViewTableRecord
3467
  BITCODE_BD VIEWSIZE;
3468
  BITCODE_BD view_width;
3469
  BITCODE_BD aspect_ratio;
3470
  // ViInfo
3471
  BITCODE_2RD VIEWCTR;
3472
  BITCODE_3BD view_target;
3473
  BITCODE_3BD VIEWDIR;
3474
  BITCODE_BD VIEWTWIST;
3475
  BITCODE_BD LENSLENGTH;
3476
  BITCODE_BD FRONTZ;
3477
  BITCODE_BD BACKZ;
3478
  BITCODE_4BITS VIEWMODE; // DXF 71. 0: perspective, 1: front_clip_on, 2: back_clip_on, 3: front_clip_at_eye_on
3479
  BITCODE_RC render_mode;
3480
  BITCODE_B use_default_lights;
3481
  BITCODE_RC default_lightning_type;
3482
  BITCODE_BD brightness;
3483
  BITCODE_BD contrast;
3484
  BITCODE_CMC ambient_color;
3485
  // ViewTableRecord
3486
  BITCODE_B is_pspace;
3487
  BITCODE_B associated_ucs;
3488
  BITCODE_3BD ucsorg;
3489
  BITCODE_3BD ucsxdir;
3490
  BITCODE_3BD ucsydir;
3491
  BITCODE_BD ucs_elevation;
3492
  BITCODE_BS UCSORTHOVIEW;
3493
  BITCODE_B is_camera_plottable;
3494
  BITCODE_H background;
3495
  BITCODE_H visualstyle;
3496
  BITCODE_H sun;
3497
  BITCODE_H base_ucs;
3498
  BITCODE_H named_ucs;
3499
  BITCODE_H livesection;
3500
  BITCODE_RS flag_3d;
3501
  BITCODE_RC unknown_r2;
3502
  BITCODE_RC unknown_r11;
3503
} Dwg_Object_VIEW;
3504
3505
/**
3506
 UCS_CONTROL (62) object, table header
3507
 */
3508
typedef struct _dwg_object_UCS_CONTROL
3509
{
3510
  COMMON_TABLE_CONTROL_FIELDS;
3511
} Dwg_Object_UCS_CONTROL;
3512
3513
/**
3514
 UCS (63/T6) object, table entry
3515
 */
3516
typedef struct _dwg_UCS_orthopts
3517
{
3518
  struct _dwg_object_UCS *parent;
3519
  BITCODE_BS  type; // 71
3520
  BITCODE_3BD pt;   // 13
3521
} Dwg_UCS_orthopts;
3522
3523
typedef struct _dwg_object_UCS
3524
{
3525
  COMMON_TABLE_FIELDS;
3526
  BITCODE_3BD ucsorg;
3527
  BITCODE_3BD ucsxdir;
3528
  BITCODE_3BD ucsydir;
3529
  BITCODE_BD ucs_elevation;
3530
  BITCODE_BS UCSORTHOVIEW;
3531
  BITCODE_H base_ucs;
3532
  BITCODE_H named_ucs;
3533
  BITCODE_BS num_orthopts; // missing in ODA docs
3534
  Dwg_UCS_orthopts *orthopts;
3535
} Dwg_Object_UCS;
3536
3537
/**
3538
 VPORT_CONTROL (64) object, table header
3539
 */
3540
typedef struct _dwg_object_VPORT_CONTROL
3541
{
3542
  COMMON_TABLE_CONTROL_FIELDS;
3543
} Dwg_Object_VPORT_CONTROL;
3544
3545
/**
3546
 VPORT (65/T7) object, table entry
3547
 */
3548
typedef struct _dwg_object_VPORT
3549
{
3550
  COMMON_TABLE_FIELDS;
3551
  // AbstractViewTableRecord
3552
  BITCODE_BD VIEWSIZE;     // really the view height
3553
  BITCODE_BD view_width;   // in DWG r13+, needed to calc. aspect_ratio
3554
  BITCODE_BD aspect_ratio; // DXF 41 = view_width / VIEWSIZE
3555
  // ViInfo
3556
  BITCODE_2RD VIEWCTR;
3557
  BITCODE_3BD view_target;
3558
  BITCODE_3BD VIEWDIR;
3559
  BITCODE_BD VIEWTWIST;
3560
  BITCODE_BD LENSLENGTH;
3561
  BITCODE_BD FRONTZ;
3562
  BITCODE_BD BACKZ;
3563
  BITCODE_4BITS VIEWMODE;
3564
  BITCODE_RC render_mode;
3565
  BITCODE_B use_default_lights;
3566
  BITCODE_RC default_lightning_type;
3567
  BITCODE_BD brightness;
3568
  BITCODE_BD contrast;
3569
  BITCODE_CMC ambient_color;
3570
  // ViewportTableRecord
3571
  BITCODE_2RD lower_left;
3572
  BITCODE_2RD upper_right;
3573
  BITCODE_B UCSFOLLOW;
3574
  BITCODE_BS circle_zoom; /* circle sides: nr of tessellations */
3575
  BITCODE_B FASTZOOM;
3576
  BITCODE_RC UCSICON;     /* DXF 74:  0: icon_on, 1: icon_at_ucsorg */
3577
  BITCODE_B GRIDMODE;     /* DXF 76: on or off */
3578
  BITCODE_2RD GRIDUNIT;
3579
  BITCODE_B SNAPMODE;     /* DXF 75: on or off */
3580
  BITCODE_B SNAPSTYLE;
3581
  BITCODE_BS SNAPISOPAIR;
3582
  BITCODE_BD SNAPANG;
3583
  BITCODE_2RD SNAPBASE;
3584
  BITCODE_2RD SNAPUNIT;
3585
  BITCODE_B ucs_at_origin;
3586
  BITCODE_B UCSVP;
3587
  BITCODE_3BD ucsorg;
3588
  BITCODE_3BD ucsxdir;
3589
  BITCODE_3BD ucsydir;
3590
  BITCODE_BD ucs_elevation;
3591
  BITCODE_BS UCSORTHOVIEW;
3592
  BITCODE_BS grid_flags; /* bit 1: bound to limits, bit 2: adaptive */
3593
  BITCODE_BS grid_major;
3594
  BITCODE_H background;
3595
  BITCODE_H visualstyle;
3596
  BITCODE_H sun;
3597
  BITCODE_H named_ucs;
3598
  BITCODE_H base_ucs;
3599
} Dwg_Object_VPORT;
3600
3601
/**
3602
 APPID_CONTROL (66) object
3603
 The table header of all registered applications
3604
 */
3605
typedef struct _dwg_object_APPID_CONTROL
3606
{
3607
  COMMON_TABLE_CONTROL_FIELDS;
3608
} Dwg_Object_APPID_CONTROL;
3609
3610
/**
3611
 APPID (67/T8) object
3612
 The table entry of a registered application
3613
 */
3614
typedef struct _dwg_object_APPID
3615
{
3616
  COMMON_TABLE_FIELDS;
3617
  BITCODE_RC unknown; // TODO needed?
3618
} Dwg_Object_APPID;
3619
3620
/**
3621
 DIMSTYLE_CONTROL (68) object
3622
 The table header of all dimension styles
3623
 */
3624
typedef struct _dwg_object_DIMSTYLE_CONTROL
3625
{
3626
  COMMON_TABLE_CONTROL_FIELDS;
3627
  BITCODE_RC num_morehandles; /* DXF 71 undocumented */
3628
  BITCODE_H* morehandles;     /* DXF 340 */
3629
} Dwg_Object_DIMSTYLE_CONTROL;
3630
3631
/**
3632
 DIMSTYLE (69/T9) object, table entry
3633
 */
3634
typedef struct _dwg_object_DIMSTYLE
3635
{
3636
  COMMON_TABLE_FIELDS;
3637
  BITCODE_B DIMTOL;
3638
  BITCODE_B DIMLIM;
3639
  BITCODE_B DIMTIH;
3640
  BITCODE_B DIMTOH;
3641
  BITCODE_B DIMSE1;
3642
  BITCODE_B DIMSE2;
3643
  BITCODE_B DIMALT;
3644
  BITCODE_B DIMTOFL;
3645
  BITCODE_B DIMSAH;
3646
  BITCODE_B DIMTIX;
3647
  BITCODE_B DIMSOXD;
3648
  BITCODE_BS DIMALTD;   /*!< r13-r14 only RC */
3649
  BITCODE_BS DIMZIN;    /*!< r13-r14 only RC */
3650
  BITCODE_B DIMSD1;
3651
  BITCODE_B DIMSD2;
3652
  BITCODE_BS DIMTOLJ;   /*!< r13-r14 only RC */
3653
  BITCODE_BS DIMJUST;   /*!< r13-r14 only RC */
3654
  BITCODE_BS DIMFIT;    /*!< r13-r14 only RC */
3655
  BITCODE_B DIMUPT;
3656
  BITCODE_BS DIMTZIN;   /*!< r13-r14 only RC */
3657
  BITCODE_BS DIMALTZ;   /*!< r13-r14 only RC */
3658
  BITCODE_BS DIMALTTZ;  /*!< r13-r14 only RC */
3659
  BITCODE_BS DIMTAD;    /*!< r13-r14 only RC */
3660
  BITCODE_BS DIMUNIT;
3661
  BITCODE_BS DIMAUNIT;
3662
  BITCODE_BS DIMDEC;
3663
  BITCODE_BS DIMTDEC;
3664
  BITCODE_BS DIMALTU;
3665
  BITCODE_BS DIMALTTD;
3666
  /* BITCODE_H DIMTXSTY; */
3667
  BITCODE_BD DIMSCALE;
3668
  BITCODE_BD DIMASZ;
3669
  BITCODE_BD DIMEXO;
3670
  BITCODE_BD DIMDLI;
3671
  BITCODE_BD DIMEXE;
3672
  BITCODE_BD DIMRND;
3673
  BITCODE_BD DIMDLE;
3674
  BITCODE_BD DIMTP;
3675
  BITCODE_BD DIMTM;
3676
  BITCODE_BD DIMFXL;
3677
  BITCODE_BD DIMJOGANG;
3678
  BITCODE_BS DIMTFILL;
3679
  BITCODE_CMC DIMTFILLCLR;
3680
  BITCODE_BS DIMAZIN;
3681
  BITCODE_BS DIMARCSYM;
3682
  BITCODE_BD DIMTXT;
3683
  BITCODE_BD DIMCEN;
3684
  BITCODE_BD DIMTSZ;
3685
  BITCODE_BD DIMALTF;
3686
  BITCODE_BD DIMLFAC;
3687
  BITCODE_BD DIMTVP;
3688
  BITCODE_BD DIMTFAC;
3689
  BITCODE_BD DIMGAP;
3690
  BITCODE_T DIMPOST;
3691
  BITCODE_T DIMAPOST;
3692
  BITCODE_T DIMBLK_T;
3693
  BITCODE_T DIMBLK1_T;
3694
  BITCODE_T DIMBLK2_T;
3695
  BITCODE_BD DIMALTRND;
3696
  BITCODE_CMC DIMCLRD;
3697
  BITCODE_CMC DIMCLRE;
3698
  BITCODE_CMC DIMCLRT;
3699
  BITCODE_BS DIMADEC;
3700
  BITCODE_BS DIMFRAC;
3701
  BITCODE_BS DIMLUNIT;
3702
  BITCODE_BS DIMDSEP;
3703
  BITCODE_BS DIMTMOVE;
3704
  BITCODE_BS DIMATFIT;
3705
  BITCODE_B DIMFXLON;   /*!< r2007+ */
3706
  BITCODE_B  DIMTXTDIRECTION; /*!< r2010+ */
3707
  BITCODE_BD DIMALTMZF; /*!< r2010+ */
3708
  BITCODE_T  DIMALTMZS; /*!< r2010+ */
3709
  BITCODE_BD DIMMZF;    /*!< r2010+ */
3710
  BITCODE_T  DIMMZS;    /*!< r2010+ */
3711
  BITCODE_BSd DIMLWD;
3712
  BITCODE_BSd DIMLWE;
3713
  BITCODE_B flag0;
3714
3715
  BITCODE_H DIMTXSTY;
3716
3717
  BITCODE_H DIMLDRBLK;
3718
  BITCODE_H DIMBLK;
3719
  BITCODE_H DIMBLK1;
3720
  BITCODE_H DIMBLK2;
3721
3722
  BITCODE_H DIMLTYPE;
3723
  BITCODE_H DIMLTEX1;
3724
  BITCODE_H DIMLTEX2;
3725
} Dwg_Object_DIMSTYLE;
3726
3727
/**
3728
 VX_CONTROL (70) table object (r11-r2000)
3729
 The table header for all viewport entities (unused in newer versions)
3730
 Called VXTable
3731
 */
3732
typedef struct _dwg_object_VX_CONTROL
3733
{
3734
  COMMON_TABLE_CONTROL_FIELDS;
3735
} Dwg_Object_VX_CONTROL;
3736
3737
/**
3738
 VX_TABLE_RECORD (71/T10) table object (r11-r2000)
3739
 Called VXTableRecord / VX_TABLE_RECORD
3740
 */
3741
typedef struct _dwg_object_VX_TABLE_RECORD
3742
{
3743
  COMMON_TABLE_FIELDS;
3744
  BITCODE_B is_on;
3745
  BITCODE_H viewport;
3746
  BITCODE_H prev_entry;
3747
  BITCODE_RS vport_entity_address;
3748
  BITCODE_RSd r11_viewport_index;
3749
  BITCODE_RSd r11_prev_entry_index;
3750
} Dwg_Object_VX_TABLE_RECORD;
3751
3752
/**
3753
 GROUP (72) object
3754
 */
3755
typedef struct _dwg_object_GROUP
3756
{
3757
  struct _dwg_object_object *parent;
3758
  BITCODE_TV name;
3759
  BITCODE_BS unnamed;
3760
  BITCODE_BS selectable;
3761
  BITCODE_BL num_groups;
3762
  BITCODE_H* groups;
3763
} Dwg_Object_GROUP;
3764
3765
/**
3766
 MLINESTYLE (73) object
3767
 */
3768
typedef struct _dwg_MLINESTYLE_line
3769
{
3770
  struct _dwg_object_MLINESTYLE *parent;
3771
  BITCODE_BD  offset;
3772
  BITCODE_CMC color;
3773
  BITCODE_BSd lt_index;   /* until 2018 */
3774
  BITCODE_H   lt_ltype;   /* since 2018 */
3775
} Dwg_MLINESTYLE_line;
3776
3777
typedef struct _dwg_object_MLINESTYLE
3778
{
3779
  struct _dwg_object_object *parent;
3780
  BITCODE_TV name;
3781
  BITCODE_TV description;
3782
  BITCODE_BS flag;
3783
  BITCODE_CMC fill_color;
3784
  BITCODE_BD start_angle;
3785
  BITCODE_BD end_angle;
3786
  BITCODE_RC num_lines;
3787
  Dwg_MLINESTYLE_line* lines;
3788
} Dwg_Object_MLINESTYLE;
3789
3790
/**
3791
 OLE2FRAME (74 + varies) object
3792
 */
3793
typedef struct _dwg_entity_OLE2FRAME
3794
{
3795
  struct _dwg_object_entity *parent;
3796
3797
  BITCODE_BS type;         /*!< DXF 71, 1: Link, 2: Embedded, 3: Static */
3798
  BITCODE_BS mode;         /*!< r2000+ DXF 72, tile_mode, 0: mspace, 1: pspace */
3799
  BITCODE_RC lock_aspect;  /*!< r2000+ DXF 73, 0 or 1 (locked) */
3800
  BITCODE_BL data_size;    /*!< DXF 90 */
3801
  BITCODE_TF data;         /*!< DXF 310, the binary object data */
3802
  // embedded into data, not yet decoded:
3803
  // the MS-CFB (ole2 stream) starts at 0x80 in data
3804
  // before is probably:
3805
  BITCODE_BS oleversion;   /*!< DXF 70, always 2 */
3806
  BITCODE_TF oleclient;    /*!< DXF 3, e.g. OLE or Paintbrush Picture */
3807
  BITCODE_3BD pt1;         /*!< DXF 10, upper left corner */
3808
  BITCODE_3BD pt2;         /*!< DXF 11, lower right corner */
3809
} Dwg_Entity_OLE2FRAME;
3810
3811
/**
3812
 DUMMY (75) object, placeholder for unsupported types on encode.
3813
 */
3814
typedef struct _dwg_object_DUMMY
3815
{
3816
  struct _dwg_object_object *parent;
3817
} Dwg_Object_DUMMY;
3818
3819
/**
3820
 LONG_TRANSACTION (76) object
3821
 */
3822
typedef struct _dwg_object_LONG_TRANSACTION
3823
{
3824
  struct _dwg_object_object *parent;
3825
  /* ??? not seen */
3826
} Dwg_Object_LONG_TRANSACTION;
3827
3828
/* NOT SURE ABOUT THIS ONE (IS IT OBJECT OR ENTITY?): */
3829
/**
3830
 subtype PROXY_LWPOLYLINE (33) in a PROXY object
3831
 Not a LWPOLYLINE (77? + varies)
3832
 */
3833
typedef struct _dwg_LWPOLYLINE_width
3834
{
3835
  BITCODE_BD start; /* 40 */
3836
  BITCODE_BD end;   /* 41 */
3837
} Dwg_LWPOLYLINE_width;
3838
3839
typedef struct _dwg_PROXY_LWPOLYLINE
3840
{
3841
  struct _dwg_entity_PROXY_ENTITY *parent;
3842
3843
  BITCODE_RL data_size; /* from flags to *widths */
3844
  BITCODE_BS flags;
3845
  BITCODE_BD const_width;
3846
  BITCODE_BD elevation;
3847
  BITCODE_BD thickness;
3848
  BITCODE_BE extrusion;
3849
  BITCODE_BL num_points;
3850
  BITCODE_2RD* points;
3851
  BITCODE_BL num_bulges;
3852
  BITCODE_BD* bulges;
3853
  BITCODE_BL num_widths;
3854
  Dwg_LWPOLYLINE_width* widths;
3855
  BITCODE_RC unknown_1;
3856
  BITCODE_RC unknown_2;
3857
  BITCODE_RC unknown_3;
3858
} Dwg_PROXY_LWPOLYLINE;
3859
3860
/**
3861
 (ACAD_)PROXY_ENTITY (498, 0x1f2) object
3862
 */
3863
typedef struct _dwg_entity_PROXY_ENTITY
3864
{
3865
  struct _dwg_object_entity *parent;
3866
3867
  BITCODE_BL proxy_id;      /*!< DXF 90 always 498, same as obj->type */
3868
  BITCODE_BL class_id;      /*!< DXF 91 class index */
3869
  BITCODE_BL version;       /*!< DXF 95, combination of maint_version<<8 + maint_version */
3870
  BITCODE_BL maint_version; /*!< DXF hiword of 95 */
3871
  BITCODE_BL dwg_version;   /*!< DXF loword of 95 */
3872
  BITCODE_B from_dxf;       /*!< DXF 70 */
3873
  BITCODE_BL proxy_data_size;  /*!< DXF 92, graphics data bytes */
3874
  BITCODE_RC *proxy_data;   /*!< DXF 310, graphics data */
3875
  BITCODE_BL data_numbits;  /*!< DXF 93, entity data bits */
3876
  BITCODE_BL data_size;     /*!< bytes calculated */
3877
  BITCODE_RC *data;         /*!< DXF 310, entity data */
3878
  BITCODE_BL num_objids;
3879
  BITCODE_H* objids;        /*!< DXF 330,340,350,360 for handle types 2-5 */
3880
} Dwg_Entity_PROXY_ENTITY;
3881
3882
/**
3883
 (ACAD_)PROXY OBJECT (499, 0x1f3) object
3884
 */
3885
typedef struct _dwg_object_PROXY_OBJECT
3886
{
3887
  struct _dwg_object_object *parent;
3888
3889
  BITCODE_BL proxy_id;      /*!< DXF 90 always 499, same as obj->type */
3890
  BITCODE_BL class_id;      /*!< DXF 91 class index */
3891
  BITCODE_BL version;  /*!< DXF 95, combination of maint_version<<8 + maint_version */
3892
  BITCODE_BL maint_version; /*!< DXF hiword of 95 */
3893
  BITCODE_BL dwg_version;   /*!< DXF loword of 95 */
3894
  BITCODE_B from_dxf;       /*!< DXF 70 */
3895
  BITCODE_BL data_numbits;
3896
  BITCODE_BL data_size;     /*!< DXF 93 object data bytes */
3897
  BITCODE_RC *data;         /*!< DXF 310 object data */
3898
  BITCODE_BL num_objids;
3899
  BITCODE_H* objids;        /*!< DXF 330,340,350,360 */
3900
} Dwg_Object_PROXY_OBJECT;
3901
3902
/**
3903
 * types which are fixed and non-fixed:
3904
 * also OLE2FRAME above
3905
 */
3906
3907
/**
3908
 Structs for HATCH (78 + varies)
3909
 */
3910
typedef struct _dwg_HATCH_Color
3911
{
3912
  struct _dwg_entity_HATCH *parent;
3913
  BITCODE_BD shift_value; //0.0 non-shifted, 1.0 shifted
3914
  BITCODE_CMC color;
3915
} Dwg_HATCH_Color;
3916
3917
typedef struct _dwg_HATCH_ControlPoint
3918
{
3919
  struct _dwg_HATCH_PathSeg *parent;
3920
  BITCODE_2RD point;
3921
  BITCODE_BD weight;
3922
} Dwg_HATCH_ControlPoint;
3923
3924
typedef struct _dwg_HATCH_PathSeg
3925
{
3926
  struct _dwg_HATCH_Path *parent;
3927
  BITCODE_RC curve_type; // i.e. curve_type: 1-4
3928
  // could be a union
3929
  /* LINE */
3930
  BITCODE_2RD first_endpoint;
3931
  BITCODE_2RD second_endpoint;
3932
  /* CIRCULAR ARC */
3933
  BITCODE_2RD center;
3934
  BITCODE_BD radius;
3935
  BITCODE_BD start_angle;
3936
  BITCODE_BD end_angle;
3937
  BITCODE_B is_ccw;
3938
  /* ELLIPTICAL ARC */
3939
  /* BITCODE_2RD center */
3940
  BITCODE_2RD endpoint;
3941
  BITCODE_BD minor_major_ratio;
3942
  /* BITCODE_BD start_angle; */
3943
  /* BITCODE_BD end_angle; */
3944
  /* BITCODE_B is_ccw; */
3945
  /* SPLINE */
3946
  BITCODE_BL degree;
3947
  BITCODE_B is_rational;
3948
  BITCODE_B is_periodic;
3949
  BITCODE_BL num_knots;
3950
  BITCODE_BL num_control_points;
3951
  BITCODE_BD* knots;
3952
  Dwg_HATCH_ControlPoint* control_points;
3953
  BITCODE_BL num_fitpts;
3954
  BITCODE_2RD *fitpts;
3955
  BITCODE_2RD start_tangent;
3956
  BITCODE_2RD end_tangent;
3957
} Dwg_HATCH_PathSeg;
3958
3959
typedef struct _dwg_HATCH_PolylinePath
3960
{
3961
  struct _dwg_HATCH_Path *parent;
3962
  BITCODE_2RD point;
3963
  BITCODE_BD bulge;
3964
} Dwg_HATCH_PolylinePath;
3965
3966
typedef struct _dwg_HATCH_Path
3967
{
3968
  struct _dwg_entity_HATCH *parent;
3969
  /* Segment path */
3970
  BITCODE_BL flag; /* 2: is_polyline, 4: is_derived, 8: is_textbox,
3971
                      0x20: is_open, 0x80: is_textisland, 0x100: is_duplicate,
3972
                      0x200: is_annotative */
3973
  BITCODE_BL num_segs_or_paths;
3974
  Dwg_HATCH_PathSeg* segs;
3975
3976
  /* Polyline path */
3977
  BITCODE_B bulges_present;
3978
  BITCODE_B closed;
3979
  Dwg_HATCH_PolylinePath* polyline_paths;
3980
3981
  // needed?
3982
  BITCODE_BL num_boundary_handles;
3983
  BITCODE_H* boundary_handles;
3984
} Dwg_HATCH_Path;
3985
3986
typedef struct _dwg_HATCH_DefLine
3987
{
3988
  struct _dwg_entity_HATCH *parent;
3989
  BITCODE_BD  angle;
3990
  BITCODE_2BD pt0;
3991
  BITCODE_2BD offset;
3992
  BITCODE_BS  num_dashes;
3993
  BITCODE_BD* dashes;
3994
} Dwg_HATCH_DefLine;
3995
3996
typedef struct _dwg_entity_HATCH
3997
{
3998
  struct _dwg_object_entity *parent;
3999
4000
  BITCODE_BL is_gradient_fill;
4001
  BITCODE_BL reserved;
4002
  BITCODE_BD gradient_angle;
4003
  BITCODE_BD gradient_shift;
4004
  BITCODE_BL single_color_gradient;
4005
  BITCODE_BD gradient_tint;
4006
  BITCODE_BL num_colors;
4007
  Dwg_HATCH_Color* colors;
4008
  BITCODE_T gradient_name; /* 1: SPHERICAL, 2: HEMISPHERICAL, 3: CURVED, 4: LINEAR, 5: CYLINDER */
4009
4010
  BITCODE_BD elevation;
4011
  BITCODE_BE extrusion;
4012
  BITCODE_TV name;
4013
  BITCODE_B is_solid_fill;
4014
  BITCODE_B is_associative;
4015
  BITCODE_BL num_paths;
4016
  Dwg_HATCH_Path* paths; // also named loop
4017
  BITCODE_BS style;
4018
  BITCODE_BS pattern_type;
4019
  BITCODE_BD angle;
4020
  BITCODE_BD scale_spacing;
4021
  BITCODE_B double_flag;
4022
  BITCODE_BS num_deflines;
4023
  Dwg_HATCH_DefLine * deflines;
4024
  BITCODE_B has_derived;
4025
  BITCODE_BD pixel_size;
4026
  BITCODE_BL num_seeds;
4027
  BITCODE_2RD * seeds;
4028
  //BITCODE_BL sum_boundary_handles;
4029
  //BITCODE_H* boundary_handles;
4030
} Dwg_Entity_HATCH;
4031
4032
// derived from Hatch
4033
typedef struct _dwg_entity_MPOLYGON
4034
{
4035
  struct _dwg_object_entity *parent;
4036
4037
  BITCODE_BL is_gradient_fill;
4038
  BITCODE_BL reserved;
4039
  BITCODE_BD gradient_angle;
4040
  BITCODE_BD gradient_shift;
4041
  BITCODE_BL single_color_gradient;
4042
  BITCODE_BD gradient_tint;
4043
  BITCODE_BL num_colors;
4044
  Dwg_HATCH_Color* colors;
4045
  BITCODE_T gradient_name; /* 1: SPHERICAL, 2: HEMISPHERICAL, 3: CURVED, 4: LINEAR, 5: CYLINDER */
4046
4047
  BITCODE_BD elevation;
4048
  BITCODE_BE extrusion;
4049
  BITCODE_T name;
4050
  BITCODE_B is_solid_fill;
4051
  BITCODE_B is_associative;
4052
  BITCODE_BL num_paths;
4053
  Dwg_HATCH_Path* paths; // also named loop
4054
  BITCODE_BS style;
4055
  BITCODE_BS pattern_type;
4056
  BITCODE_BD angle;
4057
  BITCODE_BD scale_spacing;
4058
  BITCODE_B double_flag;
4059
  BITCODE_BS num_deflines;
4060
  Dwg_HATCH_DefLine * deflines;
4061
4062
  BITCODE_CMC hatch_color; /* DXF 62 */
4063
  BITCODE_2RD x_dir;  /* DXF 11 (ocs) */
4064
  BITCODE_BL num_boundary_handles; /* DXF 99 */
4065
  //BITCODE_H* boundary_handles;
4066
4067
} Dwg_Entity_MPOLYGON;
4068
4069
/**
4070
 XRECORD (79 + varies) object
4071
 */
4072
typedef struct _dwg_object_XRECORD
4073
{
4074
  struct _dwg_object_object *parent;
4075
4076
  BITCODE_BS cloning; /* DXF 280, as with DICTIONARY.
4077
                         DuplicateRecordCloning mergeStyle:
4078
                         1: erase allowed,
4079
                         0x80: cloning allowed */
4080
  BITCODE_BL xdata_size;
4081
  BITCODE_BL num_xdata; /* computed */
4082
  Dwg_Resbuf* xdata;
4083
  BITCODE_BL num_objid_handles;
4084
  BITCODE_H* objid_handles;
4085
} Dwg_Object_XRECORD;
4086
4087
/**
4088
 PLACEHOLDER (80 + varies) object
4089
 ACDBPLACEHOLDER
4090
 */
4091
typedef struct _dwg_object_PLACEHOLDER
4092
{
4093
  struct _dwg_object_object *parent;
4094
} Dwg_Object_PLACEHOLDER;
4095
4096
/**
4097
 * Entity MULTILEADER (varies)
4098
 * R2000+ in work
4099
 */
4100
4101
typedef struct _dwg_LEADER_Break
4102
{
4103
  struct _dwg_LEADER_Line *parent;
4104
  BITCODE_3BD start;         /*!< DXF 12 */
4105
  BITCODE_3BD end;           /*!< DXF 13 */
4106
} Dwg_LEADER_Break;
4107
4108
typedef struct _dwg_LEADER_Line // as documented by DXF
4109
{
4110
  struct _dwg_LEADER_Node *parent;
4111
  BITCODE_BL num_points;
4112
  BITCODE_3DPOINT* points;         /*!< DXF 10 */
4113
  BITCODE_BL num_breaks;
4114
  Dwg_LEADER_Break * breaks;       /*!< DXF 12, 13 */
4115
  BITCODE_BL  line_index;          /*!< DXF 91 */
4116
4117
  /*!< r2010+: */
4118
  BITCODE_BS type; // 0 = invisible leader, 1 = straight leader, 2 = spline leader
4119
  BITCODE_CMC color; // of the line
4120
  BITCODE_H ltype; // 5 340
4121
  BITCODE_BLd linewt;
4122
  BITCODE_BD arrow_size;
4123
  BITCODE_H  arrow_handle; // 5 341
4124
  BITCODE_BL flags; // 1 = leader type, 2 = line color, 4 = line type, 8 = line weight,
4125
                    // 16 = arrow size, 32 = arrow symbol (handle)
4126
} Dwg_LEADER_Line;
4127
4128
typedef struct _dwg_LEADER_ArrowHead
4129
{
4130
  struct _dwg_entity_MULTILEADER *parent;
4131
  BITCODE_B is_default;
4132
  BITCODE_H arrowhead;
4133
} Dwg_LEADER_ArrowHead;
4134
4135
typedef struct _dwg_LEADER_BlockLabel
4136
{
4137
  struct _dwg_entity_MULTILEADER *parent;
4138
  BITCODE_H attdef;
4139
  BITCODE_TV label_text;
4140
  BITCODE_BS ui_index;
4141
  BITCODE_BD width;
4142
} Dwg_LEADER_BlockLabel;
4143
4144
typedef struct _dwg_LEADER_Node
4145
{
4146
  struct _dwg_entity_MULTILEADER *parent;
4147
  BITCODE_B has_lastleaderlinepoint;    /*!< DXF 290 */
4148
  BITCODE_B has_dogleg;                 /*!< DXF 291 */
4149
  BITCODE_3BD lastleaderlinepoint;      /*!< DXF 10 */
4150
  BITCODE_3BD dogleg_vector;            /*!< DXF 11 */
4151
  BITCODE_BL branch_index;              /*!< DXF 90 */
4152
  BITCODE_BD dogleg_length;             /*!< DXF 40 */
4153
  BITCODE_BL num_lines;
4154
  Dwg_LEADER_Line *lines;               /*!< DXF 10 */
4155
  BITCODE_BL num_breaks;
4156
  Dwg_LEADER_Break * breaks;            /*!< DXF 12, 13 */
4157
4158
  BITCODE_BS attach_dir; //2010+ 271
4159
} Dwg_LEADER_Node;
4160
4161
// common to text and block
4162
#define CMLContent_fields                                                     \
4163
  BITCODE_RC type; /* 1 for blk, 2 for text */                                \
4164
  BITCODE_3BD normal;                                                         \
4165
  BITCODE_3BD location;                                                       \
4166
  BITCODE_BD rotation
4167
4168
typedef struct _dwg_MLEADER_Content_MText
4169
{
4170
  CMLContent_fields;
4171
  BITCODE_H style;
4172
  BITCODE_3BD direction;
4173
  BITCODE_CMC color;
4174
  BITCODE_BD width;
4175
  BITCODE_BD height;
4176
  BITCODE_BD line_spacing_factor;
4177
  BITCODE_T default_text;
4178
  BITCODE_BS line_spacing_style;
4179
  BITCODE_BS alignment;
4180
  BITCODE_BS flow;
4181
  BITCODE_CMC bg_color;
4182
  BITCODE_BD bg_scale;
4183
  BITCODE_BL bg_transparency;
4184
  BITCODE_B is_bg_fill;
4185
  BITCODE_B is_bg_mask_fill;
4186
  BITCODE_BS col_type;
4187
  BITCODE_B is_height_auto;
4188
  BITCODE_BD col_width;
4189
  BITCODE_BD col_gutter;
4190
  BITCODE_B is_col_flow_reversed;
4191
  BITCODE_BL num_col_sizes;
4192
  BITCODE_BD *col_sizes;
4193
  BITCODE_B word_break;
4194
  BITCODE_B unknown;
4195
} Dwg_MLEADER_Content_MText;
4196
4197
typedef struct _dwg_MLEADER_Content_Block
4198
{
4199
  CMLContent_fields;
4200
  BITCODE_H block_table;
4201
  BITCODE_3BD scale;
4202
  BITCODE_CMC color;
4203
  BITCODE_BD *transform;
4204
} Dwg_MLEADER_Content_Block;
4205
4206
typedef union _dwg_MLEADER_Content
4207
{
4208
  Dwg_MLEADER_Content_MText txt;
4209
  Dwg_MLEADER_Content_Block blk;
4210
} Dwg_MLEADER_Content;
4211
4212
/* The MLeaderAnnotContext object (par 20.4.86), embedded into an MLEADER */
4213
typedef struct _dwg_MLEADER_AnnotContext
4214
{
4215
  // AcDbObjectContextData:
4216
  // BITCODE_BS class_version;  /*!< r2010+ DXF 70 4 */
4217
  // BITCODE_B is_default;      /*!< r2010+ DXF 290 1 */
4218
  // BITCODE_B has_xdic;        /*!< r2010+  */
4219
  // AcDbAnnotScaleObjectContextData:
4220
  // BITCODE_H scale;           /*!< DXF 340 hard ptr to AcDbScale */
4221
4222
  BITCODE_BL num_leaders;
4223
  Dwg_LEADER_Node *leaders;
4224
4225
  BITCODE_BS attach_dir;
4226
4227
  BITCODE_BD scale_factor;
4228
  BITCODE_3BD content_base;
4229
  BITCODE_BD text_height;
4230
  BITCODE_BD arrow_size;
4231
  BITCODE_BD landing_gap;
4232
  BITCODE_BS text_left;
4233
  BITCODE_BS text_right;
4234
  BITCODE_BS text_angletype;
4235
  BITCODE_BS text_alignment;
4236
4237
  BITCODE_B has_content_txt;
4238
  BITCODE_B has_content_blk;
4239
  Dwg_MLEADER_Content content; // union txt/blk
4240
4241
  BITCODE_3BD base;
4242
  BITCODE_3BD base_dir;
4243
  BITCODE_3BD base_vert;
4244
  BITCODE_B is_normal_reversed;
4245
4246
  BITCODE_BS text_top;
4247
  BITCODE_BS text_bottom;
4248
4249
} Dwg_MLEADER_AnnotContext;
4250
4251
// dbmleader.h
4252
typedef struct _dwg_entity_MULTILEADER
4253
{
4254
  struct _dwg_object_entity *parent;
4255
4256
  BITCODE_BS class_version; /*!< r2010+ =2 */
4257
  Dwg_MLEADER_AnnotContext ctx;
4258
  BITCODE_H mleaderstyle; /* DXF  340 */
4259
  BITCODE_BL flags;       /* override. DXF 90 */
4260
  BITCODE_BS type;
4261
  BITCODE_CMC line_color;
4262
  BITCODE_H line_ltype;
4263
  BITCODE_BLd line_linewt;
4264
  BITCODE_B has_landing;
4265
  BITCODE_B has_dogleg;
4266
  BITCODE_BD landing_dist;
4267
  BITCODE_H arrow_handle;
4268
  BITCODE_BD arrow_size; /* the default */
4269
  BITCODE_BS style_content;
4270
  BITCODE_H text_style;
4271
  BITCODE_BS text_left;
4272
  BITCODE_BS text_right;
4273
  BITCODE_BS text_angletype;
4274
  BITCODE_BS text_alignment;
4275
  BITCODE_CMC text_color;
4276
  BITCODE_B has_text_frame;
4277
  BITCODE_H block_style; // internal blocks mostly, _TagSlot, _TagHexagon,
4278
                         // _DetailCallout, ...
4279
  BITCODE_CMC block_color;
4280
  BITCODE_3BD block_scale;
4281
  BITCODE_BD block_rotation;
4282
  BITCODE_BS style_attachment; // 0 = center extents, 1 = insertion point
4283
  BITCODE_B is_annotative;
4284
4285
  /* until r2007: */
4286
  BITCODE_BL num_arrowheads;
4287
  Dwg_LEADER_ArrowHead *arrowheads;
4288
  BITCODE_BL num_blocklabels;
4289
  Dwg_LEADER_BlockLabel *blocklabels;
4290
  BITCODE_B is_neg_textdir;
4291
  BITCODE_BS ipe_alignment;
4292
  BITCODE_BS justification;
4293
  BITCODE_BD scale_factor;
4294
4295
  BITCODE_BS attach_dir;    /*!< r2010+ (0 = horizontal, 1 = vertical) */
4296
  BITCODE_BS attach_top;    /*!< r2010+ */
4297
  BITCODE_BS attach_bottom; /*!< r2010+ */
4298
4299
  BITCODE_B is_text_extended; /*!< r2013+ */
4300
} Dwg_Entity_MULTILEADER;
4301
4302
/**
4303
 * Object MLEADERSTYLE (varies)
4304
 * R2000+
4305
 */
4306
typedef struct _dwg_object_MLEADERSTYLE
4307
{
4308
  struct _dwg_object_object *parent;
4309
4310
  BITCODE_BS class_version; /*!< DXF 179, r2010+ =2 */
4311
  BITCODE_BS content_type;
4312
  BITCODE_BS mleader_order;
4313
  BITCODE_BS leader_order;
4314
  BITCODE_BL max_points;
4315
  BITCODE_BD first_seg_angle;
4316
  BITCODE_BD second_seg_angle;
4317
  BITCODE_BS type;
4318
  BITCODE_CMC line_color;
4319
  BITCODE_H line_type;
4320
  BITCODE_BLd linewt;
4321
  BITCODE_B has_landing;
4322
  BITCODE_B has_dogleg;
4323
  BITCODE_BD landing_gap;
4324
  BITCODE_BD landing_dist;
4325
  BITCODE_TV description;
4326
  BITCODE_H arrow_head;
4327
  BITCODE_BD arrow_head_size;
4328
  BITCODE_TV text_default;
4329
  BITCODE_H text_style;
4330
  BITCODE_BS attach_left;
4331
  BITCODE_BS attach_right;
4332
  BITCODE_BS text_angle_type;
4333
  BITCODE_BS text_align_type;
4334
  BITCODE_CMC text_color;
4335
  BITCODE_BD text_height;
4336
  BITCODE_B has_text_frame;
4337
  BITCODE_B text_always_left;
4338
  BITCODE_BD align_space;
4339
  BITCODE_H block;
4340
  BITCODE_CMC block_color;
4341
  BITCODE_3BD block_scale;
4342
  BITCODE_B use_block_scale;
4343
  BITCODE_BD block_rotation;
4344
  BITCODE_B use_block_rotation;
4345
  BITCODE_BS block_connection;
4346
  BITCODE_BD scale;
4347
  BITCODE_B is_changed;
4348
  BITCODE_B is_annotative;
4349
  BITCODE_BD break_size;
4350
4351
  BITCODE_BS attach_dir;    /*!< r2010+ (0 = horizontal, 1 = vertical) */
4352
  BITCODE_BS attach_top;    /*!< r2010+ */
4353
  BITCODE_BS attach_bottom; /*!< r2010+ */
4354
4355
  BITCODE_B text_extended; /*!< r2013+ */
4356
} Dwg_Object_MLEADERSTYLE;
4357
4358
/**
4359
 VBA_PROJECT (81 + varies) object
4360
 Has its own optional section? section[5]?
4361
 */
4362
typedef struct _dwg_object_VBA_PROJECT
4363
{
4364
  struct _dwg_object_object *parent;
4365
4366
  BITCODE_BL data_size;
4367
  BITCODE_TF data;
4368
} Dwg_Object_VBA_PROJECT;
4369
4370
/**
4371
 Object PLOTSETTINGS (varies)
4372
 See also LAYOUT.
4373
 */
4374
typedef struct _dwg_object_PLOTSETTINGS
4375
{
4376
  struct _dwg_object_object *parent;
4377
4378
  BITCODE_T printer_cfg_file;     /*!< DXF 1 */
4379
  BITCODE_T paper_size;           /*!< DXF 2 */
4380
  BITCODE_T canonical_media_name; /*!< DXF 4 */
4381
  BITCODE_BS plot_flags;          /*!< DXF 70
4382
                                 1 = PlotViewportBorders
4383
                                 2 = ShowPlotStyles
4384
                                 4 = PlotCentered
4385
                                 8 = PlotHidden
4386
                                 16 = UseStandardScale
4387
                                 32 = PlotPlotStyles
4388
                                 64 = ScaleLineweights
4389
                                 128 = PrintLineweights
4390
                                 512 = DrawViewportsFirst
4391
                                 1024 = ModelType
4392
                                 2048 = UpdatePaper
4393
                                 4096 = ZoomToPaperOnUpdate
4394
                                 8192 = Initializing
4395
                                 16384 = PrevPlotInit */
4396
  BITCODE_H plotview;             /*!< DXF 6, r2004+ */
4397
  BITCODE_T plotview_name;        /*!< DXF 6, until r2000 */
4398
  BITCODE_BD left_margin;         /*!< DXF 40, margins in mm */
4399
  BITCODE_BD bottom_margin;       /*!< DXF 42 */
4400
  BITCODE_BD right_margin;        /*!< DXF 43 */
4401
  BITCODE_BD top_margin;          /*!< DXF 44 */
4402
  BITCODE_BD paper_width;         /*!< DXF 44, in mm */
4403
  BITCODE_BD paper_height;        /*!< DXF 45, in mm */
4404
  BITCODE_2BD_1 plot_origin;      /*!< DXF 46,47 */
4405
  BITCODE_2BD_1 plot_window_ll;   /*!< DXF 48,49 */
4406
  BITCODE_2BD_1 plot_window_ur;   /*!< DXF 140,141 */
4407
  BITCODE_BS plot_paper_unit;     /*!< DXF 72,  0 inches, 1 mm, 2 pixel */
4408
  BITCODE_BS
4409
      plot_rotation_mode; /*!< DXF 73,  0 normal, 1 90, 2 180, 3 270 deg */
4410
  BITCODE_BS plot_type; /*!< DXF 74,  0 display, 1 extents, 2 limits, 3 view
4411
                           (see DXF 6), 4 window (see 48-140), 5 layout */
4412
  BITCODE_BD paper_units;   /*!< DXF 142 */
4413
  BITCODE_BD drawing_units; /*!< DXF 143 */
4414
  BITCODE_T stylesheet;     /*!< DXF 7 */
4415
  BITCODE_BS
4416
      std_scale_type;               /*!< DXF 75, 0 = scaled to fit,
4417
                                      1 = 1/128"=1', 2 = 1/64"=1', 3 = 1/32"=1'
4418
                                      4 = 1/16"=1', 5 = 3/32"=1', 6 = 1/8"=1'
4419
                                      7 = 3/16"=1', 8 = 1/4"=1', 9 = 3/8"=1'
4420
                                      10 = 1/2"=1', 11 = 3/4"=1', 12 = 1"=1'
4421
                                      13 = 3"=1', 14 = 6"=1', 15 = 1'=1'
4422
                                      16 = 1:1, 17= 1:2, 18 = 1:4 19 = 1:8, 20 = 1:10, 21=
4423
                                      1:16               22 = 1:20, 23 = 1:30, 24 = 1:40, 25 = 1:50, 26 =
4424
                                      1:100               27 = 2:1, 28 = 4:1, 29 = 8:1, 30 = 10:1, 31 =
4425
                                      100:1, 32 = 1000:1
4426
                                    */
4427
  BITCODE_BD std_scale_factor;      /*!< DXF 147, value of 75 */
4428
  BITCODE_2BD_1 paper_image_origin; /*!< DXF 148 + 149 */
4429
  BITCODE_BS shadeplot_type; /*!< DXF 76, 0 display, 1 wireframe, 2 hidden, 3
4430
                                rendered, 4 visualstyle, 5 renderPreset */
4431
  BITCODE_BS
4432
      shadeplot_reslevel;         /*!< DXF 77, 0 draft, 1 preview, 2 normal,
4433
                                               3 presentation, 4 maximum, 5 custom */
4434
  BITCODE_BS shadeplot_customdpi; /*!< DXF 78, 100-32767 */
4435
  BITCODE_H shadeplot;            /*!< DXF 333 optional. As in VIEWPORT */
4436
} Dwg_Object_PLOTSETTINGS;
4437
4438
/**
4439
 LAYOUT (82 + varies) object
4440
 */
4441
typedef struct _dwg_object_LAYOUT
4442
{
4443
  struct _dwg_object_object *parent;
4444
  // AcDbPlotSettings:
4445
  Dwg_Object_PLOTSETTINGS plotsettings;
4446
4447
  // AcDbLayout:
4448
  BITCODE_T layout_name;
4449
  BITCODE_BS tab_order;
4450
  BITCODE_BS layout_flags; /* 1: PSLTSCALE, 2: LIMCHECK */
4451
  BITCODE_3DPOINT INSBASE;
4452
  BITCODE_2DPOINT LIMMIN;
4453
  BITCODE_2DPOINT LIMMAX;
4454
  BITCODE_3DPOINT UCSORG;
4455
  BITCODE_3DPOINT UCSXDIR;
4456
  BITCODE_3DPOINT UCSYDIR;
4457
  BITCODE_BD ucs_elevation;
4458
  BITCODE_BS UCSORTHOVIEW;
4459
  BITCODE_3DPOINT EXTMIN;
4460
  BITCODE_3DPOINT EXTMAX;
4461
  BITCODE_H block_header;
4462
  BITCODE_H active_viewport;
4463
  BITCODE_H base_ucs;
4464
  BITCODE_H named_ucs;
4465
  BITCODE_BL num_viewports; // r2004+
4466
  BITCODE_H *viewports;     // r2004+
4467
} Dwg_Object_LAYOUT;
4468
4469
/**
4470
 * And the non-fixed types, classes, only
4471
 */
4472
4473
/**
4474
 Class DICTIONARYVAR (varies)
4475
 */
4476
typedef struct _dwg_object_DICTIONARYVAR
4477
{
4478
  struct _dwg_object_object *parent;
4479
4480
  BITCODE_RC schema;
4481
  BITCODE_T  strvalue;
4482
} Dwg_Object_DICTIONARYVAR;
4483
4484
/**
4485
 Class TABLE (varies)
4486
 */
4487
4488
// 20.4.99. also for FIELD
4489
typedef struct _dwg_TABLE_value
4490
{
4491
  BITCODE_BL flags;        /* DXF 90 */
4492
  BITCODE_BL format_flags; /* DXF 93, r2007+ */
4493
  BITCODE_BL data_type;
4494
  BITCODE_BL data_size;
4495
  BITCODE_BL data_long;
4496
  BITCODE_BD data_double;
4497
  BITCODE_T data_string;
4498
  BITCODE_TF data_date;
4499
  BITCODE_2RD data_point;
4500
  BITCODE_3RD data_3dpoint;
4501
  BITCODE_H data_handle;
4502
  BITCODE_BL unit_type;
4503
  BITCODE_T format_string;
4504
  BITCODE_T value_string;
4505
} Dwg_TABLE_value;
4506
4507
// 20.4.100 Custom data collection for table cells, cols, rows
4508
typedef struct _dwg_TABLE_CustomDataItem
4509
{
4510
  BITCODE_T name;
4511
  Dwg_TABLE_value value;
4512
4513
  struct _dwg_TableCell *cell_parent;
4514
  struct _dwg_TableRow *row_parent;
4515
  struct _dwg_TableDataColumn *col_parent;
4516
} Dwg_TABLE_CustomDataItem;
4517
4518
typedef struct _dwg_TABLE_AttrDef
4519
{
4520
  struct _dwg_TABLE_Cell *parent;
4521
  BITCODE_H attdef;
4522
  BITCODE_BS index;
4523
  BITCODE_T text;
4524
} Dwg_TABLE_AttrDef;
4525
4526
typedef struct _dwg_TABLE_Cell
4527
{
4528
  struct _dwg_entity_TABLE *parent;
4529
  BITCODE_BS type;
4530
  BITCODE_RC flags;
4531
  BITCODE_B is_merged_value;
4532
  BITCODE_B is_autofit_flag;
4533
  BITCODE_BL merged_width_flag;
4534
  BITCODE_BL merged_height_flag;
4535
  BITCODE_BD rotation;
4536
  BITCODE_T text_value;
4537
  BITCODE_H text_style;
4538
  BITCODE_H block_handle;
4539
  BITCODE_BD block_scale;
4540
  BITCODE_B additional_data_flag;
4541
  BITCODE_BL cell_flag_override;
4542
  BITCODE_RC virtual_edge_flag;
4543
  BITCODE_BS cell_alignment;
4544
  BITCODE_B bg_fill_none;
4545
  BITCODE_CMC bg_color;
4546
  BITCODE_CMC content_color;
4547
  BITCODE_BD text_height;
4548
  BITCODE_CMC top_grid_color;
4549
  BITCODE_BS top_grid_linewt;
4550
  BITCODE_BS top_visibility;
4551
  BITCODE_CMC right_grid_color;
4552
  BITCODE_BS right_grid_linewt;
4553
  BITCODE_BS right_visibility;
4554
  BITCODE_CMC bottom_grid_color;
4555
  BITCODE_BS bottom_grid_linewt;
4556
  BITCODE_BS bottom_visibility;
4557
  BITCODE_CMC left_grid_color;
4558
  BITCODE_BS left_grid_linewt;
4559
  BITCODE_BS left_visibility;
4560
  BITCODE_BL unknown;
4561
  Dwg_TABLE_value value;
4562
  BITCODE_BL num_attr_defs;
4563
  Dwg_TABLE_AttrDef *attr_defs;
4564
  // BITCODE_H text_style_override;
4565
} Dwg_TABLE_Cell;
4566
4567
typedef struct _dwg_TABLE_BreakHeight
4568
{
4569
  struct _dwg_entity_TABLE *parent;
4570
  BITCODE_3BD position;
4571
  BITCODE_BD height;
4572
  BITCODE_BL flag;
4573
} Dwg_TABLE_BreakHeight;
4574
4575
typedef struct _dwg_TABLE_BreakRow
4576
{
4577
  struct _dwg_entity_TABLE *parent;
4578
  BITCODE_3BD position;
4579
  BITCODE_BL start;
4580
  BITCODE_BL end;
4581
} Dwg_TABLE_BreakRow;
4582
4583
typedef struct _dwg_LinkedData
4584
{
4585
  BITCODE_T name;        // max 16, dxf 1
4586
  BITCODE_T description; // max 24, dxf 300
4587
} Dwg_LinkedData;
4588
4589
typedef struct _dwg_TableCellContent_Attr
4590
{
4591
  struct _dwg_TableCellContent *parent;
4592
  BITCODE_H attdef;
4593
  BITCODE_TV value;
4594
  BITCODE_BL index;
4595
} Dwg_TableCellContent_Attr;
4596
4597
// Content format 20.4.101.3
4598
typedef struct _dwg_ContentFormat
4599
{
4600
  BITCODE_BL property_override_flags;
4601
  BITCODE_BL property_flags;
4602
  BITCODE_BL value_data_type; /* see 20.4.98 */
4603
  BITCODE_BL value_unit_type; /* see 20.4.98 */
4604
  BITCODE_TV value_format_string;
4605
  BITCODE_BD rotation;
4606
  BITCODE_BD block_scale;
4607
  BITCODE_BL cell_alignment;
4608
  BITCODE_CMC content_color;
4609
  BITCODE_H text_style;
4610
  BITCODE_BD text_height;
4611
} Dwg_ContentFormat;
4612
4613
typedef struct _dwg_TableCellContent
4614
{
4615
  struct _dwg_TableCell *parent;
4616
  BITCODE_BL type;
4617
  Dwg_TABLE_value value; // 20.4.99 Value
4618
  BITCODE_H handle;
4619
  BITCODE_BL num_attrs;
4620
  Dwg_TableCellContent_Attr *attrs;
4621
  BITCODE_BS has_content_format_overrides;
4622
  Dwg_ContentFormat content_format;
4623
} Dwg_TableCellContent;
4624
4625
// 20.4.98
4626
typedef struct _dwg_CellContentGeometry
4627
{
4628
  BITCODE_3BD dist_top_left;
4629
  BITCODE_3BD dist_center;
4630
  BITCODE_BD content_width;
4631
  BITCODE_BD content_height;
4632
  BITCODE_BD width;
4633
  BITCODE_BD height;
4634
  BITCODE_BL flags; /* DXF 95. BL, the ODA spec says BD */
4635
4636
  struct _dwg_TableCell *cell_parent;
4637
  struct _dwg_TABLEGEOMETRY_Cell *geom_parent;
4638
} Dwg_CellContentGeometry;
4639
4640
// almost like GridLine/TABLESTYLE_border
4641
// in ODA named OdTableGridLine, was BorderStyle
4642
typedef struct _dwg_GridFormat
4643
{
4644
  struct _dwg_CellStyle *parent;
4645
  BITCODE_BL index_mask; /* 95. ie: 1,2,4,8,16,32 */
4646
  BITCODE_BL border_overrides;
4647
  BITCODE_BL border_type;
4648
  BITCODE_CMC color;
4649
  BITCODE_BLd linewt;
4650
  BITCODE_H ltype;
4651
  BITCODE_B visible;
4652
  BITCODE_BD double_line_spacing;
4653
} Dwg_GridFormat;
4654
4655
/**
4656
  Cell style 20.4.101.4
4657
  for TABLE, TABLECONTENT, CELLSTYLEMAP
4658
*/
4659
typedef struct _dwg_CellStyle
4660
{
4661
  BITCODE_BL type; /* 1 cell, 2 row, 3 col, 4 fmt data, 5 table */
4662
  BITCODE_BS data_flags;
4663
  BITCODE_BL property_override_flags;
4664
  BITCODE_BL merge_flags;
4665
  BITCODE_CMC bg_color;
4666
  BITCODE_BL content_layout;
4667
  Dwg_ContentFormat content_format;
4668
  BITCODE_BS margin_override_flags;
4669
  BITCODE_BD vert_margin;
4670
  BITCODE_BD horiz_margin;
4671
  BITCODE_BD bottom_margin;
4672
  BITCODE_BD right_margin;
4673
  BITCODE_BD margin_horiz_spacing;
4674
  BITCODE_BD margin_vert_spacing;
4675
  BITCODE_BL num_borders; /* 0-6, number of edge_flags set */
4676
  Dwg_GridFormat *borders;
4677
4678
  struct _dwg_TableRow *tablerow_parent;
4679
  struct _dwg_TableDataColumn *tabledatacolumn_parent;
4680
} Dwg_CellStyle;
4681
4682
typedef struct _dwg_TableCell
4683
{
4684
  BITCODE_BL flag;
4685
  BITCODE_TV tooltip;
4686
  BITCODE_BL customdata;
4687
  BITCODE_BL num_customdata_items;
4688
  Dwg_TABLE_CustomDataItem *customdata_items;
4689
  BITCODE_BL has_linked_data;
4690
  BITCODE_H data_link;
4691
  BITCODE_BL num_rows;
4692
  BITCODE_BL num_cols;
4693
  BITCODE_BL unknown;
4694
  BITCODE_BL num_cell_contents;
4695
  Dwg_TableCellContent *cell_contents;
4696
  Dwg_CellStyle cellstyle;
4697
  BITCODE_BL style_id;
4698
  BITCODE_BL has_geom_data;
4699
  BITCODE_BL geom_data_flag;
4700
  BITCODE_BD width_w_gap;
4701
  BITCODE_BD height_w_gap;
4702
  BITCODE_H tablegeometry;
4703
  BITCODE_BL num_geometry;
4704
  Dwg_CellContentGeometry *geometry;
4705
4706
  struct _dwg_CellStyle *style_parent;
4707
  struct _dwg_TableRow *row_parent;
4708
} Dwg_TableCell;
4709
4710
typedef struct _dwg_TableRow
4711
{
4712
  struct _dwg_LinkedTableData *parent;
4713
  BITCODE_BL num_cells;
4714
  Dwg_TableCell *cells;
4715
  BITCODE_BL custom_data;
4716
  BITCODE_BL num_customdata_items;
4717
  Dwg_TABLE_CustomDataItem *customdata_items;
4718
  Dwg_CellStyle cellstyle;
4719
  BITCODE_BL style_id;
4720
  BITCODE_BD height;
4721
} Dwg_TableRow;
4722
4723
typedef struct _dwg_TableDataColumn
4724
{
4725
  struct _dwg_LinkedTableData *parent;
4726
  BITCODE_T name;
4727
  BITCODE_BL custom_data;
4728
  BITCODE_BL num_customdata_items;
4729
  Dwg_TABLE_CustomDataItem *customdata_items;
4730
  Dwg_CellStyle cellstyle;
4731
  BITCODE_BL cellstyle_id;
4732
  BITCODE_BD width;
4733
} Dwg_TableDataColumn;
4734
4735
typedef struct _dwg_LinkedTableData
4736
{
4737
  BITCODE_BL num_cols;
4738
  Dwg_TableDataColumn *cols;
4739
  BITCODE_BL num_rows;
4740
  Dwg_TableRow *rows;
4741
  BITCODE_BL num_field_refs;
4742
  BITCODE_H *field_refs;
4743
} Dwg_LinkedTableData;
4744
4745
typedef struct _dwg_FormattedTableMerged
4746
{
4747
  struct _dwg_FormattedTableData *parent;
4748
  BITCODE_BL top_row;
4749
  BITCODE_BL left_col;
4750
  BITCODE_BL bottom_row;
4751
  BITCODE_BL right_col;
4752
} Dwg_FormattedTableMerged;
4753
4754
typedef struct _dwg_FormattedTableData
4755
{
4756
  struct _dwg_object_TABLECONTENT *parent;
4757
  Dwg_CellStyle cellstyle;
4758
  BITCODE_BL num_merged_cells;
4759
  Dwg_FormattedTableMerged *merged_cells;
4760
} Dwg_FormattedTableData;
4761
4762
#define TABLECONTENT_fields                                                   \
4763
  Dwg_LinkedData ldata;                                                       \
4764
  Dwg_LinkedTableData tdata;                                                  \
4765
  Dwg_FormattedTableData fdata;                                               \
4766
  BITCODE_H tablestyle
4767
4768
typedef struct _dwg_object_TABLECONTENT
4769
{
4770
  struct _dwg_object_object *parent;
4771
  TABLECONTENT_fields;
4772
} Dwg_Object_TABLECONTENT;
4773
4774
typedef struct _dwg_entity_TABLE
4775
{
4776
  struct _dwg_object_entity *parent;
4777
  //r2010+ TABLECONTENT:
4778
  TABLECONTENT_fields;
4779
4780
  BITCODE_RC unknown_rc;
4781
  BITCODE_H unknown_h;
4782
  BITCODE_BL unknown_bl;
4783
  BITCODE_B unknown_b;
4784
  BITCODE_BL unknown_bl1;
4785
  BITCODE_3BD ins_pt;       /*!< DXF 10 */
4786
  BITCODE_3BD scale;        /*!< DXF 41 */
4787
  BITCODE_BB scale_flag;
4788
  BITCODE_BD rotation;      /*!< DXF 50 */
4789
  BITCODE_BE extrusion;     /*!< DXF 210 */
4790
  BITCODE_B has_attribs;    /*!< DXF 66 */
4791
  BITCODE_BL num_owned;
4792
  BITCODE_BS flag_for_table_value; /*!< DXF 90.
4793
                                     Bit flags, 0x06 (0x02 + 0x04): has block,
4794
                                     0x10: table direction, 0 = up, 1 = down,
4795
                                     0x20: title suppressed.
4796
                                     Normally 0x06 is always set. */
4797
  BITCODE_3BD horiz_direction; /*!< DXF 11 */
4798
  BITCODE_BL num_cols;     /*!< DXF 90 */
4799
  BITCODE_BL num_rows;     /*!< DXF 91 */
4800
  unsigned long num_cells; /*!< computed */
4801
  BITCODE_BD* col_widths;  /*!< DXF 142 */
4802
  BITCODE_BD* row_heights; /*!< DXF 141 */
4803
  Dwg_TABLE_Cell* cells;
4804
  BITCODE_B has_table_overrides;
4805
  BITCODE_BL table_flag_override; /*!< DXF 93 */
4806
  BITCODE_B title_suppressed;     /*!< DXF 280 */
4807
  BITCODE_B header_suppressed;    /*!< DXF 281 */
4808
  BITCODE_BS flow_direction;      /*!< DXF 70 */
4809
  BITCODE_BD horiz_cell_margin;   /*!< DXF 40 */
4810
  BITCODE_BD vert_cell_margin;    /*!< DXF 41 */
4811
  BITCODE_CMC title_row_color;    /*!< DXF 64 */
4812
  BITCODE_CMC header_row_color;   /*!< DXF 64 */
4813
  BITCODE_CMC data_row_color;     /*!< DXF 64 */
4814
  BITCODE_B title_row_fill_none;  /*!< DXF 283 */
4815
  BITCODE_B header_row_fill_none; /*!< DXF 283 */
4816
  BITCODE_B data_row_fill_none;   /*!< DXF 283 */
4817
  BITCODE_CMC title_row_fill_color;  /*!< DXF 63 */
4818
  BITCODE_CMC header_row_fill_color; /*!< DXF 63 */
4819
  BITCODE_CMC data_row_fill_color;   /*!< DXF 63 */
4820
  BITCODE_BS title_row_alignment;   /*!< DXF 170 */
4821
  BITCODE_BS header_row_alignment;  /*!< DXF 170 */
4822
  BITCODE_BS data_row_alignment;    /*!< DXF 170 */
4823
  BITCODE_H title_text_style;   /*!< DXF 7 */
4824
  BITCODE_H header_text_style;  /*!< DXF 7 */
4825
  BITCODE_H data_text_style;    /*!< DXF 7 */
4826
  BITCODE_BD title_row_height;  /*!< DXF 140 */
4827
  BITCODE_BD header_row_height; /*!< DXF 140 */
4828
  BITCODE_BD data_row_height;   /*!< DXF 140 */
4829
4830
  BITCODE_B has_border_color_overrides;   /*!< if DXF 94 > 0 */
4831
  BITCODE_BL border_color_overrides_flag; /*!< DXF 94 */
4832
  BITCODE_CMC title_horiz_top_color;      /*!< DXF 64 if DXF 94 & 0x1 */
4833
  BITCODE_CMC title_horiz_ins_color;      /*!< DXF 65 if DXF 94 & 0x2 */
4834
  BITCODE_CMC title_horiz_bottom_color;   /*!< DXF 66 if DXF 94 & 0x4 */
4835
  BITCODE_CMC title_vert_left_color;      /*!< DXF 63 if DXF 94 & 0x8 */
4836
  BITCODE_CMC title_vert_ins_color;       /*!< DXF 68 if DXF 94 & 0x10 */
4837
  BITCODE_CMC title_vert_right_color;     /*!< DXF 69 if DXF 94 & 0x20 */
4838
  BITCODE_CMC header_horiz_top_color;     /*!< DXF 64 if DXF 94 & 0x40 */
4839
  BITCODE_CMC header_horiz_ins_color;     /*!< DXF 65 */
4840
  BITCODE_CMC header_horiz_bottom_color;  /*!< DXF 66 */
4841
  BITCODE_CMC header_vert_left_color;     /*!< DXF 63 */
4842
  BITCODE_CMC header_vert_ins_color;      /*!< DXF 68 */
4843
  BITCODE_CMC header_vert_right_color;    /*!< DXF 69 */
4844
  BITCODE_CMC data_horiz_top_color;       /*!< DXF 64 */
4845
  BITCODE_CMC data_horiz_ins_color;       /*!< DXF 65 */
4846
  BITCODE_CMC data_horiz_bottom_color;    /*!< DXF 66 */
4847
  BITCODE_CMC data_vert_left_color;       /*!< DXF 63 */
4848
  BITCODE_CMC data_vert_ins_color;        /*!< DXF 68 */
4849
  BITCODE_CMC data_vert_right_color;      /*!< DXF 69 */
4850
4851
  BITCODE_B has_border_lineweight_overrides;   /*!< if DXF 95 > 0 */
4852
  BITCODE_BL border_lineweight_overrides_flag; /*!< DXF 95 */
4853
  BITCODE_BS title_horiz_top_linewt;
4854
  BITCODE_BS title_horiz_ins_linewt;
4855
  BITCODE_BS title_horiz_bottom_linewt;
4856
  BITCODE_BS title_vert_left_linewt;
4857
  BITCODE_BS title_vert_ins_linewt;
4858
  BITCODE_BS title_vert_right_linewt;
4859
  BITCODE_BS header_horiz_top_linewt;
4860
  BITCODE_BS header_horiz_ins_linewt;
4861
  BITCODE_BS header_horiz_bottom_linewt;
4862
  BITCODE_BS header_vert_left_linewt;
4863
  BITCODE_BS header_vert_ins_linewt;
4864
  BITCODE_BS header_vert_right_linewt;
4865
  BITCODE_BS data_horiz_top_linewt;
4866
  BITCODE_BS data_horiz_ins_linewt;
4867
  BITCODE_BS data_horiz_bottom_linewt;
4868
  BITCODE_BS data_vert_left_linewt;
4869
  BITCODE_BS data_vert_ins_linewt;
4870
  BITCODE_BS data_vert_right_linewt;
4871
4872
  BITCODE_B has_border_visibility_overrides;
4873
  BITCODE_BL border_visibility_overrides_flag; /*!< DXF 96 */
4874
  BITCODE_BS title_horiz_top_visibility;
4875
  BITCODE_BS title_horiz_ins_visibility;
4876
  BITCODE_BS title_horiz_bottom_visibility;
4877
  BITCODE_BS title_vert_left_visibility;
4878
  BITCODE_BS title_vert_ins_visibility;
4879
  BITCODE_BS title_vert_right_visibility;
4880
  BITCODE_BS header_horiz_top_visibility;
4881
  BITCODE_BS header_horiz_ins_visibility;
4882
  BITCODE_BS header_horiz_bottom_visibility;
4883
  BITCODE_BS header_vert_left_visibility;
4884
  BITCODE_BS header_vert_ins_visibility;
4885
  BITCODE_BS header_vert_right_visibility;
4886
  BITCODE_BS data_horiz_top_visibility;
4887
  BITCODE_BS data_horiz_ins_visibility;
4888
  BITCODE_BS data_horiz_bottom_visibility;
4889
  BITCODE_BS data_vert_left_visibility;
4890
  BITCODE_BS data_vert_ins_visibility;
4891
  BITCODE_BS data_vert_right_visibility;
4892
4893
  BITCODE_H block_header;
4894
  BITCODE_H first_attrib;
4895
  BITCODE_H last_attrib;
4896
  BITCODE_H* attribs;
4897
  BITCODE_H seqend;
4898
  BITCODE_H title_row_style_override;
4899
  BITCODE_H header_row_style_override;
4900
  BITCODE_H data_row_style_override;
4901
4902
  BITCODE_BS unknown_bs;
4903
  BITCODE_3BD hor_dir;
4904
  BITCODE_BL has_break_data;
4905
  BITCODE_BL break_flag;
4906
  BITCODE_BL break_flow_direction;
4907
  BITCODE_BD break_spacing;
4908
  BITCODE_BL break_unknown1;
4909
  BITCODE_BL break_unknown2;
4910
  BITCODE_BL num_break_heights;
4911
  Dwg_TABLE_BreakHeight *break_heights;
4912
  BITCODE_BL num_break_rows;
4913
  Dwg_TABLE_BreakRow *break_rows;
4914
4915
} Dwg_Entity_TABLE;
4916
4917
#undef TABLECONTENT_fields
4918
4919
/**
4920
 Class TABLESTYLE (varies)
4921
 */
4922
4923
typedef struct _dwg_TABLESTYLE_CellStyle
4924
{
4925
  struct _dwg_object_TABLESTYLE *parent;
4926
  BITCODE_BL id;   /* 1=title, 2=header, 3=data, 4=table.
4927
                      ref TABLESTYLE. custom IDs > 100 */
4928
  BITCODE_BL type; /* 1=data, 2=label */
4929
  BITCODE_T  name;
4930
  struct _dwg_CellStyle cellstyle;
4931
} Dwg_TABLESTYLE_CellStyle;
4932
4933
// very similar to GridLine, or GridFormat. but no overrides, type, ltype, ...
4934
typedef struct _dwg_TABLESTYLE_border
4935
{
4936
  BITCODE_BSd linewt;
4937
  BITCODE_B visible;
4938
  BITCODE_CMC color;
4939
  //TODO
4940
  // BITCODE_H ltype;
4941
  // BITCODE_BD double_line_spacing;
4942
} Dwg_TABLESTYLE_border; // child of TABLE/TABLESTYLE/...
4943
4944
typedef struct _dwg_TABLESTYLE_rowstyles
4945
{
4946
  struct _dwg_object_TABLESTYLE *parent;
4947
  BITCODE_H text_style;
4948
  BITCODE_BD text_height;
4949
  BITCODE_BS text_alignment;
4950
  BITCODE_CMC text_color;
4951
  BITCODE_CMC fill_color;
4952
  BITCODE_B has_bgcolor;
4953
4954
  // 6: top, horizontal inside, bottom, left, vertical inside, right
4955
  BITCODE_BL num_borders; // always 6
4956
  Dwg_TABLESTYLE_border *borders;
4957
4958
  BITCODE_BL data_type;  // r2007+
4959
  BITCODE_BL unit_type;
4960
  BITCODE_TU format_string;
4961
} Dwg_TABLESTYLE_rowstyles;
4962
4963
typedef struct _dwg_object_TABLESTYLE
4964
{
4965
  struct _dwg_object_object *parent;
4966
4967
  BITCODE_BS class_version;
4968
  BITCODE_T name;
4969
  BITCODE_BS flags;
4970
  BITCODE_BS flow_direction;
4971
  BITCODE_BD horiz_cell_margin;
4972
  BITCODE_BD vert_cell_margin;
4973
  BITCODE_B is_title_suppressed;
4974
  BITCODE_B is_header_suppressed;
4975
  BITCODE_RC unknown_rc;         //r2007+ signed
4976
  BITCODE_BL unknown_bl1;
4977
  BITCODE_BL unknown_bl2;
4978
  BITCODE_H cellstyle;           //r2007+. was called template
4979
  Dwg_TABLESTYLE_CellStyle sty;  //r2007+. Note: embedded struct
4980
  BITCODE_BL num_cellstyles;     /* 3 (title, header, data), r2010+ */
4981
  Dwg_TABLESTYLE_CellStyle *cellstyles; // the non-custom cell styles
4982
4983
  // 0: data, 1: title, 2: header
4984
  BITCODE_BL num_rowstyles; // always 3
4985
  Dwg_TABLESTYLE_rowstyles *rowstyles;
4986
} Dwg_Object_TABLESTYLE;
4987
4988
/**
4989
 Class CELLSTYLEMAP (varies)
4990
 R2008+ TABLESTYLE extension class
4991
 */
4992
typedef struct _dwg_object_CELLSTYLEMAP
4993
{
4994
  struct _dwg_object_object *parent;
4995
  BITCODE_BL num_cells;
4996
  Dwg_TABLESTYLE_CellStyle *cells;
4997
} Dwg_Object_CELLSTYLEMAP;
4998
4999
/* 20.4.103 TABLEGEOMETRY
5000
 r2008+ optional, == 20.4.98
5001
 */
5002
5003
typedef struct _dwg_TABLEGEOMETRY_Cell
5004
{
5005
  struct _dwg_object_TABLEGEOMETRY *parent;
5006
  BITCODE_BL geom_data_flag;
5007
  BITCODE_BD width_w_gap;
5008
  BITCODE_BD height_w_gap;
5009
  BITCODE_H tablegeometry;
5010
  BITCODE_BL num_geometry;
5011
  Dwg_CellContentGeometry *geometry;
5012
} Dwg_TABLEGEOMETRY_Cell;
5013
5014
typedef struct _dwg_object_TABLEGEOMETRY
5015
{
5016
  struct _dwg_object_object *parent;
5017
  BITCODE_BL numrows;
5018
  BITCODE_BL numcols;
5019
  BITCODE_BL num_cells; /* = num_rows * num_cols */
5020
  Dwg_TABLEGEOMETRY_Cell *cells;
5021
} Dwg_Object_TABLEGEOMETRY;
5022
5023
5024
/**
5025
  Abstract class UNDERLAYDEFINITION (varies)
5026
  Parent of {PDF,DGN,DWF}DEFINITION
5027
 */
5028
typedef struct _dwg_abstractobject_UNDERLAYDEFINITION
5029
{
5030
  struct _dwg_object_object *parent;
5031
5032
  BITCODE_T filename; /*!< DXF 1, relative or absolute path to the image file */
5033
  BITCODE_T name;     /*!< DXF 2, pdf: page number, dgn: default, dwf: ? */
5034
} Dwg_Object_UNDERLAYDEFINITION;
5035
5036
typedef struct _dwg_abstractobject_UNDERLAYDEFINITION Dwg_Object_PDFDEFINITION;
5037
typedef struct _dwg_abstractobject_UNDERLAYDEFINITION Dwg_Object_DGNDEFINITION;
5038
typedef struct _dwg_abstractobject_UNDERLAYDEFINITION Dwg_Object_DWFDEFINITION;
5039
5040
/**
5041
 Abstract entity UNDERLAY, the reference (varies)
5042
 As IMAGE or WIPEOUT but snappable, and with holes.
5043
 Parent of {PDF,DGN,DWF}UNDERLAY
5044
 In C++ as UnderlayReference
5045
 */
5046
typedef struct _dwg_abstractentity_UNDERLAY
5047
{
5048
  struct _dwg_object_entity *parent;
5049
5050
  BITCODE_BE extrusion; /*!< DXF 210 normal */
5051
  BITCODE_3BD ins_pt;  /*!< DXF 10 */
5052
  BITCODE_3BD scale;   /*!< DXF 41 */
5053
  BITCODE_BD angle;    /*!< DXF 50 */
5054
  BITCODE_RC flag;     /*!< DXF 280: 1 is_clipped, 2 is_on, 4 is_monochrome,
5055
                            8 is_adjusted_for_background, 16 is_clip_inverted,
5056
                            ? is_frame_visible, ? is_frame_plottable */
5057
  BITCODE_RC contrast; /*!< DXF 281 20-100, def: 100 */
5058
  BITCODE_RC fade;     /*!< DXF 282 0-80, def: 0 */
5059
  BITCODE_BL num_clip_verts;
5060
  BITCODE_2RD *clip_verts;     /*!< DXF 11: if 2 rectangle, > polygon */
5061
  /* Note that neither Wipeout nor RasterImage has these inverted clips, allowing one hole.
5062
     They just have an clip_mode flag for is_inverted.
5063
     GeoJSON/GIS has multiple polygons, allowing multiple nested holes. */
5064
  BITCODE_BS num_clip_inverts; /*!< DXF 170 */
5065
  BITCODE_2RD *clip_inverts;   /*!< DXF 12  */
5066
  BITCODE_H definition_id;     /*!< DXF 340 */
5067
} Dwg_Entity_UNDERLAY;
5068
5069
typedef struct _dwg_abstractentity_UNDERLAY Dwg_Entity_PDFUNDERLAY;
5070
typedef struct _dwg_abstractentity_UNDERLAY Dwg_Entity_DGNUNDERLAY;
5071
typedef struct _dwg_abstractentity_UNDERLAY Dwg_Entity_DWFUNDERLAY;
5072
5073
/**
5074
 Class DBCOLOR (varies)
5075
 */
5076
typedef struct _dwg_object_DBCOLOR
5077
{
5078
  struct _dwg_object_object *parent;
5079
  BITCODE_CMC color;   //62,420,430
5080
} Dwg_Object_DBCOLOR;
5081
5082
/**
5083
 Class FIELDLIST AcDbField (varies)
5084
 R2018+
5085
 */
5086
typedef struct _dwg_FIELD_ChildValue
5087
{
5088
  struct _dwg_object_FIELD *parent;
5089
  BITCODE_TV key;   /*!< DXF 6 */
5090
  Dwg_TABLE_value value;
5091
} Dwg_FIELD_ChildValue;
5092
5093
typedef struct _dwg_object_FIELD
5094
{
5095
  struct _dwg_object_object *parent;
5096
                    /* dxf group code */
5097
  BITCODE_TV id;           /* 1 */
5098
  BITCODE_TV code;         /* 2,3 */
5099
  BITCODE_BL num_childs;   /* 90 */
5100
  BITCODE_H *childs;       /* code:3, 360 */
5101
  BITCODE_BL num_objects;  /* 97 */
5102
  BITCODE_H *objects;      /* code:5, 331 */
5103
  BITCODE_TV format;       /* 4, until r2004 only */
5104
  BITCODE_BL evaluation_option; /* 91 */
5105
  BITCODE_BL filing_option;     /* 92 */
5106
  BITCODE_BL field_state;       /* 94 */
5107
  BITCODE_BL evaluation_status; /* 95 */
5108
  BITCODE_BL evaluation_error_code; /* 96 */
5109
  BITCODE_TV evaluation_error_msg;  /* 300 */
5110
  Dwg_TABLE_value value;
5111
  BITCODE_TV value_string;        /* 301,9 */
5112
  BITCODE_BL value_string_length; /* 98 ODA bug: TV */
5113
  BITCODE_BL num_childval;      /* 93 */
5114
  Dwg_FIELD_ChildValue *childval;
5115
} Dwg_Object_FIELD;
5116
5117
/**
5118
 * Object FIELDLIST (varies)
5119
 */
5120
typedef struct _dwg_object_FIELDLIST
5121
{
5122
  struct _dwg_object_object *parent;
5123
5124
  BITCODE_BL num_fields;
5125
  BITCODE_B unknown;
5126
  BITCODE_H *fields;
5127
} Dwg_Object_FIELDLIST;
5128
5129
/**
5130
 Class GEODATA (varies)
5131
 R2009+
5132
 */
5133
typedef struct _dwg_GEODATA_meshpt
5134
{
5135
  BITCODE_2RD source_pt;
5136
  BITCODE_2RD dest_pt;
5137
} Dwg_GEODATA_meshpt;
5138
5139
typedef struct _dwg_GEODATA_meshface
5140
{
5141
  BITCODE_BL face1;
5142
  BITCODE_BL face2;
5143
  BITCODE_BL face3;
5144
} Dwg_GEODATA_meshface;
5145
5146
typedef struct _dwg_object_GEODATA
5147
{                   /* dxf group code */
5148
  struct _dwg_object_object *parent;
5149
5150
  BITCODE_BL class_version;
5151
  BITCODE_H host_block;
5152
  BITCODE_BS coord_type; /* 0 unknown, 1 local grid, 2 projected grid,
5153
                            3 geographic defined by latitude/longitude) */
5154
  BITCODE_3BD design_pt;
5155
  BITCODE_3BD ref_pt;
5156
  BITCODE_3BD obs_pt;
5157
  BITCODE_3BD scale_vec; // always 1.0,1.0,1.0
5158
  BITCODE_BD unit_scale_horiz;
5159
  BITCODE_BL units_value_horiz; // enum 0-20
5160
  BITCODE_BD unit_scale_vert;
5161
  BITCODE_BL units_value_vert; // enum 0-20
5162
  BITCODE_3BD up_dir;
5163
  BITCODE_2RD north_dir;
5164
  BITCODE_BL scale_est; /* None = 1, User specified scale factor = 2,
5165
                           Grid scale at reference point = 3, Prismodial = 4 */
5166
  BITCODE_BD user_scale_factor;
5167
  BITCODE_B do_sea_level_corr;
5168
  BITCODE_BD sea_level_elev;
5169
  BITCODE_BD coord_proj_radius;
5170
  BITCODE_T coord_system_def;
5171
  BITCODE_T geo_rss_tag;
5172
  BITCODE_T coord_system_datum; /* obsolete */
5173
  BITCODE_T coord_system_wkt; /* obsolete */
5174
5175
  BITCODE_T observation_from_tag;
5176
  BITCODE_T observation_to_tag;
5177
  BITCODE_T observation_coverage_tag;
5178
  BITCODE_BL num_geomesh_pts;
5179
  Dwg_GEODATA_meshpt *geomesh_pts;
5180
  BITCODE_BL num_geomesh_faces;
5181
  Dwg_GEODATA_meshface *geomesh_faces;
5182
5183
  BITCODE_B has_civil_data;
5184
  BITCODE_B obsolete_false;
5185
  BITCODE_2RD ref_pt2d; // (y, x) of ref_pt reversed
5186
  BITCODE_3BD zero1, zero2;
5187
  BITCODE_BL unknown1;
5188
  BITCODE_BL unknown2;
5189
  BITCODE_B unknown_b;
5190
  BITCODE_BD north_dir_angle_deg;
5191
  BITCODE_BD north_dir_angle_rad;
5192
} Dwg_Object_GEODATA;
5193
5194
/**
5195
 Class IDBUFFER (varies)
5196
 */
5197
typedef struct _dwg_object_IDBUFFER
5198
{
5199
  struct _dwg_object_object *parent;
5200
5201
  BITCODE_RC unknown;
5202
  BITCODE_BL num_obj_ids;
5203
  BITCODE_H* obj_ids;
5204
} Dwg_Object_IDBUFFER;
5205
5206
/**
5207
 Classes for IMAGE (varies)
5208
 */
5209
5210
typedef struct _dwg_entity_IMAGE
5211
{
5212
  struct _dwg_object_entity *parent;
5213
  // also used in WIPEOUT
5214
  BITCODE_BL class_version;
5215
  BITCODE_3BD pt0;
5216
  BITCODE_3BD uvec;
5217
  BITCODE_3BD vvec;
5218
  BITCODE_2RD image_size;   /*!< DXF 13/23; width, height in pixel */
5219
  BITCODE_BS display_props;
5220
  BITCODE_B clipping;
5221
  BITCODE_RC brightness;
5222
  BITCODE_RC contrast;
5223
  BITCODE_RC fade;
5224
  BITCODE_B clip_mode;           // 0 outside, 1 inside (inverted)
5225
  BITCODE_BS clip_boundary_type; // 1 rect, 2 polygon
5226
  BITCODE_BL num_clip_verts;
5227
  BITCODE_2RD* clip_verts;
5228
  BITCODE_H imagedef;
5229
  BITCODE_H imagedefreactor;
5230
} Dwg_Entity_IMAGE;
5231
5232
/**
5233
 Class IMAGEDEF (varies)
5234
 */
5235
typedef struct _dwg_object_IMAGEDEF
5236
{
5237
  struct _dwg_object_object *parent;
5238
5239
  BITCODE_BL class_version;
5240
  BITCODE_2RD image_size;
5241
  BITCODE_T file_path;
5242
  BITCODE_B is_loaded;
5243
  BITCODE_RC resunits;
5244
  BITCODE_2RD pixel_size;  // resolution MM/pixel
5245
  //BITCODE_H xrefctrl;    /*!< r2010+ */
5246
} Dwg_Object_IMAGEDEF;
5247
5248
/**
5249
 Class IMAGEDEF_REACTOR (varies)
5250
 */
5251
typedef struct _dwg_object_IMAGEDEF_REACTOR
5252
{
5253
  struct _dwg_object_object *parent;
5254
5255
  BITCODE_BL class_version;
5256
} Dwg_Object_IMAGEDEF_REACTOR;
5257
5258
/**
5259
 Class INDEX (varies)
5260
 Registered as "AutoCAD 2000", but not seen in the wild.
5261
 */
5262
typedef struct _dwg_object_INDEX
5263
{
5264
  struct _dwg_object_object *parent;
5265
  BITCODE_TIMEBLL last_updated;
5266
} Dwg_Object_INDEX;
5267
5268
/**
5269
 Class LAYER_INDEX (varies)
5270
 */
5271
typedef struct _dwg_LAYER_entry
5272
{
5273
  struct _dwg_object_LAYER_INDEX *parent;
5274
  BITCODE_BL numlayers;
5275
  BITCODE_T name;
5276
  BITCODE_H handle;
5277
} Dwg_LAYER_entry;
5278
5279
typedef struct _dwg_object_LAYER_INDEX
5280
{
5281
  struct _dwg_object_object *parent;
5282
  BITCODE_TIMEBLL last_updated;
5283
  BITCODE_BL num_entries;
5284
  Dwg_LAYER_entry* entries;
5285
} Dwg_Object_LAYER_INDEX;
5286
5287
/**
5288
 Class LWPOLYLINE (77 + varies)
5289
 */
5290
typedef struct _dwg_entity_LWPOLYLINE
5291
{
5292
  struct _dwg_object_entity *parent;
5293
5294
  BITCODE_BS flag;              /*!< DXF 70
5295
                                  512 closed, 128 plinegen, 4 constwidth, 8 elevation, 2 thickness
5296
                                  1 extrusion, 16 num_bulges, 1024 vertexidcount, 32 has_widths */
5297
  BITCODE_BD const_width;       /*!< DXF 43 */
5298
  BITCODE_BD elevation;         /*!< DXF 38 */
5299
  BITCODE_BD thickness;         /*!< DXF 39 */
5300
  BITCODE_BE extrusion;        /*!< DXF 210 */
5301
  BITCODE_BL num_points;        /*!< DXF 90 */
5302
  BITCODE_2RD* points;          /*!< DXF 10,20 */
5303
  BITCODE_BL num_bulges;
5304
  BITCODE_BD* bulges;           /*!< DXF 42 */
5305
  BITCODE_BL num_vertexids;     /*!< r2010+, same as num_points */
5306
  BITCODE_BL* vertexids;        /*!< r2010+ DXF 91 */
5307
  BITCODE_BL num_widths;
5308
  Dwg_LWPOLYLINE_width* widths; /*!< DXF 40,41 */
5309
} Dwg_Entity_LWPOLYLINE;
5310
5311
/**
5312
 Class RASTERVARIABLES (varies)
5313
 (used in conjunction with IMAGE entities)
5314
 */
5315
typedef struct _dwg_object_RASTERVARIABLES
5316
{
5317
  struct _dwg_object_object *parent;
5318
5319
  BITCODE_BL class_version;
5320
  BITCODE_BS image_frame;
5321
  BITCODE_BS image_quality;
5322
  BITCODE_BS units; // DXF 72, i.e. user_scale
5323
} Dwg_Object_RASTERVARIABLES;
5324
5325
/**
5326
 Object SCALE (varies)
5327
 */
5328
typedef struct _dwg_object_SCALE
5329
{
5330
  struct _dwg_object_object *parent;
5331
5332
  BITCODE_BS flag; /* 1: is_temporary */
5333
  BITCODE_TV name;
5334
  BITCODE_BD paper_units;
5335
  BITCODE_BD drawing_units;
5336
  BITCODE_B is_unit_scale;
5337
} Dwg_Object_SCALE;
5338
5339
/**
5340
 Class SORTENTSTABLE (varies)
5341
 */
5342
typedef struct _dwg_object_SORTENTSTABLE
5343
{
5344
  struct _dwg_object_object *parent;
5345
5346
  BITCODE_BL num_ents;
5347
  BITCODE_H* sort_ents;
5348
  BITCODE_H block_owner; // mspace or pspace
5349
  BITCODE_H* ents;
5350
} Dwg_Object_SORTENTSTABLE;
5351
5352
/**
5353
 Class SPATIAL_FILTER (varies)
5354
 */
5355
typedef struct _dwg_object_SPATIAL_FILTER
5356
{
5357
  struct _dwg_object_object *parent;
5358
5359
  BITCODE_BS num_clip_verts;
5360
  BITCODE_2RD* clip_verts;
5361
  BITCODE_BE extrusion;
5362
  BITCODE_3BD origin;
5363
  BITCODE_BS display_boundary_on;
5364
  BITCODE_BS front_clip_on;
5365
  BITCODE_BD front_clip_z;
5366
  BITCODE_BS back_clip_on;
5367
  BITCODE_BD back_clip_z;
5368
  BITCODE_BD* inverse_transform;
5369
  BITCODE_BD* transform;
5370
} Dwg_Object_SPATIAL_FILTER;
5371
5372
/**
5373
 Class SPATIAL_INDEX (varies)
5374
 ODA only covers the AcDbFilter class, but misses the rest.
5375
 */
5376
typedef struct _dwg_object_SPATIAL_INDEX
5377
{
5378
  struct _dwg_object_object *parent;
5379
5380
  BITCODE_TIMEBLL last_updated;
5381
  BITCODE_BD num1, num2, num3, num4, num5, num6;
5382
  BITCODE_BL num_hdls;
5383
  BITCODE_H *hdls;
5384
  BITCODE_BL bindata_size;
5385
  BITCODE_TF bindata;
5386
} Dwg_Object_SPATIAL_INDEX;
5387
5388
/**
5389
 WIPEOUT (varies, 504)
5390
 R2000+, undocumented = IMAGE layover
5391
 */
5392
typedef struct _dwg_entity_WIPEOUT
5393
{
5394
  struct _dwg_object_entity *parent;
5395
5396
  BITCODE_BL class_version;
5397
  BITCODE_3BD pt0;
5398
  BITCODE_3BD uvec;
5399
  BITCODE_3BD vvec;
5400
  BITCODE_2RD image_size;
5401
  BITCODE_BS display_props;
5402
  BITCODE_B clipping;
5403
  BITCODE_RC brightness;
5404
  BITCODE_RC contrast;
5405
  BITCODE_RC fade;
5406
  BITCODE_B clip_mode;           // 0 outside, 1 inside (inverted)
5407
  BITCODE_BS clip_boundary_type; // 1 rect, 2 polygon
5408
  BITCODE_BL num_clip_verts;
5409
  BITCODE_2RD* clip_verts;
5410
  BITCODE_H imagedef;
5411
  BITCODE_H imagedefreactor;
5412
} Dwg_Entity_WIPEOUT;
5413
5414
/**
5415
 Class WIPEOUTVARIABLES (varies, 505)
5416
 R2000+, Object bitsize: 96
5417
 */
5418
typedef struct _dwg_object_WIPEOUTVARIABLES
5419
{
5420
  struct _dwg_object_object *parent;
5421
  //BITCODE_BL class_version;  /*!< DXF 90 NY */
5422
  BITCODE_BS display_frame;    /*!< DXF 70  */
5423
} Dwg_Object_WIPEOUTVARIABLES;
5424
5425
/* SECTIONPLANE, r2007+
5426
 * Looks like the livesection ptr from VIEW
5427
 */
5428
typedef struct _dwg_entity_SECTIONOBJECT
5429
{
5430
  struct _dwg_object_entity *parent;
5431
  BITCODE_BL state;   /*!< DXF 90. Plane=1, Boundary=2, Volume=4 */
5432
  BITCODE_BL flags;   /*!< DXF 91. hitflags: sectionline=1, sectionlinetop=2, sectionlinebottom=4,
5433
                                  backline=8, backlinetop=16, backlinebottom=32, verticallinetop=64,
5434
                                  verticallinebottom=128.
5435
                                  heightflags: HeightAboveSectionLine=1, HeightBelowSectionLine=2
5436
                                 */
5437
  BITCODE_T name;   /*!< DXF 1 */
5438
  //BITCODE_3BD viewing_dir;  /*!< normal of the 1st segment plane */
5439
  BITCODE_3BD vert_dir;         /*!< DXF 10. normal to the segment line, on the plane */
5440
  BITCODE_BD top_height;  /*!< DXF 40 */
5441
  BITCODE_BD bottom_height; /*!< DXF 41 */
5442
  BITCODE_BS indicator_alpha; /*!< DXF 70 */
5443
  BITCODE_CMC indicator_color;  /*!< DXF 62/420 (but documented as 63/411) */
5444
  BITCODE_BL num_verts;   /*!< DXF 92 */
5445
  BITCODE_3BD *verts;   /*!< DXF 11 */
5446
  BITCODE_BL num_blverts; /*!< DXF 93 */
5447
  BITCODE_3BD *blverts;   /*!< DXF 12 */
5448
  BITCODE_H section_settings; /*!< DXF 360 */
5449
5450
} Dwg_Entity_SECTIONOBJECT;
5451
5452
/**
5453
 Unstable
5454
 Class VISUALSTYLE (varies)
5455
 R2007+
5456
5457
 32 types, with 3 categories: Face, Edge, Display, plus 58 props r2013+
5458
 */
5459
typedef struct _dwg_object_VISUALSTYLE
5460
{
5461
  struct _dwg_object_object *parent;
5462
  BITCODE_T description;          /*!< DXF 2  */
5463
  BITCODE_BL style_type;          /*!< DXF 70 enum 0-32: (kFlat-kEmptyStyle acgivisualstyle.h) */
5464
  BITCODE_BS ext_lighting_model;  /*!< DXF 177, r2010+ ? required on has_xdata */
5465
  BITCODE_B internal_only;        /*!< DXF 291, has internal_use_only flags */
5466
  BITCODE_BL face_lighting_model; /*!< DXF 71 0:Invisible 1:Visible 2:Phong 3:Gooch */
5467
  BITCODE_BS face_lighting_model_int;   /*!< DXF 176 r2010+ */
5468
  BITCODE_BL face_lighting_quality;     /*!< DXF 72 0:No lighting 1:Per face 2:Per vertex */
5469
  BITCODE_BS face_lighting_quality_int; /*!< DXF 176 r2010+ */
5470
  BITCODE_BL face_color_mode;   /*!< DXF 73 0 = No color
5471
                                            1 = Object color
5472
                                            2 = Background color
5473
                                            3 = Custom color
5474
                                            4 = Mono color
5475
                                            5 = Tinted
5476
                                            6 = Desaturated */
5477
  BITCODE_BS face_color_mode_int; /*!< DXF 176 r2010+ */
5478
  BITCODE_BD face_opacity;      /*!< DXF 40  */
5479
  BITCODE_BS face_opacity_int;  /*!< DXF 176 r2010+ */
5480
  BITCODE_BD face_specular;     /*!< DXF 41  */
5481
  BITCODE_BS face_specular_int; /*!< DXF 176 r2010+ */
5482
  BITCODE_BL face_modifier;     /*!< DXF 90 0:No modifiers 1:Opacity 2:Specular */
5483
  BITCODE_BS face_modifier_int; /*!< DXF 176 r2010+ */
5484
  BITCODE_CMC face_mono_color;  /*!< DXF 63 + 421 */
5485
  BITCODE_BS face_mono_color_int; /*!< DXF 176 r2010+ */
5486
  BITCODE_BS edge_model;        /*!< DXF 74 0:No edges 1:Isolines 2:Facet edges */
5487
  BITCODE_BS edge_model_int;    /*!< DXF 176 r2010+ */
5488
  BITCODE_BL edge_style;        /*!< DXF 91  */
5489
  BITCODE_BS edge_style_int;    /*!< DXF 176 r2010+ */
5490
  BITCODE_CMC edge_intersection_color;  /*!< DXF 64  */
5491
  BITCODE_BS edge_intersection_color_int; /*!< DXF 176 r2010+ */
5492
  BITCODE_CMC edge_obscured_color;      /*!< DXF 65  */
5493
  BITCODE_BS edge_obscured_color_int;   /*!< DXF 176 r2010+ */
5494
  BITCODE_BL edge_obscured_ltype;      /*!< DXF 75   */
5495
  BITCODE_BS edge_obscured_ltype_int;  /*!< DXF 176 r2010+ */
5496
  BITCODE_BL edge_intersection_ltype;  /*!< DXF 175  */
5497
  BITCODE_BS edge_intersection_ltype_int; /*!< DXF 176 r2010+ */
5498
  BITCODE_BD edge_crease_angle;         /*!< DXF 42  */
5499
  BITCODE_BS edge_crease_angle_int;     /*!< DXF 176 r2010+ */
5500
  BITCODE_BL edge_modifier;             /*!< DXF 92  */
5501
  BITCODE_BS edge_modifier_int;         /*!< DXF 176 r2010+ */
5502
  BITCODE_CMC edge_color;               /*!< DXF 66  */
5503
  BITCODE_BS edge_color_int;            /*!< DXF 176 r2010+ */
5504
  BITCODE_BD edge_opacity;              /*!< DXF 43  */
5505
  BITCODE_BS edge_opacity_int;          /*!< DXF 176 r2010+ */
5506
  BITCODE_BL edge_width;                /*!< DXF 76  */
5507
  BITCODE_BS edge_width_int;            /*!< DXF 176 r2010+ */
5508
  BITCODE_BL edge_overhang;             /*!< DXF 77  */
5509
  BITCODE_BS edge_overhang_int;         /*!< DXF 176 r2010+ */
5510
  BITCODE_BL edge_jitter;               /*!< DXF 78  */
5511
  BITCODE_BS edge_jitter_int;           /*!< DXF 176 r2010+ */
5512
  BITCODE_CMC edge_silhouette_color;    /*!< DXF 67  */
5513
  BITCODE_BS edge_silhouette_color_int; /*!< DXF 176 r2010+ */
5514
  BITCODE_BL edge_silhouette_width;     /*!< DXF 79  */
5515
  BITCODE_BS edge_silhouette_width_int; /*!< DXF 176 r2010+ */
5516
  BITCODE_BL edge_halo_gap;             /*!< DXF 170  */
5517
  BITCODE_BS edge_halo_gap_int;         /*!< DXF 176 r2010+ */
5518
  BITCODE_BL edge_isolines;             /*!< DXF 171  */
5519
  BITCODE_BS edge_isolines_int;         /*!< DXF 176 r2010+ */
5520
  BITCODE_B  edge_do_hide_precision;    /*!< DXF 290  */
5521
  BITCODE_BS edge_do_hide_precision_int;/*!< DXF 176 r2010+ */
5522
  BITCODE_BL edge_style_apply;      /*!< DXF 174  */
5523
  BITCODE_BS edge_style_apply_int;  /*!< DXF 176 r2010+  */
5524
  BITCODE_BL display_settings;          /*!< DXF 93 flags  */
5525
  BITCODE_BS display_settings_int;      /*!< DXF 176 r2010+ */
5526
  BITCODE_BLd display_brightness_bl;    /*!< DXF 44 <=r2007 */
5527
  BITCODE_BD display_brightness;        /*!< DXF 44  r2010+ */
5528
  BITCODE_BS display_brightness_int;    /*!< DXF 176 r2010+ */
5529
  BITCODE_BL display_shadow_type;       /*!< DXF 173  */
5530
  BITCODE_BS display_shadow_type_int;   /*!< DXF 176 r2010+ */
5531
  BITCODE_BD bd2007_45;                 /*!< DXF 45 r2007-only 0.0 */
5532
5533
  BITCODE_BS num_props;     /*!< r2013+ version3 58x */
5534
  /* the rest of the props:
5535
     all bool are 290, all BS/BL are 90, all BD are 40, colors 62, text 1 */
5536
  BITCODE_B b_prop1c;   BITCODE_BS b_prop1c_int;
5537
  BITCODE_B b_prop1d;   BITCODE_BS b_prop1d_int;
5538
  BITCODE_B b_prop1e;   BITCODE_BS b_prop1e_int;
5539
  BITCODE_B b_prop1f;   BITCODE_BS b_prop1f_int;
5540
  BITCODE_B b_prop20;   BITCODE_BS b_prop20_int;
5541
  BITCODE_B b_prop21;   BITCODE_BS b_prop21_int;
5542
  BITCODE_B b_prop22;   BITCODE_BS b_prop22_int;
5543
  BITCODE_B b_prop23;   BITCODE_BS b_prop23_int;
5544
  BITCODE_B b_prop24;   BITCODE_BS b_prop24_int;
5545
  BITCODE_BL bl_prop25; BITCODE_BS bl_prop25_int;
5546
  BITCODE_BD bd_prop26; BITCODE_BS bd_prop26_int;
5547
  BITCODE_BD bd_prop27; BITCODE_BS bd_prop27_int;
5548
  BITCODE_BL bl_prop28; BITCODE_BS bl_prop28_int;
5549
  BITCODE_CMC c_prop29; BITCODE_BS c_prop29_int;
5550
  BITCODE_BL bl_prop2a; BITCODE_BS bl_prop2a_int;
5551
  BITCODE_BL bl_prop2b; BITCODE_BS bl_prop2b_int;
5552
  BITCODE_CMC c_prop2c; BITCODE_BS c_prop2c_int;
5553
  BITCODE_B b_prop2d;   BITCODE_BS b_prop2d_int;
5554
  BITCODE_BL bl_prop2e; BITCODE_BS bl_prop2e_int;
5555
  BITCODE_BL bl_prop2f; BITCODE_BS bl_prop2f_int;
5556
  BITCODE_BL bl_prop30; BITCODE_BS bl_prop30_int;
5557
  BITCODE_B b_prop31;   BITCODE_BS b_prop31_int;
5558
  BITCODE_BL bl_prop32; BITCODE_BS bl_prop32_int;
5559
  BITCODE_CMC c_prop33; BITCODE_BS c_prop33_int;
5560
  BITCODE_BD bd_prop34; BITCODE_BS bd_prop34_int;
5561
  BITCODE_BL edge_wiggle;BITCODE_BS edge_wiggle_int;
5562
  BITCODE_T strokes;    BITCODE_BS strokes_int;
5563
  BITCODE_B b_prop37;   BITCODE_BS b_prop37_int;
5564
  BITCODE_BD bd_prop38; BITCODE_BS bd_prop38_int;
5565
  BITCODE_BD bd_prop39; BITCODE_BS bd_prop39_int;
5566
5567
} Dwg_Object_VISUALSTYLE;
5568
5569
/**
5570
 Object LIGHTLIST (varies)
5571
 R2010+
5572
 */
5573
5574
typedef struct _dwg_LIGHTLIST_light
5575
{
5576
  struct _dwg_object_LIGHTLIST *parent;
5577
  BITCODE_T name;
5578
  BITCODE_H handle;
5579
} Dwg_LIGHTLIST_light;
5580
5581
/* 2010+ */
5582
typedef struct _dwg_object_LIGHTLIST
5583
{
5584
  struct _dwg_object_object *parent;
5585
  BITCODE_BL class_version;
5586
  BITCODE_BL num_lights;
5587
  Dwg_LIGHTLIST_light *lights;
5588
} Dwg_Object_LIGHTLIST;
5589
5590
5591
typedef struct _dwg_MATERIAL_color
5592
{
5593
  struct _dwg_object_object *parent;
5594
  BITCODE_RC flag;    /*!< 0 Use current color, 1 Override */
5595
  BITCODE_BD factor;  /*!< 0.0 - 1.0 */
5596
  BITCODE_BL rgb;
5597
} Dwg_MATERIAL_color;
5598
5599
typedef struct _dwg_MATERIAL_mapper
5600
{
5601
  struct _dwg_object_object *parent;
5602
  BITCODE_BD blendfactor;   /*!< DXF 42  def: 1.0 */
5603
  BITCODE_BD* transmatrix;  /*!< DXF 43: 16x BD */
5604
  BITCODE_T filename;       /*!< DXF 3   if NULL no diffuse map */
5605
  Dwg_MATERIAL_color color1;
5606
  Dwg_MATERIAL_color color2;
5607
  BITCODE_RC source;        /*!< DXF 72  0 current, 1 image file (def), 2 2nd map? */
5608
  BITCODE_RC projection;    /*!< DXF 73  1 Planar (def), 2 Box, 3 Cylinder, 4 Sphere */
5609
  BITCODE_RC tiling;        /*!< DXF 74  1 = Tile (def), 2 = Crop, 3 = Clamp */
5610
  BITCODE_RC autotransform; /*!< DXF 75  1 no, 2: scale to curr ent,
5611
                                         4: w/ current block transform */
5612
  /* marble, wood and procedural modes */
5613
  BITCODE_BS texturemode;
5614
} Dwg_MATERIAL_mapper;
5615
5616
typedef struct _dwg_MATERIAL_gentexture
5617
{
5618
  struct _dwg_object_MATERIAL *parent;
5619
  BITCODE_T genprocname;
5620
  struct _dwg_object_MATERIAL *material;
5621
} Dwg_MATERIAL_gentexture;
5622
5623
/**
5624
 Object MATERIAL (varies)
5625
 Acad Naming: e.g. Materials/assetlibrary_base.fbm/shaders/AdskShaders.mi
5626
                  Materials/assetlibrary_base.fbm/Mats/SolidGlass/Generic.xml
5627
 */
5628
typedef struct _dwg_object_MATERIAL
5629
{
5630
  struct _dwg_object_object *parent;
5631
5632
  BITCODE_T name;       /*!< DXF 1 */
5633
  BITCODE_T description;    /*!< DXF 2 optional */
5634
5635
  Dwg_MATERIAL_color ambient_color;    /*!< DXF 70, 40, 90 */
5636
  Dwg_MATERIAL_color diffuse_color;    /*!< DXF 71, 41, 91 */
5637
  Dwg_MATERIAL_mapper diffusemap;      /*!< DXF 42, 72, 3, 73, 74, 75, 43 */
5638
5639
  BITCODE_BD specular_gloss_factor;    /*!< DXF 44 def: 0.5 */
5640
  Dwg_MATERIAL_color specular_color;   /*!< DXF 76, 45, 92 */
5641
  Dwg_MATERIAL_mapper specularmap;     /*!< DXF 46, 77, 4, 78, 79, 170, 47 */
5642
5643
  //?? BD reflection_depth
5644
  //reflection_glossy_samples
5645
  Dwg_MATERIAL_mapper reflectionmap;   /*!< DXF 48, 171, 6, 172, 173, 174, 49 */
5646
5647
  BITCODE_BD opacity_percent;          /*!< DXF 140 def: 1.0 */
5648
  Dwg_MATERIAL_mapper opacitymap;      /*!< DXF 141, 175, 7, 176, 177, 178, 142 */
5649
5650
  //BITCODE_B bump_enable
5651
  //?BD bump_amount
5652
  Dwg_MATERIAL_mapper bumpmap;         /*!< DXF 143, 179, 8, 270, 271, 272, 144 */
5653
5654
  BITCODE_BD refraction_index;         /*!< DXF 145 def: 1.0 */
5655
  //?? BD refraction_depth
5656
  //?? BD refraction_translucency_weight
5657
  //?? refraction_glossy_samples
5658
  Dwg_MATERIAL_mapper refractionmap;   /*!< DXF 146, 273, 9, 274, 275, 276, 147 */
5659
5660
  BITCODE_BD color_bleed_scale;    /*!< DXF 460 */
5661
  BITCODE_BD indirect_bump_scale;  /*!< DXF 461 */
5662
  BITCODE_BD reflectance_scale;    /*!< DXF 462 */
5663
  BITCODE_BD transmittance_scale;  /*!< DXF 463 */
5664
  BITCODE_B two_sided_material;    /*!< DXF 290 */
5665
  BITCODE_BD luminance;            /*!< DXF 464 */
5666
  BITCODE_BS luminance_mode;       /*!< DXF 270 */
5667
  BITCODE_BD translucence;         /*!< DXF 148 */
5668
  BITCODE_BD self_illumination;    /*!< DXF 149 */
5669
  BITCODE_BD reflectivity;         /*!< DXF 468 */
5670
  BITCODE_BL illumination_model;   /*!< DXF 93 */
5671
  BITCODE_BL channel_flags;        /*!< DXF 94 */
5672
  BITCODE_BL mode;                 /*!< DXF 282 */
5673
5674
  BITCODE_T genprocname;           /*!< DXF 300 */
5675
  BITCODE_BS genproctype;
5676
  BITCODE_B genprocvalbool;        /*!< DXF 291 */
5677
  BITCODE_BS genprocvalint;        /*!< DXF 271 */
5678
  BITCODE_BD genprocvalreal;       /*!< DXF 469 */
5679
  BITCODE_T genprocvaltext;        /*!< DXF 301 */
5680
  BITCODE_CMC genprocvalcolor;     /*!< DXF 62 */
5681
  BITCODE_B genproctableend;       /*!< DXF 292 */
5682
  BITCODE_BS num_gentextures;
5683
  Dwg_MATERIAL_gentexture* gentextures;
5684
5685
#if 0
5686
  BITCODE_BS normalmap_method;     /*!< DXF 271 */
5687
  BITCODE_BD normalmap_strength;   /*!< DXF 465 def: 1.0 */
5688
  Dwg_MATERIAL_mapper normalmap;   /*!< DXF 42, 72, 3, 73, 74, 75, 43 */
5689
  BITCODE_B is_anonymous;          /*!< DXF 293 */
5690
  BITCODE_BS global_illumination;  /*!< DXF 272 */
5691
  BITCODE_BS final_gather;         /*!< DXF 273 */
5692
#endif
5693
  //? BD backface_cull
5694
  //? BD self_illum_luminance
5695
  //? BD self_illum_color_temperature
5696
} Dwg_Object_MATERIAL;
5697
5698
/**
5699
 Object OBJECT_PTR (varies) UNKNOWN FIELDS
5700
 yet unsorted, and unused.
5701
 */
5702
typedef struct _dwg_object_OBJECT_PTR
5703
{
5704
  struct _dwg_object_object *parent;
5705
} Dwg_Object_OBJECT_PTR;
5706
5707
/**
5708
 Entity LIGHT (varies)
5709
 UNSTABLE, now complete
5710
 */
5711
typedef struct _dwg_entity_LIGHT
5712
{
5713
  struct _dwg_object_entity *parent;
5714
5715
  BITCODE_BL class_version; /*!< DXF 90 */
5716
  BITCODE_T name;       /*!< DXF 1 */
5717
  BITCODE_BL type;      /*!< DXF 70, distant = 1; point = 2; spot = 3 */
5718
  BITCODE_B status;     /*!< DXF 290, on or off */
5719
  BITCODE_CMC light_color;  /*!< DXF 63 + 421. r2000: 90 for rgb */
5720
  BITCODE_B plot_glyph; /*!< DXF 291 */
5721
  BITCODE_BD intensity; /*!< DXF 40 */
5722
  BITCODE_3BD position; /*!< DXF 10 */
5723
  BITCODE_3BD target;   /*!< DXF 11 */
5724
  BITCODE_BL attenuation_type;        /*!< DXF 72. None=0, Inverse Linear=1,
5725
                                                   Inverse Square=2 */
5726
  BITCODE_B use_attenuation_limits;   /*!< DXF 292 */
5727
  BITCODE_BD attenuation_start_limit; /*!< DXF 41 */
5728
  BITCODE_BD attenuation_end_limit;   /*!< DXF 42 */
5729
  BITCODE_BD hotspot_angle;     /*!< DXF 50 */
5730
  BITCODE_BD falloff_angle;     /*!< DXF 51, with type=spot */
5731
  BITCODE_B cast_shadows;       /*!< DXF 293 */
5732
  BITCODE_BL shadow_type;       /*!< DXF 73, ray_traced=0, shadow_maps=1 */
5733
  BITCODE_BS shadow_map_size;     /*!< DXF 91 in pixel: 64,128,256,...4096 */
5734
  BITCODE_RC shadow_map_softness; /*!< DXF 280 1-10 (num pixels blend into) */
5735
5736
  BITCODE_B is_photometric;       /* if LIGHTINGUNITS == "2" */
5737
  BITCODE_B has_photometric_data;
5738
  BITCODE_B has_webfile;          /*!< DXF 290 */
5739
  BITCODE_T webfile;              /*!< DXF 300 IES file */
5740
  BITCODE_BS physical_intensity_method; /*!< DXF 70 */
5741
  BITCODE_BD physical_intensity;  /*!< DXF 40 */
5742
  BITCODE_BD illuminance_dist;    /*!< DXF 41 */
5743
  BITCODE_BS lamp_color_type;     /*!< DXF 71 0: in kelvin, 1: as preset */
5744
  BITCODE_BD lamp_color_temp;     /*!< DXF 42 Temperature in Kelvin */
5745
  BITCODE_BS lamp_color_preset;   /*!< DXF 72 */
5746
  BITCODE_BL lamp_color_rgb;      /*!< if lamp_color_preset is Custom */
5747
  BITCODE_3BD web_rotation;       /*!< DXF 43-45 rotation offset in XYZ Euler angles */
5748
  BITCODE_BS extlight_shape;      /*!< DXF 73: 0 linear, 1 rect, 2 disk, 3 cylinder, 4 sphere */
5749
  BITCODE_BD extlight_length;     /*!< DXF 46 */
5750
  BITCODE_BD extlight_width;      /*!< DXF 47 */
5751
  BITCODE_BD extlight_radius;     /*!< DXF 48 */
5752
  BITCODE_BS webfile_type;        /*!< DXF 74 */
5753
  BITCODE_BS web_symetry;         /*!< DXF 75 */
5754
  BITCODE_BS has_target_grip;     /*!< DXF 76
5755
                                       if the light displays a target grip for orienting
5756
                                       the light */
5757
  BITCODE_BD web_flux;        /*!< DXF 49 */
5758
  BITCODE_BD web_angle1;      /*!< DXF 50 */
5759
  BITCODE_BD web_angle2;      /*!< DXF 51 */
5760
  BITCODE_BD web_angle3;      /*!< DXF 52 */
5761
  BITCODE_BD web_angle4;      /*!< DXF 53 */
5762
  BITCODE_BD web_angle5;      /*!< DXF 54 */
5763
  BITCODE_BS glyph_display_type;  /*!< DXF 77 0:auto, 1:on, 2:off */
5764
} Dwg_Entity_LIGHT;
5765
5766
/**
5767
 Entity CAMERA (varies) UNKNOWN FIELDS
5768
 not DWG persistent. yet unsorted, and unused.
5769
 */
5770
typedef struct _dwg_entity_CAMERA
5771
{
5772
  struct _dwg_object_entity *parent;
5773
  BITCODE_H view;
5774
} Dwg_Entity_CAMERA;
5775
5776
/**
5777
 Entity GEOPOSITIONMARKER (varies)
5778
*/
5779
typedef struct _dwg_entity_GEOPOSITIONMARKER
5780
{
5781
  struct _dwg_object_entity *parent;
5782
  BITCODE_BS class_version; /*!< DXF 90 point, lat_lon, mylocation */
5783
  BITCODE_3BD position;     /*!< DXF 10 */
5784
  BITCODE_BD radius;        /*!< DXF 40 */
5785
  BITCODE_BD landing_gap;   /*!< DXF 40 */
5786
  BITCODE_T notes;          /*!< DXF 1 */
5787
  BITCODE_RC text_alignment;   /*!< DXF 70  0 left, 1 center, 2 right */
5788
  BITCODE_B mtext_visible;     /*!< DXF 290 */
5789
  BITCODE_B enable_frame_text; /*!< DXF 290 */
5790
  BITCODE_3BD ins_pt;          /* DXF only, = position */
5791
  BITCODE_2RD alignment_pt;    /* DXF only */
5792
  Dwg_AcDbMTextObjectEmbedded mtext;
5793
  BITCODE_B is_really_locked;       /*<! DXF 70 */
5794
  BITCODE_BS annotative_data_size;/* R2018+ */
5795
  BITCODE_RC* annotative_data;    /* R2018+ */
5796
  BITCODE_BS annotative_flag;    /* R2018+ */
5797
  BITCODE_H  annotative_style;    /* R2018+ */
5798
} Dwg_Entity_GEOPOSITIONMARKER;
5799
5800
/**
5801
 Object GEOMAPIMAGE (varies), LiveMap image overlay.
5802
 yet unsorted, and unused.
5803
*/
5804
typedef struct _dwg_object_GEOMAPIMAGE
5805
{
5806
  struct _dwg_object_object *parent;
5807
  BITCODE_BL class_version; // 90
5808
  BITCODE_3BD pt0; // 10
5809
  BITCODE_2RD image_size; // 13
5810
  BITCODE_BS display_props; // 70
5811
  BITCODE_B clipping; // 280 i.e. clipping_enabled
5812
  BITCODE_RC brightness; // 281
5813
  BITCODE_RC contrast; // 282
5814
  BITCODE_RC fade; // 283
5815
  BITCODE_BD rotation;
5816
  //?
5817
  //BITCODE_3BD origin;
5818
  BITCODE_BD image_width;
5819
  BITCODE_BD image_height;
5820
  BITCODE_T name;
5821
  BITCODE_BD image_file;
5822
  BITCODE_BD image_visibility;
5823
  BITCODE_BS transparency;
5824
  BITCODE_BD height;
5825
  BITCODE_BD width;
5826
  BITCODE_B show_rotation;
5827
  BITCODE_BD scale_factor;
5828
  BITCODE_BS geoimage_brightness;
5829
  BITCODE_BS geoimage_contrast;
5830
  BITCODE_BS geoimage_fade;
5831
  BITCODE_BS geoimage_position;
5832
  BITCODE_BS geoimage_width;
5833
  BITCODE_BS geoimage_height;
5834
} Dwg_Object_GEOMAPIMAGE;
5835
5836
/**
5837
 Entity HELIX (varies) UNSTABLE
5838
 subclass of SPLINE
5839
*/
5840
typedef struct _dwg_entity_HELIX
5841
{
5842
  struct _dwg_object_entity *parent;
5843
5844
  // AcDbSpline
5845
  BITCODE_BS flag; /* computed */
5846
  BITCODE_BS scenario; /* 1 spline, 2 bezier */
5847
  BITCODE_BS degree;   /* 2 quadratic, 3 cubic */
5848
  BITCODE_BL splineflags; /* 2013+: method fit points = 1, CV frame show = 2, closed = 4 */
5849
  BITCODE_BL knotparam;    /* 2013+: Chord = 0, Square root = 1, Uniform = 2, Custom = 15 */
5850
  BITCODE_BD fit_tol;
5851
  BITCODE_3BD beg_tan_vec;
5852
  BITCODE_3BD end_tan_vec;
5853
  BITCODE_B rational;
5854
  BITCODE_B closed_b;
5855
  BITCODE_B periodic;
5856
  BITCODE_B weighted; /* bit 4 of 70 */
5857
  BITCODE_BD knot_tol;
5858
  BITCODE_BD ctrl_tol;
5859
  BITCODE_BS num_fit_pts;
5860
  BITCODE_3DPOINT* fit_pts;
5861
  BITCODE_BL num_knots;
5862
  BITCODE_BD* knots;
5863
  BITCODE_BL num_ctrl_pts;
5864
  Dwg_SPLINE_control_point* ctrl_pts;
5865
  // AcDbHelix
5866
  BITCODE_BL major_version; /*!< DXF 90: 27 */
5867
  BITCODE_BL maint_version; /*!< DXF 91: 1 */
5868
  BITCODE_3BD axis_base_pt; /*!< DXF 10 */
5869
  BITCODE_3BD start_pt;     /*!< DXF 11 */
5870
  BITCODE_3BD axis_vector;  /*!< DXF 12 */
5871
  BITCODE_BD radius;        /*!< DXF 40 */
5872
  BITCODE_BD turns;         /*!< DXF 41 */
5873
  BITCODE_BD turn_height;   /*!< DXF 42 */
5874
  BITCODE_B handedness;       /*!< DXF 290: 0: left, 1: right (twist) */
5875
  BITCODE_RC constraint_type; /*!< DXF 280: 0: turn_height, 1: turns, 2: height */
5876
5877
} Dwg_Entity_HELIX;
5878
5879
// TODO ACSH_SWEEP_CLASS has different names,
5880
// ACIS (sweep:options) even more so. ACIS key names are weird though, Acad didn't take them.
5881
#define SWEEPOPTIONS_fields  \
5882
  BITCODE_BD draft_angle;        /*!< DXF 42 */ \
5883
  BITCODE_BD draft_start_distance; /*!< DXF 43 */ \
5884
  BITCODE_BD draft_end_distance;   /*!< DXF 44 */ \
5885
  BITCODE_BD twist_angle;        /*!< DXF 45 */ \
5886
  BITCODE_BD scale_factor;  /*!< DXF 48 */ \
5887
  BITCODE_BD align_angle;   /*!< DXF 49 */ \
5888
  BITCODE_BD* sweep_entity_transmatrix; /*!< DXF 46: 16x BD */ \
5889
  BITCODE_BD* path_entity_transmatrix;  /*!< DXF 47: 16x BD */ \
5890
  BITCODE_B is_solid;          /*!< DXF 290 */ \
5891
  BITCODE_BS sweep_alignment_flags; /*!< DXF 70. \
5892
                                      0=No alignment, 1=Align sweep entity to path, \
5893
                                      2=Translate sweep entity to path, \
5894
                                      3=Translate path to sweep entity */ \
5895
  BITCODE_BS path_flags; /*!< DXF 71 */                                 \
5896
  BITCODE_B align_start;                        /*!< DXF 292 */ \
5897
  BITCODE_B bank;                               /*!< DXF 293 */ \
5898
  BITCODE_B base_point_set;                     /*!< DXF 294 */ \
5899
  BITCODE_B sweep_entity_transform_computed;    /*!< DXF 295 */ \
5900
  BITCODE_B path_entity_transform_computed;     /*!< DXF 296 */ \
5901
  BITCODE_3BD reference_vector_for_controlling_twist; /*!< DXF 11 */ \
5902
  BITCODE_H sweep_entity; \
5903
  BITCODE_H path_entity
5904
5905
/**
5906
 Entity EXTRUDEDSURFACE (varies)
5907
 in DXF encrypted.
5908
*/
5909
typedef struct _dwg_entity_EXTRUDEDSURFACE
5910
{
5911
  struct _dwg_object_entity *parent;
5912
  _3DSOLID_FIELDS;
5913
  //? sweep_profile, taper_angle
5914
  BITCODE_BS modeler_format_version; /*!< DXF 70 */
5915
  BITCODE_BL bindata_size; // 90
5916
  BITCODE_TF bindata; // 310|1
5917
  BITCODE_BS u_isolines;        /*!< DXF 71 */
5918
  BITCODE_BS v_isolines;        /*!< DXF 72 */
5919
  BITCODE_BL class_version;   /*!< DXF 90 */
5920
  SWEEPOPTIONS_fields;
5921
  //BITCODE_BD height;
5922
  BITCODE_3BD sweep_vector;    /*!< DXF 10 */
5923
  BITCODE_BD* sweep_transmatrix; /*!< DXF 40: 16x BD */
5924
} Dwg_Entity_EXTRUDEDSURFACE;
5925
5926
/**
5927
 Entity SWEPTSURFACE (varies)
5928
*/
5929
typedef struct _dwg_entity_SWEPTSURFACE
5930
{
5931
  struct _dwg_object_entity *parent;
5932
  _3DSOLID_FIELDS;
5933
  BITCODE_BS modeler_format_version; /*!< DXF 70 */
5934
  BITCODE_BS u_isolines;         /*!< DXF 71 */
5935
  BITCODE_BS v_isolines;         /*!< DXF 72 */
5936
  BITCODE_BL class_version; /*!< DXF 90 */
5937
5938
  BITCODE_BL sweep_entity_id; // 90
5939
  BITCODE_BL sweepdata_size;
5940
  BITCODE_TF sweepdata;
5941
  BITCODE_BL path_entity_id;
5942
  BITCODE_BL pathdata_size;
5943
  BITCODE_TF pathdata;
5944
  SWEEPOPTIONS_fields;
5945
} Dwg_Entity_SWEPTSURFACE;
5946
5947
/**
5948
 Entity LOFTEDSURFACE (varies)
5949
*/
5950
typedef struct _dwg_entity_LOFTEDSURFACE
5951
{
5952
  struct _dwg_object_entity *parent;
5953
  _3DSOLID_FIELDS;
5954
  BITCODE_BS modeler_format_version; /*!< DXF 70 */
5955
  BITCODE_BS u_isolines;         /*!< DXF 71 */
5956
  BITCODE_BS v_isolines;         /*!< DXF 72 */
5957
  //BITCODE_BL class_version;      /*!< DXF 90 */
5958
  BITCODE_BD* loft_entity_transmatrix; /*!< DXF 40: 16x BD */
5959
  BITCODE_BL plane_normal_lofting_type; /*!< DXF 70 */
5960
  BITCODE_BD start_draft_angle;     /*!< DXF 41 */
5961
  BITCODE_BD end_draft_angle;       /*!< DXF 42 */
5962
  BITCODE_BD start_draft_magnitude; /*!< DXF 43 */
5963
  BITCODE_BD end_draft_magnitude;   /*!< DXF 44 */
5964
  BITCODE_B arc_length_parameterization; // 290
5965
  BITCODE_B no_twist; // 291
5966
  BITCODE_B align_direction; // 292
5967
  BITCODE_B simple_surfaces; // 293
5968
  BITCODE_B closed_surfaces; // 294
5969
  BITCODE_B solid; // 295
5970
  BITCODE_B ruled_surface; // 296
5971
  BITCODE_B virtual_guide; // 297
5972
5973
  BITCODE_BS num_cross_sections;
5974
  BITCODE_BS num_guide_curves;
5975
  BITCODE_H *cross_sections;
5976
  BITCODE_H *guide_curves;
5977
  BITCODE_H path_curve;
5978
} Dwg_Entity_LOFTEDSURFACE;
5979
5980
/**
5981
 Entity NURBSURFACE (varies)
5982
*/
5983
typedef struct _dwg_entity_NURBSURFACE
5984
{
5985
  struct _dwg_object_entity *parent;
5986
  _3DSOLID_FIELDS;
5987
  // AcDbSurface
5988
  BITCODE_BS u_isolines;  /*!< DXF 71 */
5989
  BITCODE_BS v_isolines;  /*!< DXF 72 */
5990
  // AcDbNurbSurface
5991
  BITCODE_BS short170;    /* DXF 170 */
5992
  BITCODE_B cv_hull_display;  /* DXF 290 */
5993
  BITCODE_3BD uvec1;    /* DXF 10 */
5994
  BITCODE_3BD vvec1;    /* DXF 11 */
5995
  BITCODE_3BD uvec2;    /* DXF 12 */
5996
  BITCODE_3BD vvec2;    /* DXF 13 */
5997
} Dwg_Entity_NURBSURFACE;
5998
5999
/**
6000
 Entity PLANESURFACE (varies)
6001
*/
6002
typedef struct _dwg_entity_PLANESURFACE
6003
{
6004
  struct _dwg_object_entity *parent;
6005
  _3DSOLID_FIELDS;
6006
  BITCODE_BS modeler_format_version; /*!< DXF 70 */
6007
  BITCODE_BS u_isolines;         /*!< DXF 71 */
6008
  BITCODE_BS v_isolines;         /*!< DXF 72 */
6009
  BITCODE_BL class_version;      /*!< DXF 90 */
6010
6011
} Dwg_Entity_PLANESURFACE;
6012
6013
/**
6014
 Entity REVOLVEDSURFACE (varies)
6015
*/
6016
typedef struct _dwg_entity_REVOLVEDSURFACE
6017
{
6018
  struct _dwg_object_entity *parent;
6019
  _3DSOLID_FIELDS;
6020
  BITCODE_BS modeler_format_version; /*!< DXF 70 */
6021
  BITCODE_BS u_isolines;         /*!< DXF 71 */
6022
  BITCODE_BS v_isolines;         /*!< DXF 72 */
6023
  BITCODE_BL class_version; /*!< DXF 90 */
6024
6025
  BITCODE_BL id; // 90
6026
  BITCODE_3BD axis_point; // 10
6027
  BITCODE_3BD axis_vector; // 11
6028
  BITCODE_BD revolve_angle; // 40
6029
  BITCODE_BD start_angle; // 41
6030
  BITCODE_BD* revolved_entity_transmatrix; // 42
6031
  BITCODE_BD draft_angle; // 43
6032
  BITCODE_BD draft_start_distance; // 44
6033
  BITCODE_BD draft_end_distance; // 45
6034
  BITCODE_BD twist_angle; // 46
6035
  BITCODE_B solid; // 290
6036
  BITCODE_B close_to_axis; // 291
6037
6038
} Dwg_Entity_REVOLVEDSURFACE;
6039
6040
/**
6041
 Entity MESH (varies)
6042
 Types: Sphere|Cylinder|Cone|Torus|Box|Wedge|Pyramid
6043
*/
6044
typedef struct _dwg_MESH_edge
6045
{
6046
  struct _dwg_entity_MESH *parent;
6047
  BITCODE_BL idxfrom; // index from
6048
  BITCODE_BL idxto; // index to
6049
} Dwg_MESH_edge;
6050
6051
typedef struct _dwg_entity_MESH
6052
{
6053
  struct _dwg_object_entity *parent;
6054
  BITCODE_BS dlevel;    /*!< DXF 71 (2) */
6055
  BITCODE_B is_watertight;  /*!< DXF 72 (0) */
6056
  BITCODE_BL num_subdiv_vertex; /*!< DXF 91 (0) */
6057
  BITCODE_3DPOINT* subdiv_vertex;/*!< DXF 10 ?? */
6058
  BITCODE_BL num_vertex;    /*!< DXF 92 (14) */
6059
  BITCODE_3DPOINT* vertex;  /*!< DXF 10 */
6060
  BITCODE_BL num_faces;   /*!< DXF 93 (30) */
6061
  BITCODE_BL* faces;            /*!< DXF 90 */
6062
  BITCODE_BL num_edges;   /*!< DXF 94 (19) */
6063
  Dwg_MESH_edge* edges;     /*!< DXF 90 */
6064
  BITCODE_BL num_crease;    /*!< DXF 95 (19) */
6065
  BITCODE_BD* crease;     /*!< DXF 140 */
6066
  BITCODE_B unknown_b1;
6067
  BITCODE_B unknown_b2;
6068
} Dwg_Entity_MESH;
6069
6070
/**
6071
 Object SUN (varies), unstable
6072
 wrongly documented by ACAD DXF as entity
6073
 */
6074
typedef struct _dwg_object_SUN
6075
{
6076
  struct _dwg_object_object *parent;
6077
6078
  BITCODE_BL class_version; /*!< DXF 90 */
6079
  BITCODE_B is_on;          /*!< DXF 290 */
6080
  BITCODE_CMC color;        /*!< DXF 60, 421 */
6081
  BITCODE_BD intensity;     /*!< DXF 40 */
6082
  BITCODE_B  has_shadow;    /*!< DXF 291 */
6083
  BITCODE_BL julian_day;    /*!< DXF 91 */
6084
  BITCODE_BL msecs;         /*!< DXF 92 */
6085
  BITCODE_B  is_dst;        /*!< DXF 292 */
6086
  BITCODE_BL shadow_type;   /*!< DXF 70 */
6087
  BITCODE_BS shadow_mapsize;  /*!< DXF 71 */
6088
  BITCODE_RC shadow_softness; /*!< DXF 280 */
6089
} Dwg_Object_SUN;
6090
6091
typedef struct _dwg_SUNSTUDY_Dates
6092
{
6093
  BITCODE_BL julian_day;
6094
  BITCODE_BL msecs;           //seconds past midnight
6095
} Dwg_SUNSTUDY_Dates;
6096
6097
/**
6098
 Object SUNSTUDY (varies)
6099
 --enable-debug only
6100
 */
6101
typedef struct _dwg_object_SUNSTUDY
6102
{
6103
  struct _dwg_object_object *parent;
6104
6105
  BITCODE_BL class_version;     /*!< DXF 90 */
6106
  BITCODE_T setup_name;         /*!< DXF 1 */
6107
  BITCODE_T description;        /*!< DXF 2 */
6108
  BITCODE_BL output_type;       /*!< DXF 70 */
6109
  BITCODE_T sheet_set_name;     /*!< DXF 3 */
6110
  BITCODE_B use_subset;         /*!< DXF 290 */
6111
  BITCODE_T sheet_subset_name;  /*!< DXF 3 */
6112
  BITCODE_B select_dates_from_calendar; /*!< DXF 291 */
6113
  BITCODE_BL num_dates;         /*!< DXF 91 */
6114
  Dwg_SUNSTUDY_Dates* dates;    /*!< DXF 90[] */
6115
  BITCODE_B select_range_of_dates; /*!< DXF 292 */
6116
  BITCODE_BL start_time;        /*!< DXF 93 */
6117
  BITCODE_BL end_time;          /*!< DXF 94 */
6118
  BITCODE_BL interval;          /*!< DXF 95 */
6119
  BITCODE_BL num_hours;         /*!< DXF 73 */
6120
  BITCODE_B* hours;             /*!< DXF 290 */
6121
  BITCODE_BL shade_plot_type;   /*!< DXF 74 */
6122
  BITCODE_BL numvports;         /*!< DXF 75 */
6123
  BITCODE_BL numrows;           /*!< DXF 76 */
6124
  BITCODE_BL numcols;           /*!< DXF 77 */
6125
  BITCODE_BD spacing;           /*!< DXF 40 */
6126
  BITCODE_B  lock_viewports;    /*!< DXF 293 */
6127
  BITCODE_B  label_viewports;   /*!< DXF 294 */
6128
6129
  BITCODE_H  page_setup_wizard; /*!< 5 DXF 340 */
6130
  BITCODE_H  view;              /*!< DXF 341 */
6131
  BITCODE_H  visualstyle;       /*!< DXF 342 */
6132
  BITCODE_H  text_style;        /*!< DXF 343 */
6133
} Dwg_Object_SUNSTUDY;
6134
6135
typedef struct _dwg_DATATABLE_row
6136
{
6137
  struct _dwg_DATATABLE_column *parent;
6138
  Dwg_TABLE_value value;
6139
} Dwg_DATATABLE_row;
6140
6141
typedef struct _dwg_DATATABLE_column
6142
{
6143
  struct _dwg_object_DATATABLE *parent;
6144
  BITCODE_BL type;          /* DXF 92 */
6145
  BITCODE_T  text;          /* DXF 2 */
6146
  Dwg_DATATABLE_row *rows;
6147
} Dwg_DATATABLE_column;
6148
6149
/**
6150
 Object DATATABLE (varies)
6151
 --enable-debug only
6152
 */
6153
typedef struct _dwg_object_DATATABLE
6154
{
6155
  struct _dwg_object_object *parent;
6156
  BITCODE_BS flags; /* DXF 70 */
6157
  BITCODE_BL num_cols;  /* DXF 90 */
6158
  BITCODE_BL num_rows;  /* DXF 91 */
6159
  BITCODE_T table_name; /* DXF 1 */
6160
  Dwg_DATATABLE_column *cols;
6161
} Dwg_Object_DATATABLE;
6162
6163
/**
6164
 Object DATALINK (varies)
6165
 */
6166
typedef struct _dwg_DATALINK_customdata
6167
{
6168
  struct _dwg_object_DATALINK *parent;
6169
  BITCODE_H target; // 330
6170
  BITCODE_T text;   // 304
6171
} Dwg_DATALINK_customdata;
6172
6173
typedef struct _dwg_object_DATALINK
6174
{
6175
  struct _dwg_object_object *parent;
6176
  BITCODE_BS class_version; /*<! DXF 70 1 */
6177
  BITCODE_T data_adapter;/*<! DXF 1  */
6178
  BITCODE_T description;/*<! DXF 300  */
6179
  BITCODE_T tooltip;  /*<! DXF 301  */
6180
  BITCODE_T connection_string;  /*<! DXF 302  */
6181
  BITCODE_BL option;  /*<! DXF 90  2 */
6182
  BITCODE_BL update_option;/*<! DXF 91  1179649 */
6183
  BITCODE_BL flags; /*<! DXF 92  1 */
6184
  BITCODE_BS year;  /*<! DXF 170  */
6185
  BITCODE_BS month; /*<! DXF 171  */
6186
  BITCODE_BS day; /*<! DXF 172  */
6187
  BITCODE_BS hour;  /*<! DXF 173  */
6188
  BITCODE_BS minute;  /*<! DXF 174  */
6189
  BITCODE_BS seconds; /*<! DXF 175  */
6190
  BITCODE_BS msec;  /*<! DXF 176  */
6191
  BITCODE_BS path_option; /*<! DXF 177  1 */
6192
  BITCODE_BL status_flags;    /*<! DXF 93   0 */
6193
  BITCODE_T update_status;/*<! DXF 304  */
6194
  BITCODE_BL num_customdata; // 94
6195
  Dwg_DATALINK_customdata *customdata; // 330 + 304
6196
  BITCODE_H hardowner;  /*<! DXF 360  */
6197
} Dwg_Object_DATALINK;
6198
6199
/**
6200
 Object DIMASSOC (varies)
6201
 */
6202
typedef struct _dwg_DIMASSOC_Ref
6203
{
6204
  struct _dwg_object_DIMASSOC *parent;
6205
  BITCODE_T classname;             /*!< DXF 1 constant */
6206
  BITCODE_RC osnap_type;           /*!< DXF 72 */
6207
  BITCODE_BD osnap_dist;           /*!< DXF 40 */
6208
  BITCODE_3BD osnap_pt;            /*!< DXF 10-30 */
6209
  BITCODE_BS num_xrefs;
6210
  BITCODE_H *xrefs;                /*!< DXF 331 the geometry objects, 1 or 2 */
6211
  BITCODE_BS main_subent_type;     /*!< DXF 73 */
6212
  BITCODE_BL main_gsmarker;        /*!< DXF 91 */
6213
  BITCODE_BS num_xrefpaths;
6214
  BITCODE_T *xrefpaths;            /*!< DXF 301 */
6215
  BITCODE_BS num_intersec_xrefpaths;
6216
  BITCODE_T *intersec_xrefpaths;   /*!< DXF 302 */
6217
  BITCODE_B  has_lastpt_ref;       /*!< DXF 75 */
6218
  BITCODE_BS intersec_subent_type; /*!< DXF 74 */
6219
  BITCODE_BL intersec_gsmarker;    /*!< DXF 92 */
6220
  BITCODE_BL num_intsectobj;
6221
  BITCODE_H* intsectobj;           /*!< DXF 332 the intersection objects, 1 or 2 */
6222
} Dwg_DIMASSOC_Ref;
6223
6224
typedef struct _dwg_object_DIMASSOC
6225
{
6226
  struct _dwg_object_object *parent;
6227
  BITCODE_H dimensionobj;
6228
  BITCODE_BL associativity;   /*!< DXF 90, bitmask 0-15 */
6229
  BITCODE_B trans_space_flag; /*!< DXF 70 boolean */
6230
  BITCODE_RC rotated_type;    /*!< DXF 71 */
6231
  BITCODE_B has_lastpt_ref;   // copy of last ref field
6232
  Dwg_DIMASSOC_Ref *ref;      /* 1-6x, filled in sequence without holes:
6233
                                 one ref per set bit of associativity, each
6234
                                 possibly followed by its lastpt companion
6235
                                 ref (75) */
6236
} Dwg_Object_DIMASSOC;
6237
6238
typedef struct _dwg_ACTIONBODY
6239
{
6240
  struct _dwg_object_ASSOCNETWORK *parent;
6241
  BITCODE_T  evaluatorid;
6242
  BITCODE_T  expression;
6243
  BITCODE_BL value; //resbuf
6244
} Dwg_ACTIONBODY;
6245
6246
typedef struct _dwg_EvalVariant
6247
{
6248
  BITCODE_BS code; /* the DXF code */
6249
  union {
6250
    BITCODE_BD bd;
6251
    BITCODE_BL bl;
6252
    BITCODE_BS bs;
6253
    BITCODE_RC rc;
6254
    BITCODE_T text;
6255
    BITCODE_H handle;
6256
  } u;
6257
} Dwg_EvalVariant;
6258
6259
typedef struct _dwg_VALUEPARAM_vars
6260
{
6261
  //struct _dwg_VALUEPARAM *parent;
6262
  Dwg_EvalVariant value;
6263
  BITCODE_H handle;
6264
} Dwg_VALUEPARAM_vars;
6265
6266
typedef struct _dwg_VALUEPARAM
6267
{
6268
  struct _dwg_object_object *parent;
6269
  BITCODE_BL class_version; /* 0 */
6270
  BITCODE_T name;
6271
  BITCODE_BL unit_type;
6272
  BITCODE_BL num_vars; // input vars
6273
  Dwg_VALUEPARAM_vars *vars;
6274
  BITCODE_H controlled_objdep;
6275
} Dwg_VALUEPARAM;
6276
6277
/* AcDbAssocParamBasedActionBody */
6278
typedef struct _dwg_ASSOCPARAMBASEDACTIONBODY
6279
{
6280
  struct _dwg_object_object *parent;
6281
  BITCODE_BL version;    /* 90 0 */
6282
  BITCODE_BL minor;      /* 90 0 */
6283
  BITCODE_BL num_deps;   /* 90 1 */
6284
  BITCODE_H *deps;       /* 360 */
6285
  BITCODE_BL l4;         /* 90: 0 */
6286
  BITCODE_BL l5;         /* 90 */
6287
  BITCODE_H  assocdep;   /* 330 */
6288
  BITCODE_BL num_values; /* 90 */
6289
  Dwg_VALUEPARAM *values;
6290
} Dwg_ASSOCPARAMBASEDACTIONBODY;
6291
6292
typedef struct _dwg_ASSOCACTION_Deps
6293
{
6294
  struct _dwg_object_ASSOCACTION *parent;
6295
  BITCODE_B is_owned; // with AssocNewtwork means code 3 (hardowned) or 4 (softptr)
6296
  BITCODE_H dep;
6297
} Dwg_ASSOCACTION_Deps;
6298
6299
#define ASSOCACTION_fields                                  \
6300
  /* until r2010: 1, 2013+: 2 */                            \
6301
  BITCODE_BS class_version;   /* 90 */                      \
6302
  /* 0 WellDefined, 1 UnderConstrained, 2 OverConstrained,  \
6303
     3 Inconsistent, 4 NotEvaluated, 5 NotAvailable,        \
6304
     6 RejectedByClient */                                  \
6305
  BITCODE_BL geometry_status;         /* 90 */              \
6306
  BITCODE_H owningnetwork;            /* 330 */             \
6307
  BITCODE_H actionbody;               /* 360 */             \
6308
  BITCODE_BL action_index;            /* 90 */              \
6309
  BITCODE_BL max_assoc_dep_index;     /* 90 */              \
6310
  BITCODE_BL num_deps;                /* 90 */              \
6311
  Dwg_ASSOCACTION_Deps *deps;         /* 330 or 360 */      \
6312
  BITCODE_BL num_owned_params;        /* 90 */              \
6313
  BITCODE_H *owned_params;            /* 360 */             \
6314
  BITCODE_BL num_values;              /* 90 */              \
6315
  Dwg_VALUEPARAM *values
6316
6317
// AcDbAssocDependency
6318
typedef struct _dwg_object_ASSOCDEPENDENCY
6319
{
6320
  struct _dwg_object_object *parent;
6321
  BITCODE_BS class_version;     /*<! DXF 90 */
6322
  BITCODE_BL status;        /*<! DXF 90 */
6323
  BITCODE_B is_read_dep;      /*<! DXF 290 */
6324
  BITCODE_B is_write_dep;     /*<! DXF 290 */
6325
  BITCODE_B is_attached_to_object;    /*<! DXF 290 */
6326
  BITCODE_B is_delegating_to_owning_action; /*<! DXF 290 */
6327
  BITCODE_BLd order;        /*<! DXF 90 */
6328
  BITCODE_H dep_on;       /*<! DXF 330 */
6329
  BITCODE_B has_name;       /*<! DXF 290 */
6330
  BITCODE_T name;       /*<! DXF 1 */
6331
  BITCODE_BLd depbodyid;      /*<! DXF 90 */
6332
  BITCODE_H  readdep;         /*<! DXF 330 */
6333
  BITCODE_H  dep_body;        /*<! DXF 360 */
6334
  BITCODE_H  node;        /*<! DXF 330 */
6335
} Dwg_Object_ASSOCDEPENDENCY;
6336
6337
/* Until r2010 the classname is stored as text. Since r2013 a leading
6338
   flag and a class code (1 AcDbAssocSingleEdgePersSubentId without values,
6339
   3 AcDbAssocEdgePersSubentId with 3 values, 5
6340
   AcDbAssocAsmBasedEntityPersSubentId) replace it. */
6341
#define ASSOCPERSSUBENTID_fields                \
6342
  BITCODE_T classname; /* DXF  1 */             \
6343
  BITCODE_B has_classname;                      \
6344
  BITCODE_BL class_code;                        \
6345
  BITCODE_BL num_values;                        \
6346
  BITCODE_BL *values;                           \
6347
  BITCODE_B dependent_on_compound_object /* DXF 290 */
6348
6349
#define ASSOCEDGEPERSSUBENTID_fields            \
6350
  BITCODE_T classname; /* DXF  1 */             \
6351
  BITCODE_B has_classname;                      \
6352
  BITCODE_BL bl1;                               \
6353
  BITCODE_BS class_version;                     \
6354
  BITCODE_BL index1;                            \
6355
  BITCODE_BL index2;                            \
6356
  BITCODE_B dependent_on_compound_object /* DXF 290 */
6357
6358
#define ASSOCINDEXPERSSUBENTID_fields            \
6359
  BITCODE_T classname; /* DXF  1 */             \
6360
  BITCODE_B has_classname;                      \
6361
  BITCODE_BL bl1;                               \
6362
  BITCODE_BS class_version;                     \
6363
  BITCODE_BL subent_type;                       \
6364
  BITCODE_BL subent_index;                      \
6365
  BITCODE_B dependent_on_compound_object /* DXF 290 */
6366
6367
typedef struct _dwg_object_ASSOCVALUEDEPENDENCY
6368
{
6369
  struct _dwg_object_object *parent;
6370
  Dwg_Object_ASSOCDEPENDENCY assocdep;
6371
  BITCODE_BL class_version; /*<! DXF 90 */
6372
  BITCODE_T name;   /*<! DXF 1 */
6373
  Dwg_EvalVariant value;
6374
} Dwg_Object_ASSOCVALUEDEPENDENCY;
6375
6376
// stable
6377
typedef struct _dwg_object_ASSOCGEOMDEPENDENCY
6378
{
6379
  struct _dwg_object_object *parent;
6380
  Dwg_Object_ASSOCDEPENDENCY assocdep;
6381
  // AcDbAssocGeomDependency
6382
  BITCODE_BS class_version; /*<! DXF 90 0 */
6383
  BITCODE_B enabled;    /*<! DXF 290 1 */
6384
  ASSOCPERSSUBENTID_fields;
6385
} Dwg_Object_ASSOCGEOMDEPENDENCY;
6386
6387
typedef struct _dwg_object_ASSOCACTION
6388
{
6389
  struct _dwg_object_object *parent;
6390
  ASSOCACTION_fields;
6391
} Dwg_Object_ASSOCACTION;
6392
6393
/**
6394
 Object ASSOCNETWORK (varies)
6395
 subclass of AcDbAssocAction
6396
 Object1 --ReadDep--> Action1 --WriteDep1--> Object2 --ReadDep--> Action2 ...
6397
 extdict: ACAD_ASSOCNETWORK
6398
 */
6399
typedef struct _dwg_object_ASSOCNETWORK
6400
{
6401
  struct _dwg_object_object *parent;
6402
  ASSOCACTION_fields;
6403
  BITCODE_BS network_version;       // DXF 90, always 0
6404
  BITCODE_BL network_action_index;  // 90
6405
  BITCODE_BL num_actions;           // 90
6406
  Dwg_ASSOCACTION_Deps *actions;    // 330 or 360
6407
  BITCODE_BL num_owned_actions;
6408
  BITCODE_H *owned_actions;         // 4. 330
6409
} Dwg_Object_ASSOCNETWORK;
6410
6411
/*  BITCODE_BS status;90: 0 uptodate, 1 changed_directly, 2 changed_transitive,
6412
                          3 ChangedNoDifference, 4 FailedToEvaluate, 5 Erased, 6 Suppressed
6413
                          7 Unresolved */
6414
#define ASSOCACTIONPARAM_fields        \
6415
  BITCODE_BS is_r2013;                 \
6416
  BITCODE_BL aap_version; /* DXF 90 */ \
6417
  BITCODE_T  name         /* DXF 1 */
6418
6419
#define ASSOCACTIONBODY_fields         \
6420
  BITCODE_BL aab_version /* DXF 90. r2013+: 2, earlier 1 */
6421
6422
/* Constraints still in work: */
6423
typedef struct _dwg_CONSTRAINTGROUPNODE
6424
{
6425
  struct _dwg_object_ASSOC2DCONSTRAINTGROUP *parent;
6426
  BITCODE_BL nodeid;
6427
  BITCODE_RC status;
6428
  BITCODE_BL num_connections;
6429
  BITCODE_BL *connections;
6430
} Dwg_CONSTRAINTGROUPNODE;
6431
6432
#define ACGEOMCONSTRAINT_fields                 \
6433
  Dwg_CONSTRAINTGROUPNODE node;                 \
6434
  BITCODE_BL ownerid; /* DXF 90 */              \
6435
  BITCODE_B is_implied; /* DXF 290 */           \
6436
  BITCODE_B is_active; /* DXF 290 */
6437
6438
#define ACCONSTRAINTGEOMETRY_fields(node)      \
6439
  Dwg_CONSTRAINTGROUPNODE node;                \
6440
  BITCODE_H geom_dep; /* 4, 330 */             \
6441
  BITCODE_BL nodeid   /*  90 */
6442
6443
#define ACCONSTRAINTPOINT_fields(node)         \
6444
  ACCONSTRAINTGEOMETRY_fields (node);          \
6445
  SUBCLASS (AcConstraintPoint);                \
6446
  BITCODE_3BD point /* 10 */
6447
6448
#define ACCONSTRAINTIMPLICITPOINT_fields(node) \
6449
  ACCONSTRAINTPOINT_fields (node);             \
6450
  /*SUBCLASS (AcConstraintImplicitPoint);*/    \
6451
  BITCODE_RC point_type; /* 280 */             \
6452
  BITCODE_BLd point_idx; /* 90 default: -1 */  \
6453
  BITCODE_BLd curve_id   /* 90 default: 0 */
6454
6455
#define ACEXPLICITCONSTRAINT_fields            \
6456
  ACGEOMCONSTRAINT_fields;                     \
6457
  BITCODE_H value_dep; /* 3, 340 */            \
6458
  BITCODE_H dim_dep    /* 3, 340 */
6459
6460
#define ACANGLECONSTRAINT_fields                \
6461
  ACEXPLICITCONSTRAINT_fields;                  \
6462
  BITCODE_RC sector_type  /* 280 */
6463
6464
#define ACPARALLELCONSTRAINT_fields             \
6465
  ACGEOMCONSTRAINT_fields;                      \
6466
  BITCODE_BLd datum_line_idx  /* 90 */
6467
6468
#define ACDISTANCECONSTRAINT_fields              \
6469
  ACEXPLICITCONSTRAINT_fields;                   \
6470
  BITCODE_RC dir_type; /* 280 if has_distance */ \
6471
  BITCODE_3BD distance /* 10 */
6472
6473
#define ACCONSTRAINEDELLIPSE_fields              \
6474
  ACGEOMCONSTRAINT_fields;                       \
6475
  BITCODE_3BD center;   /* 10 */                 \
6476
  BITCODE_3BD sm_axis;  /* 11 */                 \
6477
  BITCODE_BD axis_ratio /* 40 i.e RadiusRatio */
6478
6479
#define ACCONSTRAINEDBOUNDEDELLIPSE_fields       \
6480
  ACCONSTRAINEDELLIPSE_fields;                   \
6481
  BITCODE_3BD start_pt;   /* 10 */               \
6482
  BITCODE_3BD end_pt      /* 11 */
6483
6484
/* Class name table entry of a since r2013 ASSOC2DCONSTRAINTGROUP */
6485
typedef struct _dwg_CONSTRAINTGROUP_ClassType
6486
{
6487
  struct _dwg_object_ASSOC2DCONSTRAINTGROUP *parent;
6488
  BITCODE_T name; /* DXF 1 */
6489
} Dwg_CONSTRAINTGROUP_ClassType;
6490
6491
/* Registry entry of a since r2013 ASSOC2DCONSTRAINTGROUP */
6492
typedef struct _dwg_CONSTRAINTGROUP_Registered
6493
{
6494
  struct _dwg_object_ASSOC2DCONSTRAINTGROUP *parent;
6495
  BITCODE_B flag;
6496
  BITCODE_BL class_index; /* 1-based index into class_types */
6497
  BITCODE_BL nodeid;
6498
} Dwg_CONSTRAINTGROUP_Registered;
6499
6500
typedef struct _dwg_object_ASSOC2DCONSTRAINTGROUP
6501
{
6502
  struct _dwg_object_object *parent;
6503
  ASSOCACTION_fields;
6504
6505
  BITCODE_BL version; // 90 1
6506
  BITCODE_B  b1;      // 70 0
6507
  BITCODE_3BD workplane[3]; // 3x10 workplane
6508
  BITCODE_H h1; // 360
6509
  BITCODE_BL num_actions;// 90
6510
  BITCODE_H* actions;    // 360
6511
  BITCODE_BL next_node_id; // 90 9, an id seed, not a node count
6512
  /* The node bodies are not yet decoded. They follow in the unknown bits.
6513
     Since r2013: the node registry */
6514
  BITCODE_BL root_id;
6515
  BITCODE_BL num_root_connections;
6516
  BITCODE_BL *root_connections;
6517
  BITCODE_B root_status;
6518
  BITCODE_BL num_class_types;
6519
  Dwg_CONSTRAINTGROUP_ClassType *class_types;
6520
  BITCODE_BL num_registered;
6521
  Dwg_CONSTRAINTGROUP_Registered *registered;
6522
} Dwg_Object_ASSOC2DCONSTRAINTGROUP;
6523
6524
typedef struct _dwg_ASSOCVARIABLE_Dep
6525
{
6526
  struct _dwg_object_ASSOCVARIABLE *parent;
6527
  BITCODE_H dependency; /*<! DXF 330 */
6528
  BITCODE_BL flags; /*<! DXF 90 */
6529
} Dwg_ASSOCVARIABLE_Dep;
6530
6531
typedef struct _dwg_object_ASSOCVARIABLE
6532
{
6533
  struct _dwg_object_object *parent;
6534
  BITCODE_BS av_class_version;
6535
  ASSOCACTION_fields;
6536
  BITCODE_T name;
6537
  BITCODE_T expression;
6538
  BITCODE_T evaluator;
6539
  BITCODE_T desc;
6540
  Dwg_EvalVariant value;
6541
  BITCODE_B has_cached_value;
6542
  BITCODE_T cached_value;
6543
  BITCODE_B flag;
6544
  BITCODE_BL num_var_deps;
6545
  Dwg_ASSOCVARIABLE_Dep *var_deps;
6546
} Dwg_Object_ASSOCVARIABLE;
6547
6548
// NodeInfo
6549
typedef struct _dwg_EVAL_Node
6550
{
6551
  struct _dwg_object_EVALUATION_GRAPH *parent;
6552
  BITCODE_BL  id;         /* 91 */
6553
  BITCODE_BL  edge_flags; // 93, always 32
6554
  BITCODE_BLd nextid;     // 95
6555
  BITCODE_H   evalexpr;   // 360
6556
  BITCODE_BLd node[4];    // 4x 92, def: 4x -1
6557
  BITCODE_B   active_cycles;
6558
} Dwg_EVAL_Node;
6559
6560
// EdgeInfo
6561
typedef struct _dwg_EVAL_Edge
6562
{
6563
  struct _dwg_object_EVALUATION_GRAPH *parent;
6564
  BITCODE_BL  id;         /* 92 */
6565
  BITCODE_BLd nextid;     /* 93 */
6566
  BITCODE_BLd incoming_edge;    /* 94 */
6567
  BITCODE_BLd source_node;      /* 91 */
6568
  BITCODE_BLd destination_node; /* 91 */
6569
  BITCODE_BLd out_edge[5]; /* 5x 92 */
6570
} Dwg_EVAL_Edge;
6571
6572
typedef struct _dwg_object_EVALUATION_GRAPH
6573
{
6574
  struct _dwg_object_object *parent;
6575
  BITCODE_BL major;
6576
  BITCODE_BL minor;
6577
  BITCODE_BLd first_nodeid;      // 96
6578
  BITCODE_BLd first_nodeid_copy; // 97
6579
  BITCODE_BL num_nodes;
6580
  Dwg_EVAL_Node *nodes;
6581
  BITCODE_B has_graph;
6582
  BITCODE_BL num_edges;
6583
  Dwg_EVAL_Edge *edges;
6584
} Dwg_Object_EVALUATION_GRAPH;
6585
6586
// stable
6587
typedef struct _dwg_object_DYNAMICBLOCKPURGEPREVENTER
6588
{
6589
  struct _dwg_object_object *parent;
6590
  BITCODE_BS flag;         /*!< DXF 70 0 */
6591
  BITCODE_H  block;
6592
} Dwg_Object_DYNAMICBLOCKPURGEPREVENTER;
6593
6594
typedef struct _dwg_object_PERSUBENTMGR
6595
{
6596
  struct _dwg_object_object *parent;
6597
  BITCODE_BL class_version;   /*!< DXF 90 2 */
6598
  BITCODE_BL unknown_0;       /*!< DXF 90 0 */
6599
  BITCODE_BL unknown_2;       /*!< DXF 90 2 */
6600
  BITCODE_BL numassocsteps;   /*!< DXF 90 3 from ASSOCPERSSUBENTMANAGER */
6601
  BITCODE_BL numassocsubents; /*!< DXF 90 0 from ASSOCPERSSUBENTMANAGER */
6602
  BITCODE_BL num_steps;       /*!< DXF 90 1 */
6603
  BITCODE_BL *steps;          /*!< DXF 90 */
6604
  BITCODE_BL num_subents;     /*!< DXF 90 */
6605
  BITCODE_BL *subents;        /*!< DXF 90 types/handles? */
6606
} Dwg_Object_PERSUBENTMGR;
6607
6608
// The dynamic variant of above. May be frozen as static PERSUBENTMGR
6609
typedef struct _dwg_object_ASSOCPERSSUBENTMANAGER
6610
{
6611
  struct _dwg_object_object *parent;
6612
  BITCODE_BL class_version; /*!< DXF 90 1 or r2013+ 2 */
6613
  BITCODE_BL unknown_3;     /*!< DXF 90 always 3 */
6614
  BITCODE_BL unknown_0;     /*!< DXF 90 always 0 */
6615
  BITCODE_BL unknown_2;     /*!< DXF 90 always 2 */
6616
  BITCODE_BL unknown_bl1;    /*!< DXF 90 */
6617
  BITCODE_BL unknown_bl2;    /*!< DXF 90 */
6618
  BITCODE_BL num_steps;      /*!< DXF 90 */
6619
  BITCODE_BL *steps;         /*!< DXF 90 */
6620
  BITCODE_BL num_subents;    /*!< DXF 90 */
6621
  BITCODE_BL *subents;       /*!< DXF 90 */
6622
  BITCODE_BL unknown_bl3;    /*!< DXF 90 */
6623
  BITCODE_B unknown_b4;      /*!< DXF 290 */
6624
} Dwg_Object_ASSOCPERSSUBENTMANAGER;
6625
6626
6627
6628
#define ASSOCPARAMBASEDACTIONBODY_fields        \
6629
  Dwg_ASSOCPARAMBASEDACTIONBODY pab
6630
6631
#define ASSOCCOMPOUNDACTIONPARAM_fields \
6632
  BITCODE_BS acap_version; \
6633
  BITCODE_BS bs1; \
6634
  BITCODE_BL num_params; \
6635
  BITCODE_H *params
6636
6637
#define ASSOCCOMPOUNDACTIONPARAMCHILD_fields    \
6638
  BITCODE_BS child_status; \
6639
  BITCODE_BL child_id; \
6640
  BITCODE_H child_param; \
6641
  BITCODE_H h330_2; \
6642
  BITCODE_BL bl2; \
6643
  BITCODE_H h330_3
6644
6645
6646
typedef struct _dwg_object_ASSOCACTIONPARAM
6647
{
6648
  struct _dwg_object_object *parent;
6649
  ASSOCACTIONPARAM_fields;
6650
} Dwg_Object_ASSOCACTIONPARAM;
6651
6652
/**
6653
 Object ASSOCOSNAPPOINTREFACTIONPARAM (varies)
6654
 Action parameter that owns other AcDbAssocActionParameters,
6655
 allowing the representation of hierarchical structures of action parameters.
6656
 */
6657
typedef struct _dwg_object_ASSOCOSNAPPOINTREFACTIONPARAM
6658
{
6659
  struct _dwg_object_object *parent;
6660
  ASSOCACTIONPARAM_fields;
6661
  ASSOCCOMPOUNDACTIONPARAM_fields;
6662
  ASSOCCOMPOUNDACTIONPARAMCHILD_fields;
6663
  BITCODE_BS status;
6664
  BITCODE_RC osnap_mode;
6665
  BITCODE_BD param; // 40 -1.0
6666
} Dwg_Object_ASSOCOSNAPPOINTREFACTIONPARAM;
6667
6668
typedef struct _dwg_object_ASSOCPOINTREFACTIONPARAM
6669
{
6670
  struct _dwg_object_object *parent;
6671
  ASSOCACTIONPARAM_fields;
6672
  ASSOCCOMPOUNDACTIONPARAM_fields;
6673
  ASSOCCOMPOUNDACTIONPARAMCHILD_fields;
6674
} Dwg_Object_ASSOCPOINTREFACTIONPARAM;
6675
6676
typedef struct _dwg_object_ASSOCASMBODYACTIONPARAM
6677
{
6678
  struct _dwg_object_object *parent;
6679
  /* first, as in Dwg_Entity_3DSOLID: ACTION_3DSOLID casts _obj to it */
6680
  _3DSOLID_FIELDS;
6681
  ASSOCACTIONPARAM_fields;
6682
  /* AcDbAssocSingleDependencyActionParam */
6683
  BITCODE_BL asdap_class_version; // 0
6684
  BITCODE_H  dep;
6685
  /* AcDbAssocAsmbodyActionParam */
6686
  BITCODE_BL class_version;
6687
} Dwg_Object_ASSOCASMBODYACTIONPARAM;
6688
6689
typedef struct _dwg_object_ASSOCCOMPOUNDACTIONPARAM
6690
{
6691
  struct _dwg_object_object *parent;
6692
  ASSOCACTIONPARAM_fields;
6693
  ASSOCCOMPOUNDACTIONPARAM_fields;
6694
} Dwg_Object_ASSOCCOMPOUNDACTIONPARAM;
6695
6696
typedef struct _dwg_object_ASSOCOBJECTACTIONPARAM
6697
{
6698
  struct _dwg_object_object *parent;
6699
  ASSOCACTIONPARAM_fields;
6700
  /* AcDbAssocSingleDependencyActionParam */
6701
  BITCODE_BL asdap_class_version; // 0
6702
  BITCODE_H  dep;
6703
  /* AcDbAssocObjectActionParam */
6704
  BITCODE_BS class_version; /* DXF 90: 0 */
6705
} Dwg_Object_ASSOCOBJECTACTIONPARAM;
6706
6707
typedef struct _dwg_object_ASSOCEDGEACTIONPARAM
6708
{
6709
  struct _dwg_object_object *parent;
6710
  ASSOCACTIONPARAM_fields;
6711
  /* AcDbAssocSingleDependencyActionParam */
6712
  BITCODE_BL asdap_class_version; // 0
6713
  BITCODE_H  dep;
6714
  /* AcDbAssocEdgeActionParam */
6715
  BITCODE_BL class_version;
6716
  BITCODE_H  param;
6717
  BITCODE_B  has_action;
6718
  BITCODE_BL action_type;
6719
  BITCODE_H subent;
6720
} Dwg_Object_ASSOCEDGEACTIONPARAM;
6721
6722
typedef struct _dwg_object_ASSOCFACEACTIONPARAM
6723
{
6724
  struct _dwg_object_object *parent;
6725
  ASSOCACTIONPARAM_fields;
6726
  /* AcDbAssocSingleDependencyActionParam */
6727
  BITCODE_BL asdap_class_version; // 0
6728
  BITCODE_H dep;
6729
  /* AcDbAssocFaceActionParam */
6730
  BITCODE_BL class_version;
6731
  BITCODE_BL index;
6732
} Dwg_Object_ASSOCFACEACTIONPARAM;
6733
6734
typedef struct _dwg_object_ASSOCPATHACTIONPARAM
6735
{
6736
  struct _dwg_object_object *parent;
6737
  ASSOCACTIONPARAM_fields;
6738
  ASSOCCOMPOUNDACTIONPARAM_fields;
6739
  /* AcDbAssocPathActionParam */
6740
  BITCODE_BL apap_version;  /*!< DXF 90 */
6741
} Dwg_Object_ASSOCPATHACTIONPARAM;
6742
6743
typedef struct _dwg_object_ASSOCVERTEXACTIONPARAM
6744
{
6745
  struct _dwg_object_object *parent;
6746
  ASSOCACTIONPARAM_fields;
6747
  /* AcDbAssocSingleDependencyActionParam */
6748
  BITCODE_BL asdap_class_version; // 0
6749
  BITCODE_H dep;
6750
  /* AcDbAssocFaceActionParam */
6751
  BITCODE_BL class_version;
6752
  BITCODE_3BD pt;
6753
} Dwg_Object_ASSOCVERTEXACTIONPARAM;
6754
6755
// inlined
6756
typedef struct _dwg_ASSOCARRAYITEM
6757
{
6758
  struct _dwg_abstractobject_ASSOCARRAYPARAMETERS *parent;
6759
  BITCODE_BL class_version; // 0
6760
  BITCODE_BL itemloc[3];
6761
  BITCODE_BL flags; /* 2: has_relative_transform
6762
                       16: has_h2
6763
                     */
6764
  int is_default_transmatrix; /* computed */
6765
  BITCODE_3BD x_dir;         /* DXF 11 */
6766
  BITCODE_BD *transmatrix;   /* 16x BD 40 */
6767
  BITCODE_BD *rel_transform; /* 16x BD 40 */
6768
  int has_h1; /* computed */
6769
  BITCODE_H h1;
6770
  BITCODE_H h2;
6771
} Dwg_ASSOCARRAYITEM;
6772
6773
#define ASSOCARRAYPARAMETERS_fields                           \
6774
  BITCODE_BL aap_version;                                     \
6775
  BITCODE_BL num_items;                                       \
6776
  BITCODE_T classname;                                        \
6777
  Dwg_ASSOCARRAYITEM *items
6778
6779
typedef struct _dwg_abstractobject_ASSOCARRAYPARAMETERS
6780
{
6781
  struct _dwg_object_object *parent;
6782
  ASSOCARRAYPARAMETERS_fields;
6783
  BITCODE_BL numitems;
6784
  BITCODE_BL numrows;
6785
  BITCODE_BL numlevels;
6786
} Dwg_Object_ASSOCARRAYPARAMETERS;
6787
6788
typedef struct _dwg_abstractobject_ASSOCARRAYPARAMETERS Dwg_Object_ASSOCARRAYMODIFYPARAMETERS;
6789
typedef struct _dwg_abstractobject_ASSOCARRAYPARAMETERS Dwg_Object_ASSOCARRAYPATHPARAMETERS;
6790
typedef struct _dwg_abstractobject_ASSOCARRAYPARAMETERS Dwg_Object_ASSOCARRAYPOLARPARAMETERS;
6791
typedef struct _dwg_abstractobject_ASSOCARRAYPARAMETERS Dwg_Object_ASSOCARRAYRECTANGULARPARAMETERS;
6792
6793
typedef struct _dwg_object_ASSOCRESTOREENTITYSTATEACTIONBODY
6794
{
6795
  struct _dwg_object_object *parent;
6796
  ASSOCACTIONBODY_fields;
6797
  /* AcDbAssocRestoreEntityStateActionBody */
6798
  BITCODE_BL class_version;
6799
  BITCODE_H entity;
6800
} Dwg_Object_ASSOCRESTOREENTITYSTATEACTIONBODY;
6801
6802
/* AcDbAssocSurfaceActionBody */
6803
typedef struct _dwg_ASSOCSURFACEACTIONBODY
6804
{
6805
  struct _dwg_object_object *parent;
6806
  BITCODE_BL version;   /*!< DXF 90 */
6807
  BITCODE_B  is_semi_assoc; /*!< DXF 290 */
6808
  BITCODE_BL l2;    /*!< DXF 90 */
6809
  BITCODE_B  is_semi_ovr; /*!< DXF 290 is_semi_associativity_satisfied_override */
6810
  BITCODE_BS grip_status; /*!< DXF 70 */
6811
  BITCODE_H  assocdep;    /* ASSOCDEPENDENCY */
6812
} Dwg_ASSOCSURFACEACTIONBODY;
6813
6814
#define ASSOCPATHBASEDSURFACEACTIONBODY_fields \
6815
  ASSOCACTIONBODY_fields;                      \
6816
  Dwg_ASSOCPARAMBASEDACTIONBODY pab;           \
6817
  Dwg_ASSOCSURFACEACTIONBODY sab;              \
6818
  /* AcDbAssocPathBasedSurfaceActionBody */    \
6819
  BITCODE_BL pbsab_status /*!< DXF 90 */
6820
6821
typedef struct _dwg_object_ASSOCEXTENDSURFACEACTIONBODY
6822
{
6823
  struct _dwg_object_object *parent;
6824
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6825
  // AcDbAssocExtendSurfaceActionBody
6826
  BITCODE_BL class_version;     /*!< DXF 90  */
6827
  BITCODE_RC option;        /*!< DXF 280 edge_extension_type */
6828
} Dwg_Object_ASSOCEXTENDSURFACEACTIONBODY;
6829
6830
typedef struct _dwg_object_ASSOCEXTRUDEDSURFACEACTIONBODY
6831
{
6832
  struct _dwg_object_object *parent;
6833
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6834
  // AcDbAssocExtrudedSurfaceActionBody
6835
  BITCODE_BL class_version;       /*!< DXF 90  */
6836
} Dwg_Object_ASSOCEXTRUDEDSURFACEACTIONBODY;
6837
6838
typedef struct _dwg_object_ASSOCPLANESURFACEACTIONBODY
6839
{
6840
  struct _dwg_object_object *parent;
6841
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6842
  // AcDbAssocPlaneSurfaceActionBody
6843
  BITCODE_BL class_version;       /*!< DXF 90  */
6844
} Dwg_Object_ASSOCPLANESURFACEACTIONBODY;
6845
6846
typedef struct _dwg_object_ASSOCLOFTEDSURFACEACTIONBODY
6847
{
6848
  struct _dwg_object_object *parent;
6849
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6850
  // AcDbAssocLoftedSurfaceActionBody
6851
  BITCODE_BL class_version;       /*!< DXF 90  */
6852
} Dwg_Object_ASSOCLOFTEDSURFACEACTIONBODY;
6853
6854
typedef struct _dwg_object_ASSOCNETWORKSURFACEACTIONBODY
6855
{
6856
  struct _dwg_object_object *parent;
6857
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6858
  // AcDbAssocNetworkSurfaceActionBody
6859
  BITCODE_BL class_version;       /*!< DXF 90  */
6860
} Dwg_Object_ASSOCNETWORKSURFACEACTIONBODY;
6861
6862
typedef struct _dwg_object_ASSOCOFFSETSURFACEACTIONBODY
6863
{
6864
  struct _dwg_object_object *parent;
6865
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6866
  // AcDbAssocOffsetSurfaceActionBody
6867
  BITCODE_BL class_version;       /*!< DXF 90  */
6868
  BITCODE_B  b1;       /*!< DXF 290  */
6869
} Dwg_Object_ASSOCOFFSETSURFACEACTIONBODY;
6870
6871
typedef struct _dwg_object_ASSOCREVOLVEDSURFACEACTIONBODY
6872
{
6873
  struct _dwg_object_object *parent;
6874
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6875
  // AcDbAssocRevolvedSurfaceActionBody
6876
  BITCODE_BL class_version;       /*!< DXF 90  */
6877
} Dwg_Object_ASSOCREVOLVEDSURFACEACTIONBODY;
6878
6879
typedef struct _dwg_object_ASSOCSWEPTSURFACEACTIONBODY
6880
{
6881
  struct _dwg_object_object *parent;
6882
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6883
  // AcDbAssocSweptSurfaceActionBody
6884
  BITCODE_BL class_version;       /*!< DXF 90  */
6885
} Dwg_Object_ASSOCSWEPTSURFACEACTIONBODY;
6886
6887
typedef struct _dwg_object_ASSOCEDGECHAMFERACTIONBODY
6888
{
6889
  struct _dwg_object_object *parent;
6890
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6891
} Dwg_Object_ASSOCEDGECHAMFERACTIONBODY;
6892
6893
typedef struct _dwg_object_ASSOCEDGEFILLETACTIONBODY
6894
{
6895
  struct _dwg_object_object *parent;
6896
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6897
} Dwg_Object_ASSOCEDGEFILLETACTIONBODY;
6898
6899
typedef struct _dwg_object_ASSOCTRIMSURFACEACTIONBODY
6900
{
6901
  struct _dwg_object_object *parent;
6902
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6903
  // AcDbAssocTrimSurfaceActionBody
6904
  BITCODE_BL class_version;     /*!< DXF 90  */
6905
  BITCODE_B b1;     /*!< DXF 290 */
6906
  BITCODE_B b2;     /*!< DXF 290 */
6907
  BITCODE_BD distance;    /*!< DXF 40  */
6908
} Dwg_Object_ASSOCTRIMSURFACEACTIONBODY;
6909
6910
typedef struct _dwg_object_ASSOCBLENDSURFACEACTIONBODY
6911
{
6912
  struct _dwg_object_object *parent;
6913
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6914
  // AcDbAssocBlendSurfaceActionBody
6915
  BITCODE_BL class_version;     /*!< DXF 90  */
6916
  BITCODE_B b1;     /*!< DXF 290 */
6917
  BITCODE_B b2;     /*!< DXF 291 */
6918
  BITCODE_B b3;     /*!< DXF 292 */
6919
  BITCODE_B b4;     /*!< DXF 293 */
6920
  BITCODE_B b5;     /*!< DXF 294 */
6921
  BITCODE_BS blend_options; /*!< DXF 72  */
6922
  BITCODE_BS bs2;   /*!< DXF 73  */
6923
} Dwg_Object_ASSOCBLENDSURFACEACTIONBODY;
6924
6925
typedef struct _dwg_object_ASSOCFILLETSURFACEACTIONBODY
6926
{
6927
  struct _dwg_object_object *parent;
6928
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6929
  // AcDbAssocFilletSurfaceActionBody
6930
  BITCODE_BL class_version; /*!< DXF 90  */
6931
  BITCODE_BS status;    /*!< DXF 70  */
6932
  BITCODE_2RD pt1;    /*!< DXF 10  */
6933
  BITCODE_2RD pt2;    /*!< DXF 10  */
6934
} Dwg_Object_ASSOCFILLETSURFACEACTIONBODY;
6935
6936
typedef struct _dwg_object_ASSOCPATCHSURFACEACTIONBODY
6937
{
6938
  struct _dwg_object_object *parent;
6939
  ASSOCPATHBASEDSURFACEACTIONBODY_fields;
6940
  // AcDbAssocPatchSurfaceActionBody
6941
  BITCODE_BL class_version;     /*!< DXF 90  */
6942
} Dwg_Object_ASSOCPATCHSURFACEACTIONBODY;
6943
6944
#define ASSOCANNOTATIONACTIONBODY_fields \
6945
  BITCODE_BS aaab_version; \
6946
  BITCODE_H assoc_dep; \
6947
  BITCODE_BS aab_version; \
6948
  BITCODE_H actionbody
6949
6950
typedef struct _dwg_ASSOCACTIONBODY_action
6951
{
6952
  struct _dwg_object_ASSOCMLEADERACTIONBODY *parent;
6953
  BITCODE_BL depid;
6954
  BITCODE_H dep;
6955
} Dwg_ASSOCACTIONBODY_action;
6956
6957
typedef struct _dwg_object_ASSOCMLEADERACTIONBODY
6958
{
6959
  struct _dwg_object_object *parent;
6960
  ASSOCANNOTATIONACTIONBODY_fields;
6961
  Dwg_ASSOCPARAMBASEDACTIONBODY pab;
6962
  BITCODE_BL class_version; // 90 0
6963
  BITCODE_BL num_actions;
6964
  Dwg_ASSOCACTIONBODY_action *actions;
6965
} Dwg_Object_ASSOCMLEADERACTIONBODY;
6966
6967
typedef struct _dwg_object_ASSOCALIGNEDDIMACTIONBODY
6968
{
6969
  struct _dwg_object_object *parent;
6970
  ASSOCANNOTATIONACTIONBODY_fields;
6971
  Dwg_ASSOCPARAMBASEDACTIONBODY pab;
6972
  BITCODE_BL class_version; // 90 0
6973
  BITCODE_H  read_node; // 330
6974
  BITCODE_H  dimension_node; // 330
6975
} Dwg_Object_ASSOCALIGNEDDIMACTIONBODY;
6976
6977
typedef struct _dwg_object_ASSOC3POINTANGULARDIMACTIONBODY
6978
{
6979
  struct _dwg_object_object *parent;
6980
  ASSOCANNOTATIONACTIONBODY_fields;
6981
  Dwg_ASSOCPARAMBASEDACTIONBODY pab;
6982
  BITCODE_BS class_version; /*!< DXF 90  */
6983
  BITCODE_H read_node;    /*!< DXF 330  */
6984
  BITCODE_H dimension_node;   /*!< DXF 330  */
6985
  BITCODE_H assocdep;   /*!< DXF 330  */
6986
} Dwg_Object_ASSOC3POINTANGULARDIMACTIONBODY;
6987
6988
typedef struct _dwg_object_ASSOCORDINATEDIMACTIONBODY
6989
{
6990
  struct _dwg_object_object *parent;
6991
  ASSOCANNOTATIONACTIONBODY_fields;
6992
  Dwg_ASSOCPARAMBASEDACTIONBODY pab;
6993
  BITCODE_BL class_version; /*!< DXF 90  */
6994
  BITCODE_H  read_node;   /*!< DXF 330 */
6995
  BITCODE_H  dimension_node;    /*!< DXF 330 */
6996
} Dwg_Object_ASSOCORDINATEDIMACTIONBODY;
6997
6998
typedef struct _dwg_object_ASSOCROTATEDDIMACTIONBODY
6999
{
7000
  struct _dwg_object_object *parent;
7001
  ASSOCANNOTATIONACTIONBODY_fields;
7002
  Dwg_ASSOCPARAMBASEDACTIONBODY pab;
7003
  BITCODE_BS class_version; /*!< DXF 90  */
7004
  BITCODE_H  read_node;   /*!< DXF 330 */
7005
  BITCODE_H  dimension_node;    /*!< DXF 330 */
7006
} Dwg_Object_ASSOCROTATEDDIMACTIONBODY;
7007
7008
typedef struct _dwg_object_ASSOCDIMDEPENDENCYBODY
7009
{
7010
  struct _dwg_object_object *parent;
7011
  BITCODE_BS adb_version;     // 90 1
7012
  BITCODE_BS dimbase_version; // 90 1
7013
  BITCODE_T name;             // 1
7014
  BITCODE_BS class_version;   // 90 1
7015
} Dwg_Object_ASSOCDIMDEPENDENCYBODY;
7016
7017
typedef struct _dwg_object_BLOCKPARAMDEPENDENCYBODY
7018
{
7019
  struct _dwg_object_object *parent;
7020
  BITCODE_BS adb_version;     // 90 1
7021
  BITCODE_BS dimbase_version; // 90 1
7022
  BITCODE_T name;             // 1
7023
  BITCODE_BS class_version;   // 90 0
7024
} Dwg_Object_BLOCKPARAMDEPENDENCYBODY;
7025
7026
typedef struct _dwg_ARRAYITEMLOCATOR
7027
{
7028
  struct _dwg_object_ASSOCARRAYMODIFYACTIONBODY *parent;
7029
  BITCODE_BL itemloc[3];
7030
} Dwg_ARRAYITEMLOCATOR;
7031
7032
#define ASSOCARRAYACTIONBODY_fields            \
7033
  ASSOCACTIONBODY_fields;                      \
7034
  Dwg_ASSOCPARAMBASEDACTIONBODY pab;           \
7035
  BITCODE_BL aaab_version;                     \
7036
  BITCODE_T paramblock; /* classname, i.e. AcDbAssocArrayPolarParameters */ \
7037
  BITCODE_BD *transmatrix
7038
7039
typedef struct _dwg_object_ASSOCARRAYACTIONBODY
7040
{
7041
  struct _dwg_object_object *parent;
7042
  ASSOCARRAYACTIONBODY_fields;
7043
} Dwg_Object_ASSOCARRAYACTIONBODY;
7044
7045
typedef struct _dwg_object_ASSOCARRAYMODIFYACTIONBODY
7046
{
7047
  struct _dwg_object_object *parent;
7048
  ASSOCARRAYACTIONBODY_fields;
7049
  BITCODE_BS status;
7050
  BITCODE_BL num_items;
7051
  Dwg_ARRAYITEMLOCATOR *items;
7052
} Dwg_Object_ASSOCARRAYMODIFYACTIONBODY;
7053
7054
/* A node in the EVALUATION_GRAPH */
7055
typedef struct _dwg_EvalExpr
7056
{
7057
  BITCODE_BLd parentid; /* -1 if none */
7058
  BITCODE_BL major;
7059
  BITCODE_BL minor;
7060
  BITCODE_BSd value_code; // compare to EvalVariant
7061
  union
7062
  {
7063
    BITCODE_BD  num40;
7064
    BITCODE_2RD pt2d;
7065
    BITCODE_3BD pt3d;
7066
    BITCODE_T   text1;
7067
    BITCODE_BL  long90;
7068
    BITCODE_H   handle91;
7069
    BITCODE_BS  short70;
7070
  } value;
7071
  BITCODE_BL nodeid;
7072
} Dwg_EvalExpr;
7073
7074
typedef struct _dwg_ACSH_SubentMaterial
7075
{
7076
  BITCODE_BL major;
7077
  BITCODE_BL minor;
7078
  BITCODE_BL reflectance;
7079
  BITCODE_BL displacement;
7080
} Dwg_ACSH_SubentMaterial;
7081
7082
// on body, face or edge
7083
typedef struct _dwg_ACSH_SubentColor
7084
{
7085
  BITCODE_BL major;
7086
  BITCODE_BL minor;
7087
  BITCODE_BL transparency;
7088
  BITCODE_BL bl93;
7089
  BITCODE_B  is_face_variable;
7090
} Dwg_ACSH_SubentColor;
7091
7092
typedef struct _dwg_ACSH_HistoryNode
7093
{
7094
  BITCODE_BL major;    //33
7095
  BITCODE_BL minor;    //29
7096
  BITCODE_BD *trans;   //last 16x nums 40-55
7097
  BITCODE_CMC color;   /*!< DXF 62 */
7098
  BITCODE_BL step_id;  /*!< DXF 92 */
7099
  BITCODE_H  material; /*!< DXF 347 */
7100
} Dwg_ACSH_HistoryNode;
7101
7102
//#define Dwg_EvalExpr evalexpr Dwg_EvalExpr evalexpr
7103
7104
typedef struct _dwg_object_ACSH_HISTORY_CLASS
7105
{
7106
  struct _dwg_object_object *parent;
7107
  BITCODE_BL major;
7108
  BITCODE_BL minor;
7109
  BITCODE_H owner;
7110
  BITCODE_BL h_nodeid; // the last nodeid, i.e. num_nodes
7111
  BITCODE_B show_history;
7112
  BITCODE_B record_history;
7113
} Dwg_Object_ACSH_HISTORY_CLASS;
7114
7115
// i.e. planesurf?
7116
typedef struct _dwg_object_ACSH_BOX_CLASS
7117
{
7118
  struct _dwg_object_object *parent;
7119
  Dwg_EvalExpr evalexpr;
7120
  Dwg_ACSH_HistoryNode history_node;
7121
  // AcDbShPrimitive
7122
  // AcDbShBox
7123
  BITCODE_BL major;       /*!< DXF 90 (33) */
7124
  BITCODE_BL minor;       /*!< DXF 91 (29) */
7125
  BITCODE_BD length;     /*!< DXF 40 1300.0 (length?) */
7126
  BITCODE_BD width;      /*!< DXF 41 20.0 (width?) */
7127
  BITCODE_BD height;     /*!< DXF 42 420.0 (height?) */
7128
7129
} Dwg_Object_ACSH_BOX_CLASS;
7130
7131
typedef struct _dwg_object_ACSH_WEDGE_CLASS
7132
{
7133
  struct _dwg_object_object *parent;
7134
  Dwg_EvalExpr evalexpr;
7135
  Dwg_ACSH_HistoryNode history_node;
7136
  // AcDbShPrimitive
7137
  // AcDbShWedge
7138
  BITCODE_BL major;       /*!< DXF 90 (33) */
7139
  BITCODE_BL minor;       /*!< DXF 91 (29) */
7140
  BITCODE_BD length;     /*!< DXF 40 1300.0 (length?) */
7141
  BITCODE_BD width;      /*!< DXF 41 20.0 (width?) */
7142
  BITCODE_BD height;     /*!< DXF 42 420.0 (height?) */
7143
7144
} Dwg_Object_ACSH_WEDGE_CLASS;
7145
7146
typedef struct _dwg_object_ACSH_BOOLEAN_CLASS
7147
{
7148
  struct _dwg_object_object *parent;
7149
  Dwg_EvalExpr evalexpr;
7150
  Dwg_ACSH_HistoryNode history_node;
7151
  // AcDbShPrimitive
7152
  // AcDbShBoolean
7153
  BITCODE_BL major;       /*!< DXF 90 */
7154
  BITCODE_BL minor;       /*!< DXF 91 */
7155
  BITCODE_RCd operation;  /*!< DXF 280 */
7156
  BITCODE_BL operand1;    /*!< DXF 92 */
7157
  BITCODE_BL operand2;    /*!< DXF 93 */
7158
} Dwg_Object_ACSH_BOOLEAN_CLASS;
7159
7160
typedef struct _dwg_object_ACSH_BREP_CLASS
7161
{
7162
  struct _dwg_object_object *parent;
7163
  _3DSOLID_FIELDS;
7164
  Dwg_EvalExpr evalexpr;
7165
  Dwg_ACSH_HistoryNode history_node;
7166
  // AcDbShPrimitive
7167
  // AcDbShBrep
7168
  BITCODE_BL major;            /*!< DXF 90 */
7169
  BITCODE_BL minor;            /*!< DXF 91 */
7170
7171
} Dwg_Object_ACSH_BREP_CLASS;
7172
7173
typedef struct _dwg_object_ACSH_SWEEP_CLASS
7174
{
7175
  struct _dwg_object_object *parent;
7176
  Dwg_EvalExpr evalexpr;
7177
  Dwg_ACSH_HistoryNode history_node;
7178
  // AcDbShPrimitive
7179
  // AcDbShSweepBase
7180
  BITCODE_BL major;           /*!< DXF 90 */
7181
  BITCODE_BL minor;           /*!< DXF 91 */
7182
  BITCODE_3BD direction;      /*!< DXF 10 */
7183
  BITCODE_BL method;          /*!< DXF 92 */
7184
  BITCODE_BL shsw_text_size;  /*!< DXF 90 */
7185
  BITCODE_TF shsw_text;       /*!< DXF 310 */
7186
  BITCODE_BL shsw_bl93;       /*!< DXF 93 */
7187
  BITCODE_BL shsw_text2_size; /*!< DXF 90 */
7188
  BITCODE_TF shsw_text2;      /*!< DXF 310 */
7189
  // compare to SWEEPOPTIONS_fields
7190
  BITCODE_BD draft_angle;       /*!< DXF 42 0.0 */
7191
  BITCODE_BD start_draft_dist;  /*!< DXF 43 0.0 */
7192
  BITCODE_BD end_draft_dist;    /*!< DXF 44 0.0 */
7193
  BITCODE_BD scale_factor;      /*!< DXF 45 1.0 */
7194
  BITCODE_BD twist_angle;       /*!< DXF 48 0.0 */
7195
  BITCODE_BD align_angle;       /*!< DXF 49 0.0 */
7196
  BITCODE_BD* sweepentity_transform; /*!< DXF 46 16x */
7197
  BITCODE_BD* pathentity_transform;  /*!< DXF 47 16x */
7198
  BITCODE_RC align_option;      /*!< DXF 70 2 */
7199
  BITCODE_RC miter_option;      /*!< DXF 71 2 */
7200
  BITCODE_B has_align_start;    /*!< DXF 290 1 */
7201
  BITCODE_B bank;       /*!< DXF 292 1 */
7202
  BITCODE_B check_intersections; /*!< DXF 293 0 */
7203
  BITCODE_B shsw_b294;  /*!< DXF 294  1 */
7204
  BITCODE_B shsw_b295;  /*!< DXF 295  1 */
7205
  BITCODE_B shsw_b296;  /*!< DXF 296  1 */
7206
  BITCODE_3BD pt2;      /*!< DXF 11 0,0,0 */
7207
7208
  // AcDbShSweep
7209
7210
} Dwg_Object_ACSH_SWEEP_CLASS;
7211
7212
typedef struct _dwg_object_ACSH_EXTRUSION_CLASS
7213
{
7214
  struct _dwg_object_object *parent;
7215
  Dwg_EvalExpr evalexpr;
7216
  Dwg_ACSH_HistoryNode history_node;
7217
  // AcDbShPrimitive
7218
  // AcDbShSweepBase
7219
  BITCODE_BL major;           /*!< DXF 90 */
7220
  BITCODE_BL minor;           /*!< DXF 91 */
7221
  BITCODE_3BD direction;      /*!< DXF 10 */
7222
  BITCODE_BL method;          /*!< DXF 92 */
7223
  BITCODE_BL shsw_text_size;  /*!< DXF 90 */
7224
  BITCODE_TF shsw_text;       /*!< DXF 310 */
7225
  BITCODE_BL shsw_bl93;       /*!< DXF 93 */
7226
  BITCODE_BL shsw_text2_size; /*!< DXF 90 */
7227
  BITCODE_TF shsw_text2;      /*!< DXF 310 */
7228
  // compare to SWEEPOPTIONS_fields
7229
  BITCODE_BD draft_angle;       /*!< DXF 42 0.0 */
7230
  BITCODE_BD start_draft_dist;  /*!< DXF 43 0.0 */
7231
  BITCODE_BD end_draft_dist;    /*!< DXF 44 0.0 */
7232
  BITCODE_BD scale_factor;      /*!< DXF 45 1.0 */
7233
  BITCODE_BD twist_angle;       /*!< DXF 48 0.0 */
7234
  BITCODE_BD align_angle;       /*!< DXF 49 0.0 */
7235
  BITCODE_BD* sweepentity_transform; /*!< DXF 46 16x */
7236
  BITCODE_BD* pathentity_transform;  /*!< DXF 47 16x */
7237
  BITCODE_RC align_option;      /*!< DXF 70 2 */
7238
  BITCODE_RC miter_option;      /*!< DXF 71 2 */
7239
  BITCODE_B has_align_start;    /*!< DXF 290 1 */
7240
  BITCODE_B bank;       /*!< DXF 292 1 */
7241
  BITCODE_B check_intersections; /*!< DXF 293 0 */
7242
  BITCODE_B shsw_b294;  /*!< DXF 294  1 */
7243
  BITCODE_B shsw_b295;  /*!< DXF 295  1 */
7244
  BITCODE_B shsw_b296;  /*!< DXF 296  1 */
7245
  BITCODE_3BD pt2;      /*!< DXF 11 0,0,0 */
7246
7247
  // AcDbShExtrusion
7248
} Dwg_Object_ACSH_EXTRUSION_CLASS;
7249
7250
typedef struct _dwg_object_ACSH_LOFT_CLASS
7251
{
7252
  struct _dwg_object_object *parent;
7253
  Dwg_EvalExpr evalexpr;
7254
  Dwg_ACSH_HistoryNode history_node;
7255
  // AcDbShPrimitive
7256
  // AcDbShLoft
7257
  BITCODE_BL major;       /*!< DXF 90 */
7258
  BITCODE_BL minor;       /*!< DXF 91 */
7259
  BITCODE_BL num_crosssects; /*!< DXF 92 */
7260
  BITCODE_H *crosssects;
7261
  BITCODE_BL num_guides; /*!< DXF 95 */
7262
  BITCODE_H *guides;
7263
} Dwg_Object_ACSH_LOFT_CLASS;
7264
7265
typedef struct _dwg_object_ACSH_FILLET_CLASS
7266
{
7267
  struct _dwg_object_object *parent;
7268
  Dwg_EvalExpr evalexpr;
7269
  Dwg_ACSH_HistoryNode history_node;
7270
  // AcDbShPrimitive
7271
  // AcDbShFillet
7272
  BITCODE_BL major;       /*!< DXF 90 */
7273
  BITCODE_BL minor;       /*!< DXF 91 */
7274
  BITCODE_BL method;   /*!< DXF 92 */
7275
  BITCODE_BL num_edges;  /*!< DXF 93 */
7276
  BITCODE_BL *edges;     /*!< DXF 94 */
7277
  BITCODE_BL num_radiuses;  /*!< DXF 95 */
7278
  BITCODE_BL num_startsetbacks; /*!< DXF 96 */
7279
  BITCODE_BL num_endsetbacks; /*!< DXF 97 */
7280
  BITCODE_BD *radiuses;         /*!< DXF 41 */
7281
  BITCODE_BD *startsetbacks;  /*!< DXF 42 */
7282
  BITCODE_BD *endsetbacks;  /*!< DXF 43 */
7283
7284
} Dwg_Object_ACSH_FILLET_CLASS;
7285
7286
typedef struct _dwg_object_ACSH_CHAMFER_CLASS
7287
{
7288
  struct _dwg_object_object *parent;
7289
  Dwg_EvalExpr evalexpr;
7290
  Dwg_ACSH_HistoryNode history_node;
7291
  // AcDbShPrimitive
7292
  // AcDbShChamfer
7293
  BITCODE_BL major;     /*!< DXF 90 */
7294
  BITCODE_BL minor;     /*!< DXF 91 */
7295
  BITCODE_BL method;  /*!< DXF 92 */
7296
  BITCODE_BD base_dist; /*!< DXF 41 (left_range?) */
7297
  BITCODE_BD other_dist;/*!< DXF 42 (right_range or -1)? */
7298
  BITCODE_BL num_edges; /*!< DXF 93 */
7299
  BITCODE_BL *edges;    /*!< DXF 94 */
7300
  BITCODE_BL base_face; /*!< DXF 95 guessed. the face next to the chamfered edge */
7301
} Dwg_Object_ACSH_CHAMFER_CLASS;
7302
7303
typedef struct _dwg_object_ACSH_CYLINDER_CLASS
7304
{
7305
  struct _dwg_object_object *parent;
7306
  Dwg_EvalExpr evalexpr;
7307
  Dwg_ACSH_HistoryNode history_node;
7308
  // AcDbShPrimitive
7309
  // AcDbShCylinder
7310
  BITCODE_BL major;       /*!< DXF 90 */
7311
  BITCODE_BL minor;       /*!< DXF 91 */
7312
  BITCODE_BD height;      /*!< DXF 40 */
7313
  BITCODE_BD major_radius;/*!< DXF 41 */
7314
  BITCODE_BD minor_radius;/*!< DXF 42 */
7315
  BITCODE_BD x_radius;    /*!< DXF 43 */
7316
} Dwg_Object_ACSH_CYLINDER_CLASS;
7317
7318
typedef struct _dwg_object_ACSH_CONE_CLASS
7319
{
7320
  struct _dwg_object_object *parent;
7321
  Dwg_EvalExpr evalexpr;
7322
  Dwg_ACSH_HistoryNode history_node;
7323
  // AcDbShPrimitive
7324
  // AcDbShCone
7325
  BITCODE_BL major;      /*!< DXF 90 */
7326
  BITCODE_BL minor;      /*!< DXF 91 */
7327
  BITCODE_BD height;   /*!< DXF 40 */
7328
  BITCODE_BD major_radius; /*!< DXF 41 */
7329
  BITCODE_BD minor_radius; /*!< DXF 42 */
7330
  BITCODE_BD x_radius;    /*!< DXF 43 */
7331
} Dwg_Object_ACSH_CONE_CLASS;
7332
7333
typedef struct _dwg_object_ACSH_PYRAMID_CLASS
7334
{
7335
  struct _dwg_object_object *parent;
7336
  Dwg_EvalExpr evalexpr;
7337
  Dwg_ACSH_HistoryNode history_node;
7338
  // AcDbShPrimitive
7339
  // AcDbShPyramid
7340
  BITCODE_BL major;       /*!< DXF 90 */
7341
  BITCODE_BL minor;       /*!< DXF 91 */
7342
  BITCODE_BD height;     /*!< DXF 40 */
7343
  BITCODE_BL sides;      /*!< DXF 92 */
7344
  BITCODE_BD radius;     /*!< DXF 41 */
7345
  BITCODE_BD topradius;  /*!< DXF 42 */
7346
} Dwg_Object_ACSH_PYRAMID_CLASS;
7347
7348
typedef struct _dwg_object_ACSH_SPHERE_CLASS
7349
{
7350
  struct _dwg_object_object *parent;
7351
  Dwg_EvalExpr evalexpr;
7352
  Dwg_ACSH_HistoryNode history_node;
7353
  // AcDbShPrimitive
7354
  // AcDbShTorus
7355
  BITCODE_BL major;       /*!< DXF 90 */
7356
  BITCODE_BL minor;       /*!< DXF 91 */
7357
  BITCODE_BD radius;  /*!< DXF 40 */
7358
7359
} Dwg_Object_ACSH_SPHERE_CLASS;
7360
7361
typedef struct _dwg_object_ACSH_TORUS_CLASS
7362
{
7363
  struct _dwg_object_object *parent;
7364
  Dwg_EvalExpr evalexpr;
7365
  Dwg_ACSH_HistoryNode history_node;
7366
  // AcDbShPrimitive
7367
  // AcDbShTorus
7368
  BITCODE_BL major;       /*!< DXF 90 */
7369
  BITCODE_BL minor;       /*!< DXF 91 */
7370
  BITCODE_BD major_radius;  /*!< DXF 40 */
7371
  BITCODE_BD minor_radius;  /*!< DXF 41 */
7372
7373
} Dwg_Object_ACSH_TORUS_CLASS;
7374
7375
typedef struct _dwg_object_ACSH_REVOLVE_CLASS
7376
{
7377
  struct _dwg_object_object *parent;
7378
  Dwg_EvalExpr evalexpr;
7379
  Dwg_ACSH_HistoryNode history_node;
7380
  // AcDbShPrimitive
7381
  // AcDbShRevolve?
7382
  BITCODE_BL major;       /*!< DXF 90 */
7383
  BITCODE_BL minor;       /*!< DXF 91 */
7384
  BITCODE_3BD axis_pt;  /*!< DXF 10 */
7385
  BITCODE_2RD direction;  /*!< DXF 11 */
7386
  BITCODE_BD revolve_angle; /*!< DXF 40 */
7387
  BITCODE_BD start_angle; /*!< DXF 41 */
7388
  BITCODE_BD draft_angle; /*!< DXF 43 */
7389
  BITCODE_BD bd44;    /*!< DXF 44 */
7390
  BITCODE_BD bd45;    /*!< DXF 45 */
7391
  BITCODE_BD twist_angle; /*!< DXF 46 */
7392
  BITCODE_B b290;   /*!< DXF 290 */
7393
  BITCODE_B is_close_to_axis; /*!< DXF 291 */
7394
  BITCODE_H sweep_entity;
7395
7396
} Dwg_Object_ACSH_REVOLVE_CLASS;
7397
7398
// called COORDINATION_MODEL in the DXF docs
7399
typedef struct _dwg_entity_NAVISWORKSMODEL
7400
{
7401
  struct _dwg_object_entity *parent;
7402
  // AcDbNavisworksModel
7403
  BITCODE_BS flags;   /*!< DXF 70 */
7404
  BITCODE_H definition;   /*!< DXF 340 */
7405
  BITCODE_BD *transmatrix;  /*!< DXF 40 */
7406
  BITCODE_BD unitfactor;  /*!< DXF 40 */
7407
} Dwg_Entity_NAVISWORKSMODEL;
7408
7409
typedef struct _dwg_object_NAVISWORKSMODELDEF
7410
{
7411
  struct _dwg_object_object *parent;
7412
  // AcDbNavisworksModelDef
7413
  BITCODE_BS flags;     /*!< DXF 70 */
7414
  BITCODE_T path;       /*!< DXF 1 */
7415
  BITCODE_B status;     /*!< DXF 290 */
7416
  BITCODE_3BD min_extent; /*!< DXF 10 */
7417
  BITCODE_3BD max_extent; /*!< DXF 11 */
7418
  BITCODE_B host_drawing_visibility; /*!< DXF 290 */
7419
} Dwg_Object_NAVISWORKSMODELDEF;
7420
7421
#define RENDERSETTINGS_fields                                                 \
7422
  /* AcDbRenderSettings */                                                    \
7423
  BITCODE_BL class_version;         /*!< DXF 90, default: 1 */                \
7424
  BITCODE_T name;                   /*!< DXF 1 */                             \
7425
  BITCODE_B fog_enabled;            /*!< DXF 290 */                           \
7426
  BITCODE_B fog_background_enabled; /*!< DXF 290 */                           \
7427
  BITCODE_B backfaces_enabled;      /*!< DXF 290 */                           \
7428
  BITCODE_B environ_image_enabled;  /*!< DXF 290 */                           \
7429
  BITCODE_T environ_image_filename; /*!< DXF 1 */                             \
7430
  BITCODE_T description;            /*!< DXF 1 */                             \
7431
  BITCODE_BL display_index          /*!< DXF 290 */
7432
7433
/**
7434
 Class RENDERSETTINGS (varies)
7435
 */
7436
typedef struct _dwg_object_RENDERSETTINGS
7437
{
7438
  struct _dwg_object_object *parent;
7439
  RENDERSETTINGS_fields;
7440
  BITCODE_B has_predefined;          /*!< DXF 290, r2013+ RENDERSETTINGS and RAPIDRT only */
7441
} Dwg_Object_RENDERSETTINGS;
7442
7443
/**
7444
 Class MENTALRAYRENDERSETTINGS (varies)
7445
 Unstable
7446
 */
7447
typedef struct _dwg_object_MENTALRAYRENDERSETTINGS
7448
{
7449
  struct _dwg_object_object *parent;
7450
  RENDERSETTINGS_fields;
7451
  // AcDbMentalRayRenderSettings
7452
  BITCODE_BL mr_version;    /*!< DXF 90, always 2 */
7453
  BITCODE_BL sampling_min;      /*!< DXF 90 */
7454
  BITCODE_BL sampling_max;      /*!< DXF 90 */
7455
  BITCODE_BS sampling_mr_filter;  /*!< DXF 70 */
7456
  BITCODE_BD sampling_filter1;    /*!< DXF 40 */
7457
  BITCODE_BD sampling_filter2;    /*!< DXF 40 */
7458
  BITCODE_BD sampling_contrast_color1;  /*!< DXF 40 */
7459
  BITCODE_BD sampling_contrast_color2;  /*!< DXF 40 */
7460
  BITCODE_BD sampling_contrast_color3;  /*!< DXF 40 */
7461
  BITCODE_BD sampling_contrast_color4;  /*!< DXF 40 */
7462
  BITCODE_BS shadow_mode;   /*!< DXF 70 */
7463
  BITCODE_B  shadow_maps_enabled; /*!< DXF 290 */
7464
  BITCODE_B  ray_tracing_enabled; /*!< DXF 290 */
7465
  BITCODE_BL ray_trace_depth1;    /*!< DXF 90 */
7466
  BITCODE_BL ray_trace_depth2;    /*!< DXF 90 */
7467
  BITCODE_BL ray_trace_depth3;    /*!< DXF 90 */
7468
  BITCODE_B  global_illumination_enabled;/*!< DXF 290 */
7469
  BITCODE_BL gi_sample_count;   /*!< DXF 90 */
7470
  BITCODE_B  gi_sample_radius_enabled;  /*!< DXF 290 */
7471
  BITCODE_BD gi_sample_radius;    /*!< DXF 40 */
7472
  BITCODE_BL gi_photons_per_light;  /*!< DXF 90 */
7473
  BITCODE_BL photon_trace_depth1; /*!< DXF 90 */
7474
  BITCODE_BL photon_trace_depth2; /*!< DXF 90 */
7475
  BITCODE_BL photon_trace_depth3; /*!< DXF 90 */
7476
  BITCODE_B  final_gathering_enabled; /*!< DXF 290 */
7477
  BITCODE_BL fg_ray_count;    /*!< DXF 90 */
7478
  BITCODE_B  fg_sample_radius_state1; /*!< DXF 290 */
7479
  BITCODE_B  fg_sample_radius_state2; /*!< DXF 290 */
7480
  BITCODE_B  fg_sample_radius_state3; /*!< DXF 290 */
7481
  BITCODE_BD fg_sample_radius1;   /*!< DXF 40 */
7482
  BITCODE_BD fg_sample_radius2;   /*!< DXF 40 */
7483
  BITCODE_BD light_luminance_scale;   /*!< DXF 40 */
7484
  BITCODE_BS diagnostics_mode;    /*!< DXF 70 */
7485
  BITCODE_BS diagnostics_grid_mode; /*!< DXF 70 */
7486
  BITCODE_BD diagnostics_grid_float;  /*!< DXF 40 */
7487
  BITCODE_BS diagnostics_photon_mode; /*!< DXF 70 */
7488
  BITCODE_BS diagnostics_bsp_mode;  /*!< DXF 70 */
7489
  BITCODE_B  export_mi_enabled;   /*!< DXF 290 */
7490
  BITCODE_T  mr_description;    /*!< DXF 1 */
7491
  BITCODE_BL tile_size;     /*!< DXF 90 */
7492
  BITCODE_BS tile_order;    /*!< DXF 70 */
7493
  BITCODE_BL memory_limit;    /*!< DXF 90 */
7494
  BITCODE_B  diagnostics_samples_mode;  /*!< DXF 290 */
7495
  BITCODE_BD energy_multiplier;   /*!< DXF 40 */
7496
} Dwg_Object_MENTALRAYRENDERSETTINGS;
7497
7498
/**
7499
 Class RAPIDRTRENDERSETTINGS (varies)
7500
 */
7501
typedef struct _dwg_object_RAPIDRTRENDERSETTINGS
7502
{
7503
  struct _dwg_object_object *parent;
7504
  RENDERSETTINGS_fields;
7505
  BITCODE_B has_predefined;     /*!< DXF 290, r2013+ RENDERSETTINGS and RAPIDRT only */
7506
  // AcDbRapidRTRenderSettings
7507
  BITCODE_BL rapidrt_version;   /*!< DXF 90 */
7508
  BITCODE_BL render_target; /*!< DXF 70,
7509
      quit conditions: level=0 (iteration), time=1, infinite=2 */
7510
  BITCODE_BL render_level;  /*!< DXF 90 */
7511
  BITCODE_BL render_time; /*!< DXF 90 */
7512
  BITCODE_BL lighting_model;  /*!< DXF 70,
7513
      AcGiLightingMode: simplistic=0, basic=1, advanced=2 */
7514
  BITCODE_BL filter_type; /*!< DXF 70 */
7515
  BITCODE_BD filter_width;  /*!< DXF 40 */
7516
  BITCODE_BD filter_height; /*!< DXF 40 */
7517
} Dwg_Object_RAPIDRTRENDERSETTINGS;
7518
7519
/**
7520
 Class RENDERENVIRONMENT (varies)
7521
 */
7522
typedef struct _dwg_object_RENDERENVIRONMENT
7523
{
7524
  struct _dwg_object_object *parent;
7525
7526
  BITCODE_BL class_version;       /*!< DXF 90, default: 1 */
7527
  BITCODE_B fog_enabled;          /*!< DXF 290 */
7528
  BITCODE_B fog_background_enabled;   /*!< DXF 290 */
7529
  BITCODE_RC fog_color_r;         /*!< DXF 280 */
7530
  BITCODE_RC fog_color_g;         /*!< DXF 280 */
7531
  BITCODE_RC fog_color_b;         /*!< DXF 280 */
7532
  BITCODE_BD fog_density_near;    /*!< DXF 40 */
7533
  BITCODE_BD fog_density_far;     /*!< DXF 40 */
7534
  BITCODE_BD fog_distance_near;       /*!< DXF 40 */
7535
  BITCODE_BD fog_distance_far;        /*!< DXF 40 */
7536
  BITCODE_B environ_image_enabled;    /*!< DXF 290 */
7537
  BITCODE_T environ_image_filename;   /*!< DXF 1 */
7538
} Dwg_Object_RENDERENVIRONMENT;
7539
7540
/**
7541
 Class RENDERGLOBAL (varies)
7542
 */
7543
typedef struct _dwg_object_RENDERGLOBAL
7544
{
7545
  struct _dwg_object_object *parent;
7546
7547
  BITCODE_BL class_version;    /*!< DXF 90 */
7548
  BITCODE_BL procedure;        /*!< DXF 90 */
7549
  BITCODE_BL destination;      /*!< DXF 90 */
7550
  BITCODE_B save_enabled;      /*!< DXF 290 */
7551
  BITCODE_T save_filename;     /*!< DXF 1 */
7552
  BITCODE_BL image_width;      /*!< DXF 90 */
7553
  BITCODE_BL image_height;     /*!< DXF 90 */
7554
  BITCODE_B predef_presets_first; /*!< DXF 290 */
7555
  BITCODE_B highlevel_info;    /*!< DXF 290 */
7556
} Dwg_Object_RENDERGLOBAL;
7557
7558
/**
7559
 Class RENDERENTRY (varies)
7560
 */
7561
typedef struct _dwg_object_RENDERENTRY
7562
{
7563
  struct _dwg_object_object *parent;
7564
  BITCODE_BL class_version; /*!< DXF 90 */
7565
  BITCODE_T image_file_name;  /*!< DXF 1 */
7566
  BITCODE_T preset_name;  /*!< DXF 1 */
7567
  BITCODE_T view_name;    /*!< DXF 1 */
7568
  BITCODE_BL dimension_x; /*!< DXF 90 */
7569
  BITCODE_BL dimension_y; /*!< DXF 90 */
7570
  BITCODE_BS start_year;  /*!< DXF 70 */
7571
  BITCODE_BS start_month; /*!< DXF 70 */
7572
  BITCODE_BS start_day;   /*!< DXF 70 */
7573
  BITCODE_BS start_hour;  /*!< DXF 70 */
7574
  BITCODE_BS start_minute;  /*!< DXF 70 */
7575
  BITCODE_BS start_second;  /*!< DXF 70 */
7576
  BITCODE_BS start_msec;  /*!< DXF 70 */
7577
  BITCODE_BS end_year;    /*!< DXF 70 */
7578
  BITCODE_BS end_month;   /*!< DXF 70 */
7579
  BITCODE_BS end_day;   /*!< DXF 70 */
7580
  BITCODE_BS end_hour;    /*!< DXF 70 */
7581
  BITCODE_BS end_minute;  /*!< DXF 70 */
7582
  BITCODE_BS end_second;  /*!< DXF 70 */
7583
  BITCODE_BS end_msec;    /*!< DXF 70 */
7584
  BITCODE_BD render_time; /*!< DXF 40 */
7585
  BITCODE_BL memory_amount; /*!< DXF 90 */
7586
  BITCODE_BL material_count;  /*!< DXF 90 */
7587
  BITCODE_BL light_count; /*!< DXF 90 */
7588
  BITCODE_BL triangle_count;  /*!< DXF 90 */
7589
  BITCODE_BL display_index; /*!< DXF 90 */
7590
} Dwg_Object_RENDERENTRY;
7591
7592
/**
7593
 Class MOTIONPATH (varies)
7594
 Maybe all the Camera paths are under ACAD_NAMEDPATH, but there's also ACAD_MOTION
7595
 */
7596
typedef struct _dwg_object_MOTIONPATH
7597
{
7598
  struct _dwg_object_object *parent;
7599
  // AcDbMotionPath
7600
  BITCODE_BS class_version;     /*!< DXF 90, default: 1 */
7601
  BITCODE_H camera_path;        /*!< DXF 340 */
7602
  BITCODE_H target_path;        /*!< DXF 340 */
7603
  BITCODE_H viewtable;          /*!< DXF 340 */
7604
  BITCODE_BS frames;            /*!< DXF 90  number of frames? default 30 */
7605
  BITCODE_BS frame_rate;        /*!< DXF 90  per second, default 30 */
7606
  BITCODE_B corner_decel;       /*!< DXF 290 */
7607
} Dwg_Object_MOTIONPATH;
7608
7609
/**
7610
 Class ACDBCURVEPATH (varies)
7611
 */
7612
typedef struct _dwg_object_CURVEPATH
7613
{
7614
  struct _dwg_object_object *parent;
7615
  // AcDbCurvePath, child of AcDbNamedPath
7616
  BITCODE_BS class_version;     /*!< DXF 90, default: 1 */
7617
  BITCODE_H entity;             /*!< DXF 340 */
7618
} Dwg_Object_CURVEPATH;
7619
7620
/**
7621
 Class ACDBPOINTPATH (varies)
7622
 */
7623
typedef struct _dwg_object_POINTPATH
7624
{
7625
  struct _dwg_object_object *parent;
7626
  // AcDbPointPath, child of AcDbNamedPath
7627
  BITCODE_BS class_version;     /*!< DXF 90, default: 1 */
7628
  BITCODE_3BD point;            /*!< DXF 10 */
7629
} Dwg_Object_POINTPATH;
7630
7631
// not in DXF
7632
typedef struct _dwg_object_TVDEVICEPROPERTIES
7633
{
7634
  struct _dwg_object_object *parent;
7635
  BITCODE_BL flags; /* 1: double_buffer, 2: blocks_cache, 4: multithreaded, 8: sw_hlr
7636
                       16: discard_backfaces, 32: ttf_cache, 64: dyn_subenthlt, 128: force_partial_update
7637
                       256: clear_screen, 512: use_visual_styles (bit 9) 1024: use_overlay_buffers,
7638
                       2048: scene_graph, 4096: composite_meta_files, ??: create_gl_context (bit 13)
7639
                       delay_scenegraphproc (bit 14),
7640
                    */
7641
  BITCODE_BS max_regen_threads;
7642
  BITCODE_BL use_lut_palette;
7643
  BITCODE_BLL alt_hlt;
7644
  BITCODE_BLL alt_hltcolor;
7645
  BITCODE_BLL geom_shader_usage;
7646
  // ver > 3
7647
  BITCODE_BL blending_mode;
7648
  //ver 2 or >4:
7649
  BITCODE_BD antialiasing_level;
7650
  BITCODE_BD reserved_double;
7651
} Dwg_Object_TVDEVICEPROPERTIES;
7652
7653
typedef struct _dwg_object_SKYLIGHT_BACKGROUND
7654
{
7655
  struct _dwg_object_object *parent;
7656
  BITCODE_BL class_version;     /*!< DXF 90, default 1 */
7657
  BITCODE_H sunid;    /*!< DXF 340 */
7658
} Dwg_Object_SKYLIGHT_BACKGROUND;
7659
7660
typedef struct _dwg_object_SOLID_BACKGROUND
7661
{
7662
  struct _dwg_object_object *parent;
7663
  BITCODE_BL class_version;     /*!< DXF 90, default 1 */
7664
  BITCODE_BLx color;    /*!< DXF 90 */
7665
} Dwg_Object_SOLID_BACKGROUND;
7666
7667
typedef struct _dwg_object_IMAGE_BACKGROUND
7668
{
7669
  struct _dwg_object_object *parent;
7670
  BITCODE_BL class_version;     /*!< DXF 90, default 1 */
7671
  BITCODE_T filename;   /*!< DXF 300 */
7672
  BITCODE_B fit_to_screen;  /*!< DXF 290 */
7673
  BITCODE_B maintain_aspect_ratio;  /*!< DXF 291 */
7674
  BITCODE_B use_tiling;   /*!< DXF 292 */
7675
  BITCODE_2BD offset;   /*!< DXF 140,141 */
7676
  BITCODE_2BD scale;    /*!< DXF 142,143 */
7677
} Dwg_Object_IMAGE_BACKGROUND;
7678
7679
// Image Based Lightning
7680
typedef struct _dwg_object_IBL_BACKGROUND
7681
{
7682
  struct _dwg_object_object *parent;
7683
  BITCODE_BL class_version;     /*!< DXF 90, default 2 */
7684
  BITCODE_B enable;             /*!< DXF 290 */
7685
  BITCODE_T name;         /*!< DXF 1 */
7686
  BITCODE_BD rotation;          /*!< DXF 40, normalized -180 +180, in degrees */
7687
  BITCODE_B display_image;      /*!< DXF 290 */
7688
  BITCODE_H secondary_background;/*!< DXF 340 */
7689
} Dwg_Object_IBL_BACKGROUND;
7690
7691
typedef struct _dwg_object_GRADIENT_BACKGROUND
7692
{
7693
  struct _dwg_object_object *parent;
7694
  BITCODE_BL class_version;     /*!< DXF 90, default 1 */
7695
  BITCODE_BLx color_top;  /*!< DXF 90 */
7696
  BITCODE_BLx color_middle; /*!< DXF 91 */
7697
  BITCODE_BLx color_bottom; /*!< DXF 91 */
7698
  BITCODE_BD horizon;   /*!< DXF 140 */
7699
  BITCODE_BD height;    /*!< DXF 141 */
7700
  BITCODE_BD rotation;    /*!< DXF 142 */
7701
} Dwg_Object_GRADIENT_BACKGROUND;
7702
7703
typedef struct _dwg_object_GROUND_PLANE_BACKGROUND
7704
{
7705
  struct _dwg_object_object *parent;
7706
  BITCODE_BL class_version;       /*!< DXF 90, default 1 */
7707
  BITCODE_BLx color_sky_zenith;   /*!< DXF 90 */
7708
  BITCODE_BLx color_sky_horizon;  /*!< DXF 91 */
7709
  BITCODE_BLx color_underground_horizon;/*!< DXF 92 */
7710
  BITCODE_BLx color_underground_azimuth;/*!< DXF 93 */
7711
  BITCODE_BLx color_near;   /*!< DXF 94 groundplane */
7712
  BITCODE_BLx color_far;    /*!< DXF 95 groundplane */
7713
} Dwg_Object_GROUND_PLANE_BACKGROUND;
7714
7715
/**
7716
 * Class AcDbAnnotScaleObjectContextData (varies)
7717
 * for MTEXT, TEXT, MLEADER, LEADER, BLKREF, ALDIM (AlignedDimension), MTEXTATTRIBUTE, ...
7718
 * R2010+
7719
 * 20.4.89 SubClass AcDbObjectContextData (varies)
7720
 */
7721
7722
#define OBJECTCONTEXTDATA_fields                                              \
7723
  struct _dwg_object_object *parent;                                          \
7724
  BITCODE_BS class_version; /*!< r2010+ =4, before 3 */                       \
7725
  BITCODE_B is_default     /* 290 */
7726
7727
#define ANNOTSCALEOBJECTCONTEXTDATA_fields                                    \
7728
  OBJECTCONTEXTDATA_fields;                                                   \
7729
  BITCODE_H scale /*!< DXF 340 */
7730
7731
typedef struct _dwg_object_ANNOTSCALEOBJECTCONTEXTDATA
7732
{
7733
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7734
} Dwg_Object_ANNOTSCALEOBJECTCONTEXTDATA;
7735
7736
typedef struct _dwg_CONTEXTDATA_dict
7737
{
7738
  struct _dwg_CONTEXTDATA_submgr *parent;
7739
  BITCODE_T text;
7740
  BITCODE_H itemhandle;
7741
} Dwg_CONTEXTDATA_dict;
7742
7743
typedef struct _dwg_CONTEXTDATA_submgr
7744
{
7745
  struct _dwg_object_CONTEXTDATAMANAGER *parent;
7746
  BITCODE_H handle;
7747
  BITCODE_BL num_entries;
7748
  Dwg_CONTEXTDATA_dict *entries;
7749
} Dwg_CONTEXTDATA_submgr;
7750
7751
/**
7752
 * R2010+
7753
 * A special DICTIONARY
7754
 */
7755
typedef struct _dwg_object_CONTEXTDATAMANAGER
7756
{
7757
  struct _dwg_object_object *parent;
7758
  BITCODE_H objectcontext;
7759
  BITCODE_BL num_submgrs;
7760
  Dwg_CONTEXTDATA_submgr *submgrs;
7761
} Dwg_Object_CONTEXTDATAMANAGER;
7762
7763
#define TEXTOBJECTCONTEXTDATA_fields \
7764
  BITCODE_BS horizontal_mode; /*<! DXF 70, default 0 */ \
7765
  BITCODE_BD rotation;    /*!< DXF 50, default 0.0 or 90.0 */ \
7766
  BITCODE_2RD ins_pt;     /*!< DXF 10-20 */ \
7767
  BITCODE_2RD alignment_pt  /*!< DXF 11-21 */
7768
7769
/**
7770
 * R2010+
7771
 */
7772
typedef struct _dwg_object_TEXTOBJECTCONTEXTDATA
7773
{
7774
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7775
  TEXTOBJECTCONTEXTDATA_fields;
7776
} Dwg_Object_TEXTOBJECTCONTEXTDATA;
7777
7778
/**
7779
 * R2010+
7780
 */
7781
typedef struct _dwg_object_MTEXTOBJECTCONTEXTDATA
7782
{
7783
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7784
  // AcDbMTextObjectContextData_fields:
7785
  BITCODE_BL attachment;        /*<! DXF 70 */
7786
  BITCODE_3BD ins_pt;     /*!< DXF 10 */
7787
  BITCODE_3BD x_axis_dir;   /*!< DXF 11 */
7788
  BITCODE_BD rect_height; /*!< DXF 40 */
7789
  BITCODE_BD rect_width;  /*!< DXF 41 */
7790
  BITCODE_BD extents_width; /*!< DXF 42 */
7791
  BITCODE_BD extents_height;  /*!< DXF 43 */
7792
  BITCODE_BL column_type;       /*!< DXF 71 0: none, 1: static, 2: dynamic.
7793
                                     Note: BS in MTEXT! */
7794
  BITCODE_BD column_width;      /*!< DXF 44 */
7795
  BITCODE_BD gutter;            /*!< DXF 45 */
7796
  BITCODE_B auto_height;        /*!< DXF 73 */
7797
  BITCODE_B flow_reversed;      /*!< DXF 74 */
7798
  BITCODE_BL num_column_heights;/*!< DXF 72 or numfragments */
7799
  BITCODE_BD *column_heights;   /*!< DXF 46 if dynamic and not auto_height */
7800
} Dwg_Object_MTEXTOBJECTCONTEXTDATA;
7801
7802
// subclass AcDbDimensionObjectContextData
7803
typedef struct _dwg_OCD_Dimension
7804
{
7805
  BITCODE_B b293;   /*!< DXF 293 */
7806
  BITCODE_2RD def_pt;     /*!< DXF 10-30 */
7807
  BITCODE_B is_def_textloc; /*<! DXF 294 if def_pt is default */
7808
  BITCODE_BD text_rotation; /*!< DXF 140 */
7809
  BITCODE_H block;    /*!< DXF 2 */
7810
  BITCODE_B dimtofl;    /*!< DXF 298 */
7811
  BITCODE_B dimosxd;    /*!< DXF 291 */
7812
  BITCODE_B dimatfit;   /*!< DXF 70  */
7813
  BITCODE_B dimtix;   /*!< DXF 292 */
7814
  BITCODE_B dimtmove;   /*!< DXF 71  */
7815
  BITCODE_RC override_code; /*!< DXF 280 */
7816
  BITCODE_B has_arrow2;   /*!< DXF 295 */
7817
  BITCODE_B flip_arrow2;  /*!< DXF 296 */
7818
  BITCODE_B flip_arrow1;  /*!< DXF 297 */
7819
} Dwg_OCD_Dimension;
7820
7821
/**
7822
 * for ALDIM (AlignedDimension)
7823
 * R2010+
7824
 */
7825
typedef struct _dwg_object_ALDIMOBJECTCONTEXTDATA
7826
{
7827
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7828
  Dwg_OCD_Dimension dimension;
7829
  // AcDbAlignedDimensionObjectContextData
7830
  BITCODE_3BD dimline_pt; /*!< DXF 11-31 */
7831
} Dwg_Object_ALDIMOBJECTCONTEXTDATA;
7832
7833
/**
7834
 * for ANGDIM (AngularDimension)
7835
 * R2010+
7836
 */
7837
typedef struct _dwg_object_ANGDIMOBJECTCONTEXTDATA
7838
{
7839
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7840
  Dwg_OCD_Dimension dimension;
7841
  // AcDbAngularDimensionObjectContextData
7842
  BITCODE_3BD arc_pt; /*!< DXF 11-31 */
7843
} Dwg_Object_ANGDIMOBJECTCONTEXTDATA;
7844
7845
/**
7846
 * for DMDIM (DiametricDimension)
7847
 * R2010+
7848
 */
7849
typedef struct _dwg_object_DMDIMOBJECTCONTEXTDATA
7850
{
7851
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7852
  Dwg_OCD_Dimension dimension;
7853
  // AcDbDiametricDimensionObjectContextData
7854
  BITCODE_3BD first_arc_pt; /*!< DXF 11-31 */
7855
  BITCODE_3BD def_pt;   /*!< DXF 12-32 */
7856
} Dwg_Object_DMDIMOBJECTCONTEXTDATA;
7857
7858
/**
7859
 * for ORDDIM (OrdinateDimension)
7860
 * R2010+
7861
 */
7862
typedef struct _dwg_object_ORDDIMOBJECTCONTEXTDATA
7863
{
7864
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7865
  Dwg_OCD_Dimension dimension;
7866
  // AcDbOrdinateDimensionObjectContextData
7867
  BITCODE_3BD feature_location_pt;  /*!< DXF 11-31 = origin */
7868
  BITCODE_3BD leader_endpt;   /*!< DXF 12-32 */
7869
} Dwg_Object_ORDDIMOBJECTCONTEXTDATA;
7870
7871
/**
7872
 * for RADIM (Radial Dimension)
7873
 * R2010+
7874
 */
7875
typedef struct _dwg_object_RADIMOBJECTCONTEXTDATA
7876
{
7877
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7878
  Dwg_OCD_Dimension dimension;
7879
  // AcDbRadialDimensionObjectContextData
7880
  BITCODE_3BD first_arc_pt;   /*!< DXF 11-31 */
7881
} Dwg_Object_RADIMOBJECTCONTEXTDATA;
7882
7883
/**
7884
 * for RADIMLG (Large Radial Dimension)
7885
 * R2010+
7886
 */
7887
typedef struct _dwg_object_RADIMLGOBJECTCONTEXTDATA
7888
{
7889
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7890
  Dwg_OCD_Dimension dimension;
7891
  // AcDbRadialDimensionLargeObjectContextData
7892
  BITCODE_3BD ovr_center;   /*!< DXF 12-32 */
7893
  BITCODE_3BD jog_point;    /*!< DXF 13-33 */
7894
} Dwg_Object_RADIMLGOBJECTCONTEXTDATA;
7895
7896
typedef struct _dwg_object_MTEXTATTRIBUTEOBJECTCONTEXTDATA
7897
{
7898
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7899
  TEXTOBJECTCONTEXTDATA_fields;
7900
  // MTEXTATTR
7901
  BITCODE_B enable_context;
7902
  Dwg_Object_SCALE context;
7903
} Dwg_Object_MTEXTATTRIBUTEOBJECTCONTEXTDATA;
7904
7905
typedef struct _dwg_object_MLEADEROBJECTCONTEXTDATA
7906
{
7907
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7908
  // ...??
7909
} Dwg_Object_MLEADEROBJECTCONTEXTDATA;
7910
7911
typedef struct _dwg_object_LEADEROBJECTCONTEXTDATA
7912
{
7913
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7914
  BITCODE_BL num_points;  /*< DXF 70 */
7915
  BITCODE_3DPOINT* points;  /*!< DXF 10 */
7916
  BITCODE_B b290;   /*!< DXF 290 */
7917
  BITCODE_3DPOINT x_direction;  /*!< DXF 11 */
7918
  BITCODE_3DPOINT inspt_offset; /*!< DXF 12 */
7919
  BITCODE_3DPOINT endptproj;  /*!< DXF 13 */
7920
} Dwg_Object_LEADEROBJECTCONTEXTDATA;
7921
7922
typedef struct _dwg_object_BLKREFOBJECTCONTEXTDATA
7923
{
7924
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7925
  BITCODE_BD rotation;           /* 50 */
7926
  BITCODE_3BD ins_pt;        /* 10 */
7927
  BITCODE_3BD scale_factor;      /* 42-44 */
7928
} Dwg_Object_BLKREFOBJECTCONTEXTDATA;
7929
7930
typedef struct _dwg_object_FCFOBJECTCONTEXTDATA
7931
{
7932
  ANNOTSCALEOBJECTCONTEXTDATA_fields;
7933
  BITCODE_3BD location;   /*!< DXF 10-30 */
7934
  BITCODE_3BD horiz_dir;  /*!< DXF 11-31 */
7935
} Dwg_Object_FCFOBJECTCONTEXTDATA;
7936
7937
typedef struct _dwg_object_DETAILVIEWSTYLE
7938
{
7939
  struct _dwg_object_object *parent;
7940
  // AcDbModelDocViewStyle
7941
  BITCODE_BS mdoc_class_version; /*!< DXF 70 0 */
7942
  BITCODE_T desc;
7943
  BITCODE_B is_modified_for_recompute;
7944
  BITCODE_T display_name;
7945
  BITCODE_BL viewstyle_flags; /* DXF 90. 1: cannot_rename */
7946
  // AcDbDetailViewStyle
7947
  BITCODE_BS class_version; /*!< DXF 70 0 */
7948
  BITCODE_BL flags;
7949
  BITCODE_H identifier_style;
7950
  BITCODE_CMC identifier_color;
7951
  BITCODE_BD identifier_height;
7952
  BITCODE_T identifier_exclude_characters;
7953
  BITCODE_BD identifier_offset;
7954
  BITCODE_RC identifier_placement;
7955
  BITCODE_H arrow_symbol;
7956
  BITCODE_CMC arrow_symbol_color;
7957
  BITCODE_BD arrow_symbol_size;
7958
  BITCODE_H boundary_ltype;
7959
  BITCODE_BLd boundary_linewt;
7960
  BITCODE_CMC boundary_line_color;
7961
  BITCODE_H viewlabel_text_style;
7962
  BITCODE_CMC viewlabel_text_color;
7963
  BITCODE_BD viewlabel_text_height;
7964
  BITCODE_BL viewlabel_attachment;
7965
  BITCODE_BD viewlabel_offset;
7966
  BITCODE_BL viewlabel_alignment;
7967
  BITCODE_T viewlabel_pattern;
7968
  BITCODE_H connection_ltype;
7969
  BITCODE_BLd connection_linewt;
7970
  BITCODE_CMC connection_line_color;
7971
  BITCODE_H borderline_ltype;
7972
  BITCODE_BLd borderline_linewt;
7973
  BITCODE_CMC borderline_color;
7974
  BITCODE_RC model_edge;
7975
} Dwg_Object_DETAILVIEWSTYLE;
7976
7977
typedef struct _dwg_object_SECTIONVIEWSTYLE
7978
{
7979
  struct _dwg_object_object *parent;
7980
7981
  // AcDbModelDocViewStyle
7982
  BITCODE_BS mdoc_class_version; /*!< DXF 70 0 */
7983
  BITCODE_T desc;
7984
  BITCODE_B is_modified_for_recompute;
7985
  BITCODE_T display_name;
7986
  BITCODE_BL viewstyle_flags; /* DXF 90. 1: cannot_rename */
7987
  // AcDbSectionViewStyle
7988
  BITCODE_BS class_version; /*!< DXF 70 0 */
7989
  BITCODE_BL flags; /* DXF 90. 1: is_continuous_labeling, 2: show_arrowheads,
7990
                       4: show_viewlabel,  8: show_all_plane_lines,
7991
                       0x10: show_all_bend_identifiers,
7992
                       0x20 show_end_and_bend_lines, 0x40: show_hatching ... */
7993
  BITCODE_H identifier_style;
7994
  BITCODE_CMC identifier_color;
7995
  BITCODE_BD identifier_height;
7996
  BITCODE_H arrow_start_symbol;
7997
  BITCODE_H arrow_end_symbol;
7998
  BITCODE_CMC arrow_symbol_color;
7999
  BITCODE_BD arrow_symbol_size;
8000
  BITCODE_T identifier_exclude_characters;
8001
  BITCODE_BLd identifier_position;
8002
  BITCODE_BD identifier_offset;
8003
  BITCODE_BLd arrow_position;
8004
  BITCODE_BD arrow_symbol_extension_length;
8005
  BITCODE_H plane_ltype;
8006
  BITCODE_BLd plane_linewt;
8007
  BITCODE_CMC plane_line_color;
8008
  BITCODE_H bend_ltype;
8009
  BITCODE_BLd bend_linewt;
8010
  BITCODE_CMC bend_line_color;
8011
  BITCODE_BD bend_line_length;
8012
  BITCODE_BD end_line_overshoot;
8013
  BITCODE_BD end_line_length;
8014
  BITCODE_H viewlabel_text_style;
8015
  BITCODE_CMC viewlabel_text_color;
8016
  BITCODE_BD viewlabel_text_height;
8017
  BITCODE_BL viewlabel_attachment;
8018
  BITCODE_BD viewlabel_offset;
8019
  BITCODE_BL viewlabel_alignment;
8020
  BITCODE_T viewlabel_pattern;
8021
  BITCODE_CMC hatch_color;
8022
  BITCODE_CMC hatch_bg_color;
8023
  BITCODE_T hatch_pattern;
8024
  BITCODE_BD hatch_scale;
8025
  BITCODE_BLd hatch_transparency;
8026
  // see flags:
8027
  //BITCODE_B is_continuous_labeling;
8028
  //BITCODE_B show_arrowheads;
8029
  //BITCODE_B show_viewlabel;
8030
  //BITCODE_B show_end_and_bend_lines;
8031
  //BITCODE_B show_hatching;
8032
  BITCODE_B unknown_b1;
8033
  BITCODE_B unknown_b2;
8034
  BITCODE_BL num_hatch_angles;
8035
  BITCODE_BD *hatch_angles;
8036
} Dwg_Object_SECTIONVIEWSTYLE;
8037
8038
typedef struct _dwg_object_SECTION_MANAGER
8039
{
8040
  struct _dwg_object_object *parent;
8041
  BITCODE_B is_live;    /*!< DXF 70 */
8042
  BITCODE_BS num_sections;  /*!< DXF 90 */
8043
  BITCODE_H *sections;    /*!< DXF 330 */
8044
} Dwg_Object_SECTION_MANAGER;
8045
8046
typedef struct _dwg_SECTION_geometrysettings
8047
{
8048
  struct _dwg_SECTION_typesettings *parent;
8049
  BITCODE_BL num_geoms;         /* DXF 90 */
8050
  BITCODE_BL hexindex;          /* DXF 91 */
8051
  BITCODE_BL flags;     /* DXF 92. 2: hatchvisible, 4: is_hiddenline, 8: has_division_lines */
8052
  BITCODE_CMC color;    /* DXF 62 */
8053
  BITCODE_T layer;    /* DXF 8 Default: 0 */
8054
  BITCODE_T ltype;    /* DXF 6 Default: Continuous */
8055
  BITCODE_BD ltype_scale; /* DXF 40 */
8056
  BITCODE_T plotstyle;          /* DXF 1 Default: ByColor */
8057
  BITCODE_BLd linewt;   /* DXF 370 */
8058
  BITCODE_BS face_transparency; /* DXF 70 */
8059
  BITCODE_BS edge_transparency; /* DXF 71 */
8060
  BITCODE_BS hatch_type;  /* DXF 72 */
8061
  BITCODE_T hatch_pattern;  /* DXF 2 */
8062
  BITCODE_BD hatch_angle; /* DXF 41 */
8063
  BITCODE_BD hatch_spacing; /* DXF 42 */
8064
  BITCODE_BD hatch_scale; /* DXF 43 */
8065
} Dwg_SECTION_geometrysettings;
8066
8067
typedef struct _dwg_SECTION_typesettings
8068
{
8069
  struct _dwg_object_SECTION_SETTINGS *parent;
8070
  BITCODE_BS type;        /*!< DXF 90: type: live=1, 2d=2, 3d=4 */
8071
  BITCODE_BS generation;    /*!< DXF 91: source and destination flags.
8072
                                     sourceall=1, sourceselected=2.
8073
                                     destnewblock=16, destreplaceblock=32, destfile=64
8074
                                 */
8075
  /* or geometry: intersectionboundary=1, intersectionfill=2, fg_geom=4, bg_geom=8
8076
                  curvetangencylines=16 */
8077
  BITCODE_BL num_sources;
8078
  BITCODE_H *sources;
8079
  BITCODE_H destblock;
8080
  BITCODE_T destfile;
8081
  BITCODE_BL num_geom;
8082
  Dwg_SECTION_geometrysettings *geom;
8083
} Dwg_SECTION_typesettings;
8084
8085
// Unstable
8086
typedef struct _dwg_object_SECTION_SETTINGS
8087
{
8088
  struct _dwg_object_object *parent;
8089
  BITCODE_BS curr_type;       /* DXF 90 */
8090
  BITCODE_BL num_types;       /* DXF 91 */
8091
  Dwg_SECTION_typesettings *types;
8092
} Dwg_Object_SECTION_SETTINGS;
8093
8094
typedef struct _dwg_object_LAYER_FILTER
8095
{
8096
  struct _dwg_object_object *parent;
8097
  BITCODE_BL num_names;
8098
  BITCODE_T *names;
8099
} Dwg_Object_LAYER_FILTER;
8100
8101
typedef struct _dwg_entity_ARCALIGNEDTEXT
8102
{
8103
  struct _dwg_object_entity *parent;
8104
  BITCODE_D2T text_size;  /*!< DXF 42 */
8105
  BITCODE_D2T xscale;   /*!< DXF 41 */
8106
  BITCODE_D2T char_spacing; /*!< DXF 43 */
8107
  BITCODE_T style;    /*!< DXF 7 */
8108
  BITCODE_T text_value;   /*!< DXF 1 */
8109
  BITCODE_T font_name;    /*!< DXF 2 */
8110
  BITCODE_T bigfont_name; /*!< DXF 3 */
8111
  BITCODE_D2T offset_from_arc;  /*!< DXF 44 */
8112
  BITCODE_D2T right_offset; /*!< DXF 45 */
8113
  BITCODE_D2T left_offset;  /*!< DXF 46 */
8114
  BITCODE_3BD center;   /*!< DXF 10 */
8115
  BITCODE_BD radius;    /*!< DXF 40 */
8116
  BITCODE_BD start_angle; /*!< DXF 50 */
8117
  BITCODE_BD end_angle;   /*!< DXF 51 */
8118
  BITCODE_3BD extrusion;        /*!< DXF 210 */
8119
  BITCODE_BL color;             /*!< DXF 90 */
8120
  BITCODE_BS is_reverse;  /*!< DXF 70 */
8121
  BITCODE_BS text_direction;  /*!< DXF 71, OutwardFromCenter=1, InwardToCenter=2 */
8122
  BITCODE_BS alignment;   /*!< DXF 72, 1-4 */
8123
  BITCODE_BS text_position; /*!< DXF 73, side_flag. OnConvexSide=1, OnConcaveSide=2 */
8124
  BITCODE_BS is_bold;   /*!< DXF 74 */
8125
  BITCODE_BS is_italic;   /*!< DXF 75 */
8126
  BITCODE_BS is_underlined; /*!< DXF 76 */
8127
  BITCODE_BS character_set;   /*!< DXF 77 */
8128
  BITCODE_BS pitch_and_family;  /*!< DXF 78 */
8129
  BITCODE_BS is_shx;    /*!< DXF 79, font_type. */
8130
  BITCODE_BS wizard_flag; /*!< DXF 280 */
8131
  BITCODE_H arc_handle;   /*!< DXF 330 */
8132
} Dwg_Entity_ARCALIGNEDTEXT;
8133
8134
// Remote Text with external src or Diesel expr
8135
typedef struct _dwg_entity_RTEXT
8136
{
8137
  struct _dwg_object_entity *parent;
8138
  BITCODE_3BD pt; /*!< DXF 10 */
8139
  BITCODE_BE extrusion; /*!< DXF 210 */
8140
  BITCODE_BD rotation;  /*!< DXF 50 */
8141
  BITCODE_BD height;  /*!< DXF 50 */
8142
  BITCODE_BS flags; /*!< DXF 70 */
8143
  BITCODE_T text_value; /*!< DXF 1 */
8144
  BITCODE_H style;  /*!< DXF 7 */
8145
} Dwg_Entity_RTEXT;
8146
8147
typedef struct _dwg_entity_LAYOUTPRINTCONFIG
8148
{
8149
  struct _dwg_object_entity *parent;
8150
  BITCODE_BS class_version; /* 2 */
8151
  // ...
8152
  BITCODE_BS flag; /*!< DXF 93 0 */
8153
} Dwg_Entity_LAYOUTPRINTCONFIG;
8154
8155
typedef struct _dwg_object_ACMECOMMANDHISTORY
8156
{
8157
  struct _dwg_object_object *parent;
8158
  BITCODE_BS class_version;
8159
  //?
8160
} Dwg_Object_ACMECOMMANDHISTORY;
8161
8162
typedef struct _dwg_object_ACMESCOPE
8163
{
8164
  struct _dwg_object_object *parent;
8165
  BITCODE_BS class_version;
8166
  //?
8167
} Dwg_Object_ACMESCOPE;
8168
8169
typedef struct _dwg_object_ACMESTATEMGR
8170
{
8171
  struct _dwg_object_object *parent;
8172
  BITCODE_BS class_version;
8173
  //?
8174
} Dwg_Object_ACMESTATEMGR;
8175
8176
typedef struct _dwg_object_CSACDOCUMENTOPTIONS
8177
{
8178
  struct _dwg_object_object *parent;
8179
  BITCODE_BS class_version;
8180
  //?
8181
} Dwg_Object_CSACDOCUMENTOPTIONS;
8182
8183
8184
// dynamic blocks:
8185
8186
#define BLOCKELEMENT_fields                     \
8187
  Dwg_EvalExpr evalexpr;                        \
8188
  BITCODE_T name;                               \
8189
  BITCODE_BL be_major;                          \
8190
  BITCODE_BL be_minor;                          \
8191
  BITCODE_BL eed1071
8192
8193
#define BLOCKPARAMETER_fields               \
8194
  BLOCKELEMENT_fields;                      \
8195
  BITCODE_B show_properties; /* DXF 280 */  \
8196
  BITCODE_B chain_actions    /* DXF 281 */
8197
8198
#define BLOCKACTION_fields                      \
8199
  BLOCKELEMENT_fields;                          \
8200
  BITCODE_3BD display_location;                 \
8201
  BITCODE_BL num_actions;                       \
8202
  BITCODE_BL *actions;                          \
8203
  BITCODE_BL num_deps;                          \
8204
  BITCODE_H *deps
8205
8206
// XY action params
8207
#define BLOCKACTION_doubles_fields              \
8208
  BITCODE_BD distance_multiplier; /* DXF 140 */ \
8209
  BITCODE_BD angle_offset;        /* DXF 141 */ \
8210
  BITCODE_RC action_xy_type       /* DXF 280 */
8211
8212
#define BLOCKGRIP_fields                        \
8213
  BLOCKELEMENT_fields;                          \
8214
  BITCODE_BL bg_bl91;                           \
8215
  BITCODE_BL bg_bl92;                           \
8216
  BITCODE_3BD bg_location;                      \
8217
  BITCODE_B bg_insert_cycling;                  \
8218
  BITCODE_BLd bg_insert_cycling_weight
8219
8220
// same as BLOCKACTION_connectionpts
8221
typedef struct _dwg_BLOCKPARAMETER_connection {
8222
  BITCODE_BL code;
8223
  BITCODE_T name;
8224
} Dwg_BLOCKPARAMETER_connection;
8225
8226
typedef  struct _dwg_BLOCKPARAMETER_PropInfo {
8227
  BITCODE_BL num_connections;
8228
  Dwg_BLOCKPARAMETER_connection *connections;
8229
} Dwg_BLOCKPARAMETER_PropInfo;
8230
8231
typedef  struct _dwg_BLOCKPARAMVALUESET {
8232
  BITCODE_T desc;
8233
  BITCODE_BL flags;
8234
  BITCODE_BD minimum;
8235
  BITCODE_BD maximum;
8236
  BITCODE_BD increment;
8237
  BITCODE_BS num_valuelist;
8238
  BITCODE_BD *valuelist;
8239
} Dwg_BLOCKPARAMVALUESET;
8240
8241
#define BLOCK1PTPARAMETER_fields                  \
8242
  BLOCKPARAMETER_fields;                          \
8243
  BITCODE_3BD def_pt;                             \
8244
  BITCODE_BL num_propinfos; /* 2 */               \
8245
  Dwg_BLOCKPARAMETER_PropInfo prop1;              \
8246
  Dwg_BLOCKPARAMETER_PropInfo prop2
8247
8248
#define BLOCK2PTPARAMETER_fields                  \
8249
  BLOCKPARAMETER_fields;                          \
8250
  BITCODE_3BD def_basept;                         \
8251
  BITCODE_3BD def_endpt;                          \
8252
  Dwg_BLOCKPARAMETER_PropInfo prop1;              \
8253
  Dwg_BLOCKPARAMETER_PropInfo prop2;              \
8254
  Dwg_BLOCKPARAMETER_PropInfo prop3;              \
8255
  Dwg_BLOCKPARAMETER_PropInfo prop4;              \
8256
  BITCODE_BL *prop_states;                        \
8257
  BITCODE_BS parameter_base_location;             \
8258
  BITCODE_3BD upd_basept;                         \
8259
  BITCODE_3BD basept;                             \
8260
  BITCODE_3BD upd_endpt;                          \
8261
  BITCODE_3BD endpt
8262
8263
typedef  struct _dwg_BLOCKACTION_connectionpts
8264
{
8265
  BITCODE_BL code;
8266
  BITCODE_T name;
8267
} Dwg_BLOCKACTION_connectionpts;
8268
8269
#define BLOCKACTION_WITHBASEPT_fields(n)        \
8270
  BLOCKACTION_fields;                           \
8271
  BITCODE_3BD offset;                           \
8272
  Dwg_BLOCKACTION_connectionpts conn_pts[n];    \
8273
  BITCODE_B dependent;                          \
8274
  BITCODE_3BD base_pt
8275
  /* BITCODE_3BD stretch_pt */
8276
8277
#define BLOCKPARAMVALUESET_fields               \
8278
  Dwg_BLOCKPARAMVALUESET value_set
8279
8280
#define BLOCKCONSTRAINTPARAMETER_fields         \
8281
  BLOCK2PTPARAMETER_fields;                     \
8282
  BITCODE_H dependency
8283
8284
#define BLOCKLINEARCONSTRAINTPARAMETER_fields    \
8285
  BLOCKCONSTRAINTPARAMETER_fields;               \
8286
  BITCODE_T expr_name;                           \
8287
  BITCODE_T expr_description;                    \
8288
  BITCODE_BD value;                              \
8289
  BLOCKPARAMVALUESET_fields
8290
8291
typedef struct _dwg_BLOCKVISIBILITYPARAMETER_state
8292
{
8293
  struct _dwg_object_BLOCKVISIBILITYPARAMETER *parent;
8294
  BITCODE_T name;            /* DXF 301 */
8295
  BITCODE_BL num_blocks;     /* DXF 94 */
8296
  BITCODE_H *blocks;         /* DXF 332 */
8297
  BITCODE_BL num_params;     /* DXF 95 */
8298
  BITCODE_H *params;         /* DXF 333 BLOCKVISIBILITYPARAMETER objects */
8299
} Dwg_BLOCKVISIBILITYPARAMETER_state;
8300
8301
typedef struct _dwg_object_BLOCKVISIBILITYPARAMETER
8302
{
8303
  struct _dwg_object_object *parent;
8304
  BLOCK1PTPARAMETER_fields;
8305
  BITCODE_B is_initialized; // DXF 281
8306
  BITCODE_B unknown_bool;   // DXF 91, history_compression, history_required or is_visible?
8307
  BITCODE_T blockvisi_name;     // DXF 301
8308
  BITCODE_T blockvisi_desc; // DXF 302
8309
  BITCODE_BL num_blocks;  // DXF 93
8310
  BITCODE_H *blocks;    // DXF 331
8311
  BITCODE_BL num_states;  // DXF 92
8312
  Dwg_BLOCKVISIBILITYPARAMETER_state *states;
8313
  //BITCODE_T cur_state_name;
8314
  //BITCODE_BL cur_state;
8315
} Dwg_Object_BLOCKVISIBILITYPARAMETER;
8316
8317
typedef struct _dwg_object_BLOCKVISIBILITYGRIP
8318
{
8319
  struct _dwg_object_object *parent;
8320
  BLOCKGRIP_fields;
8321
  // AcDbBlockVisibilityGrip
8322
} Dwg_Object_BLOCKVISIBILITYGRIP;
8323
8324
typedef struct _dwg_object_BLOCKGRIPLOCATIONCOMPONENT
8325
{
8326
  struct _dwg_object_object *parent;
8327
  Dwg_EvalExpr evalexpr;
8328
  // AcDbBlockGripExpr
8329
  BITCODE_BL grip_type;
8330
  BITCODE_T grip_expr;  // one of: X Y UpdatedX UpdatedY DisplacementX DisplacementY
8331
} Dwg_Object_BLOCKGRIPLOCATIONCOMPONENT;
8332
8333
typedef struct _dwg_object_BREAKDATA
8334
{
8335
  struct _dwg_object_object *parent;
8336
  BITCODE_BL num_pointrefs;
8337
  BITCODE_H *pointrefs;
8338
  BITCODE_H dimref;
8339
} Dwg_Object_BREAKDATA;
8340
8341
typedef struct _dwg_object_BREAKPOINTREF
8342
{
8343
  struct _dwg_object_object *parent;
8344
  // XrefFullSubendPath ??
8345
} Dwg_Object_BREAKPOINTREF;
8346
8347
typedef struct _dwg_entity_FLIPGRIPENTITY
8348
{
8349
  struct _dwg_object_entity *parent;
8350
  //BLOCKGRIP_fields;
8351
  // ??
8352
} Dwg_Entity_FLIPGRIPENTITY;
8353
8354
typedef struct _dwg_entity_LINEARGRIPENTITY
8355
{
8356
  struct _dwg_object_entity *parent;
8357
  //BLOCKGRIP_fields;
8358
  // ??
8359
} Dwg_Entity_LINEARGRIPENTITY;
8360
8361
typedef struct _dwg_entity_POLARGRIPENTITY
8362
{
8363
  struct _dwg_object_entity *parent;
8364
  //BLOCKGRIP_fields;
8365
  // ??
8366
} Dwg_Entity_POLARGRIPENTITY;
8367
8368
typedef struct _dwg_entity_ROTATIONGRIPENTITY
8369
{
8370
  struct _dwg_object_entity *parent;
8371
  //BLOCKGRIP_fields;
8372
  // ??
8373
} Dwg_Entity_ROTATIONGRIPENTITY;
8374
8375
typedef struct _dwg_entity_VISIBILITYGRIPENTITY
8376
{
8377
  struct _dwg_object_entity *parent;
8378
  //BLOCKGRIP_fields;
8379
  // ??
8380
} Dwg_Entity_VISIBILITYGRIPENTITY;
8381
8382
typedef struct _dwg_entity_XYGRIPENTITY
8383
{
8384
  struct _dwg_object_entity *parent;
8385
  //BLOCKGRIP_fields;
8386
  // ??
8387
} Dwg_Entity_XYGRIPENTITY;
8388
8389
typedef struct _dwg_entity_ALIGNMENTPARAMETERENTITY
8390
{
8391
  struct _dwg_object_entity *parent;
8392
  // ??
8393
} Dwg_Entity_ALIGNMENTPARAMETERENTITY;
8394
8395
typedef struct _dwg_entity_BASEPOINTPARAMETERENTITY
8396
{
8397
  struct _dwg_object_entity *parent;
8398
  // ??
8399
} Dwg_Entity_BASEPOINTPARAMETERENTITY;
8400
8401
typedef struct _dwg_entity_FLIPPARAMETERENTITY
8402
{
8403
  struct _dwg_object_entity *parent;
8404
  // ??
8405
} Dwg_Entity_FLIPPARAMETERENTITY;
8406
8407
typedef struct _dwg_entity_LINEARPARAMETERENTITY
8408
{
8409
  struct _dwg_object_entity *parent;
8410
  // ??
8411
} Dwg_Entity_LINEARPARAMETERENTITY;
8412
8413
typedef struct _dwg_entity_POINTPARAMETERENTITY
8414
{
8415
  struct _dwg_object_entity *parent;
8416
  // ??
8417
} Dwg_Entity_POINTPARAMETERENTITY;
8418
8419
typedef struct _dwg_entity_ROTATIONPARAMETERENTITY
8420
{
8421
  struct _dwg_object_entity *parent;
8422
  // ??
8423
} Dwg_Entity_ROTATIONPARAMETERENTITY;
8424
8425
typedef struct _dwg_entity_VISIBILITYPARAMETERENTITY
8426
{
8427
  struct _dwg_object_entity *parent;
8428
  // ??
8429
} Dwg_Entity_VISIBILITYPARAMETERENTITY;
8430
8431
typedef struct _dwg_entity_XYPARAMETERENTITY
8432
{
8433
  struct _dwg_object_entity *parent;
8434
  // ??
8435
} Dwg_Entity_XYPARAMETERENTITY;
8436
8437
typedef struct _dwg_object_BLOCKALIGNMENTGRIP
8438
{
8439
  struct _dwg_object_object *parent;
8440
  BLOCKGRIP_fields;
8441
  BITCODE_3BD orientation;
8442
} Dwg_Object_BLOCKALIGNMENTGRIP;
8443
8444
typedef struct _dwg_object_BLOCKALIGNMENTPARAMETER
8445
{
8446
  struct _dwg_object_object *parent;
8447
  BLOCK2PTPARAMETER_fields;
8448
  BITCODE_B align_perpendicular;  /* DXF 280 */
8449
} Dwg_Object_BLOCKALIGNMENTPARAMETER;
8450
8451
typedef struct _dwg_object_BLOCKANGULARCONSTRAINTPARAMETER
8452
{
8453
  struct _dwg_object_object *parent;
8454
  BLOCKCONSTRAINTPARAMETER_fields;
8455
  BITCODE_3BD center_pt;  /* DXF 1011 */
8456
  BITCODE_3BD end_pt;   /* DXF 1012 */
8457
  BITCODE_T expr_name;    /* DXF 305 */
8458
  BITCODE_T expr_description; /* DXF 306 */
8459
  BITCODE_BD angle;   /* DXF 140, offset is the result */
8460
  BITCODE_B orientation_on_both_grips;  /* DXF 280 */
8461
  BLOCKPARAMVALUESET_fields;
8462
} Dwg_Object_BLOCKANGULARCONSTRAINTPARAMETER;
8463
8464
typedef struct _dwg_object_BLOCKDIAMETRICCONSTRAINTPARAMETER
8465
{
8466
  struct _dwg_object_object *parent;
8467
  BLOCKCONSTRAINTPARAMETER_fields;
8468
  BITCODE_T expr_name;    /* DXF 305, a copy of the EvalExpr name */
8469
  BITCODE_T expr_description; /* DXF 306 */
8470
  BITCODE_BD distance;    /* DXF 140 */
8471
  BITCODE_B orientation_on_both_grips;  /* DXF 280 */
8472
  BLOCKPARAMVALUESET_fields;
8473
} Dwg_Object_BLOCKDIAMETRICCONSTRAINTPARAMETER;
8474
8475
typedef struct _dwg_object_BLOCKRADIALCONSTRAINTPARAMETER
8476
{
8477
  struct _dwg_object_object *parent;
8478
  BLOCKCONSTRAINTPARAMETER_fields;
8479
  BITCODE_T expr_name;    /* DXF 305, a copy of the EvalExpr name */
8480
  BITCODE_T expr_description; /* DXF 306 */
8481
  BITCODE_BD distance;    /* DXF 140 */
8482
  BLOCKPARAMVALUESET_fields;
8483
} Dwg_Object_BLOCKRADIALCONSTRAINTPARAMETER;
8484
8485
typedef struct _dwg_object_BLOCKARRAYACTION
8486
{
8487
  struct _dwg_object_object *parent;
8488
  BLOCKACTION_fields;
8489
  Dwg_BLOCKACTION_connectionpts conn_pts[4]; /*!< DXF 92-95, 301-304 */
8490
  BITCODE_BD column_offset; /*!< DXF 140 */
8491
  BITCODE_BD row_offset;    /*!< DXF 141 */
8492
} Dwg_Object_BLOCKARRAYACTION;
8493
8494
typedef struct _dwg_object_BLOCKBASEPOINTPARAMETER
8495
{
8496
  struct _dwg_object_object *parent;
8497
  BLOCK1PTPARAMETER_fields;
8498
  BITCODE_3BD pt; /* DXF 1011 */
8499
  BITCODE_3BD base_pt;  /* DXF 1012 */
8500
} Dwg_Object_BLOCKBASEPOINTPARAMETER;
8501
8502
typedef struct _dwg_object_BLOCKFLIPACTION
8503
{
8504
  struct _dwg_object_object *parent;
8505
  BLOCKACTION_fields;
8506
  Dwg_BLOCKACTION_connectionpts conn_pts[4]; /*!< DXF 92-95, 301-304 */
8507
  BLOCKACTION_doubles_fields;
8508
} Dwg_Object_BLOCKFLIPACTION;
8509
8510
typedef struct _dwg_object_BLOCKFLIPGRIP
8511
{
8512
  struct _dwg_object_object *parent;
8513
  BLOCKGRIP_fields;
8514
  BITCODE_BL combined_state;
8515
  BITCODE_3BD orientation;
8516
  BITCODE_BS upd_state;
8517
  BITCODE_BS state;
8518
} Dwg_Object_BLOCKFLIPGRIP;
8519
8520
typedef struct _dwg_object_BLOCKFLIPPARAMETER
8521
{
8522
  struct _dwg_object_object *parent;
8523
  BLOCK2PTPARAMETER_fields;
8524
  BITCODE_T flip_label;   /*!< DXF 305 */
8525
  BITCODE_T flip_label_desc;  /*!< DXF 306 */
8526
  BITCODE_T base_state_label; /*!< DXF 307 */
8527
  BITCODE_T flipped_state_label;/*!< DXF 308 */
8528
  BITCODE_3BD def_label_pt; /*!< DXF 1012 */
8529
  BITCODE_BL bl96;    /*!< DXF 96 */
8530
  BITCODE_T tooltip;    /*!< DXF 309 */
8531
} Dwg_Object_BLOCKFLIPPARAMETER;
8532
8533
typedef struct _dwg_object_BLOCKALIGNEDCONSTRAINTPARAMETER
8534
{
8535
  struct _dwg_object_object *parent;
8536
  BLOCKLINEARCONSTRAINTPARAMETER_fields;
8537
} Dwg_Object_BLOCKALIGNEDCONSTRAINTPARAMETER;
8538
8539
typedef struct _dwg_object_BLOCKLINEARCONSTRAINTPARAMETER
8540
{
8541
  struct _dwg_object_object *parent;
8542
  BLOCKLINEARCONSTRAINTPARAMETER_fields;
8543
} Dwg_Object_BLOCKLINEARCONSTRAINTPARAMETER;
8544
8545
typedef struct _dwg_object_BLOCKHORIZONTALCONSTRAINTPARAMETER
8546
{
8547
  struct _dwg_object_object *parent;
8548
  BLOCKLINEARCONSTRAINTPARAMETER_fields;
8549
} Dwg_Object_BLOCKHORIZONTALCONSTRAINTPARAMETER;
8550
8551
typedef struct _dwg_object_BLOCKVERTICALCONSTRAINTPARAMETER
8552
{
8553
  struct _dwg_object_object *parent;
8554
  BLOCKLINEARCONSTRAINTPARAMETER_fields;
8555
} Dwg_Object_BLOCKVERTICALCONSTRAINTPARAMETER;
8556
8557
typedef struct _dwg_object_BLOCKLINEARGRIP
8558
{
8559
  struct _dwg_object_object *parent;
8560
  BLOCKGRIP_fields;
8561
  BITCODE_3BD orientation; /* DXF 140,141,142 */
8562
} Dwg_Object_BLOCKLINEARGRIP;
8563
8564
typedef struct _dwg_object_BLOCKLINEARPARAMETER
8565
{
8566
  struct _dwg_object_object *parent;
8567
  BLOCK2PTPARAMETER_fields;
8568
  BITCODE_T distance_name;  /*!< DXF 305 */
8569
  BITCODE_T distance_desc;  /*!< DXF 306 */
8570
  BITCODE_BD distance;    /*!< DXF 306 */
8571
  BLOCKPARAMVALUESET_fields;
8572
} Dwg_Object_BLOCKLINEARPARAMETER;
8573
8574
typedef struct _dwg_BLOCKLOOKUPACTION_lut
8575
{
8576
  struct _dwg_object_BLOCKLOOKUPACTION *parent;
8577
  Dwg_BLOCKACTION_connectionpts conn_pts[3]; /*!< DXF 94-96, 303-305*/
8578
  BITCODE_B b282;
8579
  BITCODE_B b281;
8580
} Dwg_BLOCKLOOKUPACTION_lut;
8581
8582
typedef struct _dwg_object_BLOCKLOOKUPACTION
8583
{
8584
  struct _dwg_object_object *parent;
8585
  BLOCKACTION_fields;
8586
  BITCODE_BL numelems; /* computed */
8587
  BITCODE_BL numrows; /* DXF 92 */
8588
  BITCODE_BL numcols; /* DXF 93 */
8589
  Dwg_BLOCKLOOKUPACTION_lut *lut;
8590
  BITCODE_T *exprs;
8591
  BITCODE_B b280;
8592
} Dwg_Object_BLOCKLOOKUPACTION;
8593
8594
typedef struct _dwg_object_BLOCKLOOKUPGRIP
8595
{
8596
  struct _dwg_object_object *parent;
8597
  BLOCKGRIP_fields;
8598
} Dwg_Object_BLOCKLOOKUPGRIP;
8599
8600
typedef struct _dwg_object_BLOCKLOOKUPPARAMETER
8601
{
8602
  struct _dwg_object_object *parent;
8603
  BLOCK1PTPARAMETER_fields;
8604
  BITCODE_T lookup_name;  /*!< DXF 303 */
8605
  BITCODE_T lookup_desc;  /*!< DXF 304 */
8606
  BITCODE_BL index;   /*!< DXF 94 ?? */
8607
  BITCODE_T unknown_t;
8608
} Dwg_Object_BLOCKLOOKUPPARAMETER;
8609
8610
typedef struct _dwg_object_BLOCKMOVEACTION
8611
{
8612
  struct _dwg_object_object *parent;
8613
  BLOCKACTION_fields;
8614
  Dwg_BLOCKACTION_connectionpts conn_pts[2]; /*!< DXF 92-93, 301-302 */
8615
  BLOCKACTION_doubles_fields;
8616
} Dwg_Object_BLOCKMOVEACTION;
8617
8618
typedef struct _dwg_object_BLOCKPOINTPARAMETER
8619
{
8620
  struct _dwg_object_object *parent;
8621
  BLOCK1PTPARAMETER_fields;
8622
  BITCODE_T position_name;  /* DXF 303 */
8623
  BITCODE_T position_desc;  /* DXF 304 */
8624
  BITCODE_3BD def_label_pt; /* DXF 1011 */
8625
} Dwg_Object_BLOCKPOINTPARAMETER;
8626
8627
typedef struct _dwg_object_BLOCKPOLARGRIP
8628
{
8629
  struct _dwg_object_object *parent;
8630
  BLOCKGRIP_fields;
8631
} Dwg_Object_BLOCKPOLARGRIP;
8632
8633
typedef struct _dwg_object_BLOCKPOLARPARAMETER
8634
{
8635
  struct _dwg_object_object *parent;
8636
  BLOCK2PTPARAMETER_fields;
8637
  BITCODE_T  angle_name;  /*!< DXF 305 */
8638
  BITCODE_T  angle_desc;  /*!< DXF 306 */
8639
  BITCODE_T  distance_name; /*!< DXF 305 */
8640
  BITCODE_T  distance_desc; /*!< DXF 306 */
8641
  BITCODE_BD  offset;   /*!< DXF 140 */
8642
  Dwg_BLOCKPARAMVALUESET angle_value_set;
8643
  Dwg_BLOCKPARAMVALUESET distance_value_set;
8644
  //BITCODE_3BD base_angle_pt;
8645
} Dwg_Object_BLOCKPOLARPARAMETER;
8646
8647
typedef struct _dwg_object_BLOCKPOLARSTRETCHACTION
8648
{
8649
  struct _dwg_object_object *parent;
8650
  BLOCKACTION_fields;
8651
  Dwg_BLOCKACTION_connectionpts conn_pts[6]; /*!< DXF 92-97, 301-306 */
8652
  BITCODE_BL num_pts;   // 72
8653
  BITCODE_2RD *pts;     // 10
8654
  BITCODE_BL num_hdls;  // 72
8655
  BITCODE_H *hdls;      // 331
8656
  BITCODE_BS *shorts;   // 74
8657
  BITCODE_BL num_codes; // 75
8658
  BITCODE_BL *codes;    // 76
8659
  // ??
8660
} Dwg_Object_BLOCKPOLARSTRETCHACTION;
8661
8662
typedef struct _dwg_object_BLOCKPROPERTIESTABLE
8663
{
8664
  struct _dwg_object_object *parent;
8665
  // ??
8666
} Dwg_Object_BLOCKPROPERTIESTABLE;
8667
8668
typedef struct _dwg_object_BLOCKPROPERTIESTABLEGRIP
8669
{
8670
  struct _dwg_object_object *parent;
8671
  BLOCKGRIP_fields;
8672
} Dwg_Object_BLOCKPROPERTIESTABLEGRIP;
8673
8674
typedef struct _dwg_object_BLOCKREPRESENTATION
8675
{
8676
  struct _dwg_object_object *parent;
8677
  BITCODE_BS flag;
8678
  BITCODE_H block;
8679
} Dwg_Object_BLOCKREPRESENTATION;
8680
8681
typedef struct _dwg_object_BLOCKROTATEACTION
8682
{
8683
  struct _dwg_object_object *parent;
8684
  BLOCKACTION_WITHBASEPT_fields(3);
8685
} Dwg_Object_BLOCKROTATEACTION;
8686
8687
typedef struct _dwg_object_BLOCKROTATIONGRIP
8688
{
8689
  struct _dwg_object_object *parent;
8690
  BLOCKGRIP_fields;
8691
} Dwg_Object_BLOCKROTATIONGRIP;
8692
8693
typedef struct _dwg_object_BLOCKROTATIONPARAMETER
8694
{
8695
  struct _dwg_object_object *parent;
8696
  BLOCK2PTPARAMETER_fields;
8697
  BITCODE_3BD def_base_angle_pt;
8698
  BITCODE_T angle_name; /*!< DXF 305 */
8699
  BITCODE_T angle_desc; /*!< DXF 306 */
8700
  BITCODE_BD angle;   /*!< DXF 306 */
8701
  Dwg_BLOCKPARAMVALUESET angle_value_set;
8702
  //BITCODE_3BD base_angle_pt;
8703
} Dwg_Object_BLOCKROTATIONPARAMETER;
8704
8705
typedef struct _dwg_object_BLOCKSCALEACTION
8706
{
8707
  struct _dwg_object_object *parent;
8708
  BLOCKACTION_WITHBASEPT_fields(5);
8709
} Dwg_Object_BLOCKSCALEACTION;
8710
8711
typedef struct _dwg_BLOCKSTRETCHACTION_handles {
8712
  struct _dwg_object_BLOCKSTRETCHACTION *parent;
8713
  BITCODE_H hdl;            // 331
8714
  BITCODE_BS num_indexes;   // 74
8715
  BITCODE_BL *indexes;      // 94
8716
} Dwg_BLOCKSTRETCHACTION_handles;
8717
8718
typedef struct _dwg_BLOCKSTRETCHACTION_codes {
8719
  struct _dwg_object_BLOCKSTRETCHACTION *parent;
8720
  BITCODE_BL bl95;         // 95
8721
  BITCODE_BS num_indexes;  // 76
8722
  BITCODE_BL *indexes;     // 94
8723
} Dwg_BLOCKSTRETCHACTION_codes;
8724
8725
typedef struct _dwg_object_BLOCKSTRETCHACTION
8726
{
8727
  struct _dwg_object_object *parent;
8728
  BLOCKACTION_fields;
8729
  Dwg_BLOCKACTION_connectionpts conn_pts[2]; /*!< DXF 92-93, 301-302 */
8730
  BITCODE_BL num_pts;   // 72
8731
  BITCODE_2RD *pts;     // 10
8732
  BITCODE_BL num_hdls;  // 72
8733
  Dwg_BLOCKSTRETCHACTION_handles *hdls; /*!< DXF 331, 74, 94 */
8734
  BITCODE_BL num_codes; // 75
8735
  Dwg_BLOCKSTRETCHACTION_codes *codes;  /*!< DXF 95, 76, 94 */
8736
  BLOCKACTION_doubles_fields;
8737
} Dwg_Object_BLOCKSTRETCHACTION;
8738
8739
typedef struct _dwg_object_BLOCKUSERPARAMETER
8740
{
8741
  struct _dwg_object_object *parent;
8742
  BLOCK1PTPARAMETER_fields;
8743
  BITCODE_BS flag;    /*!< DXF 90 */
8744
  BITCODE_H assocvariable;  /*!< DXF 305 */
8745
  BITCODE_T expr;   /*!< DXF 301 */
8746
  Dwg_EvalVariant value;
8747
  BITCODE_BS type;    /*!< DXF 170 (already value.code)? */
8748
} Dwg_Object_BLOCKUSERPARAMETER;
8749
8750
typedef struct _dwg_object_BLOCKXYGRIP
8751
{
8752
  struct _dwg_object_object *parent;
8753
  BLOCKGRIP_fields;
8754
} Dwg_Object_BLOCKXYGRIP;
8755
8756
typedef struct _dwg_object_BLOCKXYPARAMETER
8757
{
8758
  struct _dwg_object_object *parent;
8759
  BLOCK2PTPARAMETER_fields;
8760
  BITCODE_T x_label;    // DXF 305
8761
  BITCODE_T x_label_desc; // DXF 306
8762
  BITCODE_T y_label;    // DXF 307
8763
  BITCODE_T y_label_desc; // DXF 308
8764
  BITCODE_BD x_value;   // DXF 141
8765
  BITCODE_BD y_value;   // DXF 142
8766
  Dwg_BLOCKPARAMVALUESET x_value_set;
8767
  Dwg_BLOCKPARAMVALUESET y_value_set;
8768
} Dwg_Object_BLOCKXYPARAMETER;
8769
8770
typedef struct _dwg_object_DYNAMICBLOCKPROXYNODE
8771
{
8772
  struct _dwg_object_object *parent;
8773
  Dwg_EvalExpr evalexpr;
8774
  // ??
8775
} Dwg_Object_DYNAMICBLOCKPROXYNODE;
8776
8777
typedef struct _dwg_POINTCLOUD_IntensityStyle
8778
{
8779
  struct _dwg_entity_POINTCLOUD *parent;
8780
  BITCODE_BD min_intensity;   /* DXF 40 */
8781
  BITCODE_BD max_intensity;   /* DXF 41 */
8782
  BITCODE_BD intensity_low_treshold;  /* DXF 42 */
8783
  BITCODE_BD intensity_high_treshold; /* DXF 43 */
8784
} Dwg_POINTCLOUD_IntensityStyle;
8785
8786
typedef struct _dwg_POINTCLOUD_Clippings
8787
{
8788
  struct _dwg_entity_POINTCLOUD *parent;
8789
  BITCODE_B is_inverted;
8790
  BITCODE_BS type;
8791
  BITCODE_BL num_vertices;
8792
  BITCODE_2RD *vertices;
8793
  BITCODE_BD z_min;
8794
  BITCODE_BD z_max;
8795
} Dwg_POINTCLOUD_Clippings;
8796
8797
typedef struct _dwg_POINTCLOUDEX_Croppings
8798
{
8799
  struct _dwg_entity_POINTCLOUDEX *parent;
8800
  BITCODE_BS type;
8801
  BITCODE_B is_inside;
8802
  BITCODE_B is_inverted;
8803
  BITCODE_3BD crop_plane;
8804
  BITCODE_3BD crop_x_dir;
8805
  BITCODE_3BD crop_y_dir;
8806
  BITCODE_BL num_pts;
8807
  BITCODE_3BD *pts;
8808
} Dwg_POINTCLOUDEX_Croppings;
8809
8810
typedef struct _dwg_entity_POINTCLOUD
8811
{
8812
  struct _dwg_object_entity *parent;
8813
  BITCODE_BS class_version;   // 1 or 2 r2013+, DXF 70
8814
  BITCODE_3BD origin;   /*!< DXF 10 */
8815
  BITCODE_T saved_filename;   /* DXF 1 */
8816
  BITCODE_BL num_source_files;  /* DXF 90 */
8817
  BITCODE_T *source_files;  /*!< DXF 2 */
8818
  BITCODE_3BD extents_min;  /*!< DXF 11 */
8819
  BITCODE_3BD extents_max;  /*!< DXF 12 */
8820
  BITCODE_RLL numpoints;  /*!< DXF 92 */
8821
  BITCODE_T  ucs_name;    /*!< DXF 3 */
8822
  BITCODE_3BD ucs_origin; /*!< DXF 13 */
8823
  BITCODE_3BD ucs_x_dir;  /*!< DXF 210 */
8824
  BITCODE_3BD ucs_y_dir;  /*!< DXF 211 */
8825
  BITCODE_3BD ucs_z_dir;  /*!< DXF 212 */
8826
  // r2013+:
8827
  BITCODE_H pointclouddef;  /*!< DXF 330 */
8828
  BITCODE_H reactor;    /*!< DXF 360 */
8829
  BITCODE_B show_intensity; /*!< DXF ? */
8830
  BITCODE_BS intensity_scheme;  /*!< DXF 71 */
8831
  Dwg_POINTCLOUD_IntensityStyle intensity_style;
8832
  BITCODE_B show_clipping;  /*!< DXF ? */
8833
  BITCODE_BL num_clippings; /*!< DXF ? */
8834
  Dwg_POINTCLOUD_Clippings *clippings;
8835
} Dwg_Entity_POINTCLOUD;
8836
8837
typedef struct _dwg_entity_POINTCLOUDEX
8838
{
8839
  struct _dwg_object_entity *parent;
8840
  BITCODE_BS class_version;   // 1, DXF 70
8841
  BITCODE_3BD extents_min;  /*!< DXF 10 */
8842
  BITCODE_3BD extents_max;  /*!< DXF 11 */
8843
  BITCODE_3BD ucs_origin; /*!< DXF 13 */
8844
  BITCODE_3BD ucs_x_dir;  /*!< DXF 210 */
8845
  BITCODE_3BD ucs_y_dir;  /*!< DXF 211 */
8846
  BITCODE_3BD ucs_z_dir;  /*!< DXF 212 */
8847
  BITCODE_B is_locked;    /*!< DXF 290 */
8848
  BITCODE_H pointclouddefex;  /*!< DXF 330 */
8849
  BITCODE_H reactor;    /*!< DXF 360 */
8850
  BITCODE_T name;     /* DXF 1 */
8851
  BITCODE_B show_intensity; /*!< DXF 291 */
8852
8853
  BITCODE_BS stylization_type;  /*!< DXF 71 */
8854
  BITCODE_T intensity_colorscheme;  /*!< ? DXF 1 */
8855
  BITCODE_T cur_colorscheme;  /*!< DXF 1 */
8856
  BITCODE_T classification_colorscheme; /*!< ? DXF 1 */
8857
  BITCODE_BD elevation_min; /* DXF 40 */
8858
  BITCODE_BD elevation_max; /* DXF 41 */
8859
  BITCODE_BL intensity_min; /* DXF 90 */
8860
  BITCODE_BL intensity_max; /* DXF 91 */
8861
  BITCODE_BS intensity_out_of_range_behavior; /* DXF 70 */
8862
  BITCODE_BS elevation_out_of_range_behavior; /* DXF 71 */
8863
  BITCODE_B elevation_apply_to_fixed_range; /* DXF 292 */
8864
  BITCODE_B intensity_as_gradient;  /* DXF 293 */
8865
  BITCODE_B elevation_as_gradient;  /* DXF 294 */
8866
  BITCODE_B show_cropping;  /*!< DXF 295 */
8867
  BITCODE_BL unknown_bl0; /*!< ? DXF 93 */
8868
  BITCODE_BL unknown_bl1; /*!< ? DXF 93 */
8869
  BITCODE_BL num_croppings; /*!< DXF 92 */
8870
  Dwg_POINTCLOUDEX_Croppings *croppings;
8871
} Dwg_Entity_POINTCLOUDEX;
8872
8873
typedef struct _dwg_object_POINTCLOUDDEF
8874
{
8875
  struct _dwg_object_object *parent;
8876
  BITCODE_BL class_version;   // 1 or 2 r2013+, DXF 90
8877
  BITCODE_T source_filename;  /* DXF 1 */
8878
  BITCODE_B is_loaded;    /* DXF 280 */
8879
  BITCODE_RLL numpoints;  /*!< DXF 91 (hi) + 92 (lo) / 160 */
8880
  BITCODE_3BD extents_min;  /*!< DXF 10 */
8881
  BITCODE_3BD extents_max;  /*!< DXF 11 */
8882
} Dwg_Object_POINTCLOUDDEF;
8883
8884
typedef struct _dwg_object_POINTCLOUDDEFEX
8885
{
8886
  struct _dwg_object_object *parent;
8887
  BITCODE_BL class_version;   // 1 or 2 r2013+, DXF 90
8888
  BITCODE_T source_filename;  /* DXF 1 */
8889
  BITCODE_B is_loaded;    /* DXF 280 */
8890
  BITCODE_RLL numpoints;  /*!< DXF 169 */
8891
  BITCODE_3BD extents_min;  /*!< DXF 10 */
8892
  BITCODE_3BD extents_max;  /*!< DXF 11 */
8893
} Dwg_Object_POINTCLOUDDEFEX;
8894
8895
typedef struct _dwg_object_POINTCLOUDDEF_REACTOR
8896
{
8897
  struct _dwg_object_object *parent;
8898
  BITCODE_BL class_version; // 1
8899
} Dwg_Object_POINTCLOUDDEF_REACTOR;
8900
8901
typedef struct _dwg_object_POINTCLOUDDEF_REACTOR_EX
8902
{
8903
  struct _dwg_object_object *parent;
8904
  BITCODE_BL class_version; // 1
8905
} Dwg_Object_POINTCLOUDDEF_REACTOR_EX;
8906
8907
typedef struct _dwg_ColorRamp
8908
{
8909
  struct _dwg_POINTCLOUDCOLORMAP_Ramp *parent;
8910
  // FIXME either
8911
  BITCODE_T colorscheme;  // DXF 1
8912
  /// or
8913
  BITCODE_BL unknown_bl;  // DXF 91
8914
  BITCODE_B unknown_b;    // DXF 290
8915
} Dwg_ColorRamp;
8916
8917
typedef struct _dwg_POINTCLOUDCOLORMAP_Ramp
8918
{
8919
  struct _dwg_object_POINTCLOUDCOLORMAP *parent;
8920
  BITCODE_BS class_version; // DXF 70: 1
8921
  BITCODE_BL num_ramps;   // DXF 90
8922
  Dwg_ColorRamp *ramps;
8923
} Dwg_POINTCLOUDCOLORMAP_Ramp;
8924
8925
typedef struct _dwg_object_POINTCLOUDCOLORMAP
8926
{
8927
  struct _dwg_object_object *parent;
8928
  BITCODE_BS class_version;
8929
  BITCODE_T def_intensity_colorscheme;  /*!< DXF 1 */
8930
  BITCODE_T def_elevation_colorscheme;  /*!< DXF 1 */
8931
  BITCODE_T def_classification_colorscheme; /*!< DXF 1 */
8932
  BITCODE_BL num_colorramps;
8933
  Dwg_POINTCLOUDCOLORMAP_Ramp *colorramps;
8934
  BITCODE_BL num_classification_colorramps;
8935
  Dwg_POINTCLOUDCOLORMAP_Ramp *classification_colorramps;
8936
} Dwg_Object_POINTCLOUDCOLORMAP;
8937
8938
// unhandled. some subclass
8939
typedef struct _dwg_COMPOUNDOBJECTID
8940
{
8941
  struct _dwg_object_object *parent;
8942
  BITCODE_B has_object;
8943
  BITCODE_T name;
8944
  BITCODE_H object;
8945
} Dwg_COMPOUNDOBJECTID;
8946
8947
// ODA Arx
8948
//typedef Dwg_Object_LAYER_FILTER Dwg_Object_PARTIAL_VIEWING_FILTER;
8949
8950
typedef struct _dwg_PARTIAL_VIEWING_INDEX_Entry
8951
{
8952
  struct _dwg_object_PARTIAL_VIEWING_INDEX *parent;
8953
  BITCODE_3BD extents_min;
8954
  BITCODE_3BD extents_max;
8955
  BITCODE_H object;
8956
} Dwg_PARTIAL_VIEWING_INDEX_Entry;
8957
8958
typedef struct _dwg_object_PARTIAL_VIEWING_INDEX
8959
{
8960
  struct _dwg_object_object *parent;
8961
  BITCODE_BL num_entries;
8962
  BITCODE_B has_entries;
8963
  Dwg_PARTIAL_VIEWING_INDEX_Entry *entries;
8964
} Dwg_Object_PARTIAL_VIEWING_INDEX;
8965
8966
8967
/**
8968
 -----------------------------------
8969
 */
8970
8971
/**
8972
 Unknown Class entity, a blob
8973
 */
8974
typedef struct _dwg_entity_UNKNOWN_ENT
8975
{
8976
  struct _dwg_object_entity *parent;
8977
} Dwg_Entity_UNKNOWN_ENT;
8978
8979
/**
8980
 Unknown Class object, a blob
8981
 */
8982
typedef struct _dwg_object_UNKNOWN_OBJ
8983
{
8984
  struct _dwg_object_object *parent;
8985
} Dwg_Object_UNKNOWN_OBJ;
8986
8987
/**
8988
 REPEAT (none/5) entity
8989
 */
8990
typedef struct _dwg_entity_REPEAT
8991
{
8992
  struct _dwg_object_entity *parent;
8993
} Dwg_Entity_REPEAT;
8994
8995
/**
8996
 ENDREP (none/6) entity
8997
 */
8998
typedef struct _dwg_entity_ENDREP
8999
{
9000
  struct _dwg_object_entity *parent;
9001
9002
  BITCODE_RS numcols;      // DXF 70
9003
  BITCODE_RS numrows;      // DXF 71
9004
  BITCODE_RD colspacing;   // DXF 40
9005
  BITCODE_RD rowspacing;   // DXF 41
9006
} Dwg_Entity_ENDREP;
9007
9008
/**
9009
 LOAD (none/10) entity
9010
 */
9011
typedef struct _dwg_entity_LOAD
9012
{
9013
  struct _dwg_object_entity *parent;
9014
9015
  BITCODE_TV file_name;
9016
} Dwg_Entity_LOAD;
9017
9018
/**
9019
 JUMP (none/18) entity
9020
 */
9021
typedef struct _dwg_entity_JUMP
9022
{
9023
  struct _dwg_object_entity *parent;
9024
9025
  BITCODE_RL jump_address_raw;
9026
  BITCODE_RL jump_address;
9027
  Dwg_Entity_Sections jump_entity_section;
9028
} Dwg_Entity_JUMP;
9029
9030
/**
9031
 3DLINE (none/21) entity
9032
 */
9033
typedef struct _dwg_entity_3DLINE
9034
{
9035
  struct _dwg_object_entity *parent;
9036
9037
  BITCODE_3RD start;     // DXF 10|20|30
9038
  BITCODE_3RD end;       // DXF 11|21|31
9039
  BITCODE_3RD extrusion; // DXF 210
9040
  BITCODE_RD thickness;  // DXF 39
9041
} Dwg_Entity__3DLINE;
9042
9043
/* OBJECTS - END ************************************************************/
9044
9045
/**
9046
 Extended entity data: dxf group - value pairs, similar to xdata
9047
 */
9048
#pragma pack(1)
9049
typedef struct _dwg_entity_eed_data
9050
{
9051
  BITCODE_RC code;
9052
  union eed_data_t {
9053
    struct { /* 0 (1000) string */
9054
      BITCODE_RS length;          /* RC */
9055
      unsigned short codepage:15; /* RS_LE */
9056
      unsigned short is_tu:1;
9057
#ifndef SWIG
9058
      // TODO broken gcc-15 optimization
9059
      char string[] /*__counted_by(length)*/;      /* inlined */
9060
#else
9061
      char string[0]; // swig limitation https://github.com/swig/swig/issues/1699
9062
#endif
9063
    } eed_0;
9064
    struct { /* R2007+ 0 (1000) string */
9065
      BITCODE_RS length;
9066
      unsigned short _padding:15;
9067
      unsigned short is_tu:1;
9068
#ifndef SWIG
9069
      DWGCHAR string[] /*__counted_by(length)*/; /* inlined */
9070
#else
9071
      DWGCHAR string[0];
9072
#endif
9073
    } eed_0_r2007;
9074
    struct { /* 1 (1001) handle, not in data */
9075
      BITCODE_RS appid_index;
9076
#ifndef SWIG
9077
      char invalid[]; // set the eed[0].handle to the used APPID instead
9078
#else
9079
      char invalid[0];
9080
#endif
9081
    } eed_1;
9082
    struct { /* 2 (1002) "{" => 0 open, or "}" => 1 close */
9083
      BITCODE_RC close;
9084
    } eed_2;
9085
    struct { /* 3 (1003) layer (8-byte handle value) */
9086
      BITCODE_RLL layer;
9087
    } eed_3;
9088
    struct { /* 4 (1004) binary */
9089
      BITCODE_RC length;
9090
      unsigned char data[] __counted_by(length); // inlined
9091
    } eed_4;
9092
    struct { /* 5 (1005) entity */
9093
      BITCODE_RLL entity;
9094
    } eed_5;
9095
    struct { /* 10-13 point */
9096
      BITCODE_3RD point;
9097
    } eed_10;
9098
    struct { /* 40-42 real */
9099
      BITCODE_RD real;
9100
    } eed_40;
9101
    struct { /* 70 short int */
9102
      BITCODE_RS rs;
9103
    } eed_70;
9104
    struct { /* 71 long int */
9105
      BITCODE_RL rl;
9106
    } eed_71;
9107
  } u;
9108
} Dwg_Eed_Data;
9109
#pragma pack()
9110
9111
/**
9112
 Extended entity data
9113
 */
9114
typedef struct _dwg_entity_eed
9115
{
9116
  BITCODE_BS size;
9117
  Dwg_Handle handle;
9118
  Dwg_Eed_Data *data;
9119
  BITCODE_TF raw; /* a binary copy of the data */
9120
} Dwg_Eed;
9121
9122
enum {
9123
  EXTRA_R11_UNKNOWN_1 = 1,
9124
  EXTRA_R11_HAS_EED = 2,
9125
  EXTRA_R11_HAS_VIEWPORT = 4,
9126
  EXTRA_R11_UNKNOWN_8 = 8,
9127
  EXTRA_R11_UNKNOWN_16 = 16,
9128
  EXTRA_R11_UNKNOWN_32 = 32,
9129
  EXTRA_R11_UNKNOWN_64 = 64,
9130
  EXTRA_R11_UNKNOWN_128 = 128,
9131
};
9132
9133
enum {
9134
  FLAG_R11_HAS_COLOR = 1,
9135
  FLAG_R11_HAS_LTYPE = 2,
9136
  FLAG_R11_HAS_ELEVATION = 4,
9137
  FLAG_R11_HAS_THICKNESS = 8,
9138
  FLAG_R11_HAS_UNKNOWN_16 = 16,
9139
  FLAG_R11_HAS_HANDLING = 32,  // 0x20
9140
  FLAG_R11_HAS_PSPACE = 64,    // 0x40
9141
  FLAG_R11_HAS_ATTRIBS = 128,
9142
};
9143
9144
enum {
9145
  FLAG_R11_DIMENSION_LINEAR = 0, // ie rotated, horizontal or vertical
9146
  FLAG_R11_DIMENSION_ALIGNED = 1,
9147
  FLAG_R11_DIMENSION_ANG2LN = 2,
9148
  FLAG_R11_DIMENSION_DIAMETER = 3,
9149
  FLAG_R11_DIMENSION_RADIUS = 4,
9150
  FLAG_R11_DIMENSION_ANG3PT = 5,
9151
  FLAG_R11_DIMENSION_ORDINATE = 6,
9152
  FLAG_R11_DIMENSION_ORDINATE_TYPE = 64, // x-type if set, else y
9153
  FLAG_R11_DIMENSION_TEXT_POSITIONED = 128, // text not at default position
9154
};
9155
9156
enum {
9157
  // 1
9158
  // 2
9159
  // 4
9160
  // 8
9161
  OPTS_R11_XREF_DEP = 16,
9162
  OPTS_R11_XREF_REF = 32,
9163
  OPTS_R11_XREF_RESOLVED = 64,
9164
  OPTS_R11_XDATA = 128, //?
9165
};
9166
9167
enum {
9168
  OPTS_R11_3DFACE_HAS_Z_FIRST = 1,
9169
  OPTS_R11_3DFACE_HAS_Z_SECOND = 2,
9170
  OPTS_R11_3DFACE_HAS_Z_THIRD = 4,
9171
  OPTS_R11_3DFACE_HAS_Z_FOURTH = 8,
9172
};
9173
9174
enum {
9175
  OPTS_R11_3DLINE_HAS_Z_FIRST = 1,
9176
  OPTS_R11_3DLINE_HAS_Z_SECOND = 2,
9177
};
9178
9179
enum {
9180
  OPTS_R11_ARC_HAS_EXTRUSION = 1,
9181
};
9182
9183
enum {
9184
  OPTS_R11_ATTDEF_UNKNOWN_1 = 1,
9185
  OPTS_R11_ATTDEF_HAS_ROTATION = 2,
9186
  OPTS_R11_ATTDEF_HAS_WIDTH_FACTOR = 4,
9187
  OPTS_R11_ATTDEF_HAS_OBLIQUE_ANGLE = 8,
9188
  OPTS_R11_ATTDEF_HAS_STYLE = 16,
9189
  OPTS_R11_ATTDEF_HAS_GENERATION = 32,
9190
  OPTS_R11_ATTDEF_HAS_HORIZ_ALIGNMENT = 64,
9191
  OPTS_R11_ATTDEF_HAS_ALIGNMENT_POINT = 128,
9192
  OPTS_R11_ATTDEF_HAS_EXTRUSION = 0x100,
9193
  OPTS_R11_ATTDEF_HAS_VERT_ALIGNMENT = 0x200,
9194
};
9195
9196
enum {
9197
  OPTS_R11_ATTRIB_UNKNOWN_1 = 1,
9198
  OPTS_R11_ATTRIB_HAS_ROTATION = 2,
9199
  OPTS_R11_ATTRIB_HAS_WIDTH_FACTOR = 4,
9200
  OPTS_R11_ATTRIB_HAS_OBLIQUE_ANGLE = 8,
9201
  OPTS_R11_ATTRIB_HAS_STYLE = 16,
9202
  OPTS_R11_ATTRIB_HAS_GENERATION = 32,
9203
  OPTS_R11_ATTRIB_HAS_HORIZ_ALIGNMENT = 64,
9204
  OPTS_R11_ATTRIB_HAS_ALIGNMENT_POINT = 128,
9205
  OPTS_R11_ATTRIB_HAS_EXTRUSION = 0x100,
9206
  OPTS_R11_ATTRIB_HAS_VERT_ALIGNMENT = 0x200,
9207
};
9208
9209
enum {
9210
  OPTS_R11_BLOCK_UNKNOWN_1 = 1,
9211
  OPTS_R11_BLOCK_HAS_XREF_PNAME = 2,
9212
  OPTS_R11_BLOCK_HAS_BLOCK_NAME = 4,
9213
};
9214
9215
enum {
9216
  OPTS_R11_CIRCLE_HAS_EXTRUSION = 1,
9217
};
9218
9219
enum {
9220
  OPTS_R11_DIMENSION_HAS_DXF12 = 1,   // Baseline, continue: clone ins_pt
9221
  OPTS_R11_DIMENSION_HAS_FLAG = 2,
9222
  OPTS_R11_DIMENSION_HAS_TEXT = 4,
9223
  OPTS_R11_DIMENSION_HAS_DXF13 = 8,   // Ordinate: leader_start_pt
9224
  OPTS_R11_DIMENSION_HAS_DXF14 = 16,  // Ordinate: leader_end_pt
9225
  OPTS_R11_DIMENSION_HAS_DXF15 = 32,
9226
  OPTS_R11_DIMENSION_HAS_ANGLES = 64, // Angular: line arc
9227
  OPTS_R11_DIMENSION_HAS_DXF40 = 128, // leader_len
9228
  OPTS_R11_DIMENSION_HAS_ROTATION = 256,
9229
  OPTS_R11_DIMENSION_UNKNOWN_512 = 0x200,
9230
  OPTS_R11_DIMENSION_HAS_DXF53 = 0x400, // text rotation
9231
  OPTS_R11_DIMENSION_UNKNOWN_2048 = 0x800,
9232
  OPTS_R11_DIMENSION_UNKNOWN_4096 = 0x1000,
9233
  OPTS_R11_DIMENSION_UNKNOWN_8192 = 0x2000,
9234
  OPTS_R11_DIMENSION_HAS_EXTRUSION = 0x4000,
9235
  OPTS_R11_DIMENSION_HAS_DIMSTYLE = 0x8000
9236
};
9237
9238
enum {
9239
  OPTS_R11_INSERT_HAS_SCALE_X = 1,
9240
  OPTS_R11_INSERT_HAS_SCALE_Y = 2,
9241
  OPTS_R11_INSERT_HAS_ROTATION = 4,
9242
  OPTS_R11_INSERT_HAS_SCALE_Z = 8,
9243
  OPTS_R11_INSERT_HAS_NUM_COLS = 16,
9244
  OPTS_R11_INSERT_HAS_NUM_ROWS = 32,
9245
  OPTS_R11_INSERT_HAS_COL_SPACING = 64,
9246
  OPTS_R11_INSERT_HAS_ROW_SPACING = 128,
9247
  OPTS_R11_INSERT_HAS_EXTRUSION = 256,
9248
};
9249
9250
enum {
9251
  OPTS_R11_LINE_HAS_EXTRUSION = 1,
9252
};
9253
9254
enum {
9255
  OPTS_R11_POINT_HAS_EXTRUSION = 1,
9256
  OPTS_R11_POINT_HAS_X_ANG = 2,
9257
};
9258
9259
enum {
9260
  OPTS_R11_POLYLINE_HAS_FLAG = 1,
9261
  OPTS_R11_POLYLINE_HAS_START_WIDTH = 2,
9262
  OPTS_R11_POLYLINE_HAS_END_WIDTH = 4,
9263
  OPTS_R11_POLYLINE_HAS_EXTRUSION = 8,
9264
  OPTS_R11_POLYLINE_HAS_M_VERTS = 16,
9265
  OPTS_R11_POLYLINE_HAS_N_VERTS = 32,
9266
  OPTS_R11_POLYLINE_HAS_M_DENSITY = 64,
9267
  OPTS_R11_POLYLINE_HAS_N_DENSITY = 128,
9268
  OPTS_R11_POLYLINE_HAS_CURVETYPE = 256,
9269
  OPTS_R11_POLYLINE_IN_EXTRA = 0x8000,
9270
};
9271
9272
enum {
9273
  OPTS_R11_SHAPE_HAS_ROTATION = 1,
9274
  OPTS_R11_SHAPE_HAS_LOAD_NUM = 2,
9275
  OPTS_R11_SHAPE_HAS_WIDTH_FACTOR = 4,
9276
  OPTS_R11_SHAPE_HAS_OBLIQUE_ANGLE = 8,
9277
};
9278
9279
enum {
9280
  OPTS_R11_SOLID_HAS_EXTRUSION = 1,
9281
};
9282
9283
enum {
9284
  OPTS_R11_TEXT_HAS_ROTATION = 1,
9285
  OPTS_R11_TEXT_HAS_WIDTH_FACTOR = 2,
9286
  OPTS_R11_TEXT_HAS_OBLIQUE_ANGLE = 4,
9287
  OPTS_R11_TEXT_HAS_STYLE = 8,
9288
  OPTS_R11_TEXT_HAS_GENERATION = 16,
9289
  OPTS_R11_TEXT_HAS_HORIZ_ALIGNMENT = 32,
9290
  OPTS_R11_TEXT_HAS_ALIGNMENT_POINT = 64,
9291
  OPTS_R11_TEXT_HAS_EXTRUSION = 128,
9292
  OPTS_R11_TEXT_ALIGNED_VERT_TO = 256,
9293
};
9294
9295
enum {
9296
  OPTS_R11_VERTEX_HAS_START_WIDTH = 1,
9297
  OPTS_R11_VERTEX_HAS_END_WIDTH = 2,
9298
  OPTS_R11_VERTEX_HAS_BULGE = 4,
9299
  OPTS_R11_VERTEX_HAS_FLAG = 8,
9300
  OPTS_R11_VERTEX_HAS_TANGENT_DIR = 16,
9301
  OPTS_R11_VERTEX_HAS_INDEX1 = 0x20,
9302
  OPTS_R11_VERTEX_HAS_INDEX2 = 0x40,
9303
  OPTS_R11_VERTEX_HAS_INDEX3 = 0x80,
9304
  OPTS_R11_VERTEX_HAS_INDEX4 = 0x100,
9305
  OPTS_R11_VERTEX_UNKNOWN_512 = 0x200,
9306
  OPTS_R11_VERTEX_UNKNOWN_1024 = 0x400,
9307
  OPTS_R11_VERTEX_UNKNOWN_2048 = 0x800,
9308
  OPTS_R11_VERTEX_UNKNOWN_4096 = 0x1000,
9309
  OPTS_R11_VERTEX_UNKNOWN_8192 = 0x2000,
9310
  OPTS_R11_VERTEX_HAS_NOT_X_Y = 0x4000, // only seen with n-mesh
9311
};
9312
9313
enum {
9314
  FLAG_TABLE_IS_XREF_REF = 16, // is externally dependent
9315
  FLAG_TABLE_IS_XREF_RESOLVED = 32,
9316
  FLAG_TABLE_IS_XREF_DEP = 64, // is referenced (used)
9317
  FLAG_TABLE_IS_REMOVED = 128,
9318
};
9319
9320
enum {
9321
  FLAG_BLOCK_ANONYMOUS = 1,
9322
  FLAG_BLOCK_HAS_ATTRIBS = 2,
9323
  FLAG_BLOCK_IS_EXT_REF = 4,
9324
  FLAG_BLOCK_IS_XREF_OVERLAY = 8,
9325
};
9326
9327
enum {
9328
  FLAG_ATTDEF_INVISIBLE = 1,
9329
  FLAG_ATTDEF_CONSTANT = 2,
9330
  FLAG_ATTDEF_VERIFY = 4,
9331
  FLAG_ATTDEF_PRESET = 8, // no prompt during insert
9332
};
9333
9334
enum {
9335
  FLAG_ATTRIB_INVISIBLE = 1,
9336
  FLAG_ATTRIB_CONSTANT = 2,
9337
  FLAG_ATTRIB_VERIFY = 4,
9338
  FLAG_ATTRIB_PRESET = 8, // no prompt during insert
9339
};
9340
9341
enum {
9342
  FLAG_POLYLINE_CLOSED = 1, // or polygon mesh closed in the M direction
9343
  FLAG_POLYLINE_CURVE_FIT = 2,
9344
  FLAG_POLYLINE_SPLINE_FIT = 4,
9345
  FLAG_POLYLINE_3D = 8,
9346
  FLAG_POLYLINE_MESH = 16,
9347
  FLAG_POLYLINE_MESH_CLOSED = 32, // closed in the N direction
9348
  FLAG_POLYLINE_PFACE_MESH = 64,
9349
  FLAG_POLYLINE_LT_PATTERN_CONTINUES = 128,
9350
};
9351
9352
enum {
9353
  LTYPE_SHAPE_FLAG_ABS_ROTATION = 1,
9354
  LTYPE_SHAPE_FLAG_IS_TEXT = 2,
9355
  LTYPE_SHAPE_FLAG_IS_SHAPE = 4,
9356
};
9357
9358
enum {
9359
  FLAG_LAYER_FROZEN = 1,
9360
  FLAG_LAYER_FROZEN_IN_NEW = 2,
9361
  FLAG_LAYER_LOCKED = 4,
9362
  FLAG_LAYER_PLOTFLAG = 8,
9363
};
9364
9365
enum {
9366
  FLAG_STYLE_SHAPE = 1,
9367
  FLAG_STYLE_VERTICAL_TEXT = 4,
9368
};
9369
9370
enum {
9371
  FLAG_VIEW_PSPACE = 1,
9372
};
9373
9374
enum {
9375
  FLAG_VX_IS_ON = 1,
9376
};
9377
9378
enum {
9379
  FLAG_LWPOLYLINE_HAS_EXTRUSION = 1,
9380
  FLAG_LWPOLYLINE_HAS_THICKNESS = 2,
9381
  FLAG_LWPOLYLINE_HAS_CONSTWIDTH = 4,
9382
  FLAG_LWPOLYLINE_HAS_ELEVATION = 8,
9383
  FLAG_LWPOLYLINE_HAS_NUM_BULGES = 16,
9384
  FLAG_LWPOLYLINE_HAS_NUM_WIDTHS = 32,
9385
  FLAG_LWPOLYLINE_UNKNOWN_64 = 64,
9386
  FLAG_LWPOLYLINE_UNKNOWN_128 = 128,
9387
  FLAG_LWPOLYLINE_PLINEGEN = 256,
9388
  FLAG_LWPOLYLINE_CLOSED = 512,
9389
  FLAG_LWPOLYLINE_VERTEXIDCOUNT = 1024,
9390
};
9391
9392
enum {
9393
  FLAG_VERTEX_EXTRA_VERTEX = 1,
9394
  FLAG_VERTEX_CURVE_FIT = 2,
9395
  FLAG_VERTEX_UNUSED_4 = 4, // never set
9396
  FLAG_VERTEX_SPLINE_FIT = 8,
9397
  FLAG_VERTEX_SPLINE_FRAME_CONTROL_POINT = 16,
9398
  FLAG_VERTEX_3D = 32,
9399
  FLAG_VERTEX_MESH = 64,
9400
  FLAG_VERTEX_PFACE_MESH = 128,
9401
};
9402
9403
enum {
9404
  TEXT_GENERATION_BACKWARDS = 2,   // mirrored in X
9405
  TEXT_GENERATION_UPSIDE_DOWN = 4, // mirrored in Y
9406
};
9407
9408
enum {
9409
  HORIZ_ALIGNMENT_LEFT = 0,
9410
  HORIZ_ALIGNMENT_CENTER = 1,
9411
  HORIZ_ALIGNMENT_RIGHT = 2,
9412
  HORIZ_ALIGNMENT_ALIGNED = 3,
9413
  HORIZ_ALIGNMENT_MIDDLE = 4,
9414
  HORIZ_ALIGNMENT_FIT = 5,
9415
};
9416
9417
enum {
9418
  VERT_ALIGNMENT_BASELINE = 0,
9419
  VERT_ALIGNMENT_BOTTOM = 1,
9420
  VERT_ALIGNMENT_MIDDLE = 2,
9421
  VERT_ALIGNMENT_TOP = 3,
9422
};
9423
9424
enum {
9425
  MLINE_JUSTIFICATION_TOP = 0,
9426
  MLINE_JUSTIFICATION_MIDDLE = 1,
9427
  MLINE_JUSTIFICATION_BOTTOM = 2,
9428
};
9429
9430
9431
enum {
9432
  POLYLINE_CURVETYPE_DEFAULT = 0,
9433
  // 1 with a POLYLINE_3D (undocumented)
9434
  POLYLINE_CURVETYPE_QUADR_BSPLINE = 5,
9435
  POLYLINE_CURVETYPE_CUBIC_BSPLINE = 6,
9436
  POLYLINE_CURVETYPE_BEZIER_SURFACE = 8,
9437
};
9438
9439
enum {
9440
  LEADER_PATHTYPE_STRAIGHT = 0,
9441
  LEADER_PATHTYPE_SPLINE = 1,
9442
};
9443
enum {
9444
  LEADER_ANNOTTYPE_MTEXT = 0,
9445
  LEADER_ANNOTTYPE_TOLERANCE = 1,
9446
  LEADER_ANNOTTYPE_INSERT = 2,
9447
  LEADER_ANNOTTYPE_NO_ANNOT = 3, // default
9448
};
9449
9450
enum {
9451
  MLINE_FLAGS_HAS_VERTEX = 1,
9452
  MLINE_FLAGS_CLOSED = 2,
9453
  MLINE_FLAGS_SUPPRESS_START_CAPS = 4,
9454
  MLINE_FLAGS_SUPPRESS_END_CAPS = 8,
9455
};
9456
9457
enum {
9458
  MLINESTYLE_FLAG_FILL = 1,
9459
  MLINESTYLE_FLAG_MITERS = 2,
9460
  MLINESTYLE_FLAG_UNKNOWN_4 = 4,
9461
  MLINESTYLE_FLAG_UNKNOWN_8 = 8,
9462
  MLINESTYLE_FLAG_START_SQUARE_END = 16,
9463
  MLINESTYLE_FLAG_START_INNER_ARC = 32,
9464
  MLINESTYLE_FLAG_START_ROUND = 64,
9465
  MLINESTYLE_FLAG_UNKNOWN_128 = 128,
9466
  MLINESTYLE_FLAG_END_SQUARE = 256,
9467
  MLINESTYLE_FLAG_END_INNER_ARC = 512,
9468
  MLINESTYLE_FLAG_END_ROUND = 1024,
9469
};
9470
9471
enum {
9472
  LIGHT_TYPE_DISTANT = 1,
9473
  LIGHT_TYPE_POINT = 2,
9474
  LIGHT_TYPE_SPOT = 3,
9475
};
9476
enum {
9477
  LIGHT_ATTENUATION_TYPE_NONE = 0,
9478
  LIGHT_ATTENUATION_TYPE_INV_LINEAR = 1,
9479
  LIGHT_ATTENUATION_TYPE_INV_SQUARE = 2,
9480
};
9481
enum {
9482
  LIGHT_EXTLIGHT_SHAPE_LINEAR = 0,
9483
  LIGHT_EXTLIGHT_SHAPE_RECT = 1,
9484
  LIGHT_EXTLIGHT_SHAPE_DISK = 2,
9485
  LIGHT_EXTLIGHT_SHAPE_CYLINDER = 3,
9486
  LIGHT_EXTLIGHT_SHAPE_SPHERE = 4,
9487
};
9488
9489
enum {
9490
  _3DFACE_INVISIBLE_EDGE1 = 1,
9491
  _3DFACE_INVISIBLE_EDGE2 = 2,
9492
  _3DFACE_INVISIBLE_EDGE3 = 4,
9493
  _3DFACE_INVISIBLE_EDGE4 = 8,
9494
};
9495
9496
/**
9497
 Common entity attributes
9498
 */
9499
typedef struct _dwg_object_entity
9500
{
9501
  BITCODE_BL objid; /*!< link to the parent */
9502
  union
9503
  {
9504
    Dwg_Entity_UNUSED *UNUSED;
9505
    Dwg_DIMENSION_common *DIMENSION_common;
9506
    // clang-format off
9507
    /* Start auto-generated entity-union. Do not touch. */
9508
    // clang-format: off
9509
    Dwg_Entity__3DFACE *_3DFACE;
9510
    Dwg_Entity__3DLINE *_3DLINE;
9511
    Dwg_Entity__3DSOLID *_3DSOLID;
9512
    Dwg_Entity_ARC *ARC;
9513
    Dwg_Entity_ATTDEF *ATTDEF;
9514
    Dwg_Entity_ATTRIB *ATTRIB;
9515
    Dwg_Entity_BLOCK *BLOCK;
9516
    Dwg_Entity_BODY *BODY;
9517
    Dwg_Entity_CIRCLE *CIRCLE;
9518
    Dwg_Entity_DIMENSION_ALIGNED *DIMENSION_ALIGNED;
9519
    Dwg_Entity_DIMENSION_ANG2LN *DIMENSION_ANG2LN;
9520
    Dwg_Entity_DIMENSION_ANG3PT *DIMENSION_ANG3PT;
9521
    Dwg_Entity_DIMENSION_DIAMETER *DIMENSION_DIAMETER;
9522
    Dwg_Entity_DIMENSION_LINEAR *DIMENSION_LINEAR;
9523
    Dwg_Entity_DIMENSION_ORDINATE *DIMENSION_ORDINATE;
9524
    Dwg_Entity_DIMENSION_RADIUS *DIMENSION_RADIUS;
9525
    Dwg_Entity_ELLIPSE *ELLIPSE;
9526
    Dwg_Entity_ENDBLK *ENDBLK;
9527
    Dwg_Entity_INSERT *INSERT;
9528
    Dwg_Entity_LEADER *LEADER;
9529
    Dwg_Entity_LINE *LINE;
9530
    Dwg_Entity_LOAD *LOAD;
9531
    Dwg_Entity_MINSERT *MINSERT;
9532
    Dwg_Entity_MLINE *MLINE;
9533
    Dwg_Entity_MTEXT *MTEXT;
9534
    Dwg_Entity_OLEFRAME *OLEFRAME;
9535
    Dwg_Entity_POINT *POINT;
9536
    Dwg_Entity_POLYLINE_2D *POLYLINE_2D;
9537
    Dwg_Entity_POLYLINE_3D *POLYLINE_3D;
9538
    Dwg_Entity_POLYLINE_MESH *POLYLINE_MESH;
9539
    Dwg_Entity_POLYLINE_PFACE *POLYLINE_PFACE;
9540
    Dwg_Entity_PROXY_ENTITY *PROXY_ENTITY;
9541
    Dwg_Entity_RAY *RAY;
9542
    Dwg_Entity_REGION *REGION;
9543
    Dwg_Entity_SEQEND *SEQEND;
9544
    Dwg_Entity_SHAPE *SHAPE;
9545
    Dwg_Entity_SOLID *SOLID;
9546
    Dwg_Entity_SPLINE *SPLINE;
9547
    Dwg_Entity_TEXT *TEXT;
9548
    Dwg_Entity_TOLERANCE *TOLERANCE;
9549
    Dwg_Entity_TRACE *TRACE;
9550
    Dwg_Entity_UNKNOWN_ENT *UNKNOWN_ENT;
9551
    Dwg_Entity_VERTEX_2D *VERTEX_2D;
9552
    Dwg_Entity_VERTEX_3D *VERTEX_3D;
9553
    Dwg_Entity_VERTEX_MESH *VERTEX_MESH;
9554
    Dwg_Entity_VERTEX_PFACE *VERTEX_PFACE;
9555
    Dwg_Entity_VERTEX_PFACE_FACE *VERTEX_PFACE_FACE;
9556
    Dwg_Entity_VIEWPORT *VIEWPORT;
9557
    Dwg_Entity_XLINE *XLINE;
9558
    /* untyped > 500 */
9559
    Dwg_Entity_ACIDBLOCKREFERENCE *ACIDBLOCKREFERENCE;
9560
    Dwg_Entity_ARC_DIMENSION *ARC_DIMENSION;
9561
    Dwg_Entity_CAMERA *CAMERA;
9562
    Dwg_Entity_DGNUNDERLAY *DGNUNDERLAY;
9563
    Dwg_Entity_DWFUNDERLAY *DWFUNDERLAY;
9564
    Dwg_Entity_ENDREP *ENDREP;
9565
    Dwg_Entity_HATCH *HATCH;
9566
    Dwg_Entity_IMAGE *IMAGE;
9567
    Dwg_Entity_JUMP *JUMP;
9568
    Dwg_Entity_LIGHT *LIGHT;
9569
    Dwg_Entity_LWPOLYLINE *LWPOLYLINE;
9570
    Dwg_Entity_MESH *MESH;
9571
    Dwg_Entity_MULTILEADER *MULTILEADER;
9572
    Dwg_Entity_OLE2FRAME *OLE2FRAME;
9573
    Dwg_Entity_PDFUNDERLAY *PDFUNDERLAY;
9574
    Dwg_Entity_REPEAT *REPEAT;
9575
    Dwg_Entity_SECTIONOBJECT *SECTIONOBJECT;
9576
    Dwg_Entity_TABLE *TABLE;
9577
    Dwg_Entity_WIPEOUT *WIPEOUT;
9578
    /* unstable */
9579
    Dwg_Entity_HELIX *HELIX;
9580
    Dwg_Entity_LARGE_RADIAL_DIMENSION *LARGE_RADIAL_DIMENSION;
9581
    Dwg_Entity_LAYOUTPRINTCONFIG *LAYOUTPRINTCONFIG;
9582
    Dwg_Entity_PLANESURFACE *PLANESURFACE;
9583
    Dwg_Entity_POINTCLOUD *POINTCLOUD;
9584
    Dwg_Entity_POINTCLOUDEX *POINTCLOUDEX;
9585
    /* debugging */
9586
      Dwg_Entity_ALIGNMENTPARAMETERENTITY *ALIGNMENTPARAMETERENTITY;
9587
      Dwg_Entity_ARCALIGNEDTEXT *ARCALIGNEDTEXT;
9588
      Dwg_Entity_BASEPOINTPARAMETERENTITY *BASEPOINTPARAMETERENTITY;
9589
      Dwg_Entity_EXTRUDEDSURFACE *EXTRUDEDSURFACE;
9590
      Dwg_Entity_FLIPGRIPENTITY *FLIPGRIPENTITY;
9591
      Dwg_Entity_FLIPPARAMETERENTITY *FLIPPARAMETERENTITY;
9592
      Dwg_Entity_GEOPOSITIONMARKER *GEOPOSITIONMARKER;
9593
      Dwg_Entity_LINEARGRIPENTITY *LINEARGRIPENTITY;
9594
      Dwg_Entity_LINEARPARAMETERENTITY *LINEARPARAMETERENTITY;
9595
      Dwg_Entity_LOFTEDSURFACE *LOFTEDSURFACE;
9596
      Dwg_Entity_MPOLYGON *MPOLYGON;
9597
      Dwg_Entity_NAVISWORKSMODEL *NAVISWORKSMODEL;
9598
      Dwg_Entity_NURBSURFACE *NURBSURFACE;
9599
      Dwg_Entity_POINTPARAMETERENTITY *POINTPARAMETERENTITY;
9600
      Dwg_Entity_POLARGRIPENTITY *POLARGRIPENTITY;
9601
      Dwg_Entity_REVOLVEDSURFACE *REVOLVEDSURFACE;
9602
      Dwg_Entity_ROTATIONGRIPENTITY *ROTATIONGRIPENTITY;
9603
      Dwg_Entity_ROTATIONPARAMETERENTITY *ROTATIONPARAMETERENTITY;
9604
      Dwg_Entity_RTEXT *RTEXT;
9605
      Dwg_Entity_SWEPTSURFACE *SWEPTSURFACE;
9606
      Dwg_Entity_VISIBILITYGRIPENTITY *VISIBILITYGRIPENTITY;
9607
      Dwg_Entity_VISIBILITYPARAMETERENTITY *VISIBILITYPARAMETERENTITY;
9608
      Dwg_Entity_XYGRIPENTITY *XYGRIPENTITY;
9609
      Dwg_Entity_XYPARAMETERENTITY *XYPARAMETERENTITY;
9610
    // clang-format: on
9611
    /* End auto-generated entity-union */
9612
    // clang-format on
9613
  } tio;
9614
9615
  struct _dwg_struct *dwg;
9616
  BITCODE_BL num_eed;
9617
  Dwg_Eed *eed; /* see also Dwg_Resbuf* xdata */
9618
9619
  /* Common Entity Data */
9620
  BITCODE_B   preview_exists;
9621
  BITCODE_B   preview_is_proxy; /* calculated */
9622
  BITCODE_BLL preview_size;     /*!< DXF 160 for bitmaps, DXF 92 for PROXY vector data.
9623
                                  e.g. INSERT, MULTILEADER */
9624
  BITCODE_TF preview;           /*!< DXF 310 */
9625
  BITCODE_BB entmode;           /*!< has no owner handle:
9626
                                  0 has no ownerhandle, 1 is PSPACE, 2 is MSPACE
9627
                                  3 has ownerhandle. */
9628
  BITCODE_BL num_reactors;
9629
  BITCODE_B is_xdic_missing;    /*!< r2004+ */
9630
  BITCODE_B isbylayerlt;        /*!< r13-r14 */
9631
  BITCODE_B nolinks;            /*!< r13-r2000 */
9632
  BITCODE_B has_ds_data;        /*!< r2013+ AcDs datastore */
9633
  BITCODE_CMC color;
9634
  BITCODE_BD ltype_scale;
9635
  BITCODE_BB ltype_flags;       /*!< r2000+ */
9636
  BITCODE_BB plotstyle_flags;   /*!< r2000+ */
9637
  BITCODE_BB material_flags;    /*!< r2007+ */
9638
  BITCODE_RC shadow_flags;      /*!< r2007+: 0 both, 1 casts, 2, receives,
9639
                                  3 has handle. DXF 284 */
9640
  BITCODE_B has_full_visualstyle; /*!< r2010+ */
9641
  BITCODE_B has_face_visualstyle; /*!< r2010+ */
9642
  BITCODE_B has_edge_visualstyle; /*!< r2010+ */
9643
  BITCODE_BS invisible;
9644
  BITCODE_RC linewt;              /*!< r2000+, see dxf_cvt_lweight() */
9645
9646
  /* preR13 entity fields. TODO a union with above */
9647
  BITCODE_RC flag_r11;
9648
  BITCODE_RS opts_r11;
9649
  BITCODE_RS extra_r11;
9650
  BITCODE_RCd color_r11;
9651
  BITCODE_RD elevation_r11; // TODO: move to the entities
9652
  BITCODE_RD thickness_r11; // TODO: move to the entities
9653
  BITCODE_H viewport; // if in paperspace
9654
  /* preR13 in the obj: eed, elevation/pt.z, thickness, paper */
9655
9656
  /* Common Entity Handle Data */
9657
  BITCODE_BL __iterator;
9658
  BITCODE_H ownerhandle;   /*!< code 5, DXF 330 mspace, pspace or owner of subentity */
9659
  BITCODE_H* reactors;     /*!< r13+ code 4, DXF 102 {ACAD_XDICTIONARY, 330 */
9660
  BITCODE_H xdicobjhandle; /*!< r13+ code 3, DXF 102 {ACAD_REACTORS, 360 */
9661
  BITCODE_H prev_entity;  /*!< r13-r2000 code 4 */
9662
  BITCODE_H next_entity;  /*!< r13-r2000 code 4 */
9663
  BITCODE_H layer;        /*!< code 5, DXF 8 */
9664
  BITCODE_H ltype;        /*!< code 5, DXF 6 */
9665
  BITCODE_H material;     /*!< r2007+ code 5, DXF 347 */
9666
  BITCODE_H shadow;       /*!< r2007+ code 5 no DXF */
9667
  BITCODE_H plotstyle;    /*!< r2000+ code 5, DXF 390 */
9668
  BITCODE_H full_visualstyle; /*!< r2010+ code 5, DXF 348 */
9669
  BITCODE_H face_visualstyle;
9670
  BITCODE_H edge_visualstyle;
9671
} Dwg_Object_Entity;
9672
9673
/**
9674
 Ordinary object attributes
9675
 */
9676
typedef struct _dwg_object_object
9677
{
9678
  BITCODE_BL objid; /*!< link to the parent */
9679
  union
9680
  {
9681
    // clang-format off
9682
    /* Start auto-generated object-union. Do not touch. */
9683
    // clang-format: off
9684
    Dwg_Object_APPID *APPID;
9685
    Dwg_Object_APPID_CONTROL *APPID_CONTROL;
9686
    Dwg_Object_BLOCK_CONTROL *BLOCK_CONTROL;
9687
    Dwg_Object_BLOCK_HEADER *BLOCK_HEADER;
9688
    Dwg_Object_DICTIONARY *DICTIONARY;
9689
    Dwg_Object_DIMSTYLE *DIMSTYLE;
9690
    Dwg_Object_DIMSTYLE_CONTROL *DIMSTYLE_CONTROL;
9691
    Dwg_Object_DUMMY *DUMMY;
9692
    Dwg_Object_LAYER *LAYER;
9693
    Dwg_Object_LAYER_CONTROL *LAYER_CONTROL;
9694
    Dwg_Object_LONG_TRANSACTION *LONG_TRANSACTION;
9695
    Dwg_Object_LTYPE *LTYPE;
9696
    Dwg_Object_LTYPE_CONTROL *LTYPE_CONTROL;
9697
    Dwg_Object_MLINESTYLE *MLINESTYLE;
9698
    Dwg_Object_STYLE *STYLE;
9699
    Dwg_Object_STYLE_CONTROL *STYLE_CONTROL;
9700
    Dwg_Object_UCS *UCS;
9701
    Dwg_Object_UCS_CONTROL *UCS_CONTROL;
9702
    Dwg_Object_UNKNOWN_OBJ *UNKNOWN_OBJ;
9703
    Dwg_Object_VIEW *VIEW;
9704
    Dwg_Object_VIEW_CONTROL *VIEW_CONTROL;
9705
    Dwg_Object_VPORT *VPORT;
9706
    Dwg_Object_VPORT_CONTROL *VPORT_CONTROL;
9707
    Dwg_Object_VX_CONTROL *VX_CONTROL;
9708
    Dwg_Object_VX_TABLE_RECORD *VX_TABLE_RECORD;
9709
    /* untyped > 500 */
9710
    Dwg_Object_ACSH_BOOLEAN_CLASS *ACSH_BOOLEAN_CLASS;
9711
    Dwg_Object_ACSH_BOX_CLASS *ACSH_BOX_CLASS;
9712
    Dwg_Object_ACSH_CONE_CLASS *ACSH_CONE_CLASS;
9713
    Dwg_Object_ACSH_CYLINDER_CLASS *ACSH_CYLINDER_CLASS;
9714
    Dwg_Object_ACSH_FILLET_CLASS *ACSH_FILLET_CLASS;
9715
    Dwg_Object_ACSH_HISTORY_CLASS *ACSH_HISTORY_CLASS;
9716
    Dwg_Object_ACSH_SPHERE_CLASS *ACSH_SPHERE_CLASS;
9717
    Dwg_Object_ACSH_TORUS_CLASS *ACSH_TORUS_CLASS;
9718
    Dwg_Object_ACSH_WEDGE_CLASS *ACSH_WEDGE_CLASS;
9719
    Dwg_Object_ALDIMOBJECTCONTEXTDATA *ALDIMOBJECTCONTEXTDATA;
9720
    Dwg_Object_ASSOCGEOMDEPENDENCY *ASSOCGEOMDEPENDENCY;
9721
    Dwg_Object_ASSOCNETWORK *ASSOCNETWORK;
9722
    Dwg_Object_BLKREFOBJECTCONTEXTDATA *BLKREFOBJECTCONTEXTDATA;
9723
    Dwg_Object_BLOCKALIGNMENTGRIP *BLOCKALIGNMENTGRIP;
9724
    Dwg_Object_BLOCKALIGNMENTPARAMETER *BLOCKALIGNMENTPARAMETER;
9725
    Dwg_Object_BLOCKBASEPOINTPARAMETER *BLOCKBASEPOINTPARAMETER;
9726
    Dwg_Object_BLOCKFLIPACTION *BLOCKFLIPACTION;
9727
    Dwg_Object_BLOCKFLIPGRIP *BLOCKFLIPGRIP;
9728
    Dwg_Object_BLOCKFLIPPARAMETER *BLOCKFLIPPARAMETER;
9729
    Dwg_Object_BLOCKGRIPLOCATIONCOMPONENT *BLOCKGRIPLOCATIONCOMPONENT;
9730
    Dwg_Object_BLOCKLINEARGRIP *BLOCKLINEARGRIP;
9731
    Dwg_Object_BLOCKLOOKUPGRIP *BLOCKLOOKUPGRIP;
9732
    Dwg_Object_BLOCKMOVEACTION *BLOCKMOVEACTION;
9733
    Dwg_Object_BLOCKROTATEACTION *BLOCKROTATEACTION;
9734
    Dwg_Object_BLOCKROTATIONGRIP *BLOCKROTATIONGRIP;
9735
    Dwg_Object_BLOCKSCALEACTION *BLOCKSCALEACTION;
9736
    Dwg_Object_BLOCKVISIBILITYGRIP *BLOCKVISIBILITYGRIP;
9737
    Dwg_Object_CELLSTYLEMAP *CELLSTYLEMAP;
9738
    Dwg_Object_DETAILVIEWSTYLE *DETAILVIEWSTYLE;
9739
    Dwg_Object_DICTIONARYVAR *DICTIONARYVAR;
9740
    Dwg_Object_DICTIONARYWDFLT *DICTIONARYWDFLT;
9741
    Dwg_Object_DIMASSOC *DIMASSOC;
9742
    Dwg_Object_DYNAMICBLOCKPURGEPREVENTER *DYNAMICBLOCKPURGEPREVENTER;
9743
    Dwg_Object_FIELD *FIELD;
9744
    Dwg_Object_FIELDLIST *FIELDLIST;
9745
    Dwg_Object_GEODATA *GEODATA;
9746
    Dwg_Object_GROUP *GROUP;
9747
    Dwg_Object_IDBUFFER *IDBUFFER;
9748
    Dwg_Object_IMAGEDEF *IMAGEDEF;
9749
    Dwg_Object_IMAGEDEF_REACTOR *IMAGEDEF_REACTOR;
9750
    Dwg_Object_INDEX *INDEX;
9751
    Dwg_Object_LAYER_FILTER *LAYER_FILTER;
9752
    Dwg_Object_LAYER_INDEX *LAYER_INDEX;
9753
    Dwg_Object_LAYOUT *LAYOUT;
9754
    Dwg_Object_LEADEROBJECTCONTEXTDATA *LEADEROBJECTCONTEXTDATA;
9755
    Dwg_Object_MLEADERSTYLE *MLEADERSTYLE;
9756
    Dwg_Object_MTEXTOBJECTCONTEXTDATA *MTEXTOBJECTCONTEXTDATA;
9757
    Dwg_Object_PLACEHOLDER *PLACEHOLDER;
9758
    Dwg_Object_PLOTSETTINGS *PLOTSETTINGS;
9759
    Dwg_Object_RASTERVARIABLES *RASTERVARIABLES;
9760
    Dwg_Object_RENDERENVIRONMENT *RENDERENVIRONMENT;
9761
    Dwg_Object_SCALE *SCALE;
9762
    Dwg_Object_SECTIONVIEWSTYLE *SECTIONVIEWSTYLE;
9763
    Dwg_Object_SECTION_MANAGER *SECTION_MANAGER;
9764
    Dwg_Object_SORTENTSTABLE *SORTENTSTABLE;
9765
    Dwg_Object_SPATIAL_FILTER *SPATIAL_FILTER;
9766
    Dwg_Object_SUN *SUN;
9767
    Dwg_Object_TABLEGEOMETRY *TABLEGEOMETRY;
9768
    Dwg_Object_TEXTOBJECTCONTEXTDATA *TEXTOBJECTCONTEXTDATA;
9769
    Dwg_Object_VBA_PROJECT *VBA_PROJECT;
9770
    Dwg_Object_VISUALSTYLE *VISUALSTYLE;
9771
    Dwg_Object_WIPEOUTVARIABLES *WIPEOUTVARIABLES;
9772
    Dwg_Object_XRECORD *XRECORD;
9773
    Dwg_Object_PDFDEFINITION *PDFDEFINITION;
9774
    Dwg_Object_DGNDEFINITION *DGNDEFINITION;
9775
    Dwg_Object_DWFDEFINITION *DWFDEFINITION;
9776
    /* unstable */
9777
    Dwg_Object_ACSH_BREP_CLASS *ACSH_BREP_CLASS;
9778
    Dwg_Object_ACSH_CHAMFER_CLASS *ACSH_CHAMFER_CLASS;
9779
    Dwg_Object_ACSH_PYRAMID_CLASS *ACSH_PYRAMID_CLASS;
9780
    Dwg_Object_ASSOC2DCONSTRAINTGROUP *ASSOC2DCONSTRAINTGROUP;
9781
    Dwg_Object_ASSOCACTION *ASSOCACTION;
9782
    Dwg_Object_ASSOCACTIONPARAM *ASSOCACTIONPARAM;
9783
    Dwg_Object_ASSOCARRAYACTIONBODY *ASSOCARRAYACTIONBODY;
9784
    Dwg_Object_ASSOCASMBODYACTIONPARAM *ASSOCASMBODYACTIONPARAM;
9785
    Dwg_Object_ASSOCBLENDSURFACEACTIONBODY *ASSOCBLENDSURFACEACTIONBODY;
9786
    Dwg_Object_ASSOCCOMPOUNDACTIONPARAM *ASSOCCOMPOUNDACTIONPARAM;
9787
    Dwg_Object_ASSOCDEPENDENCY *ASSOCDEPENDENCY;
9788
    Dwg_Object_ASSOCDIMDEPENDENCYBODY *ASSOCDIMDEPENDENCYBODY;
9789
    Dwg_Object_ASSOCEXTENDSURFACEACTIONBODY *ASSOCEXTENDSURFACEACTIONBODY;
9790
    Dwg_Object_ASSOCEXTRUDEDSURFACEACTIONBODY *ASSOCEXTRUDEDSURFACEACTIONBODY;
9791
    Dwg_Object_ASSOCFACEACTIONPARAM *ASSOCFACEACTIONPARAM;
9792
    Dwg_Object_ASSOCFILLETSURFACEACTIONBODY *ASSOCFILLETSURFACEACTIONBODY;
9793
    Dwg_Object_ASSOCLOFTEDSURFACEACTIONBODY *ASSOCLOFTEDSURFACEACTIONBODY;
9794
    Dwg_Object_ASSOCNETWORKSURFACEACTIONBODY *ASSOCNETWORKSURFACEACTIONBODY;
9795
    Dwg_Object_ASSOCOBJECTACTIONPARAM *ASSOCOBJECTACTIONPARAM;
9796
    Dwg_Object_ASSOCOFFSETSURFACEACTIONBODY *ASSOCOFFSETSURFACEACTIONBODY;
9797
    Dwg_Object_ASSOCOSNAPPOINTREFACTIONPARAM *ASSOCOSNAPPOINTREFACTIONPARAM;
9798
    Dwg_Object_ASSOCPATCHSURFACEACTIONBODY *ASSOCPATCHSURFACEACTIONBODY;
9799
    Dwg_Object_ASSOCPATHACTIONPARAM *ASSOCPATHACTIONPARAM;
9800
    Dwg_Object_ASSOCPLANESURFACEACTIONBODY *ASSOCPLANESURFACEACTIONBODY;
9801
    Dwg_Object_ASSOCPOINTREFACTIONPARAM *ASSOCPOINTREFACTIONPARAM;
9802
    Dwg_Object_ASSOCREVOLVEDSURFACEACTIONBODY *ASSOCREVOLVEDSURFACEACTIONBODY;
9803
    Dwg_Object_ASSOCTRIMSURFACEACTIONBODY *ASSOCTRIMSURFACEACTIONBODY;
9804
    Dwg_Object_ASSOCVALUEDEPENDENCY *ASSOCVALUEDEPENDENCY;
9805
    Dwg_Object_ASSOCVARIABLE *ASSOCVARIABLE;
9806
    Dwg_Object_ASSOCVERTEXACTIONPARAM *ASSOCVERTEXACTIONPARAM;
9807
    Dwg_Object_BLOCKALIGNEDCONSTRAINTPARAMETER *BLOCKALIGNEDCONSTRAINTPARAMETER;
9808
    Dwg_Object_BLOCKANGULARCONSTRAINTPARAMETER *BLOCKANGULARCONSTRAINTPARAMETER;
9809
    Dwg_Object_BLOCKARRAYACTION *BLOCKARRAYACTION;
9810
    Dwg_Object_BLOCKDIAMETRICCONSTRAINTPARAMETER *BLOCKDIAMETRICCONSTRAINTPARAMETER;
9811
    Dwg_Object_BLOCKHORIZONTALCONSTRAINTPARAMETER *BLOCKHORIZONTALCONSTRAINTPARAMETER;
9812
    Dwg_Object_BLOCKLINEARCONSTRAINTPARAMETER *BLOCKLINEARCONSTRAINTPARAMETER;
9813
    Dwg_Object_BLOCKLINEARPARAMETER *BLOCKLINEARPARAMETER;
9814
    Dwg_Object_BLOCKLOOKUPACTION *BLOCKLOOKUPACTION;
9815
    Dwg_Object_BLOCKLOOKUPPARAMETER *BLOCKLOOKUPPARAMETER;
9816
    Dwg_Object_BLOCKPARAMDEPENDENCYBODY *BLOCKPARAMDEPENDENCYBODY;
9817
    Dwg_Object_BLOCKPOINTPARAMETER *BLOCKPOINTPARAMETER;
9818
    Dwg_Object_BLOCKPOLARGRIP *BLOCKPOLARGRIP;
9819
    Dwg_Object_BLOCKPOLARPARAMETER *BLOCKPOLARPARAMETER;
9820
    Dwg_Object_BLOCKPOLARSTRETCHACTION *BLOCKPOLARSTRETCHACTION;
9821
    Dwg_Object_BLOCKRADIALCONSTRAINTPARAMETER *BLOCKRADIALCONSTRAINTPARAMETER;
9822
    Dwg_Object_BLOCKREPRESENTATION *BLOCKREPRESENTATION;
9823
    Dwg_Object_BLOCKROTATIONPARAMETER *BLOCKROTATIONPARAMETER;
9824
    Dwg_Object_BLOCKSTRETCHACTION *BLOCKSTRETCHACTION;
9825
    Dwg_Object_BLOCKUSERPARAMETER *BLOCKUSERPARAMETER;
9826
    Dwg_Object_BLOCKVERTICALCONSTRAINTPARAMETER *BLOCKVERTICALCONSTRAINTPARAMETER;
9827
    Dwg_Object_BLOCKVISIBILITYPARAMETER *BLOCKVISIBILITYPARAMETER;
9828
    Dwg_Object_BLOCKXYGRIP *BLOCKXYGRIP;
9829
    Dwg_Object_BLOCKXYPARAMETER *BLOCKXYPARAMETER;
9830
    Dwg_Object_DATALINK *DATALINK;
9831
    Dwg_Object_DBCOLOR *DBCOLOR;
9832
    Dwg_Object_EVALUATION_GRAPH *EVALUATION_GRAPH;
9833
    Dwg_Object_FCFOBJECTCONTEXTDATA *FCFOBJECTCONTEXTDATA;
9834
    Dwg_Object_GRADIENT_BACKGROUND *GRADIENT_BACKGROUND;
9835
    Dwg_Object_GROUND_PLANE_BACKGROUND *GROUND_PLANE_BACKGROUND;
9836
    Dwg_Object_IBL_BACKGROUND *IBL_BACKGROUND;
9837
    Dwg_Object_IMAGE_BACKGROUND *IMAGE_BACKGROUND;
9838
    Dwg_Object_LIGHTLIST *LIGHTLIST;
9839
    Dwg_Object_MATERIAL *MATERIAL;
9840
    Dwg_Object_MENTALRAYRENDERSETTINGS *MENTALRAYRENDERSETTINGS;
9841
    Dwg_Object_OBJECT_PTR *OBJECT_PTR;
9842
    Dwg_Object_PARTIAL_VIEWING_INDEX *PARTIAL_VIEWING_INDEX;
9843
    Dwg_Object_POINTCLOUDCOLORMAP *POINTCLOUDCOLORMAP;
9844
    Dwg_Object_POINTCLOUDDEF *POINTCLOUDDEF;
9845
    Dwg_Object_POINTCLOUDDEFEX *POINTCLOUDDEFEX;
9846
    Dwg_Object_POINTCLOUDDEF_REACTOR *POINTCLOUDDEF_REACTOR;
9847
    Dwg_Object_POINTCLOUDDEF_REACTOR_EX *POINTCLOUDDEF_REACTOR_EX;
9848
    Dwg_Object_PROXY_OBJECT *PROXY_OBJECT;
9849
    Dwg_Object_RAPIDRTRENDERSETTINGS *RAPIDRTRENDERSETTINGS;
9850
    Dwg_Object_RENDERENTRY *RENDERENTRY;
9851
    Dwg_Object_RENDERGLOBAL *RENDERGLOBAL;
9852
    Dwg_Object_RENDERSETTINGS *RENDERSETTINGS;
9853
    Dwg_Object_SECTION_SETTINGS *SECTION_SETTINGS;
9854
    Dwg_Object_SKYLIGHT_BACKGROUND *SKYLIGHT_BACKGROUND;
9855
    Dwg_Object_SOLID_BACKGROUND *SOLID_BACKGROUND;
9856
    Dwg_Object_SPATIAL_INDEX *SPATIAL_INDEX;
9857
    Dwg_Object_TABLECONTENT *TABLECONTENT;
9858
    Dwg_Object_TABLESTYLE *TABLESTYLE;
9859
    Dwg_Object_ASSOCARRAYMODIFYPARAMETERS *ASSOCARRAYMODIFYPARAMETERS;
9860
    Dwg_Object_ASSOCARRAYPATHPARAMETERS *ASSOCARRAYPATHPARAMETERS;
9861
    Dwg_Object_ASSOCARRAYPOLARPARAMETERS *ASSOCARRAYPOLARPARAMETERS;
9862
    Dwg_Object_ASSOCARRAYRECTANGULARPARAMETERS *ASSOCARRAYRECTANGULARPARAMETERS;
9863
    /* debugging */
9864
    Dwg_Object_ACMECOMMANDHISTORY *ACMECOMMANDHISTORY;
9865
    Dwg_Object_ACMESCOPE *ACMESCOPE;
9866
    Dwg_Object_ACMESTATEMGR *ACMESTATEMGR;
9867
    Dwg_Object_ACSH_EXTRUSION_CLASS *ACSH_EXTRUSION_CLASS;
9868
    Dwg_Object_ACSH_LOFT_CLASS *ACSH_LOFT_CLASS;
9869
    Dwg_Object_ACSH_REVOLVE_CLASS *ACSH_REVOLVE_CLASS;
9870
    Dwg_Object_ACSH_SWEEP_CLASS *ACSH_SWEEP_CLASS;
9871
    Dwg_Object_ANGDIMOBJECTCONTEXTDATA *ANGDIMOBJECTCONTEXTDATA;
9872
    Dwg_Object_ANNOTSCALEOBJECTCONTEXTDATA *ANNOTSCALEOBJECTCONTEXTDATA;
9873
    Dwg_Object_ASSOC3POINTANGULARDIMACTIONBODY *ASSOC3POINTANGULARDIMACTIONBODY;
9874
    Dwg_Object_ASSOCALIGNEDDIMACTIONBODY *ASSOCALIGNEDDIMACTIONBODY;
9875
    Dwg_Object_ASSOCARRAYMODIFYACTIONBODY *ASSOCARRAYMODIFYACTIONBODY;
9876
    Dwg_Object_ASSOCEDGEACTIONPARAM *ASSOCEDGEACTIONPARAM;
9877
    Dwg_Object_ASSOCEDGECHAMFERACTIONBODY *ASSOCEDGECHAMFERACTIONBODY;
9878
    Dwg_Object_ASSOCEDGEFILLETACTIONBODY *ASSOCEDGEFILLETACTIONBODY;
9879
    Dwg_Object_ASSOCMLEADERACTIONBODY *ASSOCMLEADERACTIONBODY;
9880
    Dwg_Object_ASSOCORDINATEDIMACTIONBODY *ASSOCORDINATEDIMACTIONBODY;
9881
    Dwg_Object_ASSOCPERSSUBENTMANAGER *ASSOCPERSSUBENTMANAGER;
9882
    Dwg_Object_ASSOCRESTOREENTITYSTATEACTIONBODY *ASSOCRESTOREENTITYSTATEACTIONBODY;
9883
    Dwg_Object_ASSOCROTATEDDIMACTIONBODY *ASSOCROTATEDDIMACTIONBODY;
9884
    Dwg_Object_ASSOCSWEPTSURFACEACTIONBODY *ASSOCSWEPTSURFACEACTIONBODY;
9885
    Dwg_Object_BLOCKPROPERTIESTABLE *BLOCKPROPERTIESTABLE;
9886
    Dwg_Object_BLOCKPROPERTIESTABLEGRIP *BLOCKPROPERTIESTABLEGRIP;
9887
    Dwg_Object_BREAKDATA *BREAKDATA;
9888
    Dwg_Object_BREAKPOINTREF *BREAKPOINTREF;
9889
    Dwg_Object_CONTEXTDATAMANAGER *CONTEXTDATAMANAGER;
9890
    Dwg_Object_CSACDOCUMENTOPTIONS *CSACDOCUMENTOPTIONS;
9891
    Dwg_Object_CURVEPATH *CURVEPATH;
9892
    Dwg_Object_DATATABLE *DATATABLE;
9893
    Dwg_Object_DMDIMOBJECTCONTEXTDATA *DMDIMOBJECTCONTEXTDATA;
9894
    Dwg_Object_DYNAMICBLOCKPROXYNODE *DYNAMICBLOCKPROXYNODE;
9895
    Dwg_Object_GEOMAPIMAGE *GEOMAPIMAGE;
9896
    Dwg_Object_MLEADEROBJECTCONTEXTDATA *MLEADEROBJECTCONTEXTDATA;
9897
    Dwg_Object_MOTIONPATH *MOTIONPATH;
9898
    Dwg_Object_MTEXTATTRIBUTEOBJECTCONTEXTDATA *MTEXTATTRIBUTEOBJECTCONTEXTDATA;
9899
    Dwg_Object_NAVISWORKSMODELDEF *NAVISWORKSMODELDEF;
9900
    Dwg_Object_ORDDIMOBJECTCONTEXTDATA *ORDDIMOBJECTCONTEXTDATA;
9901
    Dwg_Object_PERSUBENTMGR *PERSUBENTMGR;
9902
    Dwg_Object_POINTPATH *POINTPATH;
9903
    Dwg_Object_RADIMLGOBJECTCONTEXTDATA *RADIMLGOBJECTCONTEXTDATA;
9904
    Dwg_Object_RADIMOBJECTCONTEXTDATA *RADIMOBJECTCONTEXTDATA;
9905
    Dwg_Object_SUNSTUDY *SUNSTUDY;
9906
    Dwg_Object_TVDEVICEPROPERTIES *TVDEVICEPROPERTIES;
9907
//    Dwg_Object_ABSHDRAWINGSETTINGS *ABSHDRAWINGSETTINGS;
9908
//    Dwg_Object_ACAECUSTOBJ *ACAECUSTOBJ;
9909
//    Dwg_Object_ACAEEEMGROBJ *ACAEEEMGROBJ;
9910
//    Dwg_Object_ACAMCOMP *ACAMCOMP;
9911
//    Dwg_Object_ACAMCOMPDEF *ACAMCOMPDEF;
9912
//    Dwg_Object_ACAMCOMPDEFMGR *ACAMCOMPDEFMGR;
9913
//    Dwg_Object_ACAMCONTEXTMODELER *ACAMCONTEXTMODELER;
9914
//    Dwg_Object_ACAMGDIMSTD *ACAMGDIMSTD;
9915
//    Dwg_Object_ACAMGFILTERDAT *ACAMGFILTERDAT;
9916
//    Dwg_Object_ACAMGHOLECHARTSTDCSN *ACAMGHOLECHARTSTDCSN;
9917
//    Dwg_Object_ACAMGHOLECHARTSTDDIN *ACAMGHOLECHARTSTDDIN;
9918
//    Dwg_Object_ACAMGHOLECHARTSTDISO *ACAMGHOLECHARTSTDISO;
9919
//    Dwg_Object_ACAMGLAYSTD *ACAMGLAYSTD;
9920
//    Dwg_Object_ACAMGRCOMPDEF *ACAMGRCOMPDEF;
9921
//    Dwg_Object_ACAMGRCOMPDEFSET *ACAMGRCOMPDEFSET;
9922
//    Dwg_Object_ACAMGTITLESTD *ACAMGTITLESTD;
9923
//    Dwg_Object_ACAMMVDBACKUPOBJECT *ACAMMVDBACKUPOBJECT;
9924
//    Dwg_Object_ACAMPROJECT *ACAMPROJECT;
9925
//    Dwg_Object_ACAMSHAFTCOMPDEF *ACAMSHAFTCOMPDEF;
9926
//    Dwg_Object_ACAMSTDPCOMPDEF *ACAMSTDPCOMPDEF;
9927
//    Dwg_Object_ACAMWBLOCKTEMPENTS *ACAMWBLOCKTEMPENTS;
9928
//    Dwg_Object_ACARRAYJIGENTITY *ACARRAYJIGENTITY;
9929
//    Dwg_Object_ACCMCONTEXT *ACCMCONTEXT;
9930
//    Dwg_Object_ACDBCIRCARCRES *ACDBCIRCARCRES;
9931
//    Dwg_Object_ACDBDIMENSIONRES *ACDBDIMENSIONRES;
9932
//    Dwg_Object_ACDBENTITYCACHE *ACDBENTITYCACHE;
9933
//    Dwg_Object_ACDBLINERES *ACDBLINERES;
9934
//    Dwg_Object_ACDBSTDPARTRES_ARC *ACDBSTDPARTRES_ARC;
9935
//    Dwg_Object_ACDBSTDPARTRES_LINE *ACDBSTDPARTRES_LINE;
9936
//    Dwg_Object_ACDB_HATCHSCALECONTEXTDATA_CLASS *ACDB_HATCHSCALECONTEXTDATA_CLASS;
9937
//    Dwg_Object_ACDB_HATCHVIEWCONTEXTDATA_CLASS *ACDB_HATCHVIEWCONTEXTDATA_CLASS;
9938
//    Dwg_Object_ACDB_PROXY_ENTITY_DATA *ACDB_PROXY_ENTITY_DATA;
9939
//    Dwg_Object_ACDSRECORD *ACDSRECORD;
9940
//    Dwg_Object_ACDSSCHEMA *ACDSSCHEMA;
9941
//    Dwg_Object_ACGREFACADMASTER *ACGREFACADMASTER;
9942
//    Dwg_Object_ACGREFMASTER *ACGREFMASTER;
9943
//    Dwg_Object_ACIMINTSYSVAR *ACIMINTSYSVAR;
9944
//    Dwg_Object_ACIMREALSYSVAR *ACIMREALSYSVAR;
9945
//    Dwg_Object_ACIMSTRSYSVAR *ACIMSTRSYSVAR;
9946
//    Dwg_Object_ACIMSYSVARMAN *ACIMSYSVARMAN;
9947
//    Dwg_Object_ACMANOOTATIONVIEWSTANDARDANSI *ACMANOOTATIONVIEWSTANDARDANSI;
9948
//    Dwg_Object_ACMANOOTATIONVIEWSTANDARDCSN *ACMANOOTATIONVIEWSTANDARDCSN;
9949
//    Dwg_Object_ACMANOOTATIONVIEWSTANDARDDIN *ACMANOOTATIONVIEWSTANDARDDIN;
9950
//    Dwg_Object_ACMANOOTATIONVIEWSTANDARDISO *ACMANOOTATIONVIEWSTANDARDISO;
9951
//    Dwg_Object_ACMAPLEGENDDBOBJECT *ACMAPLEGENDDBOBJECT;
9952
//    Dwg_Object_ACMAPLEGENDITEMDBOBJECT *ACMAPLEGENDITEMDBOBJECT;
9953
//    Dwg_Object_ACMAPMAPVIEWPORTDBOBJECT *ACMAPMAPVIEWPORTDBOBJECT;
9954
//    Dwg_Object_ACMAPPRINTLAYOUTELEMENTDBOBJECTCONTAINER *ACMAPPRINTLAYOUTELEMENTDBOBJECTCONTAINER;
9955
//    Dwg_Object_ACMBALLOON *ACMBALLOON;
9956
//    Dwg_Object_ACMBOM *ACMBOM;
9957
//    Dwg_Object_ACMBOMROW *ACMBOMROW;
9958
//    Dwg_Object_ACMBOMROWSTRUCT *ACMBOMROWSTRUCT;
9959
//    Dwg_Object_ACMBOMSTANDARDANSI *ACMBOMSTANDARDANSI;
9960
//    Dwg_Object_ACMBOMSTANDARDCSN *ACMBOMSTANDARDCSN;
9961
//    Dwg_Object_ACMBOMSTANDARDDIN *ACMBOMSTANDARDDIN;
9962
//    Dwg_Object_ACMBOMSTANDARDISO *ACMBOMSTANDARDISO;
9963
//    Dwg_Object_ACMCENTERLINESTANDARDANSI *ACMCENTERLINESTANDARDANSI;
9964
//    Dwg_Object_ACMCENTERLINESTANDARDCSN *ACMCENTERLINESTANDARDCSN;
9965
//    Dwg_Object_ACMCENTERLINESTANDARDDIN *ACMCENTERLINESTANDARDDIN;
9966
//    Dwg_Object_ACMCENTERLINESTANDARDISO *ACMCENTERLINESTANDARDISO;
9967
//    Dwg_Object_ACMDATADICTIONARY *ACMDATADICTIONARY;
9968
//    Dwg_Object_ACMDATAENTRY *ACMDATAENTRY;
9969
//    Dwg_Object_ACMDATAENTRYBLOCK *ACMDATAENTRYBLOCK;
9970
//    Dwg_Object_ACMDATUMID *ACMDATUMID;
9971
//    Dwg_Object_ACMDATUMSTANDARDANSI *ACMDATUMSTANDARDANSI;
9972
//    Dwg_Object_ACMDATUMSTANDARDCSN *ACMDATUMSTANDARDCSN;
9973
//    Dwg_Object_ACMDATUMSTANDARDDIN *ACMDATUMSTANDARDDIN;
9974
//    Dwg_Object_ACMDATUMSTANDARDISO *ACMDATUMSTANDARDISO;
9975
//    Dwg_Object_ACMDATUMSTANDARDISO2012 *ACMDATUMSTANDARDISO2012;
9976
//    Dwg_Object_ACMDETAILSTANDARDANSI *ACMDETAILSTANDARDANSI;
9977
//    Dwg_Object_ACMDETAILSTANDARDCSN *ACMDETAILSTANDARDCSN;
9978
//    Dwg_Object_ACMDETAILSTANDARDDIN *ACMDETAILSTANDARDDIN;
9979
//    Dwg_Object_ACMDETAILSTANDARDISO *ACMDETAILSTANDARDISO;
9980
//    Dwg_Object_ACMDETAILTANDARDCUSTOM *ACMDETAILTANDARDCUSTOM;
9981
//    Dwg_Object_ACMDIMBREAKPERSREACTOR *ACMDIMBREAKPERSREACTOR;
9982
//    Dwg_Object_ACMEDRAWINGMAN *ACMEDRAWINGMAN;
9983
//    Dwg_Object_ACMEVIEW *ACMEVIEW;
9984
//    Dwg_Object_ACME_DATABASE *ACME_DATABASE;
9985
//    Dwg_Object_ACME_DOCUMENT *ACME_DOCUMENT;
9986
//    Dwg_Object_ACMFCFRAME *ACMFCFRAME;
9987
//    Dwg_Object_ACMFCFSTANDARDANSI *ACMFCFSTANDARDANSI;
9988
//    Dwg_Object_ACMFCFSTANDARDCSN *ACMFCFSTANDARDCSN;
9989
//    Dwg_Object_ACMFCFSTANDARDDIN *ACMFCFSTANDARDDIN;
9990
//    Dwg_Object_ACMFCFSTANDARDISO *ACMFCFSTANDARDISO;
9991
//    Dwg_Object_ACMFCFSTANDARDISO2004 *ACMFCFSTANDARDISO2004;
9992
//    Dwg_Object_ACMFCFSTANDARDISO2012 *ACMFCFSTANDARDISO2012;
9993
//    Dwg_Object_ACMIDSTANDARDANSI *ACMIDSTANDARDANSI;
9994
//    Dwg_Object_ACMIDSTANDARDCSN *ACMIDSTANDARDCSN;
9995
//    Dwg_Object_ACMIDSTANDARDDIN *ACMIDSTANDARDDIN;
9996
//    Dwg_Object_ACMIDSTANDARDISO *ACMIDSTANDARDISO;
9997
//    Dwg_Object_ACMIDSTANDARDISO2004 *ACMIDSTANDARDISO2004;
9998
//    Dwg_Object_ACMIDSTANDARDISO2012 *ACMIDSTANDARDISO2012;
9999
//    Dwg_Object_ACMNOTESTANDARDANSI *ACMNOTESTANDARDANSI;
10000
//    Dwg_Object_ACMNOTESTANDARDCSN *ACMNOTESTANDARDCSN;
10001
//    Dwg_Object_ACMNOTESTANDARDDIN *ACMNOTESTANDARDDIN;
10002
//    Dwg_Object_ACMNOTESTANDARDISO *ACMNOTESTANDARDISO;
10003
//    Dwg_Object_ACMPARTLIST *ACMPARTLIST;
10004
//    Dwg_Object_ACMPICKOBJ *ACMPICKOBJ;
10005
//    Dwg_Object_ACMSECTIONSTANDARDANSI *ACMSECTIONSTANDARDANSI;
10006
//    Dwg_Object_ACMSECTIONSTANDARDCSN2002 *ACMSECTIONSTANDARDCSN2002;
10007
//    Dwg_Object_ACMSECTIONSTANDARDCUSTOM *ACMSECTIONSTANDARDCUSTOM;
10008
//    Dwg_Object_ACMSECTIONSTANDARDDIN *ACMSECTIONSTANDARDDIN;
10009
//    Dwg_Object_ACMSECTIONSTANDARDISO *ACMSECTIONSTANDARDISO;
10010
//    Dwg_Object_ACMSECTIONSTANDARDISO2001 *ACMSECTIONSTANDARDISO2001;
10011
//    Dwg_Object_ACMSTANDARDANSI *ACMSTANDARDANSI;
10012
//    Dwg_Object_ACMSTANDARDCSN *ACMSTANDARDCSN;
10013
//    Dwg_Object_ACMSTANDARDDIN *ACMSTANDARDDIN;
10014
//    Dwg_Object_ACMSTANDARDISO *ACMSTANDARDISO;
10015
//    Dwg_Object_ACMSURFSTANDARDANSI *ACMSURFSTANDARDANSI;
10016
//    Dwg_Object_ACMSURFSTANDARDCSN *ACMSURFSTANDARDCSN;
10017
//    Dwg_Object_ACMSURFSTANDARDDIN *ACMSURFSTANDARDDIN;
10018
//    Dwg_Object_ACMSURFSTANDARDISO *ACMSURFSTANDARDISO;
10019
//    Dwg_Object_ACMSURFSTANDARDISO2002 *ACMSURFSTANDARDISO2002;
10020
//    Dwg_Object_ACMSURFSYM *ACMSURFSYM;
10021
//    Dwg_Object_ACMTAPERSTANDARDANSI *ACMTAPERSTANDARDANSI;
10022
//    Dwg_Object_ACMTAPERSTANDARDCSN *ACMTAPERSTANDARDCSN;
10023
//    Dwg_Object_ACMTAPERSTANDARDDIN *ACMTAPERSTANDARDDIN;
10024
//    Dwg_Object_ACMTAPERSTANDARDISO *ACMTAPERSTANDARDISO;
10025
//    Dwg_Object_ACMTHREADLINESTANDARDANSI *ACMTHREADLINESTANDARDANSI;
10026
//    Dwg_Object_ACMTHREADLINESTANDARDCSN *ACMTHREADLINESTANDARDCSN;
10027
//    Dwg_Object_ACMTHREADLINESTANDARDDIN *ACMTHREADLINESTANDARDDIN;
10028
//    Dwg_Object_ACMTHREADLINESTANDARDISO *ACMTHREADLINESTANDARDISO;
10029
//    Dwg_Object_ACMWELDSTANDARDANSI *ACMWELDSTANDARDANSI;
10030
//    Dwg_Object_ACMWELDSTANDARDCSN *ACMWELDSTANDARDCSN;
10031
//    Dwg_Object_ACMWELDSTANDARDDIN *ACMWELDSTANDARDDIN;
10032
//    Dwg_Object_ACMWELDSTANDARDISO *ACMWELDSTANDARDISO;
10033
//    Dwg_Object_ACMWELDSYM *ACMWELDSYM;
10034
//    Dwg_Object_ACRFATTGENMGR *ACRFATTGENMGR;
10035
//    Dwg_Object_ACRFINSADJ *ACRFINSADJ;
10036
//    Dwg_Object_ACRFINSADJUSTERMGR *ACRFINSADJUSTERMGR;
10037
//    Dwg_Object_ACRFMCADAPIATTHOLDER *ACRFMCADAPIATTHOLDER;
10038
//    Dwg_Object_ACRFOBJATTMGR *ACRFOBJATTMGR;
10039
//    Dwg_Object_ACSH_SUBENT_MATERIAL_CLASS *ACSH_SUBENT_MATERIAL_CLASS;
10040
//    Dwg_Object_AC_AM_2D_XREF_MGR *AC_AM_2D_XREF_MGR;
10041
//    Dwg_Object_AC_AM_BASIC_VIEW *AC_AM_BASIC_VIEW;
10042
//    Dwg_Object_AC_AM_BASIC_VIEW_DEF *AC_AM_BASIC_VIEW_DEF;
10043
//    Dwg_Object_AC_AM_COMPLEX_HIDE_SITUATION *AC_AM_COMPLEX_HIDE_SITUATION;
10044
//    Dwg_Object_AC_AM_COMP_VIEW_DEF *AC_AM_COMP_VIEW_DEF;
10045
//    Dwg_Object_AC_AM_COMP_VIEW_INST *AC_AM_COMP_VIEW_INST;
10046
//    Dwg_Object_AC_AM_DIRTY_NODES *AC_AM_DIRTY_NODES;
10047
//    Dwg_Object_AC_AM_HIDE_SITUATION *AC_AM_HIDE_SITUATION;
10048
//    Dwg_Object_AC_AM_MAPPER_CACHE *AC_AM_MAPPER_CACHE;
10049
//    Dwg_Object_AC_AM_MASTER_VIEW_DEF *AC_AM_MASTER_VIEW_DEF;
10050
//    Dwg_Object_AC_AM_MVD_DEP_MGR *AC_AM_MVD_DEP_MGR;
10051
//    Dwg_Object_AC_AM_OVERRIDE_FILTER *AC_AM_OVERRIDE_FILTER;
10052
//    Dwg_Object_AC_AM_PROPS_OVERRIDE *AC_AM_PROPS_OVERRIDE;
10053
//    Dwg_Object_AC_AM_SHAFT_HIDE_SITUATION *AC_AM_SHAFT_HIDE_SITUATION;
10054
//    Dwg_Object_AC_AM_STDP_VIEW_DEF *AC_AM_STDP_VIEW_DEF;
10055
//    Dwg_Object_AC_AM_TRANSFORM_GHOST *AC_AM_TRANSFORM_GHOST;
10056
//    Dwg_Object_ADAPPL *ADAPPL;
10057
//    Dwg_Object_AECC_ALIGNMENT_DESIGN_CHECK_SET *AECC_ALIGNMENT_DESIGN_CHECK_SET;
10058
//    Dwg_Object_AECC_ALIGNMENT_LABEL_SET *AECC_ALIGNMENT_LABEL_SET;
10059
//    Dwg_Object_AECC_ALIGNMENT_LABEL_SET_EXT *AECC_ALIGNMENT_LABEL_SET_EXT;
10060
//    Dwg_Object_AECC_ALIGNMENT_PARCEL_NODE *AECC_ALIGNMENT_PARCEL_NODE;
10061
//    Dwg_Object_AECC_ALIGNMENT_STYLE *AECC_ALIGNMENT_STYLE;
10062
//    Dwg_Object_AECC_APPURTENANCE_STYLE *AECC_APPURTENANCE_STYLE;
10063
//    Dwg_Object_AECC_ASSEMBLY_STYLE *AECC_ASSEMBLY_STYLE;
10064
//    Dwg_Object_AECC_BUILDING_SITE_STYLE *AECC_BUILDING_SITE_STYLE;
10065
//    Dwg_Object_AECC_CANT_DIAGRAM_VIEW_STYLE *AECC_CANT_DIAGRAM_VIEW_STYLE;
10066
//    Dwg_Object_AECC_CATCHMENT_STYLE *AECC_CATCHMENT_STYLE;
10067
//    Dwg_Object_AECC_CLASS_NODE *AECC_CLASS_NODE;
10068
//    Dwg_Object_AECC_CONTOURVIEW *AECC_CONTOURVIEW;
10069
//    Dwg_Object_AECC_CORRIDOR_STYLE *AECC_CORRIDOR_STYLE;
10070
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT *AECC_DISP_REP_ALIGNMENT;
10071
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_CANT_LABEL_GROUP *AECC_DISP_REP_ALIGNMENT_CANT_LABEL_GROUP;
10072
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_CSV *AECC_DISP_REP_ALIGNMENT_CSV;
10073
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_CURVE_LABEL *AECC_DISP_REP_ALIGNMENT_CURVE_LABEL;
10074
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_DESIGNSPEED_LABEL_GROUP *AECC_DISP_REP_ALIGNMENT_DESIGNSPEED_LABEL_GROUP;
10075
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_GEOMPT_LABEL_GROUP *AECC_DISP_REP_ALIGNMENT_GEOMPT_LABEL_GROUP;
10076
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_INDEXED_PI_LABEL *AECC_DISP_REP_ALIGNMENT_INDEXED_PI_LABEL;
10077
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_MINOR_STATION_LABEL_GROUP *AECC_DISP_REP_ALIGNMENT_MINOR_STATION_LABEL_GROUP;
10078
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_PI_LABEL *AECC_DISP_REP_ALIGNMENT_PI_LABEL;
10079
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_SPIRAL_LABEL *AECC_DISP_REP_ALIGNMENT_SPIRAL_LABEL;
10080
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_STAEQU_LABEL_GROUP *AECC_DISP_REP_ALIGNMENT_STAEQU_LABEL_GROUP;
10081
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_STATION_LABEL_GROUP *AECC_DISP_REP_ALIGNMENT_STATION_LABEL_GROUP;
10082
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_STATION_OFFSET_LABEL *AECC_DISP_REP_ALIGNMENT_STATION_OFFSET_LABEL;
10083
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_SUPERELEVATION_LABEL_GROUP *AECC_DISP_REP_ALIGNMENT_SUPERELEVATION_LABEL_GROUP;
10084
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_TABLE *AECC_DISP_REP_ALIGNMENT_TABLE;
10085
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_TANGENT_LABEL *AECC_DISP_REP_ALIGNMENT_TANGENT_LABEL;
10086
//    Dwg_Object_AECC_DISP_REP_ALIGNMENT_VERTICAL_GEOMPT_LABELING *AECC_DISP_REP_ALIGNMENT_VERTICAL_GEOMPT_LABELING;
10087
//    Dwg_Object_AECC_DISP_REP_APPURTENANCE *AECC_DISP_REP_APPURTENANCE;
10088
//    Dwg_Object_AECC_DISP_REP_APPURTENANCE_CSV *AECC_DISP_REP_APPURTENANCE_CSV;
10089
//    Dwg_Object_AECC_DISP_REP_APPURTENANCE_LABELING *AECC_DISP_REP_APPURTENANCE_LABELING;
10090
//    Dwg_Object_AECC_DISP_REP_APPURTENANCE_PROFILE_LABELING *AECC_DISP_REP_APPURTENANCE_PROFILE_LABELING;
10091
//    Dwg_Object_AECC_DISP_REP_ASSEMBLY *AECC_DISP_REP_ASSEMBLY;
10092
//    Dwg_Object_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE *AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE;
10093
//    Dwg_Object_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_PROFILE *AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_PROFILE;
10094
//    Dwg_Object_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_SECTION *AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_SECTION;
10095
//    Dwg_Object_AECC_DISP_REP_AUTO_FEATURE_LINE *AECC_DISP_REP_AUTO_FEATURE_LINE;
10096
//    Dwg_Object_AECC_DISP_REP_AUTO_FEATURE_LINE_CSV *AECC_DISP_REP_AUTO_FEATURE_LINE_CSV;
10097
//    Dwg_Object_AECC_DISP_REP_AUTO_FEATURE_LINE_PROFILE *AECC_DISP_REP_AUTO_FEATURE_LINE_PROFILE;
10098
//    Dwg_Object_AECC_DISP_REP_AUTO_FEATURE_LINE_SECTION *AECC_DISP_REP_AUTO_FEATURE_LINE_SECTION;
10099
//    Dwg_Object_AECC_DISP_REP_BUILDINGSITE *AECC_DISP_REP_BUILDINGSITE;
10100
//    Dwg_Object_AECC_DISP_REP_BUILDINGUTIL_CONNECTOR *AECC_DISP_REP_BUILDINGUTIL_CONNECTOR;
10101
//    Dwg_Object_AECC_DISP_REP_CANT_DIAGRAM_VIEW *AECC_DISP_REP_CANT_DIAGRAM_VIEW;
10102
//    Dwg_Object_AECC_DISP_REP_CATCHMENT_AREA *AECC_DISP_REP_CATCHMENT_AREA;
10103
//    Dwg_Object_AECC_DISP_REP_CATCHMENT_AREA_LABEL *AECC_DISP_REP_CATCHMENT_AREA_LABEL;
10104
//    Dwg_Object_AECC_DISP_REP_CORRIDOR *AECC_DISP_REP_CORRIDOR;
10105
//    Dwg_Object_AECC_DISP_REP_CROSSING_PIPE_PROFILE_LABELING *AECC_DISP_REP_CROSSING_PIPE_PROFILE_LABELING;
10106
//    Dwg_Object_AECC_DISP_REP_CROSSING_PRESSURE_PIPE_PROFILE_LABELING *AECC_DISP_REP_CROSSING_PRESSURE_PIPE_PROFILE_LABELING;
10107
//    Dwg_Object_AECC_DISP_REP_CSVSTATIONSLIDER *AECC_DISP_REP_CSVSTATIONSLIDER;
10108
//    Dwg_Object_AECC_DISP_REP_FACE *AECC_DISP_REP_FACE;
10109
//    Dwg_Object_AECC_DISP_REP_FEATURE *AECC_DISP_REP_FEATURE;
10110
//    Dwg_Object_AECC_DISP_REP_FEATURE_LABEL *AECC_DISP_REP_FEATURE_LABEL;
10111
//    Dwg_Object_AECC_DISP_REP_FEATURE_LINE *AECC_DISP_REP_FEATURE_LINE;
10112
//    Dwg_Object_AECC_DISP_REP_FEATURE_LINE_CSV *AECC_DISP_REP_FEATURE_LINE_CSV;
10113
//    Dwg_Object_AECC_DISP_REP_FEATURE_LINE_PROFILE *AECC_DISP_REP_FEATURE_LINE_PROFILE;
10114
//    Dwg_Object_AECC_DISP_REP_FEATURE_LINE_SECTION *AECC_DISP_REP_FEATURE_LINE_SECTION;
10115
//    Dwg_Object_AECC_DISP_REP_FITTING *AECC_DISP_REP_FITTING;
10116
//    Dwg_Object_AECC_DISP_REP_FITTING_CSV *AECC_DISP_REP_FITTING_CSV;
10117
//    Dwg_Object_AECC_DISP_REP_FITTING_LABELING *AECC_DISP_REP_FITTING_LABELING;
10118
//    Dwg_Object_AECC_DISP_REP_FITTING_PROFILE_LABELING *AECC_DISP_REP_FITTING_PROFILE_LABELING;
10119
//    Dwg_Object_AECC_DISP_REP_FLOW_SEGMENT_LABEL *AECC_DISP_REP_FLOW_SEGMENT_LABEL;
10120
//    Dwg_Object_AECC_DISP_REP_GENERAL_SEGMENT_LABEL *AECC_DISP_REP_GENERAL_SEGMENT_LABEL;
10121
//    Dwg_Object_AECC_DISP_REP_GRADING *AECC_DISP_REP_GRADING;
10122
//    Dwg_Object_AECC_DISP_REP_GRAPH *AECC_DISP_REP_GRAPH;
10123
//    Dwg_Object_AECC_DISP_REP_GRAPHPROFILE_NETWORKPART *AECC_DISP_REP_GRAPHPROFILE_NETWORKPART;
10124
//    Dwg_Object_AECC_DISP_REP_GRAPHPROFILE_PRESSUREPART *AECC_DISP_REP_GRAPHPROFILE_PRESSUREPART;
10125
//    Dwg_Object_AECC_DISP_REP_GRID_SURFACE *AECC_DISP_REP_GRID_SURFACE;
10126
//    Dwg_Object_AECC_DISP_REP_GRID_SURFACE_CSV *AECC_DISP_REP_GRID_SURFACE_CSV;
10127
//    Dwg_Object_AECC_DISP_REP_HORGEOMETRY_BAND_LABEL_GROUP *AECC_DISP_REP_HORGEOMETRY_BAND_LABEL_GROUP;
10128
//    Dwg_Object_AECC_DISP_REP_HYDRO_REGION *AECC_DISP_REP_HYDRO_REGION;
10129
//    Dwg_Object_AECC_DISP_REP_INTERFERENCE_CHECK *AECC_DISP_REP_INTERFERENCE_CHECK;
10130
//    Dwg_Object_AECC_DISP_REP_INTERFERENCE_PART *AECC_DISP_REP_INTERFERENCE_PART;
10131
//    Dwg_Object_AECC_DISP_REP_INTERFERENCE_PART_SECTION *AECC_DISP_REP_INTERFERENCE_PART_SECTION;
10132
//    Dwg_Object_AECC_DISP_REP_INTERSECTION *AECC_DISP_REP_INTERSECTION;
10133
//    Dwg_Object_AECC_DISP_REP_INTERSECTION_LOCATION_LABELING *AECC_DISP_REP_INTERSECTION_LOCATION_LABELING;
10134
//    Dwg_Object_AECC_DISP_REP_LABELING *AECC_DISP_REP_LABELING;
10135
//    Dwg_Object_AECC_DISP_REP_LEGEND_TABLE *AECC_DISP_REP_LEGEND_TABLE;
10136
//    Dwg_Object_AECC_DISP_REP_LINE_BETWEEN_POINTS_LABEL *AECC_DISP_REP_LINE_BETWEEN_POINTS_LABEL;
10137
//    Dwg_Object_AECC_DISP_REP_LOTLINE_CSV *AECC_DISP_REP_LOTLINE_CSV;
10138
//    Dwg_Object_AECC_DISP_REP_MASSHAULLINE *AECC_DISP_REP_MASSHAULLINE;
10139
//    Dwg_Object_AECC_DISP_REP_MASS_HAUL_VIEW *AECC_DISP_REP_MASS_HAUL_VIEW;
10140
//    Dwg_Object_AECC_DISP_REP_MATCHLINE_LABELING *AECC_DISP_REP_MATCHLINE_LABELING;
10141
//    Dwg_Object_AECC_DISP_REP_MATCH_LINE *AECC_DISP_REP_MATCH_LINE;
10142
//    Dwg_Object_AECC_DISP_REP_MATERIAL_SECTION *AECC_DISP_REP_MATERIAL_SECTION;
10143
//    Dwg_Object_AECC_DISP_REP_NETWORK *AECC_DISP_REP_NETWORK;
10144
//    Dwg_Object_AECC_DISP_REP_NOTE_LABEL *AECC_DISP_REP_NOTE_LABEL;
10145
//    Dwg_Object_AECC_DISP_REP_OFFSET_ELEV_LABEL *AECC_DISP_REP_OFFSET_ELEV_LABEL;
10146
//    Dwg_Object_AECC_DISP_REP_PARCEL_BOUNDARY *AECC_DISP_REP_PARCEL_BOUNDARY;
10147
//    Dwg_Object_AECC_DISP_REP_PARCEL_FACE_LABEL *AECC_DISP_REP_PARCEL_FACE_LABEL;
10148
//    Dwg_Object_AECC_DISP_REP_PARCEL_SEGMENT *AECC_DISP_REP_PARCEL_SEGMENT;
10149
//    Dwg_Object_AECC_DISP_REP_PARCEL_SEGMENT_LABEL *AECC_DISP_REP_PARCEL_SEGMENT_LABEL;
10150
//    Dwg_Object_AECC_DISP_REP_PARCEL_SEGMENT_TABLE *AECC_DISP_REP_PARCEL_SEGMENT_TABLE;
10151
//    Dwg_Object_AECC_DISP_REP_PARCEL_TABLE *AECC_DISP_REP_PARCEL_TABLE;
10152
//    Dwg_Object_AECC_DISP_REP_PIPE *AECC_DISP_REP_PIPE;
10153
//    Dwg_Object_AECC_DISP_REP_PIPENETWORK_BAND_LABEL_GROUP *AECC_DISP_REP_PIPENETWORK_BAND_LABEL_GROUP;
10154
//    Dwg_Object_AECC_DISP_REP_PIPE_CSV *AECC_DISP_REP_PIPE_CSV;
10155
//    Dwg_Object_AECC_DISP_REP_PIPE_LABELING *AECC_DISP_REP_PIPE_LABELING;
10156
//    Dwg_Object_AECC_DISP_REP_PIPE_PROFILE_LABELING *AECC_DISP_REP_PIPE_PROFILE_LABELING;
10157
//    Dwg_Object_AECC_DISP_REP_PIPE_SECTION_LABELING *AECC_DISP_REP_PIPE_SECTION_LABELING;
10158
//    Dwg_Object_AECC_DISP_REP_PIPE_TABLE *AECC_DISP_REP_PIPE_TABLE;
10159
//    Dwg_Object_AECC_DISP_REP_POINT_ENT *AECC_DISP_REP_POINT_ENT;
10160
//    Dwg_Object_AECC_DISP_REP_POINT_GROUP *AECC_DISP_REP_POINT_GROUP;
10161
//    Dwg_Object_AECC_DISP_REP_POINT_TABLE *AECC_DISP_REP_POINT_TABLE;
10162
//    Dwg_Object_AECC_DISP_REP_PRESSUREPIPENETWORK *AECC_DISP_REP_PRESSUREPIPENETWORK;
10163
//    Dwg_Object_AECC_DISP_REP_PRESSURE_PART_TABLE *AECC_DISP_REP_PRESSURE_PART_TABLE;
10164
//    Dwg_Object_AECC_DISP_REP_PRESSURE_PIPE *AECC_DISP_REP_PRESSURE_PIPE;
10165
//    Dwg_Object_AECC_DISP_REP_PRESSURE_PIPE_CSV *AECC_DISP_REP_PRESSURE_PIPE_CSV;
10166
//    Dwg_Object_AECC_DISP_REP_PRESSURE_PIPE_LABELING *AECC_DISP_REP_PRESSURE_PIPE_LABELING;
10167
//    Dwg_Object_AECC_DISP_REP_PRESSURE_PIPE_PROFILE_LABELING *AECC_DISP_REP_PRESSURE_PIPE_PROFILE_LABELING;
10168
//    Dwg_Object_AECC_DISP_REP_PRESSURE_PIPE_SECTION_LABELING *AECC_DISP_REP_PRESSURE_PIPE_SECTION_LABELING;
10169
//    Dwg_Object_AECC_DISP_REP_PROFILE *AECC_DISP_REP_PROFILE;
10170
//    Dwg_Object_AECC_DISP_REP_PROFILEDATA_BAND_LABEL_GROUP *AECC_DISP_REP_PROFILEDATA_BAND_LABEL_GROUP;
10171
//    Dwg_Object_AECC_DISP_REP_PROFILE_PROJECTION *AECC_DISP_REP_PROFILE_PROJECTION;
10172
//    Dwg_Object_AECC_DISP_REP_PROFILE_PROJECTION_LABEL *AECC_DISP_REP_PROFILE_PROJECTION_LABEL;
10173
//    Dwg_Object_AECC_DISP_REP_PROFILE_VIEW *AECC_DISP_REP_PROFILE_VIEW;
10174
//    Dwg_Object_AECC_DISP_REP_PROFILE_VIEW_DEPTH_LABEL *AECC_DISP_REP_PROFILE_VIEW_DEPTH_LABEL;
10175
//    Dwg_Object_AECC_DISP_REP_QUANTITY_TAKEOFF_AGGREGATE_EARTHWORK_TABLE *AECC_DISP_REP_QUANTITY_TAKEOFF_AGGREGATE_EARTHWORK_TABLE;
10176
//    Dwg_Object_AECC_DISP_REP_RIGHT_OF_WAY *AECC_DISP_REP_RIGHT_OF_WAY;
10177
//    Dwg_Object_AECC_DISP_REP_SAMPLELINE_LABELING *AECC_DISP_REP_SAMPLELINE_LABELING;
10178
//    Dwg_Object_AECC_DISP_REP_SAMPLE_LINE *AECC_DISP_REP_SAMPLE_LINE;
10179
//    Dwg_Object_AECC_DISP_REP_SAMPLE_LINE_GROUP *AECC_DISP_REP_SAMPLE_LINE_GROUP;
10180
//    Dwg_Object_AECC_DISP_REP_SECTION *AECC_DISP_REP_SECTION;
10181
//    Dwg_Object_AECC_DISP_REP_SECTIONALDATA_BAND_LABEL_GROUP *AECC_DISP_REP_SECTIONALDATA_BAND_LABEL_GROUP;
10182
//    Dwg_Object_AECC_DISP_REP_SECTIONDATA_BAND_LABEL_GROUP *AECC_DISP_REP_SECTIONDATA_BAND_LABEL_GROUP;
10183
//    Dwg_Object_AECC_DISP_REP_SECTIONSEGMENT_BAND_LABEL_GROUP *AECC_DISP_REP_SECTIONSEGMENT_BAND_LABEL_GROUP;
10184
//    Dwg_Object_AECC_DISP_REP_SECTION_CORRIDOR *AECC_DISP_REP_SECTION_CORRIDOR;
10185
//    Dwg_Object_AECC_DISP_REP_SECTION_CORRIDOR_POINT_LABEL_GROUP *AECC_DISP_REP_SECTION_CORRIDOR_POINT_LABEL_GROUP;
10186
//    Dwg_Object_AECC_DISP_REP_SECTION_GRADEBREAK_LABEL_GROUP *AECC_DISP_REP_SECTION_GRADEBREAK_LABEL_GROUP;
10187
//    Dwg_Object_AECC_DISP_REP_SECTION_MINOR_OFFSET_LABEL_GROUP *AECC_DISP_REP_SECTION_MINOR_OFFSET_LABEL_GROUP;
10188
//    Dwg_Object_AECC_DISP_REP_SECTION_OFFSET_LABEL_GROUP *AECC_DISP_REP_SECTION_OFFSET_LABEL_GROUP;
10189
//    Dwg_Object_AECC_DISP_REP_SECTION_PIPENETWORK *AECC_DISP_REP_SECTION_PIPENETWORK;
10190
//    Dwg_Object_AECC_DISP_REP_SECTION_PRESSUREPIPENETWORK *AECC_DISP_REP_SECTION_PRESSUREPIPENETWORK;
10191
//    Dwg_Object_AECC_DISP_REP_SECTION_PROJECTION *AECC_DISP_REP_SECTION_PROJECTION;
10192
//    Dwg_Object_AECC_DISP_REP_SECTION_PROJECTION_LABEL *AECC_DISP_REP_SECTION_PROJECTION_LABEL;
10193
//    Dwg_Object_AECC_DISP_REP_SECTION_SEGMENT_LABEL_GROUP *AECC_DISP_REP_SECTION_SEGMENT_LABEL_GROUP;
10194
//    Dwg_Object_AECC_DISP_REP_SECTION_VIEW *AECC_DISP_REP_SECTION_VIEW;
10195
//    Dwg_Object_AECC_DISP_REP_SECTION_VIEW_DEPTH_LABEL *AECC_DISP_REP_SECTION_VIEW_DEPTH_LABEL;
10196
//    Dwg_Object_AECC_DISP_REP_SECTION_VIEW_QUANTITY_TAKEOFF_TABLE *AECC_DISP_REP_SECTION_VIEW_QUANTITY_TAKEOFF_TABLE;
10197
//    Dwg_Object_AECC_DISP_REP_SHEET *AECC_DISP_REP_SHEET;
10198
//    Dwg_Object_AECC_DISP_REP_SPANNING_PIPE_LABELING *AECC_DISP_REP_SPANNING_PIPE_LABELING;
10199
//    Dwg_Object_AECC_DISP_REP_SPANNING_PIPE_PROFILE_LABELING *AECC_DISP_REP_SPANNING_PIPE_PROFILE_LABELING;
10200
//    Dwg_Object_AECC_DISP_REP_STATION_ELEV_LABEL *AECC_DISP_REP_STATION_ELEV_LABEL;
10201
//    Dwg_Object_AECC_DISP_REP_STRUCTURE *AECC_DISP_REP_STRUCTURE;
10202
//    Dwg_Object_AECC_DISP_REP_STRUCTURE_CSV *AECC_DISP_REP_STRUCTURE_CSV;
10203
//    Dwg_Object_AECC_DISP_REP_STRUCTURE_LABELING *AECC_DISP_REP_STRUCTURE_LABELING;
10204
//    Dwg_Object_AECC_DISP_REP_STRUCTURE_PROFILE_LABELING *AECC_DISP_REP_STRUCTURE_PROFILE_LABELING;
10205
//    Dwg_Object_AECC_DISP_REP_STRUCTURE_SECTION_LABELING *AECC_DISP_REP_STRUCTURE_SECTION_LABELING;
10206
//    Dwg_Object_AECC_DISP_REP_SUBASSEMBLY *AECC_DISP_REP_SUBASSEMBLY;
10207
//    Dwg_Object_AECC_DISP_REP_SUPERELEVATION_BAND_LABEL_GROUP *AECC_DISP_REP_SUPERELEVATION_BAND_LABEL_GROUP;
10208
//    Dwg_Object_AECC_DISP_REP_SUPERELEVATION_DIAGRAM_VIEW *AECC_DISP_REP_SUPERELEVATION_DIAGRAM_VIEW;
10209
//    Dwg_Object_AECC_DISP_REP_SURFACE_CONTOUR_LABEL_GROUP *AECC_DISP_REP_SURFACE_CONTOUR_LABEL_GROUP;
10210
//    Dwg_Object_AECC_DISP_REP_SURFACE_ELEVATION_LABEL *AECC_DISP_REP_SURFACE_ELEVATION_LABEL;
10211
//    Dwg_Object_AECC_DISP_REP_SURFACE_SLOPE_LABEL *AECC_DISP_REP_SURFACE_SLOPE_LABEL;
10212
//    Dwg_Object_AECC_DISP_REP_SURVEY_FIGURE_LABEL_GROUP *AECC_DISP_REP_SURVEY_FIGURE_LABEL_GROUP;
10213
//    Dwg_Object_AECC_DISP_REP_SVFIGURE *AECC_DISP_REP_SVFIGURE;
10214
//    Dwg_Object_AECC_DISP_REP_SVFIGURE_CSV *AECC_DISP_REP_SVFIGURE_CSV;
10215
//    Dwg_Object_AECC_DISP_REP_SVFIGURE_PROFILE *AECC_DISP_REP_SVFIGURE_PROFILE;
10216
//    Dwg_Object_AECC_DISP_REP_SVFIGURE_SECTION *AECC_DISP_REP_SVFIGURE_SECTION;
10217
//    Dwg_Object_AECC_DISP_REP_SVFIGURE_SEGMENT_LABEL *AECC_DISP_REP_SVFIGURE_SEGMENT_LABEL;
10218
//    Dwg_Object_AECC_DISP_REP_SVNETWORK *AECC_DISP_REP_SVNETWORK;
10219
//    Dwg_Object_AECC_DISP_REP_TANGENT_INTERSECTION_TABLE *AECC_DISP_REP_TANGENT_INTERSECTION_TABLE;
10220
//    Dwg_Object_AECC_DISP_REP_TIN_SURFACE *AECC_DISP_REP_TIN_SURFACE;
10221
//    Dwg_Object_AECC_DISP_REP_TIN_SURFACE_CSV *AECC_DISP_REP_TIN_SURFACE_CSV;
10222
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_CRESTCURVE_LABEL_GROUP *AECC_DISP_REP_VALIGNMENT_CRESTCURVE_LABEL_GROUP;
10223
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_CSV *AECC_DISP_REP_VALIGNMENT_CSV;
10224
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_HAGEOMPT_LABEL_GROUP *AECC_DISP_REP_VALIGNMENT_HAGEOMPT_LABEL_GROUP;
10225
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_LINE_LABEL_GROUP *AECC_DISP_REP_VALIGNMENT_LINE_LABEL_GROUP;
10226
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_MINOR_STATION_LABEL_GROUP *AECC_DISP_REP_VALIGNMENT_MINOR_STATION_LABEL_GROUP;
10227
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_PVI_LABEL_GROUP *AECC_DISP_REP_VALIGNMENT_PVI_LABEL_GROUP;
10228
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_SAGCURVE_LABEL_GROUP *AECC_DISP_REP_VALIGNMENT_SAGCURVE_LABEL_GROUP;
10229
//    Dwg_Object_AECC_DISP_REP_VALIGNMENT_STATION_LABEL_GROUP *AECC_DISP_REP_VALIGNMENT_STATION_LABEL_GROUP;
10230
//    Dwg_Object_AECC_DISP_REP_VERTICALGEOMETRY_BAND_LABEL_GROUP *AECC_DISP_REP_VERTICALGEOMETRY_BAND_LABEL_GROUP;
10231
//    Dwg_Object_AECC_DISP_REP_VIEWFRAME_LABELING *AECC_DISP_REP_VIEWFRAME_LABELING;
10232
//    Dwg_Object_AECC_DISP_REP_VIEW_FRAME *AECC_DISP_REP_VIEW_FRAME;
10233
//    Dwg_Object_AECC_FEATURELINE_STYLE *AECC_FEATURELINE_STYLE;
10234
//    Dwg_Object_AECC_FEATURE_STYLE *AECC_FEATURE_STYLE;
10235
//    Dwg_Object_AECC_FITTING_STYLE *AECC_FITTING_STYLE;
10236
//    Dwg_Object_AECC_FORMAT_MANAGER_OBJECT *AECC_FORMAT_MANAGER_OBJECT;
10237
//    Dwg_Object_AECC_GRADEVIEW *AECC_GRADEVIEW;
10238
//    Dwg_Object_AECC_GRADING_CRITERIA *AECC_GRADING_CRITERIA;
10239
//    Dwg_Object_AECC_GRADING_CRITERIA_SET *AECC_GRADING_CRITERIA_SET;
10240
//    Dwg_Object_AECC_GRADING_GROUP *AECC_GRADING_GROUP;
10241
//    Dwg_Object_AECC_GRADING_STYLE *AECC_GRADING_STYLE;
10242
//    Dwg_Object_AECC_IMPORT_STORM_SEWER_DEFAULTS *AECC_IMPORT_STORM_SEWER_DEFAULTS;
10243
//    Dwg_Object_AECC_INTERFERENCE_STYLE *AECC_INTERFERENCE_STYLE;
10244
//    Dwg_Object_AECC_INTERSECTION_STYLE *AECC_INTERSECTION_STYLE;
10245
//    Dwg_Object_AECC_LABEL_COLLECTOR_STYLE *AECC_LABEL_COLLECTOR_STYLE;
10246
//    Dwg_Object_AECC_LABEL_NODE *AECC_LABEL_NODE;
10247
//    Dwg_Object_AECC_LABEL_RADIAL_LINE_STYLE *AECC_LABEL_RADIAL_LINE_STYLE;
10248
//    Dwg_Object_AECC_LABEL_TEXT_ITERATOR_CURVE_OR_SPIRAL_STYLE *AECC_LABEL_TEXT_ITERATOR_CURVE_OR_SPIRAL_STYLE;
10249
//    Dwg_Object_AECC_LABEL_TEXT_ITERATOR_STYLE *AECC_LABEL_TEXT_ITERATOR_STYLE;
10250
//    Dwg_Object_AECC_LABEL_TEXT_STYLE *AECC_LABEL_TEXT_STYLE;
10251
//    Dwg_Object_AECC_LABEL_VECTOR_ARROW_STYLE *AECC_LABEL_VECTOR_ARROW_STYLE;
10252
//    Dwg_Object_AECC_LEGEND_TABLE_STYLE *AECC_LEGEND_TABLE_STYLE;
10253
//    Dwg_Object_AECC_MASS_HAUL_LINE_STYLE *AECC_MASS_HAUL_LINE_STYLE;
10254
//    Dwg_Object_AECC_MASS_HAUL_VIEW_STYLE *AECC_MASS_HAUL_VIEW_STYLE;
10255
//    Dwg_Object_AECC_MATCHLINE_STYLE *AECC_MATCHLINE_STYLE;
10256
//    Dwg_Object_AECC_MATERIAL_STYLE *AECC_MATERIAL_STYLE;
10257
//    Dwg_Object_AECC_NETWORK_PART_CATALOG_DEF_NODE *AECC_NETWORK_PART_CATALOG_DEF_NODE;
10258
//    Dwg_Object_AECC_NETWORK_PART_FAMILY_ITEM *AECC_NETWORK_PART_FAMILY_ITEM;
10259
//    Dwg_Object_AECC_NETWORK_PART_LIST *AECC_NETWORK_PART_LIST;
10260
//    Dwg_Object_AECC_NETWORK_RULE *AECC_NETWORK_RULE;
10261
//    Dwg_Object_AECC_PARCEL_NODE *AECC_PARCEL_NODE;
10262
//    Dwg_Object_AECC_PARCEL_STYLE *AECC_PARCEL_STYLE;
10263
//    Dwg_Object_AECC_PART_SIZE_FILTER *AECC_PART_SIZE_FILTER;
10264
//    Dwg_Object_AECC_PIPE_RULES *AECC_PIPE_RULES;
10265
//    Dwg_Object_AECC_PIPE_STYLE *AECC_PIPE_STYLE;
10266
//    Dwg_Object_AECC_PIPE_STYLE_EXTENSION *AECC_PIPE_STYLE_EXTENSION;
10267
//    Dwg_Object_AECC_POINTCLOUD_STYLE *AECC_POINTCLOUD_STYLE;
10268
//    Dwg_Object_AECC_POINTVIEW *AECC_POINTVIEW;
10269
//    Dwg_Object_AECC_POINT_STYLE *AECC_POINT_STYLE;
10270
//    Dwg_Object_AECC_PRESSURE_PART_LIST *AECC_PRESSURE_PART_LIST;
10271
//    Dwg_Object_AECC_PRESSURE_PIPE_STYLE *AECC_PRESSURE_PIPE_STYLE;
10272
//    Dwg_Object_AECC_PROFILESECTIONENTITY_STYLE *AECC_PROFILESECTIONENTITY_STYLE;
10273
//    Dwg_Object_AECC_PROFILE_DESIGN_CHECK_SET *AECC_PROFILE_DESIGN_CHECK_SET;
10274
//    Dwg_Object_AECC_PROFILE_LABEL_SET *AECC_PROFILE_LABEL_SET;
10275
//    Dwg_Object_AECC_PROFILE_STYLE *AECC_PROFILE_STYLE;
10276
//    Dwg_Object_AECC_PROFILE_VIEW_BAND_STYLE_SET *AECC_PROFILE_VIEW_BAND_STYLE_SET;
10277
//    Dwg_Object_AECC_PROFILE_VIEW_DATA_BAND_STYLE *AECC_PROFILE_VIEW_DATA_BAND_STYLE;
10278
//    Dwg_Object_AECC_PROFILE_VIEW_HORIZONTAL_GEOMETRY_BAND_STYLE *AECC_PROFILE_VIEW_HORIZONTAL_GEOMETRY_BAND_STYLE;
10279
//    Dwg_Object_AECC_PROFILE_VIEW_PIPE_NETWORK_BAND_STYLE *AECC_PROFILE_VIEW_PIPE_NETWORK_BAND_STYLE;
10280
//    Dwg_Object_AECC_PROFILE_VIEW_SECTIONAL_DATA_BAND_STYLE *AECC_PROFILE_VIEW_SECTIONAL_DATA_BAND_STYLE;
10281
//    Dwg_Object_AECC_PROFILE_VIEW_STYLE *AECC_PROFILE_VIEW_STYLE;
10282
//    Dwg_Object_AECC_PROFILE_VIEW_SUPERELEVATION_DIAGRAM_BAND_STYLE *AECC_PROFILE_VIEW_SUPERELEVATION_DIAGRAM_BAND_STYLE;
10283
//    Dwg_Object_AECC_PROFILE_VIEW_VERTICAL_GEOMETRY_BAND_STYLE *AECC_PROFILE_VIEW_VERTICAL_GEOMETRY_BAND_STYLE;
10284
//    Dwg_Object_AECC_QUANTITY_TAKEOFF_CRITERIA *AECC_QUANTITY_TAKEOFF_CRITERIA;
10285
//    Dwg_Object_AECC_ROADWAYLINK_STYLE *AECC_ROADWAYLINK_STYLE;
10286
//    Dwg_Object_AECC_ROADWAYMARKER_STYLE *AECC_ROADWAYMARKER_STYLE;
10287
//    Dwg_Object_AECC_ROADWAYSHAPE_STYLE *AECC_ROADWAYSHAPE_STYLE;
10288
//    Dwg_Object_AECC_ROADWAY_STYLE_SET *AECC_ROADWAY_STYLE_SET;
10289
//    Dwg_Object_AECC_ROOT_SETTINGS_NODE *AECC_ROOT_SETTINGS_NODE;
10290
//    Dwg_Object_AECC_SAMPLE_LINE_GROUP_STYLE *AECC_SAMPLE_LINE_GROUP_STYLE;
10291
//    Dwg_Object_AECC_SAMPLE_LINE_STYLE *AECC_SAMPLE_LINE_STYLE;
10292
//    Dwg_Object_AECC_SECTION_LABEL_SET *AECC_SECTION_LABEL_SET;
10293
//    Dwg_Object_AECC_SECTION_STYLE *AECC_SECTION_STYLE;
10294
//    Dwg_Object_AECC_SECTION_VIEW_BAND_STYLE_SET *AECC_SECTION_VIEW_BAND_STYLE_SET;
10295
//    Dwg_Object_AECC_SECTION_VIEW_DATA_BAND_STYLE *AECC_SECTION_VIEW_DATA_BAND_STYLE;
10296
//    Dwg_Object_AECC_SECTION_VIEW_ROAD_SURFACE_BAND_STYLE *AECC_SECTION_VIEW_ROAD_SURFACE_BAND_STYLE;
10297
//    Dwg_Object_AECC_SECTION_VIEW_STYLE *AECC_SECTION_VIEW_STYLE;
10298
//    Dwg_Object_AECC_SETTINGS_NODE *AECC_SETTINGS_NODE;
10299
//    Dwg_Object_AECC_SHEET_STYLE *AECC_SHEET_STYLE;
10300
//    Dwg_Object_AECC_SLOPE_PATTERN_STYLE *AECC_SLOPE_PATTERN_STYLE;
10301
//    Dwg_Object_AECC_STATION_FORMAT_STYLE *AECC_STATION_FORMAT_STYLE;
10302
//    Dwg_Object_AECC_STRUCTURE_RULES *AECC_STRUCTURE_RULES;
10303
//    Dwg_Object_AECC_STUCTURE_STYLE *AECC_STUCTURE_STYLE;
10304
//    Dwg_Object_AECC_SUPERELEVATION_DIAGRAM_VIEW_STYLE *AECC_SUPERELEVATION_DIAGRAM_VIEW_STYLE;
10305
//    Dwg_Object_AECC_SURFACE_STYLE *AECC_SURFACE_STYLE;
10306
//    Dwg_Object_AECC_SVFIGURE_STYLE *AECC_SVFIGURE_STYLE;
10307
//    Dwg_Object_AECC_SVNETWORK_STYLE *AECC_SVNETWORK_STYLE;
10308
//    Dwg_Object_AECC_TABLE_STYLE *AECC_TABLE_STYLE;
10309
//    Dwg_Object_AECC_TAG_MANAGER *AECC_TAG_MANAGER;
10310
//    Dwg_Object_AECC_TREE_NODE *AECC_TREE_NODE;
10311
//    Dwg_Object_AECC_USER_DEFINED_ATTRIBUTE_CLASSIFICATION *AECC_USER_DEFINED_ATTRIBUTE_CLASSIFICATION;
10312
//    Dwg_Object_AECC_VALIGNMENT_STYLE_EXTENSION *AECC_VALIGNMENT_STYLE_EXTENSION;
10313
//    Dwg_Object_AECC_VIEW_FRAME_STYLE *AECC_VIEW_FRAME_STYLE;
10314
//    Dwg_Object_AECS_DISP_PROPS_MEMBER *AECS_DISP_PROPS_MEMBER;
10315
//    Dwg_Object_AECS_DISP_PROPS_MEMBER_LOGICAL *AECS_DISP_PROPS_MEMBER_LOGICAL;
10316
//    Dwg_Object_AECS_DISP_PROPS_MEMBER_PLAN *AECS_DISP_PROPS_MEMBER_PLAN;
10317
//    Dwg_Object_AECS_DISP_PROPS_MEMBER_PLAN_SKETCH *AECS_DISP_PROPS_MEMBER_PLAN_SKETCH;
10318
//    Dwg_Object_AECS_DISP_PROPS_MEMBER_PROJECTED *AECS_DISP_PROPS_MEMBER_PROJECTED;
10319
//    Dwg_Object_AECS_DISP_REP_MEMBER_ELEVATION_DESIGN *AECS_DISP_REP_MEMBER_ELEVATION_DESIGN;
10320
//    Dwg_Object_AECS_DISP_REP_MEMBER_ELEVATION_DETAIL *AECS_DISP_REP_MEMBER_ELEVATION_DETAIL;
10321
//    Dwg_Object_AECS_DISP_REP_MEMBER_LOGICAL *AECS_DISP_REP_MEMBER_LOGICAL;
10322
//    Dwg_Object_AECS_DISP_REP_MEMBER_MODEL_DESIGN *AECS_DISP_REP_MEMBER_MODEL_DESIGN;
10323
//    Dwg_Object_AECS_DISP_REP_MEMBER_MODEL_DETAIL *AECS_DISP_REP_MEMBER_MODEL_DETAIL;
10324
//    Dwg_Object_AECS_DISP_REP_MEMBER_PLAN_DESIGN *AECS_DISP_REP_MEMBER_PLAN_DESIGN;
10325
//    Dwg_Object_AECS_DISP_REP_MEMBER_PLAN_DETAIL *AECS_DISP_REP_MEMBER_PLAN_DETAIL;
10326
//    Dwg_Object_AECS_DISP_REP_MEMBER_PLAN_SKETCH *AECS_DISP_REP_MEMBER_PLAN_SKETCH;
10327
//    Dwg_Object_AECS_MEMBER_NODE_SHAPE *AECS_MEMBER_NODE_SHAPE;
10328
//    Dwg_Object_AECS_MEMBER_STYLE *AECS_MEMBER_STYLE;
10329
//    Dwg_Object_AEC_2DSECTION_STYLE *AEC_2DSECTION_STYLE;
10330
//    Dwg_Object_AEC_AECDBDISPREPBDGELEVLINEPLAN100 *AEC_AECDBDISPREPBDGELEVLINEPLAN100;
10331
//    Dwg_Object_AEC_AECDBDISPREPBDGELEVLINEPLAN50 *AEC_AECDBDISPREPBDGELEVLINEPLAN50;
10332
//    Dwg_Object_AEC_AECDBDISPREPBDGSECTIONLINEPLAN100 *AEC_AECDBDISPREPBDGSECTIONLINEPLAN100;
10333
//    Dwg_Object_AEC_AECDBDISPREPBDGSECTIONLINEPLAN50 *AEC_AECDBDISPREPBDGSECTIONLINEPLAN50;
10334
//    Dwg_Object_AEC_AECDBDISPREPCEILINGGRIDPLAN100 *AEC_AECDBDISPREPCEILINGGRIDPLAN100;
10335
//    Dwg_Object_AEC_AECDBDISPREPCEILINGGRIDPLAN50 *AEC_AECDBDISPREPCEILINGGRIDPLAN50;
10336
//    Dwg_Object_AEC_AECDBDISPREPCOLUMNGRIDPLAN100 *AEC_AECDBDISPREPCOLUMNGRIDPLAN100;
10337
//    Dwg_Object_AEC_AECDBDISPREPCOLUMNGRIDPLAN50 *AEC_AECDBDISPREPCOLUMNGRIDPLAN50;
10338
//    Dwg_Object_AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN100 *AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN100;
10339
//    Dwg_Object_AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN50 *AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN50;
10340
//    Dwg_Object_AEC_AECDBDISPREPCURTAINWALLUNITPLAN100 *AEC_AECDBDISPREPCURTAINWALLUNITPLAN100;
10341
//    Dwg_Object_AEC_AECDBDISPREPCURTAINWALLUNITPLAN50 *AEC_AECDBDISPREPCURTAINWALLUNITPLAN50;
10342
//    Dwg_Object_AEC_AECDBDISPREPMVBLOCKREFPLAN100 *AEC_AECDBDISPREPMVBLOCKREFPLAN100;
10343
//    Dwg_Object_AEC_AECDBDISPREPMVBLOCKREFPLAN50 *AEC_AECDBDISPREPMVBLOCKREFPLAN50;
10344
//    Dwg_Object_AEC_AECDBDISPREPROOFPLAN100 *AEC_AECDBDISPREPROOFPLAN100;
10345
//    Dwg_Object_AEC_AECDBDISPREPROOFPLAN50 *AEC_AECDBDISPREPROOFPLAN50;
10346
//    Dwg_Object_AEC_AECDBDISPREPROOFSLABPLAN100 *AEC_AECDBDISPREPROOFSLABPLAN100;
10347
//    Dwg_Object_AEC_AECDBDISPREPROOFSLABPLAN50 *AEC_AECDBDISPREPROOFSLABPLAN50;
10348
//    Dwg_Object_AEC_AECDBDISPREPSLABPLAN100 *AEC_AECDBDISPREPSLABPLAN100;
10349
//    Dwg_Object_AEC_AECDBDISPREPSLABPLAN50 *AEC_AECDBDISPREPSLABPLAN50;
10350
//    Dwg_Object_AEC_AECDBDISPREPSPACEPLAN100 *AEC_AECDBDISPREPSPACEPLAN100;
10351
//    Dwg_Object_AEC_AECDBDISPREPSPACEPLAN50 *AEC_AECDBDISPREPSPACEPLAN50;
10352
//    Dwg_Object_AEC_AECDBDISPREPWALLPLAN100 *AEC_AECDBDISPREPWALLPLAN100;
10353
//    Dwg_Object_AEC_AECDBDISPREPWALLPLAN50 *AEC_AECDBDISPREPWALLPLAN50;
10354
//    Dwg_Object_AEC_AECDBDISPREPWINDOWASSEMBLYPLAN100 *AEC_AECDBDISPREPWINDOWASSEMBLYPLAN100;
10355
//    Dwg_Object_AEC_AECDBDISPREPWINDOWASSEMBLYPLAN50 *AEC_AECDBDISPREPWINDOWASSEMBLYPLAN50;
10356
//    Dwg_Object_AEC_AECDBDISPREPZONE100 *AEC_AECDBDISPREPZONE100;
10357
//    Dwg_Object_AEC_AECDBDISPREPZONE50 *AEC_AECDBDISPREPZONE50;
10358
//    Dwg_Object_AEC_AECDBZONEDEF *AEC_AECDBZONEDEF;
10359
//    Dwg_Object_AEC_AECDBZONESTYLE *AEC_AECDBZONESTYLE;
10360
//    Dwg_Object_AEC_ANCHOR_OPENINGBASE_TO_WALL *AEC_ANCHOR_OPENINGBASE_TO_WALL;
10361
//    Dwg_Object_AEC_CLASSIFICATION_DEF *AEC_CLASSIFICATION_DEF;
10362
//    Dwg_Object_AEC_CLASSIFICATION_SYSTEM_DEF *AEC_CLASSIFICATION_SYSTEM_DEF;
10363
//    Dwg_Object_AEC_CLEANUP_GROUP_DEF *AEC_CLEANUP_GROUP_DEF;
10364
//    Dwg_Object_AEC_CURTAIN_WALL_LAYOUT_STYLE *AEC_CURTAIN_WALL_LAYOUT_STYLE;
10365
//    Dwg_Object_AEC_CURTAIN_WALL_UNIT_STYLE *AEC_CURTAIN_WALL_UNIT_STYLE;
10366
//    Dwg_Object_AEC_CVSECTIONVIEW *AEC_CVSECTIONVIEW;
10367
//    Dwg_Object_AEC_DB_DISP_REP_DIM_GROUP_PLAN *AEC_DB_DISP_REP_DIM_GROUP_PLAN;
10368
//    Dwg_Object_AEC_DB_DISP_REP_DIM_GROUP_PLAN100 *AEC_DB_DISP_REP_DIM_GROUP_PLAN100;
10369
//    Dwg_Object_AEC_DB_DISP_REP_DIM_GROUP_PLAN50 *AEC_DB_DISP_REP_DIM_GROUP_PLAN50;
10370
//    Dwg_Object_AEC_DIM_STYLE *AEC_DIM_STYLE;
10371
//    Dwg_Object_AEC_DISPLAYTHEME_STYLE *AEC_DISPLAYTHEME_STYLE;
10372
//    Dwg_Object_AEC_DISPREPAECDBDISPREPMASSELEMPLAN100 *AEC_DISPREPAECDBDISPREPMASSELEMPLAN100;
10373
//    Dwg_Object_AEC_DISPREPAECDBDISPREPMASSELEMPLAN50 *AEC_DISPREPAECDBDISPREPMASSELEMPLAN50;
10374
//    Dwg_Object_AEC_DISPREPAECDBDISPREPMASSGROUPPLAN100 *AEC_DISPREPAECDBDISPREPMASSGROUPPLAN100;
10375
//    Dwg_Object_AEC_DISPREPAECDBDISPREPMASSGROUPPLAN50 *AEC_DISPREPAECDBDISPREPMASSGROUPPLAN50;
10376
//    Dwg_Object_AEC_DISPREPAECDBDISPREPOPENINGPLAN100 *AEC_DISPREPAECDBDISPREPOPENINGPLAN100;
10377
//    Dwg_Object_AEC_DISPREPAECDBDISPREPOPENINGPLAN50 *AEC_DISPREPAECDBDISPREPOPENINGPLAN50;
10378
//    Dwg_Object_AEC_DISPREPAECDBDISPREPOPENINGPLANREFLECTED *AEC_DISPREPAECDBDISPREPOPENINGPLANREFLECTED;
10379
//    Dwg_Object_AEC_DISPREPAECDBDISPREPOPENINGSILLPLAN *AEC_DISPREPAECDBDISPREPOPENINGSILLPLAN;
10380
//    Dwg_Object_AEC_DISPROPSMASSELEMPLANCOMMON *AEC_DISPROPSMASSELEMPLANCOMMON;
10381
//    Dwg_Object_AEC_DISPROPSMASSGROUPPLANCOMMON *AEC_DISPROPSMASSGROUPPLANCOMMON;
10382
//    Dwg_Object_AEC_DISPROPSOPENINGPLANCOMMON *AEC_DISPROPSOPENINGPLANCOMMON;
10383
//    Dwg_Object_AEC_DISPROPSOPENINGPLANCOMMONHATCHED *AEC_DISPROPSOPENINGPLANCOMMONHATCHED;
10384
//    Dwg_Object_AEC_DISPROPSOPENINGSILLPLAN *AEC_DISPROPSOPENINGSILLPLAN;
10385
//    Dwg_Object_AEC_DISP_PROPS_2D_SECTION *AEC_DISP_PROPS_2D_SECTION;
10386
//    Dwg_Object_AEC_DISP_PROPS_CLIP_VOLUME *AEC_DISP_PROPS_CLIP_VOLUME;
10387
//    Dwg_Object_AEC_DISP_PROPS_CLIP_VOLUME_RESULT *AEC_DISP_PROPS_CLIP_VOLUME_RESULT;
10388
//    Dwg_Object_AEC_DISP_PROPS_DIM *AEC_DISP_PROPS_DIM;
10389
//    Dwg_Object_AEC_DISP_PROPS_DISPLAYTHEME *AEC_DISP_PROPS_DISPLAYTHEME;
10390
//    Dwg_Object_AEC_DISP_PROPS_DOOR *AEC_DISP_PROPS_DOOR;
10391
//    Dwg_Object_AEC_DISP_PROPS_DOOR_NOMINAL *AEC_DISP_PROPS_DOOR_NOMINAL;
10392
//    Dwg_Object_AEC_DISP_PROPS_DOOR_PLAN_100 *AEC_DISP_PROPS_DOOR_PLAN_100;
10393
//    Dwg_Object_AEC_DISP_PROPS_DOOR_PLAN_50 *AEC_DISP_PROPS_DOOR_PLAN_50;
10394
//    Dwg_Object_AEC_DISP_PROPS_DOOR_THRESHOLD_PLAN *AEC_DISP_PROPS_DOOR_THRESHOLD_PLAN;
10395
//    Dwg_Object_AEC_DISP_PROPS_DOOR_THRESHOLD_SYMBOL_PLAN *AEC_DISP_PROPS_DOOR_THRESHOLD_SYMBOL_PLAN;
10396
//    Dwg_Object_AEC_DISP_PROPS_EDITINPLACEPROFILE_MODEL *AEC_DISP_PROPS_EDITINPLACEPROFILE_MODEL;
10397
//    Dwg_Object_AEC_DISP_PROPS_ENT *AEC_DISP_PROPS_ENT;
10398
//    Dwg_Object_AEC_DISP_PROPS_ENT_REF *AEC_DISP_PROPS_ENT_REF;
10399
//    Dwg_Object_AEC_DISP_PROPS_GRID_ASSEMBLY_MODEL *AEC_DISP_PROPS_GRID_ASSEMBLY_MODEL;
10400
//    Dwg_Object_AEC_DISP_PROPS_GRID_ASSEMBLY_PLAN *AEC_DISP_PROPS_GRID_ASSEMBLY_PLAN;
10401
//    Dwg_Object_AEC_DISP_PROPS_LAYOUT_CURVE *AEC_DISP_PROPS_LAYOUT_CURVE;
10402
//    Dwg_Object_AEC_DISP_PROPS_LAYOUT_GRID2D *AEC_DISP_PROPS_LAYOUT_GRID2D;
10403
//    Dwg_Object_AEC_DISP_PROPS_LAYOUT_GRID3D *AEC_DISP_PROPS_LAYOUT_GRID3D;
10404
//    Dwg_Object_AEC_DISP_PROPS_MASKBLOCK *AEC_DISP_PROPS_MASKBLOCK;
10405
//    Dwg_Object_AEC_DISP_PROPS_MASS_ELEM_MODEL *AEC_DISP_PROPS_MASS_ELEM_MODEL;
10406
//    Dwg_Object_AEC_DISP_PROPS_MASS_GROUP *AEC_DISP_PROPS_MASS_GROUP;
10407
//    Dwg_Object_AEC_DISP_PROPS_MATERIAL *AEC_DISP_PROPS_MATERIAL;
10408
//    Dwg_Object_AEC_DISP_PROPS_OPENING *AEC_DISP_PROPS_OPENING;
10409
//    Dwg_Object_AEC_DISP_PROPS_POLYGON_MODEL *AEC_DISP_PROPS_POLYGON_MODEL;
10410
//    Dwg_Object_AEC_DISP_PROPS_POLYGON_TRUECOLOUR *AEC_DISP_PROPS_POLYGON_TRUECOLOUR;
10411
//    Dwg_Object_AEC_DISP_PROPS_RAILING_MODEL *AEC_DISP_PROPS_RAILING_MODEL;
10412
//    Dwg_Object_AEC_DISP_PROPS_RAILING_PLAN *AEC_DISP_PROPS_RAILING_PLAN;
10413
//    Dwg_Object_AEC_DISP_PROPS_ROOF *AEC_DISP_PROPS_ROOF;
10414
//    Dwg_Object_AEC_DISP_PROPS_ROOFSLAB *AEC_DISP_PROPS_ROOFSLAB;
10415
//    Dwg_Object_AEC_DISP_PROPS_ROOFSLAB_PLAN *AEC_DISP_PROPS_ROOFSLAB_PLAN;
10416
//    Dwg_Object_AEC_DISP_PROPS_SCHEDULE_TABLE *AEC_DISP_PROPS_SCHEDULE_TABLE;
10417
//    Dwg_Object_AEC_DISP_PROPS_SLAB *AEC_DISP_PROPS_SLAB;
10418
//    Dwg_Object_AEC_DISP_PROPS_SLAB_PLAN *AEC_DISP_PROPS_SLAB_PLAN;
10419
//    Dwg_Object_AEC_DISP_PROPS_SLICE *AEC_DISP_PROPS_SLICE;
10420
//    Dwg_Object_AEC_DISP_PROPS_SPACE_DECOMPOSED *AEC_DISP_PROPS_SPACE_DECOMPOSED;
10421
//    Dwg_Object_AEC_DISP_PROPS_SPACE_MODEL *AEC_DISP_PROPS_SPACE_MODEL;
10422
//    Dwg_Object_AEC_DISP_PROPS_SPACE_PLAN *AEC_DISP_PROPS_SPACE_PLAN;
10423
//    Dwg_Object_AEC_DISP_PROPS_STAIR_MODEL *AEC_DISP_PROPS_STAIR_MODEL;
10424
//    Dwg_Object_AEC_DISP_PROPS_STAIR_PLAN *AEC_DISP_PROPS_STAIR_PLAN;
10425
//    Dwg_Object_AEC_DISP_PROPS_STAIR_PLAN_OVERLAPPING *AEC_DISP_PROPS_STAIR_PLAN_OVERLAPPING;
10426
//    Dwg_Object_AEC_DISP_PROPS_WALL_GRAPH *AEC_DISP_PROPS_WALL_GRAPH;
10427
//    Dwg_Object_AEC_DISP_PROPS_WALL_MODEL *AEC_DISP_PROPS_WALL_MODEL;
10428
//    Dwg_Object_AEC_DISP_PROPS_WALL_PLAN *AEC_DISP_PROPS_WALL_PLAN;
10429
//    Dwg_Object_AEC_DISP_PROPS_WALL_SCHEM *AEC_DISP_PROPS_WALL_SCHEM;
10430
//    Dwg_Object_AEC_DISP_PROPS_WINDOW *AEC_DISP_PROPS_WINDOW;
10431
//    Dwg_Object_AEC_DISP_PROPS_WINDOW_ASSEMBLY_SILL_PLAN *AEC_DISP_PROPS_WINDOW_ASSEMBLY_SILL_PLAN;
10432
//    Dwg_Object_AEC_DISP_PROPS_WINDOW_NOMINAL *AEC_DISP_PROPS_WINDOW_NOMINAL;
10433
//    Dwg_Object_AEC_DISP_PROPS_WINDOW_PLAN_100 *AEC_DISP_PROPS_WINDOW_PLAN_100;
10434
//    Dwg_Object_AEC_DISP_PROPS_WINDOW_PLAN_50 *AEC_DISP_PROPS_WINDOW_PLAN_50;
10435
//    Dwg_Object_AEC_DISP_PROPS_WINDOW_SILL_PLAN *AEC_DISP_PROPS_WINDOW_SILL_PLAN;
10436
//    Dwg_Object_AEC_DISP_PROPS_ZONE *AEC_DISP_PROPS_ZONE;
10437
//    Dwg_Object_AEC_DISP_REP_2D_SECTION *AEC_DISP_REP_2D_SECTION;
10438
//    Dwg_Object_AEC_DISP_REP_ANCHOR *AEC_DISP_REP_ANCHOR;
10439
//    Dwg_Object_AEC_DISP_REP_ANCHOR_BUB_TO_GRID *AEC_DISP_REP_ANCHOR_BUB_TO_GRID;
10440
//    Dwg_Object_AEC_DISP_REP_ANCHOR_BUB_TO_GRID_MODEL *AEC_DISP_REP_ANCHOR_BUB_TO_GRID_MODEL;
10441
//    Dwg_Object_AEC_DISP_REP_ANCHOR_BUB_TO_GRID_RCP *AEC_DISP_REP_ANCHOR_BUB_TO_GRID_RCP;
10442
//    Dwg_Object_AEC_DISP_REP_ANCHOR_ENT_TO_NODE *AEC_DISP_REP_ANCHOR_ENT_TO_NODE;
10443
//    Dwg_Object_AEC_DISP_REP_ANCHOR_EXT_TAG_TO_ENT *AEC_DISP_REP_ANCHOR_EXT_TAG_TO_ENT;
10444
//    Dwg_Object_AEC_DISP_REP_ANCHOR_TAG_TO_ENT *AEC_DISP_REP_ANCHOR_TAG_TO_ENT;
10445
//    Dwg_Object_AEC_DISP_REP_BDG_ELEVLINE_MODEL *AEC_DISP_REP_BDG_ELEVLINE_MODEL;
10446
//    Dwg_Object_AEC_DISP_REP_BDG_ELEVLINE_PLAN *AEC_DISP_REP_BDG_ELEVLINE_PLAN;
10447
//    Dwg_Object_AEC_DISP_REP_BDG_ELEVLINE_RCP *AEC_DISP_REP_BDG_ELEVLINE_RCP;
10448
//    Dwg_Object_AEC_DISP_REP_BDG_SECTIONLINE_MODEL *AEC_DISP_REP_BDG_SECTIONLINE_MODEL;
10449
//    Dwg_Object_AEC_DISP_REP_BDG_SECTIONLINE_PLAN *AEC_DISP_REP_BDG_SECTIONLINE_PLAN;
10450
//    Dwg_Object_AEC_DISP_REP_BDG_SECTIONLINE_RCP *AEC_DISP_REP_BDG_SECTIONLINE_RCP;
10451
//    Dwg_Object_AEC_DISP_REP_BDG_SECTION_MODEL *AEC_DISP_REP_BDG_SECTION_MODEL;
10452
//    Dwg_Object_AEC_DISP_REP_BDG_SECTION_SUBDIV *AEC_DISP_REP_BDG_SECTION_SUBDIV;
10453
//    Dwg_Object_AEC_DISP_REP_CEILING_GRID *AEC_DISP_REP_CEILING_GRID;
10454
//    Dwg_Object_AEC_DISP_REP_CEILING_GRID_MODEL *AEC_DISP_REP_CEILING_GRID_MODEL;
10455
//    Dwg_Object_AEC_DISP_REP_CEILING_GRID_RCP *AEC_DISP_REP_CEILING_GRID_RCP;
10456
//    Dwg_Object_AEC_DISP_REP_CLIP_VOLUME_MODEL *AEC_DISP_REP_CLIP_VOLUME_MODEL;
10457
//    Dwg_Object_AEC_DISP_REP_CLIP_VOLUME_PLAN *AEC_DISP_REP_CLIP_VOLUME_PLAN;
10458
//    Dwg_Object_AEC_DISP_REP_CLIP_VOLUME_RESULT *AEC_DISP_REP_CLIP_VOLUME_RESULT;
10459
//    Dwg_Object_AEC_DISP_REP_CLIP_VOLUME_RESULT_SUBDIV *AEC_DISP_REP_CLIP_VOLUME_RESULT_SUBDIV;
10460
//    Dwg_Object_AEC_DISP_REP_COLUMN_GRID *AEC_DISP_REP_COLUMN_GRID;
10461
//    Dwg_Object_AEC_DISP_REP_COLUMN_GRID_MODEL *AEC_DISP_REP_COLUMN_GRID_MODEL;
10462
//    Dwg_Object_AEC_DISP_REP_COLUMN_GRID_RCP *AEC_DISP_REP_COLUMN_GRID_RCP;
10463
//    Dwg_Object_AEC_DISP_REP_COL_BLOCK *AEC_DISP_REP_COL_BLOCK;
10464
//    Dwg_Object_AEC_DISP_REP_COL_CIRCARC2D *AEC_DISP_REP_COL_CIRCARC2D;
10465
//    Dwg_Object_AEC_DISP_REP_COL_CONCOINCIDENT *AEC_DISP_REP_COL_CONCOINCIDENT;
10466
//    Dwg_Object_AEC_DISP_REP_COL_CONCONCENTRIC *AEC_DISP_REP_COL_CONCONCENTRIC;
10467
//    Dwg_Object_AEC_DISP_REP_COL_CONEQUALDISTANCE *AEC_DISP_REP_COL_CONEQUALDISTANCE;
10468
//    Dwg_Object_AEC_DISP_REP_COL_CONMIDPOINT *AEC_DISP_REP_COL_CONMIDPOINT;
10469
//    Dwg_Object_AEC_DISP_REP_COL_CONNECTOR *AEC_DISP_REP_COL_CONNECTOR;
10470
//    Dwg_Object_AEC_DISP_REP_COL_CONNORMAL *AEC_DISP_REP_COL_CONNORMAL;
10471
//    Dwg_Object_AEC_DISP_REP_COL_CONPARALLEL *AEC_DISP_REP_COL_CONPARALLEL;
10472
//    Dwg_Object_AEC_DISP_REP_COL_CONPERPENDICULAR *AEC_DISP_REP_COL_CONPERPENDICULAR;
10473
//    Dwg_Object_AEC_DISP_REP_COL_CONSYMMETRIC *AEC_DISP_REP_COL_CONSYMMETRIC;
10474
//    Dwg_Object_AEC_DISP_REP_COL_CONTANGENT *AEC_DISP_REP_COL_CONTANGENT;
10475
//    Dwg_Object_AEC_DISP_REP_COL_DIMANGLE *AEC_DISP_REP_COL_DIMANGLE;
10476
//    Dwg_Object_AEC_DISP_REP_COL_DIMDIAMETER *AEC_DISP_REP_COL_DIMDIAMETER;
10477
//    Dwg_Object_AEC_DISP_REP_COL_DIMDISTANCE *AEC_DISP_REP_COL_DIMDISTANCE;
10478
//    Dwg_Object_AEC_DISP_REP_COL_DIMLENGTH *AEC_DISP_REP_COL_DIMLENGTH;
10479
//    Dwg_Object_AEC_DISP_REP_COL_DIMMAJORRADIUS *AEC_DISP_REP_COL_DIMMAJORRADIUS;
10480
//    Dwg_Object_AEC_DISP_REP_COL_DIMMINORRADIUS *AEC_DISP_REP_COL_DIMMINORRADIUS;
10481
//    Dwg_Object_AEC_DISP_REP_COL_ELLIPARC2D *AEC_DISP_REP_COL_ELLIPARC2D;
10482
//    Dwg_Object_AEC_DISP_REP_COL_LAYOUTDATA *AEC_DISP_REP_COL_LAYOUTDATA;
10483
//    Dwg_Object_AEC_DISP_REP_COL_LINE2D *AEC_DISP_REP_COL_LINE2D;
10484
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_ADD *AEC_DISP_REP_COL_MODIFIER_ADD;
10485
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_CUTPLANE *AEC_DISP_REP_COL_MODIFIER_CUTPLANE;
10486
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_EXTRUSION *AEC_DISP_REP_COL_MODIFIER_EXTRUSION;
10487
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_GROUP *AEC_DISP_REP_COL_MODIFIER_GROUP;
10488
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_LOFT *AEC_DISP_REP_COL_MODIFIER_LOFT;
10489
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_PATH *AEC_DISP_REP_COL_MODIFIER_PATH;
10490
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_REVOLVE *AEC_DISP_REP_COL_MODIFIER_REVOLVE;
10491
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_SUBTRACT *AEC_DISP_REP_COL_MODIFIER_SUBTRACT;
10492
//    Dwg_Object_AEC_DISP_REP_COL_MODIFIER_TRANSITION *AEC_DISP_REP_COL_MODIFIER_TRANSITION;
10493
//    Dwg_Object_AEC_DISP_REP_COL_POINT2D *AEC_DISP_REP_COL_POINT2D;
10494
//    Dwg_Object_AEC_DISP_REP_COL_PROFILE *AEC_DISP_REP_COL_PROFILE;
10495
//    Dwg_Object_AEC_DISP_REP_COL_WORKPLANE *AEC_DISP_REP_COL_WORKPLANE;
10496
//    Dwg_Object_AEC_DISP_REP_COL_WORKPLANE_REF *AEC_DISP_REP_COL_WORKPLANE_REF;
10497
//    Dwg_Object_AEC_DISP_REP_CONFIG *AEC_DISP_REP_CONFIG;
10498
//    Dwg_Object_AEC_DISP_REP_CURTAIN_WALL_LAYOUT_MODEL *AEC_DISP_REP_CURTAIN_WALL_LAYOUT_MODEL;
10499
//    Dwg_Object_AEC_DISP_REP_CURTAIN_WALL_LAYOUT_PLAN *AEC_DISP_REP_CURTAIN_WALL_LAYOUT_PLAN;
10500
//    Dwg_Object_AEC_DISP_REP_CURTAIN_WALL_UNIT_MODEL *AEC_DISP_REP_CURTAIN_WALL_UNIT_MODEL;
10501
//    Dwg_Object_AEC_DISP_REP_CURTAIN_WALL_UNIT_PLAN *AEC_DISP_REP_CURTAIN_WALL_UNIT_PLAN;
10502
//    Dwg_Object_AEC_DISP_REP_DCM_DIMRADIUS *AEC_DISP_REP_DCM_DIMRADIUS;
10503
//    Dwg_Object_AEC_DISP_REP_DISPLAYTHEME *AEC_DISP_REP_DISPLAYTHEME;
10504
//    Dwg_Object_AEC_DISP_REP_DOOR_ELEV *AEC_DISP_REP_DOOR_ELEV;
10505
//    Dwg_Object_AEC_DISP_REP_DOOR_MODEL *AEC_DISP_REP_DOOR_MODEL;
10506
//    Dwg_Object_AEC_DISP_REP_DOOR_NOMINAL *AEC_DISP_REP_DOOR_NOMINAL;
10507
//    Dwg_Object_AEC_DISP_REP_DOOR_PLAN *AEC_DISP_REP_DOOR_PLAN;
10508
//    Dwg_Object_AEC_DISP_REP_DOOR_PLAN_50 *AEC_DISP_REP_DOOR_PLAN_50;
10509
//    Dwg_Object_AEC_DISP_REP_DOOR_PLAN_HEKTO *AEC_DISP_REP_DOOR_PLAN_HEKTO;
10510
//    Dwg_Object_AEC_DISP_REP_DOOR_RCP *AEC_DISP_REP_DOOR_RCP;
10511
//    Dwg_Object_AEC_DISP_REP_DOOR_THRESHOLD_PLAN *AEC_DISP_REP_DOOR_THRESHOLD_PLAN;
10512
//    Dwg_Object_AEC_DISP_REP_DOOR_THRESHOLD_SYMBOL_PLAN *AEC_DISP_REP_DOOR_THRESHOLD_SYMBOL_PLAN;
10513
//    Dwg_Object_AEC_DISP_REP_EDITINPLACEPROFILE *AEC_DISP_REP_EDITINPLACEPROFILE;
10514
//    Dwg_Object_AEC_DISP_REP_ENT_REF *AEC_DISP_REP_ENT_REF;
10515
//    Dwg_Object_AEC_DISP_REP_LAYOUT_CURVE *AEC_DISP_REP_LAYOUT_CURVE;
10516
//    Dwg_Object_AEC_DISP_REP_LAYOUT_GRID2D *AEC_DISP_REP_LAYOUT_GRID2D;
10517
//    Dwg_Object_AEC_DISP_REP_LAYOUT_GRID3D *AEC_DISP_REP_LAYOUT_GRID3D;
10518
//    Dwg_Object_AEC_DISP_REP_MASKBLOCK_REF *AEC_DISP_REP_MASKBLOCK_REF;
10519
//    Dwg_Object_AEC_DISP_REP_MASKBLOCK_REF_RCP *AEC_DISP_REP_MASKBLOCK_REF_RCP;
10520
//    Dwg_Object_AEC_DISP_REP_MASS_ELEM_MODEL *AEC_DISP_REP_MASS_ELEM_MODEL;
10521
//    Dwg_Object_AEC_DISP_REP_MASS_ELEM_RCP *AEC_DISP_REP_MASS_ELEM_RCP;
10522
//    Dwg_Object_AEC_DISP_REP_MASS_ELEM_SCHEM *AEC_DISP_REP_MASS_ELEM_SCHEM;
10523
//    Dwg_Object_AEC_DISP_REP_MASS_GROUP_MODEL *AEC_DISP_REP_MASS_GROUP_MODEL;
10524
//    Dwg_Object_AEC_DISP_REP_MASS_GROUP_PLAN *AEC_DISP_REP_MASS_GROUP_PLAN;
10525
//    Dwg_Object_AEC_DISP_REP_MASS_GROUP_RCP *AEC_DISP_REP_MASS_GROUP_RCP;
10526
//    Dwg_Object_AEC_DISP_REP_MATERIAL *AEC_DISP_REP_MATERIAL;
10527
//    Dwg_Object_AEC_DISP_REP_MVBLOCK_REF *AEC_DISP_REP_MVBLOCK_REF;
10528
//    Dwg_Object_AEC_DISP_REP_MVBLOCK_REF_MODEL *AEC_DISP_REP_MVBLOCK_REF_MODEL;
10529
//    Dwg_Object_AEC_DISP_REP_MVBLOCK_REF_RCP *AEC_DISP_REP_MVBLOCK_REF_RCP;
10530
//    Dwg_Object_AEC_DISP_REP_OPENING *AEC_DISP_REP_OPENING;
10531
//    Dwg_Object_AEC_DISP_REP_OPENING_MODEL *AEC_DISP_REP_OPENING_MODEL;
10532
//    Dwg_Object_AEC_DISP_REP_POLYGON_MODEL *AEC_DISP_REP_POLYGON_MODEL;
10533
//    Dwg_Object_AEC_DISP_REP_POLYGON_TRUECOLOUR *AEC_DISP_REP_POLYGON_TRUECOLOUR;
10534
//    Dwg_Object_AEC_DISP_REP_RAILING_MODEL *AEC_DISP_REP_RAILING_MODEL;
10535
//    Dwg_Object_AEC_DISP_REP_RAILING_PLAN *AEC_DISP_REP_RAILING_PLAN;
10536
//    Dwg_Object_AEC_DISP_REP_RAILING_PLAN_100 *AEC_DISP_REP_RAILING_PLAN_100;
10537
//    Dwg_Object_AEC_DISP_REP_RAILING_PLAN_50 *AEC_DISP_REP_RAILING_PLAN_50;
10538
//    Dwg_Object_AEC_DISP_REP_ROOFSLAB_MODEL *AEC_DISP_REP_ROOFSLAB_MODEL;
10539
//    Dwg_Object_AEC_DISP_REP_ROOFSLAB_PLAN *AEC_DISP_REP_ROOFSLAB_PLAN;
10540
//    Dwg_Object_AEC_DISP_REP_ROOF_MODEL *AEC_DISP_REP_ROOF_MODEL;
10541
//    Dwg_Object_AEC_DISP_REP_ROOF_PLAN *AEC_DISP_REP_ROOF_PLAN;
10542
//    Dwg_Object_AEC_DISP_REP_ROOF_RCP *AEC_DISP_REP_ROOF_RCP;
10543
//    Dwg_Object_AEC_DISP_REP_SCHEDULE_TABLE *AEC_DISP_REP_SCHEDULE_TABLE;
10544
//    Dwg_Object_AEC_DISP_REP_SET *AEC_DISP_REP_SET;
10545
//    Dwg_Object_AEC_DISP_REP_SLAB_MODEL *AEC_DISP_REP_SLAB_MODEL;
10546
//    Dwg_Object_AEC_DISP_REP_SLAB_PLAN *AEC_DISP_REP_SLAB_PLAN;
10547
//    Dwg_Object_AEC_DISP_REP_SLICE *AEC_DISP_REP_SLICE;
10548
//    Dwg_Object_AEC_DISP_REP_SPACE_DECOMPOSED *AEC_DISP_REP_SPACE_DECOMPOSED;
10549
//    Dwg_Object_AEC_DISP_REP_SPACE_MODEL *AEC_DISP_REP_SPACE_MODEL;
10550
//    Dwg_Object_AEC_DISP_REP_SPACE_PLAN *AEC_DISP_REP_SPACE_PLAN;
10551
//    Dwg_Object_AEC_DISP_REP_SPACE_RCP *AEC_DISP_REP_SPACE_RCP;
10552
//    Dwg_Object_AEC_DISP_REP_SPACE_VOLUME *AEC_DISP_REP_SPACE_VOLUME;
10553
//    Dwg_Object_AEC_DISP_REP_STAIR_MODEL *AEC_DISP_REP_STAIR_MODEL;
10554
//    Dwg_Object_AEC_DISP_REP_STAIR_PLAN *AEC_DISP_REP_STAIR_PLAN;
10555
//    Dwg_Object_AEC_DISP_REP_STAIR_PLAN_100 *AEC_DISP_REP_STAIR_PLAN_100;
10556
//    Dwg_Object_AEC_DISP_REP_STAIR_PLAN_50 *AEC_DISP_REP_STAIR_PLAN_50;
10557
//    Dwg_Object_AEC_DISP_REP_STAIR_PLAN_OVERLAPPING *AEC_DISP_REP_STAIR_PLAN_OVERLAPPING;
10558
//    Dwg_Object_AEC_DISP_REP_STAIR_RCP *AEC_DISP_REP_STAIR_RCP;
10559
//    Dwg_Object_AEC_DISP_REP_WALL_GRAPH *AEC_DISP_REP_WALL_GRAPH;
10560
//    Dwg_Object_AEC_DISP_REP_WALL_MODEL *AEC_DISP_REP_WALL_MODEL;
10561
//    Dwg_Object_AEC_DISP_REP_WALL_PLAN *AEC_DISP_REP_WALL_PLAN;
10562
//    Dwg_Object_AEC_DISP_REP_WALL_RCP *AEC_DISP_REP_WALL_RCP;
10563
//    Dwg_Object_AEC_DISP_REP_WALL_SCHEM *AEC_DISP_REP_WALL_SCHEM;
10564
//    Dwg_Object_AEC_DISP_REP_WINDOWASSEMBLY_SILL_PLAN *AEC_DISP_REP_WINDOWASSEMBLY_SILL_PLAN;
10565
//    Dwg_Object_AEC_DISP_REP_WINDOW_ASSEMBLY_MODEL *AEC_DISP_REP_WINDOW_ASSEMBLY_MODEL;
10566
//    Dwg_Object_AEC_DISP_REP_WINDOW_ASSEMBLY_PLAN *AEC_DISP_REP_WINDOW_ASSEMBLY_PLAN;
10567
//    Dwg_Object_AEC_DISP_REP_WINDOW_ELEV *AEC_DISP_REP_WINDOW_ELEV;
10568
//    Dwg_Object_AEC_DISP_REP_WINDOW_MODEL *AEC_DISP_REP_WINDOW_MODEL;
10569
//    Dwg_Object_AEC_DISP_REP_WINDOW_NOMINAL *AEC_DISP_REP_WINDOW_NOMINAL;
10570
//    Dwg_Object_AEC_DISP_REP_WINDOW_PLAN *AEC_DISP_REP_WINDOW_PLAN;
10571
//    Dwg_Object_AEC_DISP_REP_WINDOW_PLAN_100 *AEC_DISP_REP_WINDOW_PLAN_100;
10572
//    Dwg_Object_AEC_DISP_REP_WINDOW_PLAN_50 *AEC_DISP_REP_WINDOW_PLAN_50;
10573
//    Dwg_Object_AEC_DISP_REP_WINDOW_RCP *AEC_DISP_REP_WINDOW_RCP;
10574
//    Dwg_Object_AEC_DISP_REP_WINDOW_SILL_PLAN *AEC_DISP_REP_WINDOW_SILL_PLAN;
10575
//    Dwg_Object_AEC_DISP_REP_ZONE *AEC_DISP_REP_ZONE;
10576
//    Dwg_Object_AEC_DISP_ROPS_RAILING_PLAN_100 *AEC_DISP_ROPS_RAILING_PLAN_100;
10577
//    Dwg_Object_AEC_DISP_ROPS_RAILING_PLAN_50 *AEC_DISP_ROPS_RAILING_PLAN_50;
10578
//    Dwg_Object_AEC_DISP_ROPS_STAIR_PLAN_100 *AEC_DISP_ROPS_STAIR_PLAN_100;
10579
//    Dwg_Object_AEC_DISP_ROPS_STAIR_PLAN_50 *AEC_DISP_ROPS_STAIR_PLAN_50;
10580
//    Dwg_Object_AEC_DOOR_STYLE *AEC_DOOR_STYLE;
10581
//    Dwg_Object_AEC_ENDCAP_STYLE *AEC_ENDCAP_STYLE;
10582
//    Dwg_Object_AEC_FRAME_DEF *AEC_FRAME_DEF;
10583
//    Dwg_Object_AEC_LAYERKEY_STYLE *AEC_LAYERKEY_STYLE;
10584
//    Dwg_Object_AEC_LIST_DEF *AEC_LIST_DEF;
10585
//    Dwg_Object_AEC_MASKBLOCK_DEF *AEC_MASKBLOCK_DEF;
10586
//    Dwg_Object_AEC_MASS_ELEM_STYLE *AEC_MASS_ELEM_STYLE;
10587
//    Dwg_Object_AEC_MATERIAL_DEF *AEC_MATERIAL_DEF;
10588
//    Dwg_Object_AEC_MVBLOCK_DEF *AEC_MVBLOCK_DEF;
10589
//    Dwg_Object_AEC_MVBLOCK_REF *AEC_MVBLOCK_REF;
10590
//    Dwg_Object_AEC_NOTIFICATION_TRACKER *AEC_NOTIFICATION_TRACKER;
10591
//    Dwg_Object_AEC_POLYGON *AEC_POLYGON;
10592
//    Dwg_Object_AEC_POLYGON_STYLE *AEC_POLYGON_STYLE;
10593
//    Dwg_Object_AEC_PROPERTY_SET_DEF *AEC_PROPERTY_SET_DEF;
10594
//    Dwg_Object_AEC_RAILING_STYLE *AEC_RAILING_STYLE;
10595
//    Dwg_Object_AEC_REFEDIT_STATUS_TRACKER *AEC_REFEDIT_STATUS_TRACKER;
10596
//    Dwg_Object_AEC_ROOFSLABEDGE_STYLE *AEC_ROOFSLABEDGE_STYLE;
10597
//    Dwg_Object_AEC_ROOFSLAB_STYLE *AEC_ROOFSLAB_STYLE;
10598
//    Dwg_Object_AEC_SCHEDULE_DATA_FORMAT *AEC_SCHEDULE_DATA_FORMAT;
10599
//    Dwg_Object_AEC_SLABEDGE_STYLE *AEC_SLABEDGE_STYLE;
10600
//    Dwg_Object_AEC_SLAB_STYLE *AEC_SLAB_STYLE;
10601
//    Dwg_Object_AEC_SPACE_STYLES *AEC_SPACE_STYLES;
10602
//    Dwg_Object_AEC_STAIR_STYLE *AEC_STAIR_STYLE;
10603
//    Dwg_Object_AEC_STAIR_WINDER_STYLE *AEC_STAIR_WINDER_STYLE;
10604
//    Dwg_Object_AEC_STAIR_WINDER_TYPE_BALANCED *AEC_STAIR_WINDER_TYPE_BALANCED;
10605
//    Dwg_Object_AEC_STAIR_WINDER_TYPE_MANUAL *AEC_STAIR_WINDER_TYPE_MANUAL;
10606
//    Dwg_Object_AEC_STAIR_WINDER_TYPE_SINGLE_POINT *AEC_STAIR_WINDER_TYPE_SINGLE_POINT;
10607
//    Dwg_Object_AEC_VARS_AECBBLDSRV *AEC_VARS_AECBBLDSRV;
10608
//    Dwg_Object_AEC_VARS_ARCHBASE *AEC_VARS_ARCHBASE;
10609
//    Dwg_Object_AEC_VARS_DWG_SETUP *AEC_VARS_DWG_SETUP;
10610
//    Dwg_Object_AEC_VARS_MUNICH *AEC_VARS_MUNICH;
10611
//    Dwg_Object_AEC_VARS_STRUCTUREBASE *AEC_VARS_STRUCTUREBASE;
10612
//    Dwg_Object_AEC_WALLMOD_STYLE *AEC_WALLMOD_STYLE;
10613
//    Dwg_Object_AEC_WALL_STYLE *AEC_WALL_STYLE;
10614
//    Dwg_Object_AEC_WINDOW_ASSEMBLY_STYLE *AEC_WINDOW_ASSEMBLY_STYLE;
10615
//    Dwg_Object_AEC_WINDOW_STYLE *AEC_WINDOW_STYLE;
10616
//    Dwg_Object_ALIGNMENTGRIPENTITY *ALIGNMENTGRIPENTITY;
10617
//    Dwg_Object_AMCONTEXTMGR *AMCONTEXTMGR;
10618
//    Dwg_Object_AMDTADMENUSTATE *AMDTADMENUSTATE;
10619
//    Dwg_Object_AMDTAMMENUSTATE *AMDTAMMENUSTATE;
10620
//    Dwg_Object_AMDTBROWSERDBTAB *AMDTBROWSERDBTAB;
10621
//    Dwg_Object_AMDTDMMENUSTATE *AMDTDMMENUSTATE;
10622
//    Dwg_Object_AMDTEDGESTANDARDDIN *AMDTEDGESTANDARDDIN;
10623
//    Dwg_Object_AMDTEDGESTANDARDDIN13715 *AMDTEDGESTANDARDDIN13715;
10624
//    Dwg_Object_AMDTEDGESTANDARDISO *AMDTEDGESTANDARDISO;
10625
//    Dwg_Object_AMDTEDGESTANDARDISO13715 *AMDTEDGESTANDARDISO13715;
10626
//    Dwg_Object_AMDTFORMULAUPDATEDISPATCHER *AMDTFORMULAUPDATEDISPATCHER;
10627
//    Dwg_Object_AMDTINTERNALREACTOR *AMDTINTERNALREACTOR;
10628
//    Dwg_Object_AMDTMCOMMENUSTATE *AMDTMCOMMENUSTATE;
10629
//    Dwg_Object_AMDTMENUSTATEMGR *AMDTMENUSTATEMGR;
10630
//    Dwg_Object_AMDTNOTE *AMDTNOTE;
10631
//    Dwg_Object_AMDTNOTETEMPLATEDB *AMDTNOTETEMPLATEDB;
10632
//    Dwg_Object_AMDTSECTIONSYM *AMDTSECTIONSYM;
10633
//    Dwg_Object_AMDTSECTIONSYMLABEL *AMDTSECTIONSYMLABEL;
10634
//    Dwg_Object_AMDTSYSATTR *AMDTSYSATTR;
10635
//    Dwg_Object_AMGOBJPROPCFG *AMGOBJPROPCFG;
10636
//    Dwg_Object_AMGSETTINGSOBJ *AMGSETTINGSOBJ;
10637
//    Dwg_Object_AMIMASTER *AMIMASTER;
10638
//    Dwg_Object_AM_DRAWING_MGR *AM_DRAWING_MGR;
10639
//    Dwg_Object_AM_DWGMGR_NAME *AM_DWGMGR_NAME;
10640
//    Dwg_Object_AM_DWG_DOCUMENT *AM_DWG_DOCUMENT;
10641
//    Dwg_Object_AM_DWG_SHEET *AM_DWG_SHEET;
10642
//    Dwg_Object_AM_VIEWDIMPARMAP *AM_VIEWDIMPARMAP;
10643
//    Dwg_Object_BINRECORD *BINRECORD;
10644
//    Dwg_Object_CAMSCATALOGAPPOBJECT *CAMSCATALOGAPPOBJECT;
10645
//    Dwg_Object_CAMSSTRUCTBTNSTATE *CAMSSTRUCTBTNSTATE;
10646
//    Dwg_Object_CATALOGSTATE *CATALOGSTATE;
10647
//    Dwg_Object_CBROWSERAPPOBJECT *CBROWSERAPPOBJECT;
10648
//    Dwg_Object_DEPMGR *DEPMGR;
10649
//    Dwg_Object_DMBASEELEMENT *DMBASEELEMENT;
10650
//    Dwg_Object_DMDEFAULTSTYLE *DMDEFAULTSTYLE;
10651
//    Dwg_Object_DMLEGEND *DMLEGEND;
10652
//    Dwg_Object_DMMAP *DMMAP;
10653
//    Dwg_Object_DMMAPMANAGER *DMMAPMANAGER;
10654
//    Dwg_Object_DMSTYLECATEGORY *DMSTYLECATEGORY;
10655
//    Dwg_Object_DMSTYLELIBRARY *DMSTYLELIBRARY;
10656
//    Dwg_Object_DMSTYLEREFERENCE *DMSTYLEREFERENCE;
10657
//    Dwg_Object_DMSTYLIZEDENTITIESTABLE *DMSTYLIZEDENTITIESTABLE;
10658
//    Dwg_Object_DMSURROGATESTYLESETS *DMSURROGATESTYLESETS;
10659
//    Dwg_Object_DM_PLACEHOLDER *DM_PLACEHOLDER;
10660
//    Dwg_Object_EXACTERMXREFMAP *EXACTERMXREFMAP;
10661
//    Dwg_Object_EXACXREFPANELOBJECT *EXACXREFPANELOBJECT;
10662
//    Dwg_Object_EXPO_NOTIFYBLOCK *EXPO_NOTIFYBLOCK;
10663
//    Dwg_Object_EXPO_NOTIFYHALL *EXPO_NOTIFYHALL;
10664
//    Dwg_Object_EXPO_NOTIFYPILLAR *EXPO_NOTIFYPILLAR;
10665
//    Dwg_Object_EXPO_NOTIFYSTAND *EXPO_NOTIFYSTAND;
10666
//    Dwg_Object_EXPO_NOTIFYSTANDNOPOLY *EXPO_NOTIFYSTANDNOPOLY;
10667
//    Dwg_Object_FLIPACTIONENTITY *FLIPACTIONENTITY;
10668
//    Dwg_Object_GSMANAGER *GSMANAGER;
10669
//    Dwg_Object_IRD_DSC_DICT *IRD_DSC_DICT;
10670
//    Dwg_Object_IRD_DSC_RECORD *IRD_DSC_RECORD;
10671
//    Dwg_Object_IRD_OBJ_RECORD *IRD_OBJ_RECORD;
10672
//    Dwg_Object_MAPFSMRVOBJECT *MAPFSMRVOBJECT;
10673
//    Dwg_Object_MAPGWSUNDOOBJECT *MAPGWSUNDOOBJECT;
10674
//    Dwg_Object_MAPIAMMOUDLE *MAPIAMMOUDLE;
10675
//    Dwg_Object_MAPMETADATAOBJECT *MAPMETADATAOBJECT;
10676
//    Dwg_Object_MAPRESOURCEMANAGEROBJECT *MAPRESOURCEMANAGEROBJECT;
10677
//    Dwg_Object_MOVEACTIONENTITY *MOVEACTIONENTITY;
10678
//    Dwg_Object_McDbContainer2 *McDbContainer2;
10679
//    Dwg_Object_McDbMarker *McDbMarker;
10680
//    Dwg_Object_NAMEDAPPL *NAMEDAPPL;
10681
//    Dwg_Object_NEWSTDPARTPARLIST *NEWSTDPARTPARLIST;
10682
//    Dwg_Object_NPOCOLLECTION *NPOCOLLECTION;
10683
//    Dwg_Object_OBJCLONER *OBJCLONER;
10684
//    Dwg_Object_PARAMMGR *PARAMMGR;
10685
//    Dwg_Object_PARAMSCOPE *PARAMSCOPE;
10686
//    Dwg_Object_PILLAR *PILLAR;
10687
//    Dwg_Object_ROTATEACTIONENTITY *ROTATEACTIONENTITY;
10688
//    Dwg_Object_SCALEACTIONENTITY *SCALEACTIONENTITY;
10689
//    Dwg_Object_STDPART2D *STDPART2D;
10690
//    Dwg_Object_STRETCHACTIONENTITY *STRETCHACTIONENTITY;
10691
//    Dwg_Object_TCH_ARROW *TCH_ARROW;
10692
//    Dwg_Object_TCH_AXIS_LABEL *TCH_AXIS_LABEL;
10693
//    Dwg_Object_TCH_BLOCK_INSERT *TCH_BLOCK_INSERT;
10694
//    Dwg_Object_TCH_COLUMN *TCH_COLUMN;
10695
//    Dwg_Object_TCH_DBCONFIG *TCH_DBCONFIG;
10696
//    Dwg_Object_TCH_DIMENSION2 *TCH_DIMENSION2;
10697
//    Dwg_Object_TCH_DRAWINGINDEX *TCH_DRAWINGINDEX;
10698
//    Dwg_Object_TCH_HANDRAIL *TCH_HANDRAIL;
10699
//    Dwg_Object_TCH_LINESTAIR *TCH_LINESTAIR;
10700
//    Dwg_Object_TCH_OPENING *TCH_OPENING;
10701
//    Dwg_Object_TCH_RECTSTAIR *TCH_RECTSTAIR;
10702
//    Dwg_Object_TCH_SLAB *TCH_SLAB;
10703
//    Dwg_Object_TCH_SPACE *TCH_SPACE;
10704
//    Dwg_Object_TCH_TEXT *TCH_TEXT;
10705
//    Dwg_Object_TCH_WALL *TCH_WALL;
10706
//    Dwg_Object_TGrupoPuntos *TGrupoPuntos;
10707
//    Dwg_Object_VAACIMAGEINVENTORY *VAACIMAGEINVENTORY;
10708
//    Dwg_Object_VAACXREFPANELOBJECT *VAACXREFPANELOBJECT;
10709
//    Dwg_Object_XREFPANELOBJECT *XREFPANELOBJECT;
10710
    // clang-format: off
10711
    /* End auto-generated object-union */
10712
    // clang-format on
10713
  } tio;
10714
10715
  struct _dwg_struct *dwg;
10716
  BITCODE_BL num_eed;
10717
  Dwg_Eed *eed;
10718
10719
  /* Common Object Data */
10720
  BITCODE_H ownerhandle;        /*!< code 5, DXF 330 */
10721
  BITCODE_BL num_reactors;
10722
  BITCODE_H* reactors;          /*!< r13+ code 4, DXF 102 {ACAD_XDICTIONARY, 330 */
10723
  BITCODE_H xdicobjhandle;      /*!< r13+ code 3, DXF 102 {ACAD_REACTORS, 360 */
10724
  BITCODE_B is_xdic_missing;    /*!< r2004+ */
10725
  BITCODE_B has_ds_data;        /*!< r2013+  AcDs datastore */
10726
10727
  /*unsigned int num_handles;*/
10728
  Dwg_Handle *handleref; //??
10729
} Dwg_Object_Object;
10730
10731
/**
10732
 Classes
10733
 */
10734
typedef struct _dwg_class
10735
{
10736
  BITCODE_BS number; /*!< starting with 500 */
10737
  /* see http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf */
10738
  BITCODE_BS proxyflag; /*!<
10739
      erase allowed = 1,
10740
      transform allowed = 2,
10741
      color change allowed = 4,
10742
      layer change allowed = 8,
10743
      LTYPE change allowed = 16,
10744
      LTYPE.scale change allowed = 32,
10745
      visibility change allowed = 64,
10746
      cloning allowed = 128,
10747
      Lineweight change allowed = 256,
10748
      PLOTSTYLE Name change allowed = 512,
10749
      Disables proxy warning dialog = 1024,
10750
      is R13 format proxy = 32768 */
10751
  char *appname;
10752
  char *cppname;
10753
  char *dxfname; /*!< ASCII or UTF-8 */
10754
  BITCODE_TU dxfname_u; /*!< r2007+, always transformed to dxfname as UTF-8 */
10755
  BITCODE_B  is_zombie; /*!< i.e. was_proxy, not loaded class */
10756
  BITCODE_BS item_class_id; /*!< really is_entity. 1f2 for entities, 1f3 for objects */
10757
  BITCODE_BL num_instances; /*!< 91 instance count for a custom class */
10758
  BITCODE_BL dwg_version;
10759
  BITCODE_BL maint_version;
10760
  BITCODE_BL unknown_1; /*!< def: 0L */
10761
  BITCODE_BL unknown_2; /*!< def: 0L */
10762
} Dwg_Class;
10763
10764
/**
10765
 General DWG object with link to either entity or object, and as parent the DWG
10766
 */
10767
typedef struct _dwg_object
10768
{
10769
  BITCODE_RL size;       /*!< in bytes */
10770
  size_t address;  /*!< byte offset in the file */
10771
  BITCODE_BS type;       /*!< fixed or variable (class - 500) */
10772
  BITCODE_RL index;      /*!< into dwg->object[] */
10773
  enum DWG_OBJECT_TYPE fixedtype; /*!< into a global list */
10774
  char *name;            /*!< our public entity/object name */
10775
  char *dxfname;         /*!< the internal dxf classname, often with a ACDB prefix */
10776
10777
  Dwg_Object_Supertype supertype;
10778
  union
10779
  {
10780
    Dwg_Object_Entity *entity;
10781
    Dwg_Object_Object *object;
10782
  } tio;
10783
10784
  Dwg_Handle handle;
10785
  struct _dwg_struct *parent;
10786
  Dwg_Class *klass;          /* the optional class of a variable object */
10787
10788
  BITCODE_RL bitsize;        /* common + object fields, but no handles */
10789
  size_t bitsize_pos; /* bitsize offset in bits: r13-2007 */
10790
  size_t hdlpos;      /* relative offset, in bits */
10791
  BITCODE_B  was_bitsize_set;    /* internally for encode only */
10792
  BITCODE_B  has_strings;        /*!< r2007+ */
10793
  BITCODE_RL stringstream_size;  /*!< r2007+ in bits, unused */
10794
  BITCODE_UMC handlestream_size; /*!< r2010+ in bits */
10795
  size_t common_size; /* relative offset from type ... end common_entity_data */
10796
10797
  BITCODE_RL num_unknown_bits;
10798
  BITCODE_TF unknown_bits; // replacing the full object
10799
  BITCODE_RL num_unknown_rest;
10800
  BITCODE_TF unknown_rest; // just the rest
10801
10802
} Dwg_Object;
10803
10804
/**
10805
 Dwg_Chain similar to Bit_Chain in "bits.h". Used only for the Thumbnail thumbnail
10806
 */
10807
typedef struct _dwg_chain
10808
{
10809
  unsigned char *chain;
10810
  size_t size;
10811
  size_t byte;
10812
  unsigned char bit;
10813
  /* NOT:
10814
  unsigned char opts;
10815
  Dwg_Version_Type version;
10816
  Dwg_Version_Type from_version;
10817
  FILE *fh;
10818
  BITCODE_RS codepage;
10819
  */
10820
} Dwg_Chain;
10821
10822
typedef enum DWG_SECTION_TYPE /* since r2004+ */
10823
{
10824
  SECTION_UNKNOWN = 0,                  /* FILEHEADER, the very first 160 byte? */
10825
  SECTION_HEADER = 1,                   /* AcDb:Header */
10826
  SECTION_AUXHEADER = 2,                /* AcDb:AuxHeader */
10827
  SECTION_CLASSES = 3,                  /* AcDb:Classes */
10828
  SECTION_HANDLES = 4,                  /* AcDb:Handles */
10829
  SECTION_TEMPLATE = 5,                 /* AcDb:Template */
10830
  SECTION_OBJFREESPACE = 6,             /* AcDb:ObjFreeSpace */
10831
  SECTION_OBJECTS = 7,                  /* AcDb:AcDbObjects */
10832
  SECTION_REVHISTORY = 8,               /* AcDb:RevHistory */
10833
  SECTION_SUMMARYINFO = 9,              /* AcDb:SummaryInfo */
10834
  SECTION_PREVIEW = 10,                 /* AcDb:Preview */
10835
  SECTION_APPINFO = 11,                 /* AcDb:AppInfo */
10836
  SECTION_APPINFOHISTORY = 12,          /* AcDb:AppInfoHistory */
10837
  SECTION_FILEDEPLIST = 13,             /* AcDb:FileDepList */
10838
  SECTION_SECURITY,                     /* AcDb:Security, if stored with a password */
10839
  SECTION_VBAPROJECT,                   /* AcDb:VBAProject */
10840
  SECTION_SIGNATURE,                    /* AcDb:Signature */
10841
  SECTION_ACDS,                         /* AcDb:AcDsPrototype_1b = 12 (ACIS datastorage) */
10842
  SECTION_INFO,                         /* also called Data Section, or Section Page Map (ODA) */
10843
  SECTION_SYSTEM_MAP,
10844
} Dwg_Section_Type;
10845
10846
/* r13 - r2000 */
10847
typedef enum DWG_SECTION_TYPE_R13
10848
{
10849
  SECTION_HEADER_R13 = 0,
10850
  SECTION_CLASSES_R13 = 1,
10851
  SECTION_HANDLES_R13 = 2,
10852
  SECTION_OBJFREESPACE_R13 = 3, /* including the 2ndheader */
10853
  SECTION_TEMPLATE_R13 = 4,
10854
  SECTION_AUXHEADER_R2000 = 5,
10855
  SECTION_THUMBNAIL_R13 = 6,
10856
} Dwg_Section_Type_r13;
10857
10858
typedef enum DWG_SECTION_TYPE_R11 /* tables */
10859
{
10860
  SECTION_HEADER_R11 = 0,
10861
  SECTION_BLOCK = 1,
10862
  SECTION_LAYER = 2,
10863
  SECTION_STYLE = 3,
10864
  SECTION_LTYPE = 5,
10865
  SECTION_VIEW = 6,
10866
  // since r10:
10867
  SECTION_UCS = 7,
10868
  SECTION_VPORT = 8,
10869
  // over 160 header vars
10870
  SECTION_APPID = 9,
10871
  // since r11:
10872
  SECTION_DIMSTYLE = 10,
10873
  SECTION_VX = 11,
10874
} Dwg_Section_Type_r11;
10875
10876
typedef struct _dwg_section
10877
{
10878
  BITCODE_RLd number; /* preR13: num_entries, r2007: id */
10879
  BITCODE_RL size;   /* now unsigned */
10880
  BITCODE_RLL address;
10881
  BITCODE_RL objid_r11;
10882
  /* r2000+: */
10883
  BITCODE_RL parent;
10884
  BITCODE_RL left;
10885
  BITCODE_RL right;
10886
  BITCODE_RL x00;
10887
  Dwg_Section_Type type; /* to be casted to Dwg_Section_Type_r11 preR13 */
10888
  /* => section_info? */
10889
  char name[64];
10890
  /*!< r2004 section fields: */
10891
  BITCODE_RL section_type;
10892
  BITCODE_RL decomp_data_size;
10893
  BITCODE_RL comp_data_size;
10894
  BITCODE_RL compression_type;
10895
  BITCODE_RL checksum;
10896
  BITCODE_RS flags_r11;
10897
} Dwg_Section;
10898
10899
/* Dwg_R2007_Section:
10900
  int64_t  data_size;    // max size of page
10901
  int64_t  max_size;
10902
  int64_t  encrypted;
10903
  int64_t  hashcode;
10904
  int64_t  name_length;  // 0x22
10905
  int64_t  unknown;      // 0x00
10906
  int64_t  encoded;
10907
  int64_t  num_pages;
10908
  DWGCHAR *name;
10909
  r2007_section_page **pages;
10910
  struct _r2007_section *nextsec;
10911
 */
10912
10913
// ODA 4.5
10914
typedef struct
10915
{
10916
  BITCODE_RL num_desc;
10917
  BITCODE_RL compressed; /* Compressed (1 = no, 2 = yes, normally 2) */
10918
  BITCODE_RL max_size;
10919
  BITCODE_RL encrypted; /* (0 = no, 1 = yes, 2 = unknown) */
10920
  BITCODE_RL num_desc2;
10921
} Dwg_Section_InfoHdr;
10922
10923
typedef struct
10924
{
10925
  int64_t    size;
10926
  BITCODE_RL num_sections;
10927
  BITCODE_RL max_decomp_size;
10928
  BITCODE_RL unknown;
10929
  BITCODE_RL compressed; /* Compressed (1 = no, 2 = yes, normally 2) */
10930
  BITCODE_RL type;       /* The dynamic index as read/written */
10931
  BITCODE_RL encrypted;  /* (0 = no, 1 = yes, 2 = unknown) */
10932
  char name[64];
10933
  Dwg_Section_Type fixedtype;  /* to search for */
10934
  Dwg_Section **sections;
10935
} Dwg_Section_Info;
10936
10937
10938
typedef struct _dwg_SummaryInfo_Property
10939
{
10940
  BITCODE_T16 tag;   // CUSTOMPROPERTYTAG
10941
  BITCODE_T16 value; // CUSTOMPROPERTY
10942
} Dwg_SummaryInfo_Property;
10943
10944
typedef struct _dwg_FileDepList_Files
10945
{
10946
  BITCODE_T32 filename;
10947
  BITCODE_T32 filepath;
10948
  BITCODE_T32 fingerprint;
10949
  BITCODE_T32 version;
10950
  BITCODE_RL feature_index;
10951
  BITCODE_RL timestamp;
10952
  BITCODE_RL filesize;
10953
  BITCODE_RS affects_graphics;
10954
  BITCODE_RL refcount;
10955
} Dwg_FileDepList_Files;
10956
10957
typedef struct _dwg_AcDs_SegmentIndex
10958
{
10959
  BITCODE_RLL offset;
10960
  BITCODE_RL size;
10961
} Dwg_AcDs_SegmentIndex;
10962
10963
typedef struct _dwg_AcDs_DataIndex_Entry
10964
{
10965
  BITCODE_RL segidx;
10966
  BITCODE_RL offset;
10967
  BITCODE_RL schidx;
10968
} Dwg_AcDs_DataIndex_Entry;
10969
10970
typedef struct _dwg_AcDs_DataIndex
10971
{
10972
  BITCODE_RL num_entries;
10973
  BITCODE_RL di_unknown; // always 0, probably RLL above
10974
  Dwg_AcDs_DataIndex_Entry *entries;
10975
} Dwg_AcDs_DataIndex;
10976
10977
typedef struct _dwg_AcDs_Data_RecordHdr
10978
{
10979
  BITCODE_RL entry_size;
10980
  BITCODE_RL unknown; // mostly 1
10981
  BITCODE_RLL handle;
10982
  BITCODE_RL offset;
10983
} Dwg_AcDs_Data_RecordHdr;
10984
10985
typedef struct _dwg_AcDs_Data_Record
10986
{
10987
  BITCODE_RL data_size;
10988
  BITCODE_RC *blob;
10989
} Dwg_AcDs_Data_Record;
10990
10991
typedef struct _dwg_AcDs_Data
10992
{
10993
  Dwg_AcDs_Data_RecordHdr *record_hdrs;
10994
  Dwg_AcDs_Data_Record *records;
10995
} Dwg_AcDs_Data;
10996
10997
typedef struct _dwg_AcDs_DataBlobRef_Page
10998
{
10999
  BITCODE_RL segidx;
11000
  BITCODE_RL size;
11001
} Dwg_AcDs_DataBlobRef_Page;
11002
11003
typedef struct _dwg_AcDs_DataBlobRef
11004
{
11005
  BITCODE_RLL total_data_size;
11006
  BITCODE_RL num_pages;
11007
  BITCODE_RL record_size;
11008
  BITCODE_RL page_size;
11009
  BITCODE_RL unknown_1; // ODA writes 1
11010
  BITCODE_RL unknown_2; // ODA writes 0
11011
  Dwg_AcDs_DataBlobRef_Page *pages;
11012
} Dwg_AcDs_DataBlobRef;
11013
11014
typedef struct _dwg_AcDs_DataBlob
11015
{
11016
  BITCODE_RLL data_size;
11017
  BITCODE_RL page_count;
11018
  BITCODE_RL record_size;
11019
  BITCODE_RL page_size;
11020
  BITCODE_RL unknown_1; // ODA writes 1
11021
  BITCODE_RL unknown_2; // ODA writes 0
11022
  Dwg_AcDs_DataBlobRef *ref; // only one, optional
11023
} Dwg_AcDs_DataBlob;
11024
11025
typedef struct _dwg_AcDs_DataBlob01
11026
{
11027
  BITCODE_RLL total_data_size;
11028
  BITCODE_RLL page_start_offset;
11029
  int32_t page_index;
11030
  int32_t page_count;
11031
  BITCODE_RLL page_data_size;
11032
  BITCODE_RC *page_data;
11033
} Dwg_AcDs_DataBlob01;
11034
11035
// 24.2.2.5
11036
typedef struct _dwg_AcDs_SchemaIndex_Prop
11037
{
11038
  BITCODE_RL index;
11039
  BITCODE_RL segidx;
11040
  BITCODE_RL offset;
11041
} Dwg_AcDs_SchemaIndex_Prop;
11042
11043
// 24.2.2.5
11044
typedef struct _dwg_AcDs_SchemaIndex
11045
{
11046
  BITCODE_RL num_props; // or uint64
11047
  BITCODE_RL si_unknown_1;
11048
  Dwg_AcDs_SchemaIndex_Prop *props;
11049
  BITCODE_RLL si_tag; /* 0x0af10c */
11050
  BITCODE_RL num_prop_entries;
11051
  BITCODE_RL si_unknown_2; /* 0 */
11052
  Dwg_AcDs_SchemaIndex_Prop *prop_entries;
11053
} Dwg_AcDs_SchemaIndex;
11054
11055
// 24.2.2.6.1.1
11056
typedef struct _dwg_AcDs_Schema_Prop
11057
{
11058
  BITCODE_RL flags;  /*<! DXF 91 */
11059
  BITCODE_RL namidx; /*<! DXF 2 */
11060
  BITCODE_RL type;   /*<! DXF 280, 0-15 */
11061
  BITCODE_RL type_size;
11062
  BITCODE_RL unknown_1;
11063
  BITCODE_RL unknown_2;
11064
  BITCODE_RS num_values;
11065
  BITCODE_RC *values;
11066
} Dwg_AcDs_Schema_Prop;
11067
11068
// 24.2.2.6.1
11069
typedef struct _dwg_AcDs_Schema
11070
{
11071
  BITCODE_RS num_index;
11072
  BITCODE_RLL *index;
11073
  BITCODE_RS num_props;
11074
  Dwg_AcDs_Schema_Prop *props;
11075
} Dwg_AcDs_Schema;
11076
11077
// 24.2.2.6
11078
typedef struct _dwg_AcDs_SchemaData_UProp
11079
{
11080
  BITCODE_RL size;
11081
  BITCODE_RL flags;
11082
} Dwg_AcDs_SchemaData_UProp;
11083
11084
typedef struct _dwg_AcDs_SchemaData
11085
{
11086
  BITCODE_RL num_uprops; // computed, see schidx
11087
  Dwg_AcDs_SchemaData_UProp *uprops;
11088
  BITCODE_RL num_schemas; // computed, see schidx
11089
  Dwg_AcDs_Schema *schemas;
11090
  BITCODE_RL num_propnames;
11091
  BITCODE_TV *propnames;
11092
} Dwg_AcDs_SchemaData;
11093
11094
typedef struct _dwg_AcDs_Search_IdIdx
11095
{
11096
  BITCODE_RLL handle;
11097
  BITCODE_RL num_ididx;
11098
  BITCODE_RLL *ididx;
11099
} Dwg_AcDs_Search_IdIdx;
11100
11101
typedef struct _dwg_AcDs_Search_IdIdxs
11102
{
11103
  BITCODE_RL num_ididx;
11104
  Dwg_AcDs_Search_IdIdx *ididx;
11105
} Dwg_AcDs_Search_IdIdxs;
11106
11107
// 24.2.2.7.1
11108
typedef struct _dwg_AcDs_Search_Data
11109
{
11110
  BITCODE_RL schema_namidx;
11111
  BITCODE_RL num_sortedidx;
11112
  BITCODE_RLLd *sortedidx;
11113
  BITCODE_RL num_ididxs;
11114
  BITCODE_RL unknown;
11115
  Dwg_AcDs_Search_IdIdxs *ididxs;
11116
} Dwg_AcDs_Search_Data;
11117
11118
typedef struct _dwg_AcDs_Search
11119
{
11120
  BITCODE_RL num_search;
11121
  Dwg_AcDs_Search_Data *search;
11122
} Dwg_AcDs_Search;
11123
11124
typedef struct _dwg_AcDs_Segment
11125
{
11126
  BITCODE_RS signature; /* always 0xd5ac */
11127
  BITCODE_RC name[7]; /* segidx, datidx, _data_, schidx, schdat, search, blob01 */
11128
  BITCODE_RCd type; /* computed 0-6 or -1 */
11129
  BITCODE_RL segment_idx;
11130
  BITCODE_RL is_blob01;
11131
  BITCODE_RL segsize;
11132
  BITCODE_RL unknown_2;
11133
  BITCODE_RL ds_version; // datastorage revision
11134
  BITCODE_RL unknown_3;
11135
  BITCODE_RL data_algn_offset;
11136
  BITCODE_RL objdata_algn_offset;
11137
  BITCODE_RC padding[9]; // always 8x 0x55
11138
} Dwg_AcDs_Segment;
11139
11140
/* A data record, with the SAB data of an ACIS entity or other data like the
11141
   thumbnail PNG. The records of ACIS entities are in the entity (acis_data),
11142
   so only the other records are kept here. */
11143
typedef struct _dwg_AcDs_Record
11144
{
11145
  BITCODE_RLL handle;
11146
  BITCODE_RL schidx; // the index of the schema
11147
  BITCODE_RL size;
11148
  BITCODE_RC *data;
11149
} Dwg_AcDs_Record;
11150
11151
typedef struct _dwg_AcDs
11152
{
11153
  // header
11154
  BITCODE_RL file_signature;
11155
  BITCODE_RL file_header_size;
11156
  BITCODE_RL unknown_1;  /* acis version? always 2 */
11157
  BITCODE_RL version;    /* always 2 */
11158
  BITCODE_RL unknown_2;  /* always 0 */
11159
  BITCODE_RL ds_version; /* datastorage revision */
11160
  BITCODE_RL segidx_offset;
11161
  BITCODE_RL segidx_unknown;
11162
  BITCODE_RL num_segidx;
11163
  BITCODE_RL schidx_segidx;
11164
  BITCODE_RL datidx_segidx;
11165
  BITCODE_RL search_segidx;
11166
  BITCODE_RL prvsav_segidx;
11167
  BITCODE_RL file_size;
11168
  BITCODE_BL total_segments; // computed
11169
  Dwg_AcDs_SegmentIndex *segidx;
11170
  Dwg_AcDs_DataIndex datidx;
11171
  Dwg_AcDs_Data *data;
11172
  Dwg_AcDs_DataBlob blob01;
11173
  Dwg_AcDs_SchemaIndex schidx;
11174
  Dwg_AcDs_SchemaData schdat;
11175
  Dwg_AcDs_Search search;
11176
  Dwg_AcDs_Segment *segments;
11177
  BITCODE_BL num_records; // not in the section, see Dwg_AcDs_Record
11178
  Dwg_AcDs_Record *records;
11179
} Dwg_AcDs;
11180
11181
typedef struct _dwg_header
11182
{
11183
  Dwg_Version_Type version;      /* calculated from the header magic */
11184
  Dwg_Version_Type from_version; /* option. set by --as (convert from) */
11185
  BITCODE_RC maint_rel_version;  /* See dwg_versions[] */
11186
  BITCODE_RC zero_one_or_three;
11187
  BITCODE_RS numentity_sections; /* < R13, always 3 */
11188
  BITCODE_RS numheader_vars;    /* < R13 */
11189
  BITCODE_RL thumbnail_address; /* THUMBNAIL or AdDb:Preview */
11190
  BITCODE_RC dwg_version;       /* version the DWG was written with */
11191
  BITCODE_RC maint_version;     /* version the DWG is targetting */
11192
  BITCODE_RL entities_start;    /* < R13 */
11193
  BITCODE_RL entities_end;      /* < R13 */
11194
  BITCODE_RL blocks_start;      /* < R13 */
11195
  BITCODE_RL blocks_size;       /* < R13 */
11196
  BITCODE_RL extras_start;      /* < R13 */
11197
  BITCODE_RL extras_size;       /* < R13 */
11198
  BITCODE_RS codepage;
11199
  BITCODE_RC unknown_0;           /* R2004+ */
11200
  BITCODE_RC app_dwg_version;     /* R2004+ */
11201
  BITCODE_RC app_maint_version;   /* R2004+ */
11202
  BITCODE_RL security_type;       /* R2004+ */
11203
  BITCODE_RL rl_1c_address;       /* R2004+ mostly 0 */
11204
  BITCODE_RL summaryinfo_address; /* R2004+ */
11205
  BITCODE_RL vbaproj_address;     /* R2004+ */
11206
  BITCODE_RL r2004_header_address; /* R2004+ */
11207
  BITCODE_RL sections;            // as in the header, 5 or 6 usually
11208
  BITCODE_RL num_sections;        // as allocated, many more
11209
  Dwg_Section *section;
11210
  Dwg_Section_InfoHdr section_infohdr; /* R2004+ */
11211
  Dwg_Section_Info *section_info;
11212
} Dwg_Header;
11213
11214
#pragma pack(1)
11215
typedef struct r2007_file_header
11216
{
11217
  int64_t header_size; // 0x70
11218
  int64_t file_size;
11219
  int64_t pages_map_crc_compressed;
11220
  int64_t pages_map_correction;
11221
  int64_t pages_map_crc_seed;
11222
  int64_t pages_map2_offset;
11223
  int64_t pages_map2_id;
11224
  int64_t pages_map_offset; // starting address of the Page Map section
11225
  int64_t pages_map_id;
11226
  int64_t header2_offset;
11227
  int64_t pages_map_size_comp; // the compressed size of section
11228
  int64_t pages_map_size_uncomp;
11229
  int64_t pages_amount;
11230
  int64_t pages_maxid;
11231
  int64_t unknown1; // 0x20
11232
  int64_t unknown2; // 0x40
11233
  int64_t pages_map_crc_uncomp;
11234
  int64_t unknown3; // 0xf800
11235
  int64_t unknown4; // 4
11236
  int64_t unknown5; // 1
11237
  int64_t num_sections;
11238
  int64_t sections_map_crc_uncomp;
11239
  int64_t sections_map_size_comp;
11240
  int64_t sections_map2_id;
11241
  int64_t sections_map_id;
11242
  int64_t sections_map_size_uncomp;
11243
  int64_t sections_map_crc_comp;
11244
  int64_t sections_map_correction;
11245
  int64_t sections_map_crc_seed;
11246
  int64_t stream_version; // 0x60100
11247
  int64_t crc_seed;
11248
  int64_t crc_seed_encoded;
11249
  int64_t random_seed;
11250
  int64_t header_crc;
11251
} Dwg_R2007_Header;
11252
11253
typedef struct _dwg_R2004_Header /* encrypted */
11254
{
11255
  BITCODE_RC file_ID_string[12];
11256
  BITCODE_RLx header_address;
11257
  BITCODE_RL header_size;
11258
  BITCODE_RL x04;
11259
  BITCODE_RLd root_tree_node_gap;
11260
  BITCODE_RLd lowermost_left_tree_node_gap;
11261
  BITCODE_RLd lowermost_right_tree_node_gap;
11262
  BITCODE_RL unknown_long;
11263
  BITCODE_RL last_section_id;
11264
  BITCODE_RLL last_section_address;
11265
  BITCODE_RLL secondheader_address;
11266
  BITCODE_RL numgaps;
11267
  BITCODE_RL numsections;
11268
  BITCODE_RL x20;
11269
  BITCODE_RL x80;
11270
  BITCODE_RL x40;
11271
  BITCODE_RL section_map_id;
11272
  BITCODE_RLL section_map_address;
11273
  BITCODE_RLd section_info_id;
11274
  BITCODE_RLd section_array_size;
11275
  BITCODE_RL gap_array_size;
11276
  BITCODE_RLx crc32; /* p 2.14.2 32bit CRC 2004+ */
11277
  BITCODE_RC padding[12];
11278
  /* System Section: Section Page Map */
11279
  BITCODE_RL section_type; /* 0x4163043b */
11280
  BITCODE_RL decomp_data_size;
11281
  BITCODE_RL comp_data_size;
11282
  BITCODE_RL compression_type;
11283
  BITCODE_RLx checksum;
11284
} Dwg_R2004_Header;
11285
#pragma pack()
11286
11287
typedef struct _dwg_auxheader
11288
{
11289
  BITCODE_RC aux_intro[3]; /* ff 77 01 */
11290
  BITCODE_RS dwg_version;
11291
  BITCODE_RS maint_version;
11292
  BITCODE_RL numsaves;
11293
  BITCODE_RL minus_1;
11294
  BITCODE_RS numsaves_1;
11295
  BITCODE_RS numsaves_2;
11296
  BITCODE_RL zero;
11297
  BITCODE_RS dwg_version_1;
11298
  BITCODE_RS maint_version_1;
11299
  BITCODE_RS dwg_version_2;
11300
  BITCODE_RS maint_version_2;
11301
  BITCODE_RS unknown_6rs[6];
11302
  BITCODE_RL unknown_5rl[5];
11303
  BITCODE_TIMERLL TDCREATE;
11304
  BITCODE_TIMERLL TDUPDATE;
11305
  BITCODE_RLL HANDSEED;
11306
  BITCODE_RS zero_1;
11307
  BITCODE_RS numsaves_3;
11308
  BITCODE_RL zero_2;
11309
  BITCODE_RL zero_3;
11310
  BITCODE_RL zero_4;
11311
  BITCODE_RL numsaves_4;
11312
  BITCODE_RL zero_5;
11313
  BITCODE_RL zero_6;
11314
  BITCODE_RL zero_7;
11315
  BITCODE_RL zero_8;     /* ?? */
11316
  BITCODE_RS zero_18[3]; /* R2018+ */
11317
  BITCODE_RS num_auxheader_variables; /* < R13 */
11318
  BITCODE_RS auxheader_size;          /* < R13 */
11319
  BITCODE_RL entities_start;          /* < R13 */
11320
  BITCODE_RL entities_end;            /* < R13 */
11321
  BITCODE_RL blocks_start;            /* < R13 */
11322
  BITCODE_RL extras_start;            /* < R13 */
11323
  BITCODE_RLx auxheader_address;      /* < R13 */
11324
  BITCODE_RS num_aux_tables;          /* < R13 */
11325
  BITCODE_BS R11_HANDLING;  /* TODO Merge with HANDSEED */
11326
} Dwg_AuxHeader;
11327
11328
typedef struct _dwg_summaryinfo
11329
{
11330
  BITCODE_T16 TITLE;
11331
  BITCODE_T16 SUBJECT;
11332
  BITCODE_T16 AUTHOR;
11333
  BITCODE_T16 KEYWORDS;
11334
  BITCODE_T16 COMMENTS;
11335
  BITCODE_T16 LASTSAVEDBY;
11336
  BITCODE_T16 REVISIONNUMBER;
11337
  BITCODE_T16 HYPERLINKBASE;
11338
  BITCODE_TIMERLL TDINDWG; /* days + ms, fixed size! */
11339
  BITCODE_TIMERLL TDCREATE;
11340
  BITCODE_TIMERLL TDUPDATE;
11341
  BITCODE_RS num_props;
11342
  Dwg_SummaryInfo_Property *props;
11343
  BITCODE_RL unknown1;
11344
  BITCODE_RL unknown2;
11345
} Dwg_SummaryInfo;
11346
11347
/* Contains information about the application that wrote
11348
   the .dwg file (encrypted = 2). */
11349
typedef struct _dwg_appinfo
11350
{
11351
  BITCODE_RL size;
11352
  BITCODE_TF unknown_bits;
11353
  BITCODE_RL class_version; // 3
11354
  BITCODE_RL num_strings;   // 2-3
11355
  BITCODE_T16 appinfo_name;  // AppInfoDataList
11356
  BITCODE_RC version_checksum[16];
11357
  BITCODE_RC comment_checksum[16];
11358
  BITCODE_RC product_checksum[16];
11359
  BITCODE_T16 version;      // "19.0.55.0.0", "Teigha(R) 4.3.2.0"
11360
  BITCODE_T16 comment;      // "Autodesk DWG.  This file is a Trusted DWG "...
11361
  BITCODE_T16 product_info; // XML ProductInformation
11362
} Dwg_AppInfo;
11363
11364
/* File Dependencies, IMAGE files, fonts, xrefs, plotconfigs */
11365
typedef struct _dwg_filedeplist
11366
{
11367
  BITCODE_RL num_features;
11368
  BITCODE_TU32 *features; // Acad:XRef, Acad:Image, Acad:PlotConfig, Acad:Text
11369
  BITCODE_RL num_files;
11370
  Dwg_FileDepList_Files *files;
11371
} Dwg_FileDepList;
11372
11373
/* password info */
11374
typedef struct _dwg_security
11375
{
11376
  BITCODE_RL unknown_1;   // 0xc
11377
  BITCODE_RL unknown_2;   // 0
11378
  BITCODE_RL unknown_3;   // 0xabcdabcd
11379
  BITCODE_RL crypto_id;   //
11380
  BITCODE_T32 crypto_name; // "Microsoft Base DSS and Diffie-Hellman
11381
                          // Cryptographic Provider"
11382
  BITCODE_RL algo_id;     // RC4
11383
  BITCODE_RL key_len;     // 40
11384
  BITCODE_RL encr_size;   //
11385
  BITCODE_TF encr_buffer;
11386
} Dwg_Security;
11387
11388
typedef struct _dwg_vbaproject
11389
{
11390
  BITCODE_RL size;
11391
  BITCODE_TF unknown_bits;
11392
} Dwg_VBAProject;
11393
11394
typedef struct _dwg_appinfohistory
11395
{
11396
  BITCODE_RL size;
11397
  BITCODE_TF unknown_bits;
11398
} Dwg_AppInfoHistory;
11399
11400
typedef struct _dwg_revhistory
11401
{
11402
  BITCODE_RL class_version;
11403
  BITCODE_RL class_minor;
11404
  BITCODE_RL num_histories;
11405
  BITCODE_RL *histories;
11406
} Dwg_RevHistory;
11407
11408
typedef struct _dwg_objfreespace
11409
{
11410
  BITCODE_RLL zero;
11411
  BITCODE_RLL numhandles;
11412
  BITCODE_TIMERLL TDUPDATE;
11413
  BITCODE_RL objects_address;
11414
  BITCODE_RC numnums; // RLL (uint64_t) or uint128_t
11415
  BITCODE_RLL max32;   // 0x32
11416
  BITCODE_RLL max64;   // 0x64
11417
  BITCODE_RLL maxtbl;  // 0x200
11418
  BITCODE_RLL maxrl;
11419
  BITCODE_RLL max32_hi;
11420
  BITCODE_RLL max64_hi;
11421
  BITCODE_RLL maxtbl_hi;
11422
  BITCODE_RLL maxrl_hi;
11423
} Dwg_ObjFreeSpace;
11424
11425
typedef struct _dwg_template
11426
{
11427
  BITCODE_T16 description; // or TU16 >=r2007
11428
  BITCODE_RS MEASUREMENT;
11429
} Dwg_Template;
11430
11431
typedef struct _dwg_secondheader_sections
11432
{
11433
  BITCODE_RCd nr;
11434
  BITCODE_BL address;
11435
  BITCODE_BL size;
11436
} Dwg_SecondHeader_Sections;
11437
11438
typedef struct _dwg_secondheader_handles
11439
{
11440
  BITCODE_RC num_hdl;
11441
  BITCODE_RCd nr;
11442
  BITCODE_RC hdl[8];
11443
  BITCODE_HV value;
11444
  const char *name;
11445
} Dwg_SecondHeader_Handles;
11446
11447
typedef struct _dwg_secondheader
11448
{
11449
  BITCODE_RL size;
11450
  BITCODE_RL address;
11451
  BITCODE_RC version[11];
11452
  BITCODE_RC maint_rel_version;
11453
  BITCODE_RC zero_one_or_three;
11454
  BITCODE_BS dwg_versions; /* lo byte: dwg, hi: main */
11455
  BITCODE_RS codepage;
11456
  BITCODE_RC num_sections;
11457
  Dwg_SecondHeader_Sections sections[7];
11458
  BITCODE_BS num_handles;
11459
  Dwg_SecondHeader_Handles handles[14];
11460
  BITCODE_RS crc;
11461
  BITCODE_RLL junk_r14; /*!< r14-r2000 */
11462
} Dwg_SecondHeader;
11463
11464
/**
11465
 Main DWG struct
11466
 */
11467
11468
typedef struct _dwg_struct
11469
{
11470
  Dwg_Header header;
11471
11472
  BITCODE_BS num_classes;        /*!< number of classes */
11473
  Dwg_Class * dwg_class;         /*!< array of classes */
11474
  BITCODE_BL num_objects;        /*!< number of objects */
11475
  BITCODE_BL num_alloced_objects;/*!< room for objects */
11476
  Dwg_Object * object;           /*!< list of all objects and entities */
11477
  BITCODE_BL num_entities;       /*!< number of entities in object */
11478
  BITCODE_BL num_object_refs;    /*!< number of object_ref's (resolved handles) */
11479
  BITCODE_BL cur_index;          /*!< how many we have written currently */
11480
  BITCODE_RS last_viewport_id;   /*!< auto-incremented VIEWPORT id for DXF */
11481
  Dwg_Object *last_viewport_block; /*< owning block of the last numbered
11482
                                       VIEWPORT, for the 68/69 counters */
11483
  Dwg_Object_Ref **object_ref;   /*!< array of most handles */
11484
  struct _inthash *object_map;   /*!< map of all handles */
11485
  int dirty_refs;                /* 1 if we added an object, and invalidated all
11486
                                    the internal ref->obj's */
11487
  unsigned int opts;             /* See DWG_OPTS_* below */
11488
11489
  Dwg_Header_Variables header_vars;
11490
  Dwg_Chain thumbnail;
11491
11492
  union {
11493
    Dwg_R2004_Header r2004_header; /* encrypted, packed */
11494
    Dwg_R2007_Header r2007_file_header; /* encrypted, packed */
11495
  } fhdr;
11496
11497
  /* Should only be initialized after the read/write is complete. */
11498
  Dwg_Object *mspace_block;
11499
  Dwg_Object *pspace_block;
11500
  /* This TABLE might be empty with num_entries=0 */
11501
  Dwg_Object_BLOCK_CONTROL      block_control;
11502
11503
  /* #define DWG_AUXHEADER_SIZE 123 */
11504
  Dwg_AuxHeader auxheader;
11505
  Dwg_SecondHeader secondheader;
11506
  Dwg_SummaryInfo summaryinfo;
11507
  /* Contains information about the application that wrote
11508
     the .dwg file (encrypted = 2). */
11509
  Dwg_AppInfo appinfo;
11510
  /* File Dependencies, IMAGE files, fonts, xrefs, plotconfigs */
11511
  Dwg_FileDepList filedeplist;
11512
  Dwg_Security security; /* password info */
11513
  Dwg_VBAProject vbaproject;
11514
  Dwg_AppInfoHistory appinfohistory;
11515
  Dwg_RevHistory revhistory;
11516
  Dwg_ObjFreeSpace objfreespace;
11517
  Dwg_Template Template;
11518
  Dwg_AcDs acds;
11519
11520
  unsigned int layout_type;
11521
  BITCODE_RLL next_hdl; // for add_document handle holes
11522
11523
  BITCODE_BL prev_entity_index; // for speedup find_prev_entity
11524
11525
  // for speedup dwg_add_handleref
11526
  Dwg_Object_Ref **object_ordered_ref; /*! list of all ordered objects refs */
11527
  BITCODE_BL num_object_ordered_refs;  /*! number of ordered objects refs */
11528
} Dwg_Data;
11529
11530
481M
#define DWG_OPTS_LOGLEVEL 0xf
11531
178M
#define DWG_OPTS_MINIMAL  0x10
11532
945k
#define DWG_OPTS_DXFB     0x20
11533
/* can be safely shared */
11534
196M
#define DWG_OPTS_JSONFIRST 0x20
11535
15.7M
#define DWG_OPTS_INDXF    0x40
11536
17.8M
#define DWG_OPTS_INJSON   0x80
11537
8.41M
#define DWG_OPTS_IN       (DWG_OPTS_INDXF | DWG_OPTS_INJSON)
11538
11539
typedef enum RESBUF_VALUE_TYPE
11540
{
11541
  DWG_VT_INVALID = 0,
11542
  DWG_VT_STRING = 1,
11543
  DWG_VT_POINT3D = 2,
11544
  DWG_VT_REAL = 3,
11545
  DWG_VT_INT16 = 4,
11546
  DWG_VT_INT32 = 5,
11547
  DWG_VT_INT8 = 6,
11548
  DWG_VT_BINARY = 7,
11549
  DWG_VT_HANDLE = 8,
11550
  DWG_VT_OBJECTID = 9,
11551
  DWG_VT_BOOL = 10,    // VT_BOOL clashes with /usr/x86_64-w64-mingw32/sys-root/mingw/include/wtypes.h
11552
  DWG_VT_INT64 = 11,   // RLL
11553
} Dwg_Resbuf_Value_Type;
11554
11555
/*--------------------------------------------------
11556
 * Exported Functions
11557
 */
11558
11559
EXPORT int dwg_read_file (const char *restrict filename,
11560
                          Dwg_Data *restrict dwg);
11561
EXPORT int dxf_read_file (const char *restrict filename,
11562
                          Dwg_Data *restrict dwg);
11563
// You might need to probe for that.
11564
EXPORT int dwg_write_file (const char *restrict filename,
11565
                           const Dwg_Data *restrict dwg);
11566
11567
/* Supports multiple preview picture types.
11568
   Currently 3 types: BMP 2, WMF 3 and PNG as type 6.
11569
   Returns the size of the image.
11570
 */
11571
EXPORT unsigned char *dwg_bmp (const Dwg_Data *restrict dwg,
11572
                               BITCODE_RL *restrict size,
11573
                               BITCODE_RC *restrict typep);
11574
11575
/** Converts the internal enum RC into 100th mm lineweight, with
11576
 *  -1 BYLAYER, -2 BYBLOCK, -3 BYLWDEFAULT.
11577
 */
11578
EXPORT int dxf_cvt_lweight (const BITCODE_BSd value);
11579
EXPORT int dxf_block_is_layout (Dwg_Data *dwg, Dwg_Object *blk);
11580
11581
/** Converts the 100th mm lineweight, with -1 BYLAYER, -2 BYBLOCK, -3 BYLWDEFAULT,
11582
    into the internal enum RC.
11583
 */
11584
EXPORT BITCODE_BSd dxf_revcvt_lweight (const int lw);
11585
11586
/* Return the matching _CONTROL table, or NULL
11587
 */
11588
EXPORT BITCODE_H
11589
dwg_ctrl_table (Dwg_Data *restrict dwg, const char *restrict table);
11590
11591
/* Search for the name in the associated table, and return its handle. Search
11592
 * is case-insensitive.
11593
 * Both name and table are ascii.
11594
 */
11595
EXPORT BITCODE_H dwg_find_tablehandle (Dwg_Data *restrict dwg,
11596
                                       const char *restrict name,
11597
                                       const char *restrict table);
11598
EXPORT BITCODE_H dwg_find_tablehandle_index (Dwg_Data *restrict dwg,
11599
                                             const int index,
11600
                                             const char *restrict table);
11601
11602
/* Search for handle in associated table, and return its name (as UTF-8) */
11603
EXPORT char *
11604
dwg_handle_name (Dwg_Data *restrict dwg, const char *restrict table,
11605
                 const BITCODE_H restrict handle);
11606
11607
/** Not checking the header_vars entry, only searching the objects
11608
 *  Returning a hardowner or hardpointer (DICTIONARY) ref (code 3 or 5)
11609
 *  to it, as stored in header_vars. table must contain the "_CONTROL" suffix.
11610
 *  table is ascii.
11611
 */
11612
EXPORT BITCODE_H dwg_find_table_control (Dwg_Data *restrict dwg,
11613
                                         const char *restrict table);
11614
11615
/** Search for a dictionary ref.
11616
 *  Returning a hardpointer ref (5) to it, as stored in header_vars.
11617
 *  Name is ascii.
11618
 */
11619
EXPORT BITCODE_H dwg_find_dictionary (Dwg_Data *restrict dwg,
11620
                                      const char *restrict name);
11621
/** Search for a named dictionary entry in the given dict.
11622
 *  Search is case-sensitive. name is ASCII. */
11623
EXPORT BITCODE_H dwg_find_dicthandle (Dwg_Data *restrict dwg, BITCODE_H dict,
11624
                                      const char *restrict name);
11625
/** Search all dictionary entries in the given dict.
11626
 *  Check for the matching name of the handle object. (Control lists).
11627
 *  Search is case-insensitive */
11628
EXPORT BITCODE_H dwg_find_dicthandle_objname (Dwg_Data *restrict dwg, BITCODE_H dict,
11629
                                              const char *restrict name);
11630
/* Search for a table EXTNAME */
11631
EXPORT char *dwg_find_table_extname (Dwg_Data *restrict dwg,
11632
                                     Dwg_Object *restrict obj);
11633
/* Returns the string value of the member of the AcDbVariableDictionary.
11634
   The name is ascii. E.g. LIGHTINGUNITS => "0" */
11635
EXPORT char *dwg_variable_dict (Dwg_Data *restrict dwg,
11636
                                const char *restrict name);
11637
11638
EXPORT double dwg_model_x_min (const Dwg_Data *restrict);
11639
EXPORT double dwg_model_x_max (const Dwg_Data *restrict);
11640
EXPORT double dwg_model_y_min (const Dwg_Data *restrict);
11641
EXPORT double dwg_model_y_max (const Dwg_Data *restrict);
11642
EXPORT double dwg_model_z_min (const Dwg_Data *restrict);
11643
EXPORT double dwg_model_z_max (const Dwg_Data *restrict);
11644
EXPORT double dwg_page_x_min (const Dwg_Data *restrict);
11645
EXPORT double dwg_page_x_max (const Dwg_Data *restrict);
11646
EXPORT double dwg_page_y_min (const Dwg_Data *restrict);
11647
EXPORT double dwg_page_y_max (const Dwg_Data *restrict);
11648
11649
EXPORT Dwg_Object_BLOCK_CONTROL * dwg_block_control (Dwg_Data *restrict dwg);
11650
11651
EXPORT Dwg_Object_Ref * dwg_model_space_ref (Dwg_Data *restrict dwg);
11652
EXPORT Dwg_Object_Ref * dwg_paper_space_ref (Dwg_Data *restrict dwg);
11653
EXPORT Dwg_Object * dwg_model_space_object (Dwg_Data *restrict dwg);
11654
EXPORT Dwg_Object * dwg_paper_space_object (Dwg_Data *restrict dwg);
11655
11656
EXPORT unsigned int dwg_get_layer_count (const Dwg_Data *restrict dwg);
11657
11658
EXPORT Dwg_Object_LAYER ** dwg_get_layers (const Dwg_Data *restrict dwg);
11659
11660
EXPORT BITCODE_BL dwg_get_num_objects (const Dwg_Data *restrict dwg);
11661
11662
EXPORT BITCODE_BL dwg_get_object_num_objects (const Dwg_Data *restrict dwg);
11663
11664
EXPORT int dwg_class_is_entity (const Dwg_Class *restrict klass);
11665
11666
EXPORT int dwg_obj_is_control (const Dwg_Object *restrict obj);
11667
EXPORT int dwg_obj_is_table (const Dwg_Object *restrict obj);
11668
EXPORT int dwg_obj_is_subentity (const Dwg_Object *restrict obj);
11669
EXPORT int dwg_obj_has_subentity (const Dwg_Object *restrict obj);
11670
EXPORT int dwg_obj_is_3dsolid (const Dwg_Object *restrict obj);
11671
EXPORT int dwg_obj_get_sab (const Dwg_Object *restrict obj,
11672
                            const unsigned char **restrict data,
11673
                            BITCODE_BL *restrict size);
11674
EXPORT int dwg_obj_set_sab (Dwg_Object *restrict obj,
11675
                            unsigned char *restrict data,
11676
                            const BITCODE_BL size);
11677
EXPORT int dwg_obj_is_acsh (const Dwg_Object *restrict obj);
11678
11679
EXPORT BITCODE_BL dwg_get_num_entities (const Dwg_Data *restrict);
11680
11681
EXPORT Dwg_Object_Entity **dwg_get_entities (const Dwg_Data *restrict);
11682
11683
EXPORT Dwg_Object_LAYER *
11684
dwg_get_entity_layer (const Dwg_Object_Entity *restrict);
11685
11686
EXPORT Dwg_Object *dwg_next_object (const Dwg_Object *obj);
11687
EXPORT Dwg_Object *dwg_next_entity (const Dwg_Object *obj);
11688
EXPORT char *dwg_strip_mtext (const char *restrict mtext);
11689
// next available 0 ref + 1, when all refs are already filled
11690
EXPORT BITCODE_HV dwg_next_handle (const Dwg_Data *dwg);
11691
// next available handle, computed form the HANDSEED, which is bumped
11692
EXPORT BITCODE_HV dwg_next_handseed (Dwg_Data *dwg);
11693
11694
EXPORT Dwg_Object *dwg_ref_object (Dwg_Data *restrict dwg,
11695
                                   Dwg_Object_Ref *restrict ref);
11696
EXPORT Dwg_Object *dwg_ref_object_relative (Dwg_Data *restrict dwg,
11697
                                            Dwg_Object_Ref *restrict ref,
11698
                                            const Dwg_Object *restrict obj);
11699
EXPORT Dwg_Object *dwg_ref_object_silent (Dwg_Data *restrict dwg,
11700
                                          Dwg_Object_Ref *restrict ref);
11701
11702
EXPORT Dwg_Object *get_first_owned_entity (const Dwg_Object *restrict hdr);
11703
EXPORT Dwg_Object *get_next_owned_entity (const Dwg_Object *restrict hdr,
11704
                                          const Dwg_Object *restrict current);
11705
EXPORT Dwg_Object *get_first_owned_subentity (const Dwg_Object *restrict owner);
11706
EXPORT Dwg_Object *
11707
get_next_owned_subentity (const Dwg_Object *restrict owner,
11708
                          const Dwg_Object *restrict current);
11709
EXPORT Dwg_Object *get_first_owned_block (const Dwg_Object *hdr);
11710
EXPORT Dwg_Object *get_last_owned_block (const Dwg_Object *hdr);
11711
EXPORT Dwg_Object *get_next_owned_block (const Dwg_Object *restrict hdr,
11712
                                         const Dwg_Object *restrict current);
11713
EXPORT Dwg_Object *get_next_owned_block_entity (const Dwg_Object *restrict hdr,
11714
                                                const Dwg_Object *restrict current);
11715
EXPORT Dwg_Object *dwg_get_first_object (const Dwg_Data *dwg,
11716
                                         const Dwg_Object_Type type);
11717
EXPORT Dwg_Object *dwg_find_nod (Dwg_Data *restrict dwg);
11718
EXPORT Dwg_Object *dwg_get_next_object (const Dwg_Data *dwg,
11719
                                        const Dwg_Object_Type type,
11720
                                        const BITCODE_RL index);
11721
11722
EXPORT Dwg_Object *dwg_resolve_handle (const Dwg_Data *restrict dwg,
11723
                                       BITCODE_HV absref);
11724
EXPORT Dwg_Object *dwg_resolve_handle_silent (const Dwg_Data *restrict dwg,
11725
                                              const BITCODE_HV absref);
11726
EXPORT int dwg_resolve_handleref (Dwg_Object_Ref *restrict ref,
11727
                                  const Dwg_Object *restrict obj);
11728
11729
EXPORT Dwg_Object *dwg_resolve_jump (const Dwg_Object *obj);
11730
EXPORT Dwg_Section_Type dwg_section_type (const char *restrict name);
11731
EXPORT Dwg_Section_Type dwg_section_wtype (const DWGCHAR *restrict wname);
11732
EXPORT const char *dwg_section_name (const Dwg_Data *dwg, const unsigned int sec_id);
11733
11734
EXPORT enum RESBUF_VALUE_TYPE dwg_resbuf_value_type (short gc);
11735
11736
/** Free the whole DWG. all tables, sections, objects, ...
11737
*/
11738
EXPORT void dwg_free (Dwg_Data *restrict dwg);
11739
11740
/** Free the object (all three structs and its fields)
11741
*/
11742
EXPORT void dwg_free_object (Dwg_Object *restrict obj);
11743
11744
/** Add the empty ref to the DWG (freshly malloc'ed), or NULL.
11745
*/
11746
EXPORT Dwg_Object_Ref * dwg_new_ref (Dwg_Data *restrict dwg);
11747
11748
/** For encode:
11749
 *  May need obj to shorten the code to a relative offset, but not in header_vars.
11750
 *  There obj is NULL.
11751
 */
11752
EXPORT int dwg_add_handle (Dwg_Handle *restrict hdl, const BITCODE_RC code,
11753
                           const BITCODE_HV value,
11754
                           const Dwg_Object *restrict obj);
11755
11756
/** Returns an existing ref with the same ownership (hard/soft, owner/pointer)
11757
    or creates it. With obj non-NULL it may return a relative offset, otherwise
11758
    always absolute.
11759
*/
11760
EXPORT Dwg_Object_Ref *dwg_add_handleref (Dwg_Data *restrict dwg,
11761
                                          const BITCODE_RC code,
11762
                                          const BITCODE_HV value,
11763
                                          const Dwg_Object *restrict obj);
11764
/** Return a link to the global ref or a new one. Or a NULLHDL. */
11765
EXPORT Dwg_Object_Ref *
11766
dwg_dup_handleref (Dwg_Data *restrict dwg, const Dwg_Object_Ref *restrict ref);
11767
11768
/** Creates a non-global, free'able handle ref. Never relative */
11769
EXPORT Dwg_Object_Ref *
11770
dwg_add_handleref_free (const BITCODE_RC code, const BITCODE_HV absref);
11771
11772
EXPORT const char *dwg_version_type (const Dwg_Version_Type version);
11773
EXPORT Dwg_Version_Type dwg_version_as (const char *version);
11774
EXPORT Dwg_Version_Type dwg_version_hdr_type (const char* hdr);
11775
EXPORT int dwg_supports_eed (const Dwg_Data *dwg);
11776
/* to read and write */
11777
EXPORT int dwg_supports_obj (const Dwg_Data *restrict dwg,
11778
                             const Dwg_Object *restrict obj);
11779
EXPORT void dwg_errstrings (int error);
11780
11781
EXPORT char *dwg_encrypt_SAT1 (BITCODE_BL blocksize,
11782
                               BITCODE_RC *restrict acis_data,
11783
                               int *restrict acis_data_offset);
11784
/* Converts v2 SAB acis_data in-place to SAT v1 encr_sat_data[].
11785
   Sets _obj->_dxf_sab_converted to 1, denoting that encr_sat_data is NOT the
11786
   encrypted acis_data anymore, rather the converted from SAB for DXF */
11787
EXPORT int dwg_convert_SAB_to_SAT1 (Dwg_Entity_3DSOLID *restrict _obj);
11788
11789
11790
/* The old color.index 0-256 */
11791
typedef struct rgbpalette {
11792
  unsigned char r,g,b;
11793
} Dwg_RGB_Palette;
11794
EXPORT const Dwg_RGB_Palette *dwg_rgb_palette (void);
11795
/* Returns the RGB value for the palette index.
11796
 */
11797
EXPORT BITCODE_BL dwg_rgb_palette_index (BITCODE_BS index);
11798
/* find a matching color index (0-255) for a truecolor rgb value.
11799
   returns 256 if not found, i.e. the default ByLayer.
11800
 */
11801
EXPORT BITCODE_BS dwg_find_color_index (BITCODE_BL rgb);
11802
11803
/** Add the empty object to the DWG.
11804
    Returns DWG_ERR_OUTOFMEM, -1 for realloced or 0 if not.
11805
    objects are allocated in bulk, and all old obj pointers may become invalid.
11806
    The new object is at &dwg->object[dwg->num_objects - 1].
11807
*/
11808
EXPORT int dwg_add_object (Dwg_Data *restrict dwg);
11809
11810
/* Find if an object name (our internal name, not anything used elsewhere)
11811
   is defined, and return our fixed type, the public dxfname and if it's an entity. */
11812
EXPORT int dwg_object_name (const char *const restrict name, // in
11813
                            const char **restrict dxfnamep,  // out, maybe NULL
11814
                            Dwg_Object_Type *restrict typep, // out, maybe NULL
11815
                            int *restrict is_entp,           // out, maybe NULL
11816
                            Dwg_Class_Stability *restrict stabilityp); // out, maybe NULL
11817
11818
/** Initialize the empty entity or object with its three structs.
11819
    All fields are zero'd, some are initialized with default values, as
11820
    defined in dwg.spec. obj->fixedtype is set, obj->type only for static types.
11821
    Use dwg_encode_get_class for the variable types.
11822
    Returns 0 or DWG_ERR_OUTOFMEM.
11823
*/
11824
// clang-format off
11825
/* Start auto-generated content. Do not touch. */
11826
// clang-format: off
11827
EXPORT int dwg_setup__3DFACE (Dwg_Object *obj);
11828
EXPORT int dwg_setup__3DLINE (Dwg_Object *obj);
11829
EXPORT int dwg_setup__3DSOLID (Dwg_Object *obj);
11830
EXPORT int dwg_setup_ARC (Dwg_Object *obj);
11831
EXPORT int dwg_setup_ATTDEF (Dwg_Object *obj);
11832
EXPORT int dwg_setup_ATTRIB (Dwg_Object *obj);
11833
EXPORT int dwg_setup_BLOCK (Dwg_Object *obj);
11834
EXPORT int dwg_setup_BODY (Dwg_Object *obj);
11835
EXPORT int dwg_setup_CIRCLE (Dwg_Object *obj);
11836
EXPORT int dwg_setup_DIMENSION_ALIGNED (Dwg_Object *obj);
11837
EXPORT int dwg_setup_DIMENSION_ANG2LN (Dwg_Object *obj);
11838
EXPORT int dwg_setup_DIMENSION_ANG3PT (Dwg_Object *obj);
11839
EXPORT int dwg_setup_DIMENSION_DIAMETER (Dwg_Object *obj);
11840
EXPORT int dwg_setup_DIMENSION_LINEAR (Dwg_Object *obj);
11841
EXPORT int dwg_setup_DIMENSION_ORDINATE (Dwg_Object *obj);
11842
EXPORT int dwg_setup_DIMENSION_RADIUS (Dwg_Object *obj);
11843
EXPORT int dwg_setup_ELLIPSE (Dwg_Object *obj);
11844
EXPORT int dwg_setup_ENDBLK (Dwg_Object *obj);
11845
EXPORT int dwg_setup_INSERT (Dwg_Object *obj);
11846
EXPORT int dwg_setup_LEADER (Dwg_Object *obj);
11847
EXPORT int dwg_setup_LINE (Dwg_Object *obj);
11848
EXPORT int dwg_setup_LOAD (Dwg_Object *obj);
11849
EXPORT int dwg_setup_MINSERT (Dwg_Object *obj);
11850
EXPORT int dwg_setup_MLINE (Dwg_Object *obj);
11851
EXPORT int dwg_setup_MTEXT (Dwg_Object *obj);
11852
EXPORT int dwg_setup_OLEFRAME (Dwg_Object *obj);
11853
EXPORT int dwg_setup_POINT (Dwg_Object *obj);
11854
EXPORT int dwg_setup_POLYLINE_2D (Dwg_Object *obj);
11855
EXPORT int dwg_setup_POLYLINE_3D (Dwg_Object *obj);
11856
EXPORT int dwg_setup_POLYLINE_MESH (Dwg_Object *obj);
11857
EXPORT int dwg_setup_POLYLINE_PFACE (Dwg_Object *obj);
11858
EXPORT int dwg_setup_PROXY_ENTITY (Dwg_Object *obj);
11859
EXPORT int dwg_setup_RAY (Dwg_Object *obj);
11860
EXPORT int dwg_setup_REGION (Dwg_Object *obj);
11861
EXPORT int dwg_setup_SEQEND (Dwg_Object *obj);
11862
EXPORT int dwg_setup_SHAPE (Dwg_Object *obj);
11863
EXPORT int dwg_setup_SOLID (Dwg_Object *obj);
11864
EXPORT int dwg_setup_SPLINE (Dwg_Object *obj);
11865
EXPORT int dwg_setup_TEXT (Dwg_Object *obj);
11866
EXPORT int dwg_setup_TOLERANCE (Dwg_Object *obj);
11867
EXPORT int dwg_setup_TRACE (Dwg_Object *obj);
11868
EXPORT int dwg_setup_UNKNOWN_ENT (Dwg_Object *obj);
11869
EXPORT int dwg_setup_VERTEX_2D (Dwg_Object *obj);
11870
EXPORT int dwg_setup_VERTEX_3D (Dwg_Object *obj);
11871
EXPORT int dwg_setup_VERTEX_MESH (Dwg_Object *obj);
11872
EXPORT int dwg_setup_VERTEX_PFACE (Dwg_Object *obj);
11873
EXPORT int dwg_setup_VERTEX_PFACE_FACE (Dwg_Object *obj);
11874
EXPORT int dwg_setup_VIEWPORT (Dwg_Object *obj);
11875
EXPORT int dwg_setup_XLINE (Dwg_Object *obj);
11876
EXPORT int dwg_setup_APPID (Dwg_Object *obj);
11877
EXPORT int dwg_setup_APPID_CONTROL (Dwg_Object *obj);
11878
EXPORT int dwg_setup_BLOCK_CONTROL (Dwg_Object *obj);
11879
EXPORT int dwg_setup_BLOCK_HEADER (Dwg_Object *obj);
11880
EXPORT int dwg_setup_DICTIONARY (Dwg_Object *obj);
11881
EXPORT int dwg_setup_DIMSTYLE (Dwg_Object *obj);
11882
EXPORT int dwg_setup_DIMSTYLE_CONTROL (Dwg_Object *obj);
11883
EXPORT int dwg_setup_DUMMY (Dwg_Object *obj);
11884
EXPORT int dwg_setup_LAYER (Dwg_Object *obj);
11885
EXPORT int dwg_setup_LAYER_CONTROL (Dwg_Object *obj);
11886
EXPORT int dwg_setup_LONG_TRANSACTION (Dwg_Object *obj);
11887
EXPORT int dwg_setup_LTYPE (Dwg_Object *obj);
11888
EXPORT int dwg_setup_LTYPE_CONTROL (Dwg_Object *obj);
11889
EXPORT int dwg_setup_MLINESTYLE (Dwg_Object *obj);
11890
EXPORT int dwg_setup_STYLE (Dwg_Object *obj);
11891
EXPORT int dwg_setup_STYLE_CONTROL (Dwg_Object *obj);
11892
EXPORT int dwg_setup_UCS (Dwg_Object *obj);
11893
EXPORT int dwg_setup_UCS_CONTROL (Dwg_Object *obj);
11894
EXPORT int dwg_setup_UNKNOWN_OBJ (Dwg_Object *obj);
11895
EXPORT int dwg_setup_VIEW (Dwg_Object *obj);
11896
EXPORT int dwg_setup_VIEW_CONTROL (Dwg_Object *obj);
11897
EXPORT int dwg_setup_VPORT (Dwg_Object *obj);
11898
EXPORT int dwg_setup_VPORT_CONTROL (Dwg_Object *obj);
11899
EXPORT int dwg_setup_VX_CONTROL (Dwg_Object *obj);
11900
EXPORT int dwg_setup_VX_TABLE_RECORD (Dwg_Object *obj);
11901
/* untyped > 500 */
11902
EXPORT int dwg_setup_ACIDBLOCKREFERENCE (Dwg_Object *obj);
11903
EXPORT int dwg_setup_ARC_DIMENSION (Dwg_Object *obj);
11904
EXPORT int dwg_setup_CAMERA (Dwg_Object *obj);
11905
EXPORT int dwg_setup_DGNUNDERLAY (Dwg_Object *obj);
11906
EXPORT int dwg_setup_DWFUNDERLAY (Dwg_Object *obj);
11907
EXPORT int dwg_setup_ENDREP (Dwg_Object *obj);
11908
EXPORT int dwg_setup_HATCH (Dwg_Object *obj);
11909
EXPORT int dwg_setup_IMAGE (Dwg_Object *obj);
11910
EXPORT int dwg_setup_JUMP (Dwg_Object *obj);
11911
EXPORT int dwg_setup_LIGHT (Dwg_Object *obj);
11912
EXPORT int dwg_setup_LWPOLYLINE (Dwg_Object *obj);
11913
EXPORT int dwg_setup_MESH (Dwg_Object *obj);
11914
EXPORT int dwg_setup_MULTILEADER (Dwg_Object *obj);
11915
EXPORT int dwg_setup_OLE2FRAME (Dwg_Object *obj);
11916
EXPORT int dwg_setup_PDFUNDERLAY (Dwg_Object *obj);
11917
EXPORT int dwg_setup_REPEAT (Dwg_Object *obj);
11918
EXPORT int dwg_setup_SECTIONOBJECT (Dwg_Object *obj);
11919
EXPORT int dwg_setup_TABLE (Dwg_Object *obj);
11920
EXPORT int dwg_setup_WIPEOUT (Dwg_Object *obj);
11921
EXPORT int dwg_setup_ACSH_BOOLEAN_CLASS (Dwg_Object *obj);
11922
EXPORT int dwg_setup_ACSH_BOX_CLASS (Dwg_Object *obj);
11923
EXPORT int dwg_setup_ACSH_CONE_CLASS (Dwg_Object *obj);
11924
EXPORT int dwg_setup_ACSH_CYLINDER_CLASS (Dwg_Object *obj);
11925
EXPORT int dwg_setup_ACSH_FILLET_CLASS (Dwg_Object *obj);
11926
EXPORT int dwg_setup_ACSH_HISTORY_CLASS (Dwg_Object *obj);
11927
EXPORT int dwg_setup_ACSH_SPHERE_CLASS (Dwg_Object *obj);
11928
EXPORT int dwg_setup_ACSH_TORUS_CLASS (Dwg_Object *obj);
11929
EXPORT int dwg_setup_ACSH_WEDGE_CLASS (Dwg_Object *obj);
11930
EXPORT int dwg_setup_ALDIMOBJECTCONTEXTDATA (Dwg_Object *obj);
11931
EXPORT int dwg_setup_ASSOCGEOMDEPENDENCY (Dwg_Object *obj);
11932
EXPORT int dwg_setup_ASSOCNETWORK (Dwg_Object *obj);
11933
EXPORT int dwg_setup_BLKREFOBJECTCONTEXTDATA (Dwg_Object *obj);
11934
EXPORT int dwg_setup_BLOCKALIGNMENTGRIP (Dwg_Object *obj);
11935
EXPORT int dwg_setup_BLOCKALIGNMENTPARAMETER (Dwg_Object *obj);
11936
EXPORT int dwg_setup_BLOCKBASEPOINTPARAMETER (Dwg_Object *obj);
11937
EXPORT int dwg_setup_BLOCKFLIPACTION (Dwg_Object *obj);
11938
EXPORT int dwg_setup_BLOCKFLIPGRIP (Dwg_Object *obj);
11939
EXPORT int dwg_setup_BLOCKFLIPPARAMETER (Dwg_Object *obj);
11940
EXPORT int dwg_setup_BLOCKGRIPLOCATIONCOMPONENT (Dwg_Object *obj);
11941
EXPORT int dwg_setup_BLOCKLINEARGRIP (Dwg_Object *obj);
11942
EXPORT int dwg_setup_BLOCKLOOKUPGRIP (Dwg_Object *obj);
11943
EXPORT int dwg_setup_BLOCKMOVEACTION (Dwg_Object *obj);
11944
EXPORT int dwg_setup_BLOCKROTATEACTION (Dwg_Object *obj);
11945
EXPORT int dwg_setup_BLOCKROTATIONGRIP (Dwg_Object *obj);
11946
EXPORT int dwg_setup_BLOCKSCALEACTION (Dwg_Object *obj);
11947
EXPORT int dwg_setup_BLOCKVISIBILITYGRIP (Dwg_Object *obj);
11948
EXPORT int dwg_setup_CELLSTYLEMAP (Dwg_Object *obj);
11949
EXPORT int dwg_setup_DETAILVIEWSTYLE (Dwg_Object *obj);
11950
EXPORT int dwg_setup_DICTIONARYVAR (Dwg_Object *obj);
11951
EXPORT int dwg_setup_DICTIONARYWDFLT (Dwg_Object *obj);
11952
EXPORT int dwg_setup_DIMASSOC (Dwg_Object *obj);
11953
EXPORT int dwg_setup_DYNAMICBLOCKPURGEPREVENTER (Dwg_Object *obj);
11954
EXPORT int dwg_setup_FIELD (Dwg_Object *obj);
11955
EXPORT int dwg_setup_FIELDLIST (Dwg_Object *obj);
11956
EXPORT int dwg_setup_GEODATA (Dwg_Object *obj);
11957
EXPORT int dwg_setup_GROUP (Dwg_Object *obj);
11958
EXPORT int dwg_setup_IDBUFFER (Dwg_Object *obj);
11959
EXPORT int dwg_setup_IMAGEDEF (Dwg_Object *obj);
11960
EXPORT int dwg_setup_IMAGEDEF_REACTOR (Dwg_Object *obj);
11961
EXPORT int dwg_setup_INDEX (Dwg_Object *obj);
11962
EXPORT int dwg_setup_LAYER_FILTER (Dwg_Object *obj);
11963
EXPORT int dwg_setup_LAYER_INDEX (Dwg_Object *obj);
11964
EXPORT int dwg_setup_LAYOUT (Dwg_Object *obj);
11965
EXPORT int dwg_setup_LEADEROBJECTCONTEXTDATA (Dwg_Object *obj);
11966
EXPORT int dwg_setup_MLEADERSTYLE (Dwg_Object *obj);
11967
EXPORT int dwg_setup_MTEXTOBJECTCONTEXTDATA (Dwg_Object *obj);
11968
EXPORT int dwg_setup_PLACEHOLDER (Dwg_Object *obj);
11969
EXPORT int dwg_setup_PLOTSETTINGS (Dwg_Object *obj);
11970
EXPORT int dwg_setup_RASTERVARIABLES (Dwg_Object *obj);
11971
EXPORT int dwg_setup_RENDERENVIRONMENT (Dwg_Object *obj);
11972
EXPORT int dwg_setup_SCALE (Dwg_Object *obj);
11973
EXPORT int dwg_setup_SECTIONVIEWSTYLE (Dwg_Object *obj);
11974
EXPORT int dwg_setup_SECTION_MANAGER (Dwg_Object *obj);
11975
EXPORT int dwg_setup_SORTENTSTABLE (Dwg_Object *obj);
11976
EXPORT int dwg_setup_SPATIAL_FILTER (Dwg_Object *obj);
11977
EXPORT int dwg_setup_SUN (Dwg_Object *obj);
11978
EXPORT int dwg_setup_TABLEGEOMETRY (Dwg_Object *obj);
11979
EXPORT int dwg_setup_TEXTOBJECTCONTEXTDATA (Dwg_Object *obj);
11980
EXPORT int dwg_setup_VBA_PROJECT (Dwg_Object *obj);
11981
EXPORT int dwg_setup_VISUALSTYLE (Dwg_Object *obj);
11982
EXPORT int dwg_setup_WIPEOUTVARIABLES (Dwg_Object *obj);
11983
EXPORT int dwg_setup_XRECORD (Dwg_Object *obj);
11984
EXPORT int dwg_setup_PDFDEFINITION (Dwg_Object *obj);
11985
EXPORT int dwg_setup_DGNDEFINITION (Dwg_Object *obj);
11986
EXPORT int dwg_setup_DWFDEFINITION (Dwg_Object *obj);
11987
/* unstable */
11988
EXPORT int dwg_setup_HELIX (Dwg_Object *obj);
11989
EXPORT int dwg_setup_LARGE_RADIAL_DIMENSION (Dwg_Object *obj);
11990
EXPORT int dwg_setup_LAYOUTPRINTCONFIG (Dwg_Object *obj);
11991
EXPORT int dwg_setup_PLANESURFACE (Dwg_Object *obj);
11992
EXPORT int dwg_setup_POINTCLOUD (Dwg_Object *obj);
11993
EXPORT int dwg_setup_POINTCLOUDEX (Dwg_Object *obj);
11994
EXPORT int dwg_setup_ACSH_BREP_CLASS (Dwg_Object *obj);
11995
EXPORT int dwg_setup_ACSH_CHAMFER_CLASS (Dwg_Object *obj);
11996
EXPORT int dwg_setup_ACSH_PYRAMID_CLASS (Dwg_Object *obj);
11997
EXPORT int dwg_setup_ASSOC2DCONSTRAINTGROUP (Dwg_Object *obj);
11998
EXPORT int dwg_setup_ASSOCACTION (Dwg_Object *obj);
11999
EXPORT int dwg_setup_ASSOCACTIONPARAM (Dwg_Object *obj);
12000
EXPORT int dwg_setup_ASSOCARRAYACTIONBODY (Dwg_Object *obj);
12001
EXPORT int dwg_setup_ASSOCASMBODYACTIONPARAM (Dwg_Object *obj);
12002
EXPORT int dwg_setup_ASSOCBLENDSURFACEACTIONBODY (Dwg_Object *obj);
12003
EXPORT int dwg_setup_ASSOCCOMPOUNDACTIONPARAM (Dwg_Object *obj);
12004
EXPORT int dwg_setup_ASSOCDEPENDENCY (Dwg_Object *obj);
12005
EXPORT int dwg_setup_ASSOCDIMDEPENDENCYBODY (Dwg_Object *obj);
12006
EXPORT int dwg_setup_ASSOCEXTENDSURFACEACTIONBODY (Dwg_Object *obj);
12007
EXPORT int dwg_setup_ASSOCEXTRUDEDSURFACEACTIONBODY (Dwg_Object *obj);
12008
EXPORT int dwg_setup_ASSOCFACEACTIONPARAM (Dwg_Object *obj);
12009
EXPORT int dwg_setup_ASSOCFILLETSURFACEACTIONBODY (Dwg_Object *obj);
12010
EXPORT int dwg_setup_ASSOCLOFTEDSURFACEACTIONBODY (Dwg_Object *obj);
12011
EXPORT int dwg_setup_ASSOCNETWORKSURFACEACTIONBODY (Dwg_Object *obj);
12012
EXPORT int dwg_setup_ASSOCOBJECTACTIONPARAM (Dwg_Object *obj);
12013
EXPORT int dwg_setup_ASSOCOFFSETSURFACEACTIONBODY (Dwg_Object *obj);
12014
EXPORT int dwg_setup_ASSOCOSNAPPOINTREFACTIONPARAM (Dwg_Object *obj);
12015
EXPORT int dwg_setup_ASSOCPATCHSURFACEACTIONBODY (Dwg_Object *obj);
12016
EXPORT int dwg_setup_ASSOCPATHACTIONPARAM (Dwg_Object *obj);
12017
EXPORT int dwg_setup_ASSOCPLANESURFACEACTIONBODY (Dwg_Object *obj);
12018
EXPORT int dwg_setup_ASSOCPOINTREFACTIONPARAM (Dwg_Object *obj);
12019
EXPORT int dwg_setup_ASSOCREVOLVEDSURFACEACTIONBODY (Dwg_Object *obj);
12020
EXPORT int dwg_setup_ASSOCTRIMSURFACEACTIONBODY (Dwg_Object *obj);
12021
EXPORT int dwg_setup_ASSOCVALUEDEPENDENCY (Dwg_Object *obj);
12022
EXPORT int dwg_setup_ASSOCVARIABLE (Dwg_Object *obj);
12023
EXPORT int dwg_setup_ASSOCVERTEXACTIONPARAM (Dwg_Object *obj);
12024
EXPORT int dwg_setup_BLOCKALIGNEDCONSTRAINTPARAMETER (Dwg_Object *obj);
12025
EXPORT int dwg_setup_BLOCKANGULARCONSTRAINTPARAMETER (Dwg_Object *obj);
12026
EXPORT int dwg_setup_BLOCKARRAYACTION (Dwg_Object *obj);
12027
EXPORT int dwg_setup_BLOCKDIAMETRICCONSTRAINTPARAMETER (Dwg_Object *obj);
12028
EXPORT int dwg_setup_BLOCKHORIZONTALCONSTRAINTPARAMETER (Dwg_Object *obj);
12029
EXPORT int dwg_setup_BLOCKLINEARCONSTRAINTPARAMETER (Dwg_Object *obj);
12030
EXPORT int dwg_setup_BLOCKLINEARPARAMETER (Dwg_Object *obj);
12031
EXPORT int dwg_setup_BLOCKLOOKUPACTION (Dwg_Object *obj);
12032
EXPORT int dwg_setup_BLOCKLOOKUPPARAMETER (Dwg_Object *obj);
12033
EXPORT int dwg_setup_BLOCKPARAMDEPENDENCYBODY (Dwg_Object *obj);
12034
EXPORT int dwg_setup_BLOCKPOINTPARAMETER (Dwg_Object *obj);
12035
EXPORT int dwg_setup_BLOCKPOLARGRIP (Dwg_Object *obj);
12036
EXPORT int dwg_setup_BLOCKPOLARPARAMETER (Dwg_Object *obj);
12037
EXPORT int dwg_setup_BLOCKPOLARSTRETCHACTION (Dwg_Object *obj);
12038
EXPORT int dwg_setup_BLOCKRADIALCONSTRAINTPARAMETER (Dwg_Object *obj);
12039
EXPORT int dwg_setup_BLOCKREPRESENTATION (Dwg_Object *obj);
12040
EXPORT int dwg_setup_BLOCKROTATIONPARAMETER (Dwg_Object *obj);
12041
EXPORT int dwg_setup_BLOCKSTRETCHACTION (Dwg_Object *obj);
12042
EXPORT int dwg_setup_BLOCKUSERPARAMETER (Dwg_Object *obj);
12043
EXPORT int dwg_setup_BLOCKVERTICALCONSTRAINTPARAMETER (Dwg_Object *obj);
12044
EXPORT int dwg_setup_BLOCKVISIBILITYPARAMETER (Dwg_Object *obj);
12045
EXPORT int dwg_setup_BLOCKXYGRIP (Dwg_Object *obj);
12046
EXPORT int dwg_setup_BLOCKXYPARAMETER (Dwg_Object *obj);
12047
EXPORT int dwg_setup_DATALINK (Dwg_Object *obj);
12048
EXPORT int dwg_setup_DBCOLOR (Dwg_Object *obj);
12049
EXPORT int dwg_setup_EVALUATION_GRAPH (Dwg_Object *obj);
12050
EXPORT int dwg_setup_FCFOBJECTCONTEXTDATA (Dwg_Object *obj);
12051
EXPORT int dwg_setup_GRADIENT_BACKGROUND (Dwg_Object *obj);
12052
EXPORT int dwg_setup_GROUND_PLANE_BACKGROUND (Dwg_Object *obj);
12053
EXPORT int dwg_setup_IBL_BACKGROUND (Dwg_Object *obj);
12054
EXPORT int dwg_setup_IMAGE_BACKGROUND (Dwg_Object *obj);
12055
EXPORT int dwg_setup_LIGHTLIST (Dwg_Object *obj);
12056
EXPORT int dwg_setup_MATERIAL (Dwg_Object *obj);
12057
EXPORT int dwg_setup_MENTALRAYRENDERSETTINGS (Dwg_Object *obj);
12058
EXPORT int dwg_setup_OBJECT_PTR (Dwg_Object *obj);
12059
EXPORT int dwg_setup_PARTIAL_VIEWING_INDEX (Dwg_Object *obj);
12060
EXPORT int dwg_setup_POINTCLOUDCOLORMAP (Dwg_Object *obj);
12061
EXPORT int dwg_setup_POINTCLOUDDEF (Dwg_Object *obj);
12062
EXPORT int dwg_setup_POINTCLOUDDEFEX (Dwg_Object *obj);
12063
EXPORT int dwg_setup_POINTCLOUDDEF_REACTOR (Dwg_Object *obj);
12064
EXPORT int dwg_setup_POINTCLOUDDEF_REACTOR_EX (Dwg_Object *obj);
12065
EXPORT int dwg_setup_PROXY_OBJECT (Dwg_Object *obj);
12066
EXPORT int dwg_setup_RAPIDRTRENDERSETTINGS (Dwg_Object *obj);
12067
EXPORT int dwg_setup_RENDERENTRY (Dwg_Object *obj);
12068
EXPORT int dwg_setup_RENDERGLOBAL (Dwg_Object *obj);
12069
EXPORT int dwg_setup_RENDERSETTINGS (Dwg_Object *obj);
12070
EXPORT int dwg_setup_SECTION_SETTINGS (Dwg_Object *obj);
12071
EXPORT int dwg_setup_SKYLIGHT_BACKGROUND (Dwg_Object *obj);
12072
EXPORT int dwg_setup_SOLID_BACKGROUND (Dwg_Object *obj);
12073
EXPORT int dwg_setup_SPATIAL_INDEX (Dwg_Object *obj);
12074
EXPORT int dwg_setup_TABLECONTENT (Dwg_Object *obj);
12075
EXPORT int dwg_setup_TABLESTYLE (Dwg_Object *obj);
12076
EXPORT int dwg_setup_ASSOCARRAYMODIFYPARAMETERS (Dwg_Object *obj);
12077
EXPORT int dwg_setup_ASSOCARRAYPATHPARAMETERS (Dwg_Object *obj);
12078
EXPORT int dwg_setup_ASSOCARRAYPOLARPARAMETERS (Dwg_Object *obj);
12079
EXPORT int dwg_setup_ASSOCARRAYRECTANGULARPARAMETERS (Dwg_Object *obj);
12080
#ifdef DEBUG_CLASSES
12081
  EXPORT int dwg_setup_ALIGNMENTPARAMETERENTITY (Dwg_Object *obj);
12082
  EXPORT int dwg_setup_ARCALIGNEDTEXT (Dwg_Object *obj);
12083
  EXPORT int dwg_setup_BASEPOINTPARAMETERENTITY (Dwg_Object *obj);
12084
  EXPORT int dwg_setup_EXTRUDEDSURFACE (Dwg_Object *obj);
12085
  EXPORT int dwg_setup_FLIPGRIPENTITY (Dwg_Object *obj);
12086
  EXPORT int dwg_setup_FLIPPARAMETERENTITY (Dwg_Object *obj);
12087
  EXPORT int dwg_setup_GEOPOSITIONMARKER (Dwg_Object *obj);
12088
  EXPORT int dwg_setup_LINEARGRIPENTITY (Dwg_Object *obj);
12089
  EXPORT int dwg_setup_LINEARPARAMETERENTITY (Dwg_Object *obj);
12090
  EXPORT int dwg_setup_LOFTEDSURFACE (Dwg_Object *obj);
12091
  EXPORT int dwg_setup_MPOLYGON (Dwg_Object *obj);
12092
  EXPORT int dwg_setup_NAVISWORKSMODEL (Dwg_Object *obj);
12093
  EXPORT int dwg_setup_NURBSURFACE (Dwg_Object *obj);
12094
  EXPORT int dwg_setup_POINTPARAMETERENTITY (Dwg_Object *obj);
12095
  EXPORT int dwg_setup_POLARGRIPENTITY (Dwg_Object *obj);
12096
  EXPORT int dwg_setup_REVOLVEDSURFACE (Dwg_Object *obj);
12097
  EXPORT int dwg_setup_ROTATIONGRIPENTITY (Dwg_Object *obj);
12098
  EXPORT int dwg_setup_ROTATIONPARAMETERENTITY (Dwg_Object *obj);
12099
  EXPORT int dwg_setup_RTEXT (Dwg_Object *obj);
12100
  EXPORT int dwg_setup_SWEPTSURFACE (Dwg_Object *obj);
12101
  EXPORT int dwg_setup_VISIBILITYGRIPENTITY (Dwg_Object *obj);
12102
  EXPORT int dwg_setup_VISIBILITYPARAMETERENTITY (Dwg_Object *obj);
12103
  EXPORT int dwg_setup_XYGRIPENTITY (Dwg_Object *obj);
12104
  EXPORT int dwg_setup_XYPARAMETERENTITY (Dwg_Object *obj);
12105
  EXPORT int dwg_setup_ACMECOMMANDHISTORY (Dwg_Object *obj);
12106
  EXPORT int dwg_setup_ACMESCOPE (Dwg_Object *obj);
12107
  EXPORT int dwg_setup_ACMESTATEMGR (Dwg_Object *obj);
12108
  EXPORT int dwg_setup_ACSH_EXTRUSION_CLASS (Dwg_Object *obj);
12109
  EXPORT int dwg_setup_ACSH_LOFT_CLASS (Dwg_Object *obj);
12110
  EXPORT int dwg_setup_ACSH_REVOLVE_CLASS (Dwg_Object *obj);
12111
  EXPORT int dwg_setup_ACSH_SWEEP_CLASS (Dwg_Object *obj);
12112
  EXPORT int dwg_setup_ANGDIMOBJECTCONTEXTDATA (Dwg_Object *obj);
12113
  EXPORT int dwg_setup_ANNOTSCALEOBJECTCONTEXTDATA (Dwg_Object *obj);
12114
  EXPORT int dwg_setup_ASSOC3POINTANGULARDIMACTIONBODY (Dwg_Object *obj);
12115
  EXPORT int dwg_setup_ASSOCALIGNEDDIMACTIONBODY (Dwg_Object *obj);
12116
  EXPORT int dwg_setup_ASSOCARRAYMODIFYACTIONBODY (Dwg_Object *obj);
12117
  EXPORT int dwg_setup_ASSOCEDGEACTIONPARAM (Dwg_Object *obj);
12118
  EXPORT int dwg_setup_ASSOCEDGECHAMFERACTIONBODY (Dwg_Object *obj);
12119
  EXPORT int dwg_setup_ASSOCEDGEFILLETACTIONBODY (Dwg_Object *obj);
12120
  EXPORT int dwg_setup_ASSOCMLEADERACTIONBODY (Dwg_Object *obj);
12121
  EXPORT int dwg_setup_ASSOCORDINATEDIMACTIONBODY (Dwg_Object *obj);
12122
  EXPORT int dwg_setup_ASSOCPERSSUBENTMANAGER (Dwg_Object *obj);
12123
  EXPORT int dwg_setup_ASSOCRESTOREENTITYSTATEACTIONBODY (Dwg_Object *obj);
12124
  EXPORT int dwg_setup_ASSOCROTATEDDIMACTIONBODY (Dwg_Object *obj);
12125
  EXPORT int dwg_setup_ASSOCSWEPTSURFACEACTIONBODY (Dwg_Object *obj);
12126
  EXPORT int dwg_setup_BLOCKPROPERTIESTABLE (Dwg_Object *obj);
12127
  EXPORT int dwg_setup_BLOCKPROPERTIESTABLEGRIP (Dwg_Object *obj);
12128
  EXPORT int dwg_setup_BREAKDATA (Dwg_Object *obj);
12129
  EXPORT int dwg_setup_BREAKPOINTREF (Dwg_Object *obj);
12130
  EXPORT int dwg_setup_CONTEXTDATAMANAGER (Dwg_Object *obj);
12131
  EXPORT int dwg_setup_CSACDOCUMENTOPTIONS (Dwg_Object *obj);
12132
  EXPORT int dwg_setup_CURVEPATH (Dwg_Object *obj);
12133
  EXPORT int dwg_setup_DATATABLE (Dwg_Object *obj);
12134
  EXPORT int dwg_setup_DMDIMOBJECTCONTEXTDATA (Dwg_Object *obj);
12135
  EXPORT int dwg_setup_DYNAMICBLOCKPROXYNODE (Dwg_Object *obj);
12136
  EXPORT int dwg_setup_GEOMAPIMAGE (Dwg_Object *obj);
12137
  EXPORT int dwg_setup_MLEADEROBJECTCONTEXTDATA (Dwg_Object *obj);
12138
  EXPORT int dwg_setup_MOTIONPATH (Dwg_Object *obj);
12139
  EXPORT int dwg_setup_MTEXTATTRIBUTEOBJECTCONTEXTDATA (Dwg_Object *obj);
12140
  EXPORT int dwg_setup_NAVISWORKSMODELDEF (Dwg_Object *obj);
12141
  EXPORT int dwg_setup_ORDDIMOBJECTCONTEXTDATA (Dwg_Object *obj);
12142
  EXPORT int dwg_setup_PERSUBENTMGR (Dwg_Object *obj);
12143
  EXPORT int dwg_setup_POINTPATH (Dwg_Object *obj);
12144
  EXPORT int dwg_setup_RADIMLGOBJECTCONTEXTDATA (Dwg_Object *obj);
12145
  EXPORT int dwg_setup_RADIMOBJECTCONTEXTDATA (Dwg_Object *obj);
12146
  EXPORT int dwg_setup_SUNSTUDY (Dwg_Object *obj);
12147
  EXPORT int dwg_setup_TVDEVICEPROPERTIES (Dwg_Object *obj);
12148
  //EXPORT int dwg_setup_ABSHDRAWINGSETTINGS (Dwg_Object *obj);
12149
  //EXPORT int dwg_setup_ACAECUSTOBJ (Dwg_Object *obj);
12150
  //EXPORT int dwg_setup_ACAEEEMGROBJ (Dwg_Object *obj);
12151
  //EXPORT int dwg_setup_ACAMCOMP (Dwg_Object *obj);
12152
  //EXPORT int dwg_setup_ACAMCOMPDEF (Dwg_Object *obj);
12153
  //EXPORT int dwg_setup_ACAMCOMPDEFMGR (Dwg_Object *obj);
12154
  //EXPORT int dwg_setup_ACAMCONTEXTMODELER (Dwg_Object *obj);
12155
  //EXPORT int dwg_setup_ACAMGDIMSTD (Dwg_Object *obj);
12156
  //EXPORT int dwg_setup_ACAMGFILTERDAT (Dwg_Object *obj);
12157
  //EXPORT int dwg_setup_ACAMGHOLECHARTSTDCSN (Dwg_Object *obj);
12158
  //EXPORT int dwg_setup_ACAMGHOLECHARTSTDDIN (Dwg_Object *obj);
12159
  //EXPORT int dwg_setup_ACAMGHOLECHARTSTDISO (Dwg_Object *obj);
12160
  //EXPORT int dwg_setup_ACAMGLAYSTD (Dwg_Object *obj);
12161
  //EXPORT int dwg_setup_ACAMGRCOMPDEF (Dwg_Object *obj);
12162
  //EXPORT int dwg_setup_ACAMGRCOMPDEFSET (Dwg_Object *obj);
12163
  //EXPORT int dwg_setup_ACAMGTITLESTD (Dwg_Object *obj);
12164
  //EXPORT int dwg_setup_ACAMMVDBACKUPOBJECT (Dwg_Object *obj);
12165
  //EXPORT int dwg_setup_ACAMPROJECT (Dwg_Object *obj);
12166
  //EXPORT int dwg_setup_ACAMSHAFTCOMPDEF (Dwg_Object *obj);
12167
  //EXPORT int dwg_setup_ACAMSTDPCOMPDEF (Dwg_Object *obj);
12168
  //EXPORT int dwg_setup_ACAMWBLOCKTEMPENTS (Dwg_Object *obj);
12169
  //EXPORT int dwg_setup_ACARRAYJIGENTITY (Dwg_Object *obj);
12170
  //EXPORT int dwg_setup_ACCMCONTEXT (Dwg_Object *obj);
12171
  //EXPORT int dwg_setup_ACDBCIRCARCRES (Dwg_Object *obj);
12172
  //EXPORT int dwg_setup_ACDBDIMENSIONRES (Dwg_Object *obj);
12173
  //EXPORT int dwg_setup_ACDBENTITYCACHE (Dwg_Object *obj);
12174
  //EXPORT int dwg_setup_ACDBLINERES (Dwg_Object *obj);
12175
  //EXPORT int dwg_setup_ACDBSTDPARTRES_ARC (Dwg_Object *obj);
12176
  //EXPORT int dwg_setup_ACDBSTDPARTRES_LINE (Dwg_Object *obj);
12177
  //EXPORT int dwg_setup_ACDB_HATCHSCALECONTEXTDATA_CLASS (Dwg_Object *obj);
12178
  //EXPORT int dwg_setup_ACDB_HATCHVIEWCONTEXTDATA_CLASS (Dwg_Object *obj);
12179
  //EXPORT int dwg_setup_ACDB_PROXY_ENTITY_DATA (Dwg_Object *obj);
12180
  //EXPORT int dwg_setup_ACDSRECORD (Dwg_Object *obj);
12181
  //EXPORT int dwg_setup_ACDSSCHEMA (Dwg_Object *obj);
12182
  //EXPORT int dwg_setup_ACGREFACADMASTER (Dwg_Object *obj);
12183
  //EXPORT int dwg_setup_ACGREFMASTER (Dwg_Object *obj);
12184
  //EXPORT int dwg_setup_ACIMINTSYSVAR (Dwg_Object *obj);
12185
  //EXPORT int dwg_setup_ACIMREALSYSVAR (Dwg_Object *obj);
12186
  //EXPORT int dwg_setup_ACIMSTRSYSVAR (Dwg_Object *obj);
12187
  //EXPORT int dwg_setup_ACIMSYSVARMAN (Dwg_Object *obj);
12188
  //EXPORT int dwg_setup_ACMANOOTATIONVIEWSTANDARDANSI (Dwg_Object *obj);
12189
  //EXPORT int dwg_setup_ACMANOOTATIONVIEWSTANDARDCSN (Dwg_Object *obj);
12190
  //EXPORT int dwg_setup_ACMANOOTATIONVIEWSTANDARDDIN (Dwg_Object *obj);
12191
  //EXPORT int dwg_setup_ACMANOOTATIONVIEWSTANDARDISO (Dwg_Object *obj);
12192
  //EXPORT int dwg_setup_ACMAPLEGENDDBOBJECT (Dwg_Object *obj);
12193
  //EXPORT int dwg_setup_ACMAPLEGENDITEMDBOBJECT (Dwg_Object *obj);
12194
  //EXPORT int dwg_setup_ACMAPMAPVIEWPORTDBOBJECT (Dwg_Object *obj);
12195
  //EXPORT int dwg_setup_ACMAPPRINTLAYOUTELEMENTDBOBJECTCONTAINER (Dwg_Object *obj);
12196
  //EXPORT int dwg_setup_ACMBALLOON (Dwg_Object *obj);
12197
  //EXPORT int dwg_setup_ACMBOM (Dwg_Object *obj);
12198
  //EXPORT int dwg_setup_ACMBOMROW (Dwg_Object *obj);
12199
  //EXPORT int dwg_setup_ACMBOMROWSTRUCT (Dwg_Object *obj);
12200
  //EXPORT int dwg_setup_ACMBOMSTANDARDANSI (Dwg_Object *obj);
12201
  //EXPORT int dwg_setup_ACMBOMSTANDARDCSN (Dwg_Object *obj);
12202
  //EXPORT int dwg_setup_ACMBOMSTANDARDDIN (Dwg_Object *obj);
12203
  //EXPORT int dwg_setup_ACMBOMSTANDARDISO (Dwg_Object *obj);
12204
  //EXPORT int dwg_setup_ACMCENTERLINESTANDARDANSI (Dwg_Object *obj);
12205
  //EXPORT int dwg_setup_ACMCENTERLINESTANDARDCSN (Dwg_Object *obj);
12206
  //EXPORT int dwg_setup_ACMCENTERLINESTANDARDDIN (Dwg_Object *obj);
12207
  //EXPORT int dwg_setup_ACMCENTERLINESTANDARDISO (Dwg_Object *obj);
12208
  //EXPORT int dwg_setup_ACMDATADICTIONARY (Dwg_Object *obj);
12209
  //EXPORT int dwg_setup_ACMDATAENTRY (Dwg_Object *obj);
12210
  //EXPORT int dwg_setup_ACMDATAENTRYBLOCK (Dwg_Object *obj);
12211
  //EXPORT int dwg_setup_ACMDATUMID (Dwg_Object *obj);
12212
  //EXPORT int dwg_setup_ACMDATUMSTANDARDANSI (Dwg_Object *obj);
12213
  //EXPORT int dwg_setup_ACMDATUMSTANDARDCSN (Dwg_Object *obj);
12214
  //EXPORT int dwg_setup_ACMDATUMSTANDARDDIN (Dwg_Object *obj);
12215
  //EXPORT int dwg_setup_ACMDATUMSTANDARDISO (Dwg_Object *obj);
12216
  //EXPORT int dwg_setup_ACMDATUMSTANDARDISO2012 (Dwg_Object *obj);
12217
  //EXPORT int dwg_setup_ACMDETAILSTANDARDANSI (Dwg_Object *obj);
12218
  //EXPORT int dwg_setup_ACMDETAILSTANDARDCSN (Dwg_Object *obj);
12219
  //EXPORT int dwg_setup_ACMDETAILSTANDARDDIN (Dwg_Object *obj);
12220
  //EXPORT int dwg_setup_ACMDETAILSTANDARDISO (Dwg_Object *obj);
12221
  //EXPORT int dwg_setup_ACMDETAILTANDARDCUSTOM (Dwg_Object *obj);
12222
  //EXPORT int dwg_setup_ACMDIMBREAKPERSREACTOR (Dwg_Object *obj);
12223
  //EXPORT int dwg_setup_ACMEDRAWINGMAN (Dwg_Object *obj);
12224
  //EXPORT int dwg_setup_ACMEVIEW (Dwg_Object *obj);
12225
  //EXPORT int dwg_setup_ACME_DATABASE (Dwg_Object *obj);
12226
  //EXPORT int dwg_setup_ACME_DOCUMENT (Dwg_Object *obj);
12227
  //EXPORT int dwg_setup_ACMFCFRAME (Dwg_Object *obj);
12228
  //EXPORT int dwg_setup_ACMFCFSTANDARDANSI (Dwg_Object *obj);
12229
  //EXPORT int dwg_setup_ACMFCFSTANDARDCSN (Dwg_Object *obj);
12230
  //EXPORT int dwg_setup_ACMFCFSTANDARDDIN (Dwg_Object *obj);
12231
  //EXPORT int dwg_setup_ACMFCFSTANDARDISO (Dwg_Object *obj);
12232
  //EXPORT int dwg_setup_ACMFCFSTANDARDISO2004 (Dwg_Object *obj);
12233
  //EXPORT int dwg_setup_ACMFCFSTANDARDISO2012 (Dwg_Object *obj);
12234
  //EXPORT int dwg_setup_ACMIDSTANDARDANSI (Dwg_Object *obj);
12235
  //EXPORT int dwg_setup_ACMIDSTANDARDCSN (Dwg_Object *obj);
12236
  //EXPORT int dwg_setup_ACMIDSTANDARDDIN (Dwg_Object *obj);
12237
  //EXPORT int dwg_setup_ACMIDSTANDARDISO (Dwg_Object *obj);
12238
  //EXPORT int dwg_setup_ACMIDSTANDARDISO2004 (Dwg_Object *obj);
12239
  //EXPORT int dwg_setup_ACMIDSTANDARDISO2012 (Dwg_Object *obj);
12240
  //EXPORT int dwg_setup_ACMNOTESTANDARDANSI (Dwg_Object *obj);
12241
  //EXPORT int dwg_setup_ACMNOTESTANDARDCSN (Dwg_Object *obj);
12242
  //EXPORT int dwg_setup_ACMNOTESTANDARDDIN (Dwg_Object *obj);
12243
  //EXPORT int dwg_setup_ACMNOTESTANDARDISO (Dwg_Object *obj);
12244
  //EXPORT int dwg_setup_ACMPARTLIST (Dwg_Object *obj);
12245
  //EXPORT int dwg_setup_ACMPICKOBJ (Dwg_Object *obj);
12246
  //EXPORT int dwg_setup_ACMSECTIONSTANDARDANSI (Dwg_Object *obj);
12247
  //EXPORT int dwg_setup_ACMSECTIONSTANDARDCSN2002 (Dwg_Object *obj);
12248
  //EXPORT int dwg_setup_ACMSECTIONSTANDARDCUSTOM (Dwg_Object *obj);
12249
  //EXPORT int dwg_setup_ACMSECTIONSTANDARDDIN (Dwg_Object *obj);
12250
  //EXPORT int dwg_setup_ACMSECTIONSTANDARDISO (Dwg_Object *obj);
12251
  //EXPORT int dwg_setup_ACMSECTIONSTANDARDISO2001 (Dwg_Object *obj);
12252
  //EXPORT int dwg_setup_ACMSTANDARDANSI (Dwg_Object *obj);
12253
  //EXPORT int dwg_setup_ACMSTANDARDCSN (Dwg_Object *obj);
12254
  //EXPORT int dwg_setup_ACMSTANDARDDIN (Dwg_Object *obj);
12255
  //EXPORT int dwg_setup_ACMSTANDARDISO (Dwg_Object *obj);
12256
  //EXPORT int dwg_setup_ACMSURFSTANDARDANSI (Dwg_Object *obj);
12257
  //EXPORT int dwg_setup_ACMSURFSTANDARDCSN (Dwg_Object *obj);
12258
  //EXPORT int dwg_setup_ACMSURFSTANDARDDIN (Dwg_Object *obj);
12259
  //EXPORT int dwg_setup_ACMSURFSTANDARDISO (Dwg_Object *obj);
12260
  //EXPORT int dwg_setup_ACMSURFSTANDARDISO2002 (Dwg_Object *obj);
12261
  //EXPORT int dwg_setup_ACMSURFSYM (Dwg_Object *obj);
12262
  //EXPORT int dwg_setup_ACMTAPERSTANDARDANSI (Dwg_Object *obj);
12263
  //EXPORT int dwg_setup_ACMTAPERSTANDARDCSN (Dwg_Object *obj);
12264
  //EXPORT int dwg_setup_ACMTAPERSTANDARDDIN (Dwg_Object *obj);
12265
  //EXPORT int dwg_setup_ACMTAPERSTANDARDISO (Dwg_Object *obj);
12266
  //EXPORT int dwg_setup_ACMTHREADLINESTANDARDANSI (Dwg_Object *obj);
12267
  //EXPORT int dwg_setup_ACMTHREADLINESTANDARDCSN (Dwg_Object *obj);
12268
  //EXPORT int dwg_setup_ACMTHREADLINESTANDARDDIN (Dwg_Object *obj);
12269
  //EXPORT int dwg_setup_ACMTHREADLINESTANDARDISO (Dwg_Object *obj);
12270
  //EXPORT int dwg_setup_ACMWELDSTANDARDANSI (Dwg_Object *obj);
12271
  //EXPORT int dwg_setup_ACMWELDSTANDARDCSN (Dwg_Object *obj);
12272
  //EXPORT int dwg_setup_ACMWELDSTANDARDDIN (Dwg_Object *obj);
12273
  //EXPORT int dwg_setup_ACMWELDSTANDARDISO (Dwg_Object *obj);
12274
  //EXPORT int dwg_setup_ACMWELDSYM (Dwg_Object *obj);
12275
  //EXPORT int dwg_setup_ACRFATTGENMGR (Dwg_Object *obj);
12276
  //EXPORT int dwg_setup_ACRFINSADJ (Dwg_Object *obj);
12277
  //EXPORT int dwg_setup_ACRFINSADJUSTERMGR (Dwg_Object *obj);
12278
  //EXPORT int dwg_setup_ACRFMCADAPIATTHOLDER (Dwg_Object *obj);
12279
  //EXPORT int dwg_setup_ACRFOBJATTMGR (Dwg_Object *obj);
12280
  //EXPORT int dwg_setup_ACSH_SUBENT_MATERIAL_CLASS (Dwg_Object *obj);
12281
  //EXPORT int dwg_setup_AC_AM_2D_XREF_MGR (Dwg_Object *obj);
12282
  //EXPORT int dwg_setup_AC_AM_BASIC_VIEW (Dwg_Object *obj);
12283
  //EXPORT int dwg_setup_AC_AM_BASIC_VIEW_DEF (Dwg_Object *obj);
12284
  //EXPORT int dwg_setup_AC_AM_COMPLEX_HIDE_SITUATION (Dwg_Object *obj);
12285
  //EXPORT int dwg_setup_AC_AM_COMP_VIEW_DEF (Dwg_Object *obj);
12286
  //EXPORT int dwg_setup_AC_AM_COMP_VIEW_INST (Dwg_Object *obj);
12287
  //EXPORT int dwg_setup_AC_AM_DIRTY_NODES (Dwg_Object *obj);
12288
  //EXPORT int dwg_setup_AC_AM_HIDE_SITUATION (Dwg_Object *obj);
12289
  //EXPORT int dwg_setup_AC_AM_MAPPER_CACHE (Dwg_Object *obj);
12290
  //EXPORT int dwg_setup_AC_AM_MASTER_VIEW_DEF (Dwg_Object *obj);
12291
  //EXPORT int dwg_setup_AC_AM_MVD_DEP_MGR (Dwg_Object *obj);
12292
  //EXPORT int dwg_setup_AC_AM_OVERRIDE_FILTER (Dwg_Object *obj);
12293
  //EXPORT int dwg_setup_AC_AM_PROPS_OVERRIDE (Dwg_Object *obj);
12294
  //EXPORT int dwg_setup_AC_AM_SHAFT_HIDE_SITUATION (Dwg_Object *obj);
12295
  //EXPORT int dwg_setup_AC_AM_STDP_VIEW_DEF (Dwg_Object *obj);
12296
  //EXPORT int dwg_setup_AC_AM_TRANSFORM_GHOST (Dwg_Object *obj);
12297
  //EXPORT int dwg_setup_ADAPPL (Dwg_Object *obj);
12298
  //EXPORT int dwg_setup_AECC_ALIGNMENT_DESIGN_CHECK_SET (Dwg_Object *obj);
12299
  //EXPORT int dwg_setup_AECC_ALIGNMENT_LABEL_SET (Dwg_Object *obj);
12300
  //EXPORT int dwg_setup_AECC_ALIGNMENT_LABEL_SET_EXT (Dwg_Object *obj);
12301
  //EXPORT int dwg_setup_AECC_ALIGNMENT_PARCEL_NODE (Dwg_Object *obj);
12302
  //EXPORT int dwg_setup_AECC_ALIGNMENT_STYLE (Dwg_Object *obj);
12303
  //EXPORT int dwg_setup_AECC_APPURTENANCE_STYLE (Dwg_Object *obj);
12304
  //EXPORT int dwg_setup_AECC_ASSEMBLY_STYLE (Dwg_Object *obj);
12305
  //EXPORT int dwg_setup_AECC_BUILDING_SITE_STYLE (Dwg_Object *obj);
12306
  //EXPORT int dwg_setup_AECC_CANT_DIAGRAM_VIEW_STYLE (Dwg_Object *obj);
12307
  //EXPORT int dwg_setup_AECC_CATCHMENT_STYLE (Dwg_Object *obj);
12308
  //EXPORT int dwg_setup_AECC_CLASS_NODE (Dwg_Object *obj);
12309
  //EXPORT int dwg_setup_AECC_CONTOURVIEW (Dwg_Object *obj);
12310
  //EXPORT int dwg_setup_AECC_CORRIDOR_STYLE (Dwg_Object *obj);
12311
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT (Dwg_Object *obj);
12312
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_CANT_LABEL_GROUP (Dwg_Object *obj);
12313
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_CSV (Dwg_Object *obj);
12314
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_CURVE_LABEL (Dwg_Object *obj);
12315
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_DESIGNSPEED_LABEL_GROUP (Dwg_Object *obj);
12316
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_GEOMPT_LABEL_GROUP (Dwg_Object *obj);
12317
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_INDEXED_PI_LABEL (Dwg_Object *obj);
12318
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_MINOR_STATION_LABEL_GROUP (Dwg_Object *obj);
12319
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_PI_LABEL (Dwg_Object *obj);
12320
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_SPIRAL_LABEL (Dwg_Object *obj);
12321
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_STAEQU_LABEL_GROUP (Dwg_Object *obj);
12322
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_STATION_LABEL_GROUP (Dwg_Object *obj);
12323
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_STATION_OFFSET_LABEL (Dwg_Object *obj);
12324
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_SUPERELEVATION_LABEL_GROUP (Dwg_Object *obj);
12325
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_TABLE (Dwg_Object *obj);
12326
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_TANGENT_LABEL (Dwg_Object *obj);
12327
  //EXPORT int dwg_setup_AECC_DISP_REP_ALIGNMENT_VERTICAL_GEOMPT_LABELING (Dwg_Object *obj);
12328
  //EXPORT int dwg_setup_AECC_DISP_REP_APPURTENANCE (Dwg_Object *obj);
12329
  //EXPORT int dwg_setup_AECC_DISP_REP_APPURTENANCE_CSV (Dwg_Object *obj);
12330
  //EXPORT int dwg_setup_AECC_DISP_REP_APPURTENANCE_LABELING (Dwg_Object *obj);
12331
  //EXPORT int dwg_setup_AECC_DISP_REP_APPURTENANCE_PROFILE_LABELING (Dwg_Object *obj);
12332
  //EXPORT int dwg_setup_AECC_DISP_REP_ASSEMBLY (Dwg_Object *obj);
12333
  //EXPORT int dwg_setup_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE (Dwg_Object *obj);
12334
  //EXPORT int dwg_setup_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_PROFILE (Dwg_Object *obj);
12335
  //EXPORT int dwg_setup_AECC_DISP_REP_AUTO_CORRIDOR_FEATURE_LINE_SECTION (Dwg_Object *obj);
12336
  //EXPORT int dwg_setup_AECC_DISP_REP_AUTO_FEATURE_LINE (Dwg_Object *obj);
12337
  //EXPORT int dwg_setup_AECC_DISP_REP_AUTO_FEATURE_LINE_CSV (Dwg_Object *obj);
12338
  //EXPORT int dwg_setup_AECC_DISP_REP_AUTO_FEATURE_LINE_PROFILE (Dwg_Object *obj);
12339
  //EXPORT int dwg_setup_AECC_DISP_REP_AUTO_FEATURE_LINE_SECTION (Dwg_Object *obj);
12340
  //EXPORT int dwg_setup_AECC_DISP_REP_BUILDINGSITE (Dwg_Object *obj);
12341
  //EXPORT int dwg_setup_AECC_DISP_REP_BUILDINGUTIL_CONNECTOR (Dwg_Object *obj);
12342
  //EXPORT int dwg_setup_AECC_DISP_REP_CANT_DIAGRAM_VIEW (Dwg_Object *obj);
12343
  //EXPORT int dwg_setup_AECC_DISP_REP_CATCHMENT_AREA (Dwg_Object *obj);
12344
  //EXPORT int dwg_setup_AECC_DISP_REP_CATCHMENT_AREA_LABEL (Dwg_Object *obj);
12345
  //EXPORT int dwg_setup_AECC_DISP_REP_CORRIDOR (Dwg_Object *obj);
12346
  //EXPORT int dwg_setup_AECC_DISP_REP_CROSSING_PIPE_PROFILE_LABELING (Dwg_Object *obj);
12347
  //EXPORT int dwg_setup_AECC_DISP_REP_CROSSING_PRESSURE_PIPE_PROFILE_LABELING (Dwg_Object *obj);
12348
  //EXPORT int dwg_setup_AECC_DISP_REP_CSVSTATIONSLIDER (Dwg_Object *obj);
12349
  //EXPORT int dwg_setup_AECC_DISP_REP_FACE (Dwg_Object *obj);
12350
  //EXPORT int dwg_setup_AECC_DISP_REP_FEATURE (Dwg_Object *obj);
12351
  //EXPORT int dwg_setup_AECC_DISP_REP_FEATURE_LABEL (Dwg_Object *obj);
12352
  //EXPORT int dwg_setup_AECC_DISP_REP_FEATURE_LINE (Dwg_Object *obj);
12353
  //EXPORT int dwg_setup_AECC_DISP_REP_FEATURE_LINE_CSV (Dwg_Object *obj);
12354
  //EXPORT int dwg_setup_AECC_DISP_REP_FEATURE_LINE_PROFILE (Dwg_Object *obj);
12355
  //EXPORT int dwg_setup_AECC_DISP_REP_FEATURE_LINE_SECTION (Dwg_Object *obj);
12356
  //EXPORT int dwg_setup_AECC_DISP_REP_FITTING (Dwg_Object *obj);
12357
  //EXPORT int dwg_setup_AECC_DISP_REP_FITTING_CSV (Dwg_Object *obj);
12358
  //EXPORT int dwg_setup_AECC_DISP_REP_FITTING_LABELING (Dwg_Object *obj);
12359
  //EXPORT int dwg_setup_AECC_DISP_REP_FITTING_PROFILE_LABELING (Dwg_Object *obj);
12360
  //EXPORT int dwg_setup_AECC_DISP_REP_FLOW_SEGMENT_LABEL (Dwg_Object *obj);
12361
  //EXPORT int dwg_setup_AECC_DISP_REP_GENERAL_SEGMENT_LABEL (Dwg_Object *obj);
12362
  //EXPORT int dwg_setup_AECC_DISP_REP_GRADING (Dwg_Object *obj);
12363
  //EXPORT int dwg_setup_AECC_DISP_REP_GRAPH (Dwg_Object *obj);
12364
  //EXPORT int dwg_setup_AECC_DISP_REP_GRAPHPROFILE_NETWORKPART (Dwg_Object *obj);
12365
  //EXPORT int dwg_setup_AECC_DISP_REP_GRAPHPROFILE_PRESSUREPART (Dwg_Object *obj);
12366
  //EXPORT int dwg_setup_AECC_DISP_REP_GRID_SURFACE (Dwg_Object *obj);
12367
  //EXPORT int dwg_setup_AECC_DISP_REP_GRID_SURFACE_CSV (Dwg_Object *obj);
12368
  //EXPORT int dwg_setup_AECC_DISP_REP_HORGEOMETRY_BAND_LABEL_GROUP (Dwg_Object *obj);
12369
  //EXPORT int dwg_setup_AECC_DISP_REP_HYDRO_REGION (Dwg_Object *obj);
12370
  //EXPORT int dwg_setup_AECC_DISP_REP_INTERFERENCE_CHECK (Dwg_Object *obj);
12371
  //EXPORT int dwg_setup_AECC_DISP_REP_INTERFERENCE_PART (Dwg_Object *obj);
12372
  //EXPORT int dwg_setup_AECC_DISP_REP_INTERFERENCE_PART_SECTION (Dwg_Object *obj);
12373
  //EXPORT int dwg_setup_AECC_DISP_REP_INTERSECTION (Dwg_Object *obj);
12374
  //EXPORT int dwg_setup_AECC_DISP_REP_INTERSECTION_LOCATION_LABELING (Dwg_Object *obj);
12375
  //EXPORT int dwg_setup_AECC_DISP_REP_LABELING (Dwg_Object *obj);
12376
  //EXPORT int dwg_setup_AECC_DISP_REP_LEGEND_TABLE (Dwg_Object *obj);
12377
  //EXPORT int dwg_setup_AECC_DISP_REP_LINE_BETWEEN_POINTS_LABEL (Dwg_Object *obj);
12378
  //EXPORT int dwg_setup_AECC_DISP_REP_LOTLINE_CSV (Dwg_Object *obj);
12379
  //EXPORT int dwg_setup_AECC_DISP_REP_MASSHAULLINE (Dwg_Object *obj);
12380
  //EXPORT int dwg_setup_AECC_DISP_REP_MASS_HAUL_VIEW (Dwg_Object *obj);
12381
  //EXPORT int dwg_setup_AECC_DISP_REP_MATCHLINE_LABELING (Dwg_Object *obj);
12382
  //EXPORT int dwg_setup_AECC_DISP_REP_MATCH_LINE (Dwg_Object *obj);
12383
  //EXPORT int dwg_setup_AECC_DISP_REP_MATERIAL_SECTION (Dwg_Object *obj);
12384
  //EXPORT int dwg_setup_AECC_DISP_REP_NETWORK (Dwg_Object *obj);
12385
  //EXPORT int dwg_setup_AECC_DISP_REP_NOTE_LABEL (Dwg_Object *obj);
12386
  //EXPORT int dwg_setup_AECC_DISP_REP_OFFSET_ELEV_LABEL (Dwg_Object *obj);
12387
  //EXPORT int dwg_setup_AECC_DISP_REP_PARCEL_BOUNDARY (Dwg_Object *obj);
12388
  //EXPORT int dwg_setup_AECC_DISP_REP_PARCEL_FACE_LABEL (Dwg_Object *obj);
12389
  //EXPORT int dwg_setup_AECC_DISP_REP_PARCEL_SEGMENT (Dwg_Object *obj);
12390
  //EXPORT int dwg_setup_AECC_DISP_REP_PARCEL_SEGMENT_LABEL (Dwg_Object *obj);
12391
  //EXPORT int dwg_setup_AECC_DISP_REP_PARCEL_SEGMENT_TABLE (Dwg_Object *obj);
12392
  //EXPORT int dwg_setup_AECC_DISP_REP_PARCEL_TABLE (Dwg_Object *obj);
12393
  //EXPORT int dwg_setup_AECC_DISP_REP_PIPE (Dwg_Object *obj);
12394
  //EXPORT int dwg_setup_AECC_DISP_REP_PIPENETWORK_BAND_LABEL_GROUP (Dwg_Object *obj);
12395
  //EXPORT int dwg_setup_AECC_DISP_REP_PIPE_CSV (Dwg_Object *obj);
12396
  //EXPORT int dwg_setup_AECC_DISP_REP_PIPE_LABELING (Dwg_Object *obj);
12397
  //EXPORT int dwg_setup_AECC_DISP_REP_PIPE_PROFILE_LABELING (Dwg_Object *obj);
12398
  //EXPORT int dwg_setup_AECC_DISP_REP_PIPE_SECTION_LABELING (Dwg_Object *obj);
12399
  //EXPORT int dwg_setup_AECC_DISP_REP_PIPE_TABLE (Dwg_Object *obj);
12400
  //EXPORT int dwg_setup_AECC_DISP_REP_POINT_ENT (Dwg_Object *obj);
12401
  //EXPORT int dwg_setup_AECC_DISP_REP_POINT_GROUP (Dwg_Object *obj);
12402
  //EXPORT int dwg_setup_AECC_DISP_REP_POINT_TABLE (Dwg_Object *obj);
12403
  //EXPORT int dwg_setup_AECC_DISP_REP_PRESSUREPIPENETWORK (Dwg_Object *obj);
12404
  //EXPORT int dwg_setup_AECC_DISP_REP_PRESSURE_PART_TABLE (Dwg_Object *obj);
12405
  //EXPORT int dwg_setup_AECC_DISP_REP_PRESSURE_PIPE (Dwg_Object *obj);
12406
  //EXPORT int dwg_setup_AECC_DISP_REP_PRESSURE_PIPE_CSV (Dwg_Object *obj);
12407
  //EXPORT int dwg_setup_AECC_DISP_REP_PRESSURE_PIPE_LABELING (Dwg_Object *obj);
12408
  //EXPORT int dwg_setup_AECC_DISP_REP_PRESSURE_PIPE_PROFILE_LABELING (Dwg_Object *obj);
12409
  //EXPORT int dwg_setup_AECC_DISP_REP_PRESSURE_PIPE_SECTION_LABELING (Dwg_Object *obj);
12410
  //EXPORT int dwg_setup_AECC_DISP_REP_PROFILE (Dwg_Object *obj);
12411
  //EXPORT int dwg_setup_AECC_DISP_REP_PROFILEDATA_BAND_LABEL_GROUP (Dwg_Object *obj);
12412
  //EXPORT int dwg_setup_AECC_DISP_REP_PROFILE_PROJECTION (Dwg_Object *obj);
12413
  //EXPORT int dwg_setup_AECC_DISP_REP_PROFILE_PROJECTION_LABEL (Dwg_Object *obj);
12414
  //EXPORT int dwg_setup_AECC_DISP_REP_PROFILE_VIEW (Dwg_Object *obj);
12415
  //EXPORT int dwg_setup_AECC_DISP_REP_PROFILE_VIEW_DEPTH_LABEL (Dwg_Object *obj);
12416
  //EXPORT int dwg_setup_AECC_DISP_REP_QUANTITY_TAKEOFF_AGGREGATE_EARTHWORK_TABLE (Dwg_Object *obj);
12417
  //EXPORT int dwg_setup_AECC_DISP_REP_RIGHT_OF_WAY (Dwg_Object *obj);
12418
  //EXPORT int dwg_setup_AECC_DISP_REP_SAMPLELINE_LABELING (Dwg_Object *obj);
12419
  //EXPORT int dwg_setup_AECC_DISP_REP_SAMPLE_LINE (Dwg_Object *obj);
12420
  //EXPORT int dwg_setup_AECC_DISP_REP_SAMPLE_LINE_GROUP (Dwg_Object *obj);
12421
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION (Dwg_Object *obj);
12422
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTIONALDATA_BAND_LABEL_GROUP (Dwg_Object *obj);
12423
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTIONDATA_BAND_LABEL_GROUP (Dwg_Object *obj);
12424
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTIONSEGMENT_BAND_LABEL_GROUP (Dwg_Object *obj);
12425
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_CORRIDOR (Dwg_Object *obj);
12426
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_CORRIDOR_POINT_LABEL_GROUP (Dwg_Object *obj);
12427
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_GRADEBREAK_LABEL_GROUP (Dwg_Object *obj);
12428
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_MINOR_OFFSET_LABEL_GROUP (Dwg_Object *obj);
12429
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_OFFSET_LABEL_GROUP (Dwg_Object *obj);
12430
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_PIPENETWORK (Dwg_Object *obj);
12431
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_PRESSUREPIPENETWORK (Dwg_Object *obj);
12432
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_PROJECTION (Dwg_Object *obj);
12433
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_PROJECTION_LABEL (Dwg_Object *obj);
12434
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_SEGMENT_LABEL_GROUP (Dwg_Object *obj);
12435
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_VIEW (Dwg_Object *obj);
12436
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_VIEW_DEPTH_LABEL (Dwg_Object *obj);
12437
  //EXPORT int dwg_setup_AECC_DISP_REP_SECTION_VIEW_QUANTITY_TAKEOFF_TABLE (Dwg_Object *obj);
12438
  //EXPORT int dwg_setup_AECC_DISP_REP_SHEET (Dwg_Object *obj);
12439
  //EXPORT int dwg_setup_AECC_DISP_REP_SPANNING_PIPE_LABELING (Dwg_Object *obj);
12440
  //EXPORT int dwg_setup_AECC_DISP_REP_SPANNING_PIPE_PROFILE_LABELING (Dwg_Object *obj);
12441
  //EXPORT int dwg_setup_AECC_DISP_REP_STATION_ELEV_LABEL (Dwg_Object *obj);
12442
  //EXPORT int dwg_setup_AECC_DISP_REP_STRUCTURE (Dwg_Object *obj);
12443
  //EXPORT int dwg_setup_AECC_DISP_REP_STRUCTURE_CSV (Dwg_Object *obj);
12444
  //EXPORT int dwg_setup_AECC_DISP_REP_STRUCTURE_LABELING (Dwg_Object *obj);
12445
  //EXPORT int dwg_setup_AECC_DISP_REP_STRUCTURE_PROFILE_LABELING (Dwg_Object *obj);
12446
  //EXPORT int dwg_setup_AECC_DISP_REP_STRUCTURE_SECTION_LABELING (Dwg_Object *obj);
12447
  //EXPORT int dwg_setup_AECC_DISP_REP_SUBASSEMBLY (Dwg_Object *obj);
12448
  //EXPORT int dwg_setup_AECC_DISP_REP_SUPERELEVATION_BAND_LABEL_GROUP (Dwg_Object *obj);
12449
  //EXPORT int dwg_setup_AECC_DISP_REP_SUPERELEVATION_DIAGRAM_VIEW (Dwg_Object *obj);
12450
  //EXPORT int dwg_setup_AECC_DISP_REP_SURFACE_CONTOUR_LABEL_GROUP (Dwg_Object *obj);
12451
  //EXPORT int dwg_setup_AECC_DISP_REP_SURFACE_ELEVATION_LABEL (Dwg_Object *obj);
12452
  //EXPORT int dwg_setup_AECC_DISP_REP_SURFACE_SLOPE_LABEL (Dwg_Object *obj);
12453
  //EXPORT int dwg_setup_AECC_DISP_REP_SURVEY_FIGURE_LABEL_GROUP (Dwg_Object *obj);
12454
  //EXPORT int dwg_setup_AECC_DISP_REP_SVFIGURE (Dwg_Object *obj);
12455
  //EXPORT int dwg_setup_AECC_DISP_REP_SVFIGURE_CSV (Dwg_Object *obj);
12456
  //EXPORT int dwg_setup_AECC_DISP_REP_SVFIGURE_PROFILE (Dwg_Object *obj);
12457
  //EXPORT int dwg_setup_AECC_DISP_REP_SVFIGURE_SECTION (Dwg_Object *obj);
12458
  //EXPORT int dwg_setup_AECC_DISP_REP_SVFIGURE_SEGMENT_LABEL (Dwg_Object *obj);
12459
  //EXPORT int dwg_setup_AECC_DISP_REP_SVNETWORK (Dwg_Object *obj);
12460
  //EXPORT int dwg_setup_AECC_DISP_REP_TANGENT_INTERSECTION_TABLE (Dwg_Object *obj);
12461
  //EXPORT int dwg_setup_AECC_DISP_REP_TIN_SURFACE (Dwg_Object *obj);
12462
  //EXPORT int dwg_setup_AECC_DISP_REP_TIN_SURFACE_CSV (Dwg_Object *obj);
12463
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_CRESTCURVE_LABEL_GROUP (Dwg_Object *obj);
12464
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_CSV (Dwg_Object *obj);
12465
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_HAGEOMPT_LABEL_GROUP (Dwg_Object *obj);
12466
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_LINE_LABEL_GROUP (Dwg_Object *obj);
12467
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_MINOR_STATION_LABEL_GROUP (Dwg_Object *obj);
12468
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_PVI_LABEL_GROUP (Dwg_Object *obj);
12469
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_SAGCURVE_LABEL_GROUP (Dwg_Object *obj);
12470
  //EXPORT int dwg_setup_AECC_DISP_REP_VALIGNMENT_STATION_LABEL_GROUP (Dwg_Object *obj);
12471
  //EXPORT int dwg_setup_AECC_DISP_REP_VERTICALGEOMETRY_BAND_LABEL_GROUP (Dwg_Object *obj);
12472
  //EXPORT int dwg_setup_AECC_DISP_REP_VIEWFRAME_LABELING (Dwg_Object *obj);
12473
  //EXPORT int dwg_setup_AECC_DISP_REP_VIEW_FRAME (Dwg_Object *obj);
12474
  //EXPORT int dwg_setup_AECC_FEATURELINE_STYLE (Dwg_Object *obj);
12475
  //EXPORT int dwg_setup_AECC_FEATURE_STYLE (Dwg_Object *obj);
12476
  //EXPORT int dwg_setup_AECC_FITTING_STYLE (Dwg_Object *obj);
12477
  //EXPORT int dwg_setup_AECC_FORMAT_MANAGER_OBJECT (Dwg_Object *obj);
12478
  //EXPORT int dwg_setup_AECC_GRADEVIEW (Dwg_Object *obj);
12479
  //EXPORT int dwg_setup_AECC_GRADING_CRITERIA (Dwg_Object *obj);
12480
  //EXPORT int dwg_setup_AECC_GRADING_CRITERIA_SET (Dwg_Object *obj);
12481
  //EXPORT int dwg_setup_AECC_GRADING_GROUP (Dwg_Object *obj);
12482
  //EXPORT int dwg_setup_AECC_GRADING_STYLE (Dwg_Object *obj);
12483
  //EXPORT int dwg_setup_AECC_IMPORT_STORM_SEWER_DEFAULTS (Dwg_Object *obj);
12484
  //EXPORT int dwg_setup_AECC_INTERFERENCE_STYLE (Dwg_Object *obj);
12485
  //EXPORT int dwg_setup_AECC_INTERSECTION_STYLE (Dwg_Object *obj);
12486
  //EXPORT int dwg_setup_AECC_LABEL_COLLECTOR_STYLE (Dwg_Object *obj);
12487
  //EXPORT int dwg_setup_AECC_LABEL_NODE (Dwg_Object *obj);
12488
  //EXPORT int dwg_setup_AECC_LABEL_RADIAL_LINE_STYLE (Dwg_Object *obj);
12489
  //EXPORT int dwg_setup_AECC_LABEL_TEXT_ITERATOR_CURVE_OR_SPIRAL_STYLE (Dwg_Object *obj);
12490
  //EXPORT int dwg_setup_AECC_LABEL_TEXT_ITERATOR_STYLE (Dwg_Object *obj);
12491
  //EXPORT int dwg_setup_AECC_LABEL_TEXT_STYLE (Dwg_Object *obj);
12492
  //EXPORT int dwg_setup_AECC_LABEL_VECTOR_ARROW_STYLE (Dwg_Object *obj);
12493
  //EXPORT int dwg_setup_AECC_LEGEND_TABLE_STYLE (Dwg_Object *obj);
12494
  //EXPORT int dwg_setup_AECC_MASS_HAUL_LINE_STYLE (Dwg_Object *obj);
12495
  //EXPORT int dwg_setup_AECC_MASS_HAUL_VIEW_STYLE (Dwg_Object *obj);
12496
  //EXPORT int dwg_setup_AECC_MATCHLINE_STYLE (Dwg_Object *obj);
12497
  //EXPORT int dwg_setup_AECC_MATERIAL_STYLE (Dwg_Object *obj);
12498
  //EXPORT int dwg_setup_AECC_NETWORK_PART_CATALOG_DEF_NODE (Dwg_Object *obj);
12499
  //EXPORT int dwg_setup_AECC_NETWORK_PART_FAMILY_ITEM (Dwg_Object *obj);
12500
  //EXPORT int dwg_setup_AECC_NETWORK_PART_LIST (Dwg_Object *obj);
12501
  //EXPORT int dwg_setup_AECC_NETWORK_RULE (Dwg_Object *obj);
12502
  //EXPORT int dwg_setup_AECC_PARCEL_NODE (Dwg_Object *obj);
12503
  //EXPORT int dwg_setup_AECC_PARCEL_STYLE (Dwg_Object *obj);
12504
  //EXPORT int dwg_setup_AECC_PART_SIZE_FILTER (Dwg_Object *obj);
12505
  //EXPORT int dwg_setup_AECC_PIPE_RULES (Dwg_Object *obj);
12506
  //EXPORT int dwg_setup_AECC_PIPE_STYLE (Dwg_Object *obj);
12507
  //EXPORT int dwg_setup_AECC_PIPE_STYLE_EXTENSION (Dwg_Object *obj);
12508
  //EXPORT int dwg_setup_AECC_POINTCLOUD_STYLE (Dwg_Object *obj);
12509
  //EXPORT int dwg_setup_AECC_POINTVIEW (Dwg_Object *obj);
12510
  //EXPORT int dwg_setup_AECC_POINT_STYLE (Dwg_Object *obj);
12511
  //EXPORT int dwg_setup_AECC_PRESSURE_PART_LIST (Dwg_Object *obj);
12512
  //EXPORT int dwg_setup_AECC_PRESSURE_PIPE_STYLE (Dwg_Object *obj);
12513
  //EXPORT int dwg_setup_AECC_PROFILESECTIONENTITY_STYLE (Dwg_Object *obj);
12514
  //EXPORT int dwg_setup_AECC_PROFILE_DESIGN_CHECK_SET (Dwg_Object *obj);
12515
  //EXPORT int dwg_setup_AECC_PROFILE_LABEL_SET (Dwg_Object *obj);
12516
  //EXPORT int dwg_setup_AECC_PROFILE_STYLE (Dwg_Object *obj);
12517
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_BAND_STYLE_SET (Dwg_Object *obj);
12518
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_DATA_BAND_STYLE (Dwg_Object *obj);
12519
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_HORIZONTAL_GEOMETRY_BAND_STYLE (Dwg_Object *obj);
12520
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_PIPE_NETWORK_BAND_STYLE (Dwg_Object *obj);
12521
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_SECTIONAL_DATA_BAND_STYLE (Dwg_Object *obj);
12522
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_STYLE (Dwg_Object *obj);
12523
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_SUPERELEVATION_DIAGRAM_BAND_STYLE (Dwg_Object *obj);
12524
  //EXPORT int dwg_setup_AECC_PROFILE_VIEW_VERTICAL_GEOMETRY_BAND_STYLE (Dwg_Object *obj);
12525
  //EXPORT int dwg_setup_AECC_QUANTITY_TAKEOFF_CRITERIA (Dwg_Object *obj);
12526
  //EXPORT int dwg_setup_AECC_ROADWAYLINK_STYLE (Dwg_Object *obj);
12527
  //EXPORT int dwg_setup_AECC_ROADWAYMARKER_STYLE (Dwg_Object *obj);
12528
  //EXPORT int dwg_setup_AECC_ROADWAYSHAPE_STYLE (Dwg_Object *obj);
12529
  //EXPORT int dwg_setup_AECC_ROADWAY_STYLE_SET (Dwg_Object *obj);
12530
  //EXPORT int dwg_setup_AECC_ROOT_SETTINGS_NODE (Dwg_Object *obj);
12531
  //EXPORT int dwg_setup_AECC_SAMPLE_LINE_GROUP_STYLE (Dwg_Object *obj);
12532
  //EXPORT int dwg_setup_AECC_SAMPLE_LINE_STYLE (Dwg_Object *obj);
12533
  //EXPORT int dwg_setup_AECC_SECTION_LABEL_SET (Dwg_Object *obj);
12534
  //EXPORT int dwg_setup_AECC_SECTION_STYLE (Dwg_Object *obj);
12535
  //EXPORT int dwg_setup_AECC_SECTION_VIEW_BAND_STYLE_SET (Dwg_Object *obj);
12536
  //EXPORT int dwg_setup_AECC_SECTION_VIEW_DATA_BAND_STYLE (Dwg_Object *obj);
12537
  //EXPORT int dwg_setup_AECC_SECTION_VIEW_ROAD_SURFACE_BAND_STYLE (Dwg_Object *obj);
12538
  //EXPORT int dwg_setup_AECC_SECTION_VIEW_STYLE (Dwg_Object *obj);
12539
  //EXPORT int dwg_setup_AECC_SETTINGS_NODE (Dwg_Object *obj);
12540
  //EXPORT int dwg_setup_AECC_SHEET_STYLE (Dwg_Object *obj);
12541
  //EXPORT int dwg_setup_AECC_SLOPE_PATTERN_STYLE (Dwg_Object *obj);
12542
  //EXPORT int dwg_setup_AECC_STATION_FORMAT_STYLE (Dwg_Object *obj);
12543
  //EXPORT int dwg_setup_AECC_STRUCTURE_RULES (Dwg_Object *obj);
12544
  //EXPORT int dwg_setup_AECC_STUCTURE_STYLE (Dwg_Object *obj);
12545
  //EXPORT int dwg_setup_AECC_SUPERELEVATION_DIAGRAM_VIEW_STYLE (Dwg_Object *obj);
12546
  //EXPORT int dwg_setup_AECC_SURFACE_STYLE (Dwg_Object *obj);
12547
  //EXPORT int dwg_setup_AECC_SVFIGURE_STYLE (Dwg_Object *obj);
12548
  //EXPORT int dwg_setup_AECC_SVNETWORK_STYLE (Dwg_Object *obj);
12549
  //EXPORT int dwg_setup_AECC_TABLE_STYLE (Dwg_Object *obj);
12550
  //EXPORT int dwg_setup_AECC_TAG_MANAGER (Dwg_Object *obj);
12551
  //EXPORT int dwg_setup_AECC_TREE_NODE (Dwg_Object *obj);
12552
  //EXPORT int dwg_setup_AECC_USER_DEFINED_ATTRIBUTE_CLASSIFICATION (Dwg_Object *obj);
12553
  //EXPORT int dwg_setup_AECC_VALIGNMENT_STYLE_EXTENSION (Dwg_Object *obj);
12554
  //EXPORT int dwg_setup_AECC_VIEW_FRAME_STYLE (Dwg_Object *obj);
12555
  //EXPORT int dwg_setup_AECS_DISP_PROPS_MEMBER (Dwg_Object *obj);
12556
  //EXPORT int dwg_setup_AECS_DISP_PROPS_MEMBER_LOGICAL (Dwg_Object *obj);
12557
  //EXPORT int dwg_setup_AECS_DISP_PROPS_MEMBER_PLAN (Dwg_Object *obj);
12558
  //EXPORT int dwg_setup_AECS_DISP_PROPS_MEMBER_PLAN_SKETCH (Dwg_Object *obj);
12559
  //EXPORT int dwg_setup_AECS_DISP_PROPS_MEMBER_PROJECTED (Dwg_Object *obj);
12560
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_ELEVATION_DESIGN (Dwg_Object *obj);
12561
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_ELEVATION_DETAIL (Dwg_Object *obj);
12562
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_LOGICAL (Dwg_Object *obj);
12563
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_MODEL_DESIGN (Dwg_Object *obj);
12564
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_MODEL_DETAIL (Dwg_Object *obj);
12565
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_PLAN_DESIGN (Dwg_Object *obj);
12566
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_PLAN_DETAIL (Dwg_Object *obj);
12567
  //EXPORT int dwg_setup_AECS_DISP_REP_MEMBER_PLAN_SKETCH (Dwg_Object *obj);
12568
  //EXPORT int dwg_setup_AECS_MEMBER_NODE_SHAPE (Dwg_Object *obj);
12569
  //EXPORT int dwg_setup_AECS_MEMBER_STYLE (Dwg_Object *obj);
12570
  //EXPORT int dwg_setup_AEC_2DSECTION_STYLE (Dwg_Object *obj);
12571
  //EXPORT int dwg_setup_AEC_AECDBDISPREPBDGELEVLINEPLAN100 (Dwg_Object *obj);
12572
  //EXPORT int dwg_setup_AEC_AECDBDISPREPBDGELEVLINEPLAN50 (Dwg_Object *obj);
12573
  //EXPORT int dwg_setup_AEC_AECDBDISPREPBDGSECTIONLINEPLAN100 (Dwg_Object *obj);
12574
  //EXPORT int dwg_setup_AEC_AECDBDISPREPBDGSECTIONLINEPLAN50 (Dwg_Object *obj);
12575
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCEILINGGRIDPLAN100 (Dwg_Object *obj);
12576
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCEILINGGRIDPLAN50 (Dwg_Object *obj);
12577
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCOLUMNGRIDPLAN100 (Dwg_Object *obj);
12578
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCOLUMNGRIDPLAN50 (Dwg_Object *obj);
12579
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN100 (Dwg_Object *obj);
12580
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCURTAINWALLLAYOUTPLAN50 (Dwg_Object *obj);
12581
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCURTAINWALLUNITPLAN100 (Dwg_Object *obj);
12582
  //EXPORT int dwg_setup_AEC_AECDBDISPREPCURTAINWALLUNITPLAN50 (Dwg_Object *obj);
12583
  //EXPORT int dwg_setup_AEC_AECDBDISPREPMVBLOCKREFPLAN100 (Dwg_Object *obj);
12584
  //EXPORT int dwg_setup_AEC_AECDBDISPREPMVBLOCKREFPLAN50 (Dwg_Object *obj);
12585
  //EXPORT int dwg_setup_AEC_AECDBDISPREPROOFPLAN100 (Dwg_Object *obj);
12586
  //EXPORT int dwg_setup_AEC_AECDBDISPREPROOFPLAN50 (Dwg_Object *obj);
12587
  //EXPORT int dwg_setup_AEC_AECDBDISPREPROOFSLABPLAN100 (Dwg_Object *obj);
12588
  //EXPORT int dwg_setup_AEC_AECDBDISPREPROOFSLABPLAN50 (Dwg_Object *obj);
12589
  //EXPORT int dwg_setup_AEC_AECDBDISPREPSLABPLAN100 (Dwg_Object *obj);
12590
  //EXPORT int dwg_setup_AEC_AECDBDISPREPSLABPLAN50 (Dwg_Object *obj);
12591
  //EXPORT int dwg_setup_AEC_AECDBDISPREPSPACEPLAN100 (Dwg_Object *obj);
12592
  //EXPORT int dwg_setup_AEC_AECDBDISPREPSPACEPLAN50 (Dwg_Object *obj);
12593
  //EXPORT int dwg_setup_AEC_AECDBDISPREPWALLPLAN100 (Dwg_Object *obj);
12594
  //EXPORT int dwg_setup_AEC_AECDBDISPREPWALLPLAN50 (Dwg_Object *obj);
12595
  //EXPORT int dwg_setup_AEC_AECDBDISPREPWINDOWASSEMBLYPLAN100 (Dwg_Object *obj);
12596
  //EXPORT int dwg_setup_AEC_AECDBDISPREPWINDOWASSEMBLYPLAN50 (Dwg_Object *obj);
12597
  //EXPORT int dwg_setup_AEC_AECDBDISPREPZONE100 (Dwg_Object *obj);
12598
  //EXPORT int dwg_setup_AEC_AECDBDISPREPZONE50 (Dwg_Object *obj);
12599
  //EXPORT int dwg_setup_AEC_AECDBZONEDEF (Dwg_Object *obj);
12600
  //EXPORT int dwg_setup_AEC_AECDBZONESTYLE (Dwg_Object *obj);
12601
  //EXPORT int dwg_setup_AEC_ANCHOR_OPENINGBASE_TO_WALL (Dwg_Object *obj);
12602
  //EXPORT int dwg_setup_AEC_CLASSIFICATION_DEF (Dwg_Object *obj);
12603
  //EXPORT int dwg_setup_AEC_CLASSIFICATION_SYSTEM_DEF (Dwg_Object *obj);
12604
  //EXPORT int dwg_setup_AEC_CLEANUP_GROUP_DEF (Dwg_Object *obj);
12605
  //EXPORT int dwg_setup_AEC_CURTAIN_WALL_LAYOUT_STYLE (Dwg_Object *obj);
12606
  //EXPORT int dwg_setup_AEC_CURTAIN_WALL_UNIT_STYLE (Dwg_Object *obj);
12607
  //EXPORT int dwg_setup_AEC_CVSECTIONVIEW (Dwg_Object *obj);
12608
  //EXPORT int dwg_setup_AEC_DB_DISP_REP_DIM_GROUP_PLAN (Dwg_Object *obj);
12609
  //EXPORT int dwg_setup_AEC_DB_DISP_REP_DIM_GROUP_PLAN100 (Dwg_Object *obj);
12610
  //EXPORT int dwg_setup_AEC_DB_DISP_REP_DIM_GROUP_PLAN50 (Dwg_Object *obj);
12611
  //EXPORT int dwg_setup_AEC_DIM_STYLE (Dwg_Object *obj);
12612
  //EXPORT int dwg_setup_AEC_DISPLAYTHEME_STYLE (Dwg_Object *obj);
12613
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPMASSELEMPLAN100 (Dwg_Object *obj);
12614
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPMASSELEMPLAN50 (Dwg_Object *obj);
12615
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPMASSGROUPPLAN100 (Dwg_Object *obj);
12616
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPMASSGROUPPLAN50 (Dwg_Object *obj);
12617
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPOPENINGPLAN100 (Dwg_Object *obj);
12618
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPOPENINGPLAN50 (Dwg_Object *obj);
12619
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPOPENINGPLANREFLECTED (Dwg_Object *obj);
12620
  //EXPORT int dwg_setup_AEC_DISPREPAECDBDISPREPOPENINGSILLPLAN (Dwg_Object *obj);
12621
  //EXPORT int dwg_setup_AEC_DISPROPSMASSELEMPLANCOMMON (Dwg_Object *obj);
12622
  //EXPORT int dwg_setup_AEC_DISPROPSMASSGROUPPLANCOMMON (Dwg_Object *obj);
12623
  //EXPORT int dwg_setup_AEC_DISPROPSOPENINGPLANCOMMON (Dwg_Object *obj);
12624
  //EXPORT int dwg_setup_AEC_DISPROPSOPENINGPLANCOMMONHATCHED (Dwg_Object *obj);
12625
  //EXPORT int dwg_setup_AEC_DISPROPSOPENINGSILLPLAN (Dwg_Object *obj);
12626
  //EXPORT int dwg_setup_AEC_DISP_PROPS_2D_SECTION (Dwg_Object *obj);
12627
  //EXPORT int dwg_setup_AEC_DISP_PROPS_CLIP_VOLUME (Dwg_Object *obj);
12628
  //EXPORT int dwg_setup_AEC_DISP_PROPS_CLIP_VOLUME_RESULT (Dwg_Object *obj);
12629
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DIM (Dwg_Object *obj);
12630
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DISPLAYTHEME (Dwg_Object *obj);
12631
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DOOR (Dwg_Object *obj);
12632
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DOOR_NOMINAL (Dwg_Object *obj);
12633
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DOOR_PLAN_100 (Dwg_Object *obj);
12634
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DOOR_PLAN_50 (Dwg_Object *obj);
12635
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DOOR_THRESHOLD_PLAN (Dwg_Object *obj);
12636
  //EXPORT int dwg_setup_AEC_DISP_PROPS_DOOR_THRESHOLD_SYMBOL_PLAN (Dwg_Object *obj);
12637
  //EXPORT int dwg_setup_AEC_DISP_PROPS_EDITINPLACEPROFILE_MODEL (Dwg_Object *obj);
12638
  //EXPORT int dwg_setup_AEC_DISP_PROPS_ENT (Dwg_Object *obj);
12639
  //EXPORT int dwg_setup_AEC_DISP_PROPS_ENT_REF (Dwg_Object *obj);
12640
  //EXPORT int dwg_setup_AEC_DISP_PROPS_GRID_ASSEMBLY_MODEL (Dwg_Object *obj);
12641
  //EXPORT int dwg_setup_AEC_DISP_PROPS_GRID_ASSEMBLY_PLAN (Dwg_Object *obj);
12642
  //EXPORT int dwg_setup_AEC_DISP_PROPS_LAYOUT_CURVE (Dwg_Object *obj);
12643
  //EXPORT int dwg_setup_AEC_DISP_PROPS_LAYOUT_GRID2D (Dwg_Object *obj);
12644
  //EXPORT int dwg_setup_AEC_DISP_PROPS_LAYOUT_GRID3D (Dwg_Object *obj);
12645
  //EXPORT int dwg_setup_AEC_DISP_PROPS_MASKBLOCK (Dwg_Object *obj);
12646
  //EXPORT int dwg_setup_AEC_DISP_PROPS_MASS_ELEM_MODEL (Dwg_Object *obj);
12647
  //EXPORT int dwg_setup_AEC_DISP_PROPS_MASS_GROUP (Dwg_Object *obj);
12648
  //EXPORT int dwg_setup_AEC_DISP_PROPS_MATERIAL (Dwg_Object *obj);
12649
  //EXPORT int dwg_setup_AEC_DISP_PROPS_OPENING (Dwg_Object *obj);
12650
  //EXPORT int dwg_setup_AEC_DISP_PROPS_POLYGON_MODEL (Dwg_Object *obj);
12651
  //EXPORT int dwg_setup_AEC_DISP_PROPS_POLYGON_TRUECOLOUR (Dwg_Object *obj);
12652
  //EXPORT int dwg_setup_AEC_DISP_PROPS_RAILING_MODEL (Dwg_Object *obj);
12653
  //EXPORT int dwg_setup_AEC_DISP_PROPS_RAILING_PLAN (Dwg_Object *obj);
12654
  //EXPORT int dwg_setup_AEC_DISP_PROPS_ROOF (Dwg_Object *obj);
12655
  //EXPORT int dwg_setup_AEC_DISP_PROPS_ROOFSLAB (Dwg_Object *obj);
12656
  //EXPORT int dwg_setup_AEC_DISP_PROPS_ROOFSLAB_PLAN (Dwg_Object *obj);
12657
  //EXPORT int dwg_setup_AEC_DISP_PROPS_SCHEDULE_TABLE (Dwg_Object *obj);
12658
  //EXPORT int dwg_setup_AEC_DISP_PROPS_SLAB (Dwg_Object *obj);
12659
  //EXPORT int dwg_setup_AEC_DISP_PROPS_SLAB_PLAN (Dwg_Object *obj);
12660
  //EXPORT int dwg_setup_AEC_DISP_PROPS_SLICE (Dwg_Object *obj);
12661
  //EXPORT int dwg_setup_AEC_DISP_PROPS_SPACE_DECOMPOSED (Dwg_Object *obj);
12662
  //EXPORT int dwg_setup_AEC_DISP_PROPS_SPACE_MODEL (Dwg_Object *obj);
12663
  //EXPORT int dwg_setup_AEC_DISP_PROPS_SPACE_PLAN (Dwg_Object *obj);
12664
  //EXPORT int dwg_setup_AEC_DISP_PROPS_STAIR_MODEL (Dwg_Object *obj);
12665
  //EXPORT int dwg_setup_AEC_DISP_PROPS_STAIR_PLAN (Dwg_Object *obj);
12666
  //EXPORT int dwg_setup_AEC_DISP_PROPS_STAIR_PLAN_OVERLAPPING (Dwg_Object *obj);
12667
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WALL_GRAPH (Dwg_Object *obj);
12668
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WALL_MODEL (Dwg_Object *obj);
12669
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WALL_PLAN (Dwg_Object *obj);
12670
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WALL_SCHEM (Dwg_Object *obj);
12671
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WINDOW (Dwg_Object *obj);
12672
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WINDOW_ASSEMBLY_SILL_PLAN (Dwg_Object *obj);
12673
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WINDOW_NOMINAL (Dwg_Object *obj);
12674
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WINDOW_PLAN_100 (Dwg_Object *obj);
12675
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WINDOW_PLAN_50 (Dwg_Object *obj);
12676
  //EXPORT int dwg_setup_AEC_DISP_PROPS_WINDOW_SILL_PLAN (Dwg_Object *obj);
12677
  //EXPORT int dwg_setup_AEC_DISP_PROPS_ZONE (Dwg_Object *obj);
12678
  //EXPORT int dwg_setup_AEC_DISP_REP_2D_SECTION (Dwg_Object *obj);
12679
  //EXPORT int dwg_setup_AEC_DISP_REP_ANCHOR (Dwg_Object *obj);
12680
  //EXPORT int dwg_setup_AEC_DISP_REP_ANCHOR_BUB_TO_GRID (Dwg_Object *obj);
12681
  //EXPORT int dwg_setup_AEC_DISP_REP_ANCHOR_BUB_TO_GRID_MODEL (Dwg_Object *obj);
12682
  //EXPORT int dwg_setup_AEC_DISP_REP_ANCHOR_BUB_TO_GRID_RCP (Dwg_Object *obj);
12683
  //EXPORT int dwg_setup_AEC_DISP_REP_ANCHOR_ENT_TO_NODE (Dwg_Object *obj);
12684
  //EXPORT int dwg_setup_AEC_DISP_REP_ANCHOR_EXT_TAG_TO_ENT (Dwg_Object *obj);
12685
  //EXPORT int dwg_setup_AEC_DISP_REP_ANCHOR_TAG_TO_ENT (Dwg_Object *obj);
12686
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_ELEVLINE_MODEL (Dwg_Object *obj);
12687
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_ELEVLINE_PLAN (Dwg_Object *obj);
12688
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_ELEVLINE_RCP (Dwg_Object *obj);
12689
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_SECTIONLINE_MODEL (Dwg_Object *obj);
12690
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_SECTIONLINE_PLAN (Dwg_Object *obj);
12691
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_SECTIONLINE_RCP (Dwg_Object *obj);
12692
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_SECTION_MODEL (Dwg_Object *obj);
12693
  //EXPORT int dwg_setup_AEC_DISP_REP_BDG_SECTION_SUBDIV (Dwg_Object *obj);
12694
  //EXPORT int dwg_setup_AEC_DISP_REP_CEILING_GRID (Dwg_Object *obj);
12695
  //EXPORT int dwg_setup_AEC_DISP_REP_CEILING_GRID_MODEL (Dwg_Object *obj);
12696
  //EXPORT int dwg_setup_AEC_DISP_REP_CEILING_GRID_RCP (Dwg_Object *obj);
12697
  //EXPORT int dwg_setup_AEC_DISP_REP_CLIP_VOLUME_MODEL (Dwg_Object *obj);
12698
  //EXPORT int dwg_setup_AEC_DISP_REP_CLIP_VOLUME_PLAN (Dwg_Object *obj);
12699
  //EXPORT int dwg_setup_AEC_DISP_REP_CLIP_VOLUME_RESULT (Dwg_Object *obj);
12700
  //EXPORT int dwg_setup_AEC_DISP_REP_CLIP_VOLUME_RESULT_SUBDIV (Dwg_Object *obj);
12701
  //EXPORT int dwg_setup_AEC_DISP_REP_COLUMN_GRID (Dwg_Object *obj);
12702
  //EXPORT int dwg_setup_AEC_DISP_REP_COLUMN_GRID_MODEL (Dwg_Object *obj);
12703
  //EXPORT int dwg_setup_AEC_DISP_REP_COLUMN_GRID_RCP (Dwg_Object *obj);
12704
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_BLOCK (Dwg_Object *obj);
12705
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CIRCARC2D (Dwg_Object *obj);
12706
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONCOINCIDENT (Dwg_Object *obj);
12707
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONCONCENTRIC (Dwg_Object *obj);
12708
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONEQUALDISTANCE (Dwg_Object *obj);
12709
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONMIDPOINT (Dwg_Object *obj);
12710
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONNECTOR (Dwg_Object *obj);
12711
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONNORMAL (Dwg_Object *obj);
12712
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONPARALLEL (Dwg_Object *obj);
12713
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONPERPENDICULAR (Dwg_Object *obj);
12714
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONSYMMETRIC (Dwg_Object *obj);
12715
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_CONTANGENT (Dwg_Object *obj);
12716
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_DIMANGLE (Dwg_Object *obj);
12717
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_DIMDIAMETER (Dwg_Object *obj);
12718
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_DIMDISTANCE (Dwg_Object *obj);
12719
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_DIMLENGTH (Dwg_Object *obj);
12720
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_DIMMAJORRADIUS (Dwg_Object *obj);
12721
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_DIMMINORRADIUS (Dwg_Object *obj);
12722
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_ELLIPARC2D (Dwg_Object *obj);
12723
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_LAYOUTDATA (Dwg_Object *obj);
12724
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_LINE2D (Dwg_Object *obj);
12725
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_ADD (Dwg_Object *obj);
12726
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_CUTPLANE (Dwg_Object *obj);
12727
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_EXTRUSION (Dwg_Object *obj);
12728
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_GROUP (Dwg_Object *obj);
12729
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_LOFT (Dwg_Object *obj);
12730
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_PATH (Dwg_Object *obj);
12731
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_REVOLVE (Dwg_Object *obj);
12732
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_SUBTRACT (Dwg_Object *obj);
12733
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_MODIFIER_TRANSITION (Dwg_Object *obj);
12734
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_POINT2D (Dwg_Object *obj);
12735
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_PROFILE (Dwg_Object *obj);
12736
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_WORKPLANE (Dwg_Object *obj);
12737
  //EXPORT int dwg_setup_AEC_DISP_REP_COL_WORKPLANE_REF (Dwg_Object *obj);
12738
  //EXPORT int dwg_setup_AEC_DISP_REP_CONFIG (Dwg_Object *obj);
12739
  //EXPORT int dwg_setup_AEC_DISP_REP_CURTAIN_WALL_LAYOUT_MODEL (Dwg_Object *obj);
12740
  //EXPORT int dwg_setup_AEC_DISP_REP_CURTAIN_WALL_LAYOUT_PLAN (Dwg_Object *obj);
12741
  //EXPORT int dwg_setup_AEC_DISP_REP_CURTAIN_WALL_UNIT_MODEL (Dwg_Object *obj);
12742
  //EXPORT int dwg_setup_AEC_DISP_REP_CURTAIN_WALL_UNIT_PLAN (Dwg_Object *obj);
12743
  //EXPORT int dwg_setup_AEC_DISP_REP_DCM_DIMRADIUS (Dwg_Object *obj);
12744
  //EXPORT int dwg_setup_AEC_DISP_REP_DISPLAYTHEME (Dwg_Object *obj);
12745
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_ELEV (Dwg_Object *obj);
12746
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_MODEL (Dwg_Object *obj);
12747
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_NOMINAL (Dwg_Object *obj);
12748
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_PLAN (Dwg_Object *obj);
12749
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_PLAN_50 (Dwg_Object *obj);
12750
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_PLAN_HEKTO (Dwg_Object *obj);
12751
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_RCP (Dwg_Object *obj);
12752
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_THRESHOLD_PLAN (Dwg_Object *obj);
12753
  //EXPORT int dwg_setup_AEC_DISP_REP_DOOR_THRESHOLD_SYMBOL_PLAN (Dwg_Object *obj);
12754
  //EXPORT int dwg_setup_AEC_DISP_REP_EDITINPLACEPROFILE (Dwg_Object *obj);
12755
  //EXPORT int dwg_setup_AEC_DISP_REP_ENT_REF (Dwg_Object *obj);
12756
  //EXPORT int dwg_setup_AEC_DISP_REP_LAYOUT_CURVE (Dwg_Object *obj);
12757
  //EXPORT int dwg_setup_AEC_DISP_REP_LAYOUT_GRID2D (Dwg_Object *obj);
12758
  //EXPORT int dwg_setup_AEC_DISP_REP_LAYOUT_GRID3D (Dwg_Object *obj);
12759
  //EXPORT int dwg_setup_AEC_DISP_REP_MASKBLOCK_REF (Dwg_Object *obj);
12760
  //EXPORT int dwg_setup_AEC_DISP_REP_MASKBLOCK_REF_RCP (Dwg_Object *obj);
12761
  //EXPORT int dwg_setup_AEC_DISP_REP_MASS_ELEM_MODEL (Dwg_Object *obj);
12762
  //EXPORT int dwg_setup_AEC_DISP_REP_MASS_ELEM_RCP (Dwg_Object *obj);
12763
  //EXPORT int dwg_setup_AEC_DISP_REP_MASS_ELEM_SCHEM (Dwg_Object *obj);
12764
  //EXPORT int dwg_setup_AEC_DISP_REP_MASS_GROUP_MODEL (Dwg_Object *obj);
12765
  //EXPORT int dwg_setup_AEC_DISP_REP_MASS_GROUP_PLAN (Dwg_Object *obj);
12766
  //EXPORT int dwg_setup_AEC_DISP_REP_MASS_GROUP_RCP (Dwg_Object *obj);
12767
  //EXPORT int dwg_setup_AEC_DISP_REP_MATERIAL (Dwg_Object *obj);
12768
  //EXPORT int dwg_setup_AEC_DISP_REP_MVBLOCK_REF (Dwg_Object *obj);
12769
  //EXPORT int dwg_setup_AEC_DISP_REP_MVBLOCK_REF_MODEL (Dwg_Object *obj);
12770
  //EXPORT int dwg_setup_AEC_DISP_REP_MVBLOCK_REF_RCP (Dwg_Object *obj);
12771
  //EXPORT int dwg_setup_AEC_DISP_REP_OPENING (Dwg_Object *obj);
12772
  //EXPORT int dwg_setup_AEC_DISP_REP_OPENING_MODEL (Dwg_Object *obj);
12773
  //EXPORT int dwg_setup_AEC_DISP_REP_POLYGON_MODEL (Dwg_Object *obj);
12774
  //EXPORT int dwg_setup_AEC_DISP_REP_POLYGON_TRUECOLOUR (Dwg_Object *obj);
12775
  //EXPORT int dwg_setup_AEC_DISP_REP_RAILING_MODEL (Dwg_Object *obj);
12776
  //EXPORT int dwg_setup_AEC_DISP_REP_RAILING_PLAN (Dwg_Object *obj);
12777
  //EXPORT int dwg_setup_AEC_DISP_REP_RAILING_PLAN_100 (Dwg_Object *obj);
12778
  //EXPORT int dwg_setup_AEC_DISP_REP_RAILING_PLAN_50 (Dwg_Object *obj);
12779
  //EXPORT int dwg_setup_AEC_DISP_REP_ROOFSLAB_MODEL (Dwg_Object *obj);
12780
  //EXPORT int dwg_setup_AEC_DISP_REP_ROOFSLAB_PLAN (Dwg_Object *obj);
12781
  //EXPORT int dwg_setup_AEC_DISP_REP_ROOF_MODEL (Dwg_Object *obj);
12782
  //EXPORT int dwg_setup_AEC_DISP_REP_ROOF_PLAN (Dwg_Object *obj);
12783
  //EXPORT int dwg_setup_AEC_DISP_REP_ROOF_RCP (Dwg_Object *obj);
12784
  //EXPORT int dwg_setup_AEC_DISP_REP_SCHEDULE_TABLE (Dwg_Object *obj);
12785
  //EXPORT int dwg_setup_AEC_DISP_REP_SET (Dwg_Object *obj);
12786
  //EXPORT int dwg_setup_AEC_DISP_REP_SLAB_MODEL (Dwg_Object *obj);
12787
  //EXPORT int dwg_setup_AEC_DISP_REP_SLAB_PLAN (Dwg_Object *obj);
12788
  //EXPORT int dwg_setup_AEC_DISP_REP_SLICE (Dwg_Object *obj);
12789
  //EXPORT int dwg_setup_AEC_DISP_REP_SPACE_DECOMPOSED (Dwg_Object *obj);
12790
  //EXPORT int dwg_setup_AEC_DISP_REP_SPACE_MODEL (Dwg_Object *obj);
12791
  //EXPORT int dwg_setup_AEC_DISP_REP_SPACE_PLAN (Dwg_Object *obj);
12792
  //EXPORT int dwg_setup_AEC_DISP_REP_SPACE_RCP (Dwg_Object *obj);
12793
  //EXPORT int dwg_setup_AEC_DISP_REP_SPACE_VOLUME (Dwg_Object *obj);
12794
  //EXPORT int dwg_setup_AEC_DISP_REP_STAIR_MODEL (Dwg_Object *obj);
12795
  //EXPORT int dwg_setup_AEC_DISP_REP_STAIR_PLAN (Dwg_Object *obj);
12796
  //EXPORT int dwg_setup_AEC_DISP_REP_STAIR_PLAN_100 (Dwg_Object *obj);
12797
  //EXPORT int dwg_setup_AEC_DISP_REP_STAIR_PLAN_50 (Dwg_Object *obj);
12798
  //EXPORT int dwg_setup_AEC_DISP_REP_STAIR_PLAN_OVERLAPPING (Dwg_Object *obj);
12799
  //EXPORT int dwg_setup_AEC_DISP_REP_STAIR_RCP (Dwg_Object *obj);
12800
  //EXPORT int dwg_setup_AEC_DISP_REP_WALL_GRAPH (Dwg_Object *obj);
12801
  //EXPORT int dwg_setup_AEC_DISP_REP_WALL_MODEL (Dwg_Object *obj);
12802
  //EXPORT int dwg_setup_AEC_DISP_REP_WALL_PLAN (Dwg_Object *obj);
12803
  //EXPORT int dwg_setup_AEC_DISP_REP_WALL_RCP (Dwg_Object *obj);
12804
  //EXPORT int dwg_setup_AEC_DISP_REP_WALL_SCHEM (Dwg_Object *obj);
12805
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOWASSEMBLY_SILL_PLAN (Dwg_Object *obj);
12806
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_ASSEMBLY_MODEL (Dwg_Object *obj);
12807
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_ASSEMBLY_PLAN (Dwg_Object *obj);
12808
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_ELEV (Dwg_Object *obj);
12809
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_MODEL (Dwg_Object *obj);
12810
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_NOMINAL (Dwg_Object *obj);
12811
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_PLAN (Dwg_Object *obj);
12812
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_PLAN_100 (Dwg_Object *obj);
12813
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_PLAN_50 (Dwg_Object *obj);
12814
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_RCP (Dwg_Object *obj);
12815
  //EXPORT int dwg_setup_AEC_DISP_REP_WINDOW_SILL_PLAN (Dwg_Object *obj);
12816
  //EXPORT int dwg_setup_AEC_DISP_REP_ZONE (Dwg_Object *obj);
12817
  //EXPORT int dwg_setup_AEC_DISP_ROPS_RAILING_PLAN_100 (Dwg_Object *obj);
12818
  //EXPORT int dwg_setup_AEC_DISP_ROPS_RAILING_PLAN_50 (Dwg_Object *obj);
12819
  //EXPORT int dwg_setup_AEC_DISP_ROPS_STAIR_PLAN_100 (Dwg_Object *obj);
12820
  //EXPORT int dwg_setup_AEC_DISP_ROPS_STAIR_PLAN_50 (Dwg_Object *obj);
12821
  //EXPORT int dwg_setup_AEC_DOOR_STYLE (Dwg_Object *obj);
12822
  //EXPORT int dwg_setup_AEC_ENDCAP_STYLE (Dwg_Object *obj);
12823
  //EXPORT int dwg_setup_AEC_FRAME_DEF (Dwg_Object *obj);
12824
  //EXPORT int dwg_setup_AEC_LAYERKEY_STYLE (Dwg_Object *obj);
12825
  //EXPORT int dwg_setup_AEC_LIST_DEF (Dwg_Object *obj);
12826
  //EXPORT int dwg_setup_AEC_MASKBLOCK_DEF (Dwg_Object *obj);
12827
  //EXPORT int dwg_setup_AEC_MASS_ELEM_STYLE (Dwg_Object *obj);
12828
  //EXPORT int dwg_setup_AEC_MATERIAL_DEF (Dwg_Object *obj);
12829
  //EXPORT int dwg_setup_AEC_MVBLOCK_DEF (Dwg_Object *obj);
12830
  //EXPORT int dwg_setup_AEC_MVBLOCK_REF (Dwg_Object *obj);
12831
  //EXPORT int dwg_setup_AEC_NOTIFICATION_TRACKER (Dwg_Object *obj);
12832
  //EXPORT int dwg_setup_AEC_POLYGON (Dwg_Object *obj);
12833
  //EXPORT int dwg_setup_AEC_POLYGON_STYLE (Dwg_Object *obj);
12834
  //EXPORT int dwg_setup_AEC_PROPERTY_SET_DEF (Dwg_Object *obj);
12835
  //EXPORT int dwg_setup_AEC_RAILING_STYLE (Dwg_Object *obj);
12836
  //EXPORT int dwg_setup_AEC_REFEDIT_STATUS_TRACKER (Dwg_Object *obj);
12837
  //EXPORT int dwg_setup_AEC_ROOFSLABEDGE_STYLE (Dwg_Object *obj);
12838
  //EXPORT int dwg_setup_AEC_ROOFSLAB_STYLE (Dwg_Object *obj);
12839
  //EXPORT int dwg_setup_AEC_SCHEDULE_DATA_FORMAT (Dwg_Object *obj);
12840
  //EXPORT int dwg_setup_AEC_SLABEDGE_STYLE (Dwg_Object *obj);
12841
  //EXPORT int dwg_setup_AEC_SLAB_STYLE (Dwg_Object *obj);
12842
  //EXPORT int dwg_setup_AEC_SPACE_STYLES (Dwg_Object *obj);
12843
  //EXPORT int dwg_setup_AEC_STAIR_STYLE (Dwg_Object *obj);
12844
  //EXPORT int dwg_setup_AEC_STAIR_WINDER_STYLE (Dwg_Object *obj);
12845
  //EXPORT int dwg_setup_AEC_STAIR_WINDER_TYPE_BALANCED (Dwg_Object *obj);
12846
  //EXPORT int dwg_setup_AEC_STAIR_WINDER_TYPE_MANUAL (Dwg_Object *obj);
12847
  //EXPORT int dwg_setup_AEC_STAIR_WINDER_TYPE_SINGLE_POINT (Dwg_Object *obj);
12848
  //EXPORT int dwg_setup_AEC_VARS_AECBBLDSRV (Dwg_Object *obj);
12849
  //EXPORT int dwg_setup_AEC_VARS_ARCHBASE (Dwg_Object *obj);
12850
  //EXPORT int dwg_setup_AEC_VARS_DWG_SETUP (Dwg_Object *obj);
12851
  //EXPORT int dwg_setup_AEC_VARS_MUNICH (Dwg_Object *obj);
12852
  //EXPORT int dwg_setup_AEC_VARS_STRUCTUREBASE (Dwg_Object *obj);
12853
  //EXPORT int dwg_setup_AEC_WALLMOD_STYLE (Dwg_Object *obj);
12854
  //EXPORT int dwg_setup_AEC_WALL_STYLE (Dwg_Object *obj);
12855
  //EXPORT int dwg_setup_AEC_WINDOW_ASSEMBLY_STYLE (Dwg_Object *obj);
12856
  //EXPORT int dwg_setup_AEC_WINDOW_STYLE (Dwg_Object *obj);
12857
  //EXPORT int dwg_setup_ALIGNMENTGRIPENTITY (Dwg_Object *obj);
12858
  //EXPORT int dwg_setup_AMCONTEXTMGR (Dwg_Object *obj);
12859
  //EXPORT int dwg_setup_AMDTADMENUSTATE (Dwg_Object *obj);
12860
  //EXPORT int dwg_setup_AMDTAMMENUSTATE (Dwg_Object *obj);
12861
  //EXPORT int dwg_setup_AMDTBROWSERDBTAB (Dwg_Object *obj);
12862
  //EXPORT int dwg_setup_AMDTDMMENUSTATE (Dwg_Object *obj);
12863
  //EXPORT int dwg_setup_AMDTEDGESTANDARDDIN (Dwg_Object *obj);
12864
  //EXPORT int dwg_setup_AMDTEDGESTANDARDDIN13715 (Dwg_Object *obj);
12865
  //EXPORT int dwg_setup_AMDTEDGESTANDARDISO (Dwg_Object *obj);
12866
  //EXPORT int dwg_setup_AMDTEDGESTANDARDISO13715 (Dwg_Object *obj);
12867
  //EXPORT int dwg_setup_AMDTFORMULAUPDATEDISPATCHER (Dwg_Object *obj);
12868
  //EXPORT int dwg_setup_AMDTINTERNALREACTOR (Dwg_Object *obj);
12869
  //EXPORT int dwg_setup_AMDTMCOMMENUSTATE (Dwg_Object *obj);
12870
  //EXPORT int dwg_setup_AMDTMENUSTATEMGR (Dwg_Object *obj);
12871
  //EXPORT int dwg_setup_AMDTNOTE (Dwg_Object *obj);
12872
  //EXPORT int dwg_setup_AMDTNOTETEMPLATEDB (Dwg_Object *obj);
12873
  //EXPORT int dwg_setup_AMDTSECTIONSYM (Dwg_Object *obj);
12874
  //EXPORT int dwg_setup_AMDTSECTIONSYMLABEL (Dwg_Object *obj);
12875
  //EXPORT int dwg_setup_AMDTSYSATTR (Dwg_Object *obj);
12876
  //EXPORT int dwg_setup_AMGOBJPROPCFG (Dwg_Object *obj);
12877
  //EXPORT int dwg_setup_AMGSETTINGSOBJ (Dwg_Object *obj);
12878
  //EXPORT int dwg_setup_AMIMASTER (Dwg_Object *obj);
12879
  //EXPORT int dwg_setup_AM_DRAWING_MGR (Dwg_Object *obj);
12880
  //EXPORT int dwg_setup_AM_DWGMGR_NAME (Dwg_Object *obj);
12881
  //EXPORT int dwg_setup_AM_DWG_DOCUMENT (Dwg_Object *obj);
12882
  //EXPORT int dwg_setup_AM_DWG_SHEET (Dwg_Object *obj);
12883
  //EXPORT int dwg_setup_AM_VIEWDIMPARMAP (Dwg_Object *obj);
12884
  //EXPORT int dwg_setup_BINRECORD (Dwg_Object *obj);
12885
  //EXPORT int dwg_setup_CAMSCATALOGAPPOBJECT (Dwg_Object *obj);
12886
  //EXPORT int dwg_setup_CAMSSTRUCTBTNSTATE (Dwg_Object *obj);
12887
  //EXPORT int dwg_setup_CATALOGSTATE (Dwg_Object *obj);
12888
  //EXPORT int dwg_setup_CBROWSERAPPOBJECT (Dwg_Object *obj);
12889
  //EXPORT int dwg_setup_DEPMGR (Dwg_Object *obj);
12890
  //EXPORT int dwg_setup_DMBASEELEMENT (Dwg_Object *obj);
12891
  //EXPORT int dwg_setup_DMDEFAULTSTYLE (Dwg_Object *obj);
12892
  //EXPORT int dwg_setup_DMLEGEND (Dwg_Object *obj);
12893
  //EXPORT int dwg_setup_DMMAP (Dwg_Object *obj);
12894
  //EXPORT int dwg_setup_DMMAPMANAGER (Dwg_Object *obj);
12895
  //EXPORT int dwg_setup_DMSTYLECATEGORY (Dwg_Object *obj);
12896
  //EXPORT int dwg_setup_DMSTYLELIBRARY (Dwg_Object *obj);
12897
  //EXPORT int dwg_setup_DMSTYLEREFERENCE (Dwg_Object *obj);
12898
  //EXPORT int dwg_setup_DMSTYLIZEDENTITIESTABLE (Dwg_Object *obj);
12899
  //EXPORT int dwg_setup_DMSURROGATESTYLESETS (Dwg_Object *obj);
12900
  //EXPORT int dwg_setup_DM_PLACEHOLDER (Dwg_Object *obj);
12901
  //EXPORT int dwg_setup_EXACTERMXREFMAP (Dwg_Object *obj);
12902
  //EXPORT int dwg_setup_EXACXREFPANELOBJECT (Dwg_Object *obj);
12903
  //EXPORT int dwg_setup_EXPO_NOTIFYBLOCK (Dwg_Object *obj);
12904
  //EXPORT int dwg_setup_EXPO_NOTIFYHALL (Dwg_Object *obj);
12905
  //EXPORT int dwg_setup_EXPO_NOTIFYPILLAR (Dwg_Object *obj);
12906
  //EXPORT int dwg_setup_EXPO_NOTIFYSTAND (Dwg_Object *obj);
12907
  //EXPORT int dwg_setup_EXPO_NOTIFYSTANDNOPOLY (Dwg_Object *obj);
12908
  //EXPORT int dwg_setup_FLIPACTIONENTITY (Dwg_Object *obj);
12909
  //EXPORT int dwg_setup_GSMANAGER (Dwg_Object *obj);
12910
  //EXPORT int dwg_setup_IRD_DSC_DICT (Dwg_Object *obj);
12911
  //EXPORT int dwg_setup_IRD_DSC_RECORD (Dwg_Object *obj);
12912
  //EXPORT int dwg_setup_IRD_OBJ_RECORD (Dwg_Object *obj);
12913
  //EXPORT int dwg_setup_MAPFSMRVOBJECT (Dwg_Object *obj);
12914
  //EXPORT int dwg_setup_MAPGWSUNDOOBJECT (Dwg_Object *obj);
12915
  //EXPORT int dwg_setup_MAPIAMMOUDLE (Dwg_Object *obj);
12916
  //EXPORT int dwg_setup_MAPMETADATAOBJECT (Dwg_Object *obj);
12917
  //EXPORT int dwg_setup_MAPRESOURCEMANAGEROBJECT (Dwg_Object *obj);
12918
  //EXPORT int dwg_setup_MOVEACTIONENTITY (Dwg_Object *obj);
12919
  //EXPORT int dwg_setup_McDbContainer2 (Dwg_Object *obj);
12920
  //EXPORT int dwg_setup_McDbMarker (Dwg_Object *obj);
12921
  //EXPORT int dwg_setup_NAMEDAPPL (Dwg_Object *obj);
12922
  //EXPORT int dwg_setup_NEWSTDPARTPARLIST (Dwg_Object *obj);
12923
  //EXPORT int dwg_setup_NPOCOLLECTION (Dwg_Object *obj);
12924
  //EXPORT int dwg_setup_OBJCLONER (Dwg_Object *obj);
12925
  //EXPORT int dwg_setup_PARAMMGR (Dwg_Object *obj);
12926
  //EXPORT int dwg_setup_PARAMSCOPE (Dwg_Object *obj);
12927
  //EXPORT int dwg_setup_PILLAR (Dwg_Object *obj);
12928
  //EXPORT int dwg_setup_ROTATEACTIONENTITY (Dwg_Object *obj);
12929
  //EXPORT int dwg_setup_SCALEACTIONENTITY (Dwg_Object *obj);
12930
  //EXPORT int dwg_setup_STDPART2D (Dwg_Object *obj);
12931
  //EXPORT int dwg_setup_STRETCHACTIONENTITY (Dwg_Object *obj);
12932
  //EXPORT int dwg_setup_TCH_ARROW (Dwg_Object *obj);
12933
  //EXPORT int dwg_setup_TCH_AXIS_LABEL (Dwg_Object *obj);
12934
  //EXPORT int dwg_setup_TCH_BLOCK_INSERT (Dwg_Object *obj);
12935
  //EXPORT int dwg_setup_TCH_COLUMN (Dwg_Object *obj);
12936
  //EXPORT int dwg_setup_TCH_DBCONFIG (Dwg_Object *obj);
12937
  //EXPORT int dwg_setup_TCH_DIMENSION2 (Dwg_Object *obj);
12938
  //EXPORT int dwg_setup_TCH_DRAWINGINDEX (Dwg_Object *obj);
12939
  //EXPORT int dwg_setup_TCH_HANDRAIL (Dwg_Object *obj);
12940
  //EXPORT int dwg_setup_TCH_LINESTAIR (Dwg_Object *obj);
12941
  //EXPORT int dwg_setup_TCH_OPENING (Dwg_Object *obj);
12942
  //EXPORT int dwg_setup_TCH_RECTSTAIR (Dwg_Object *obj);
12943
  //EXPORT int dwg_setup_TCH_SLAB (Dwg_Object *obj);
12944
  //EXPORT int dwg_setup_TCH_SPACE (Dwg_Object *obj);
12945
  //EXPORT int dwg_setup_TCH_TEXT (Dwg_Object *obj);
12946
  //EXPORT int dwg_setup_TCH_WALL (Dwg_Object *obj);
12947
  //EXPORT int dwg_setup_TGrupoPuntos (Dwg_Object *obj);
12948
  //EXPORT int dwg_setup_VAACIMAGEINVENTORY (Dwg_Object *obj);
12949
  //EXPORT int dwg_setup_VAACXREFPANELOBJECT (Dwg_Object *obj);
12950
  //EXPORT int dwg_setup_XREFPANELOBJECT (Dwg_Object *obj);
12951
#endif
12952
// clang-format: on
12953
/* End auto-generated content */
12954
// clang-format on
12955
12956
#ifdef __cplusplus
12957
}
12958
#endif
12959
12960
#endif