LibreDWG API  0.13.3
LibreDWG API - The DWG Library
spec.h File Reference
#include <string.h>
#include "bits.h"
#include "codepages.h"
#include "decode.h"

Go to the source code of this file.

Macros

#define _GNU_SOURCE
 
#define DECODER   if (0)
 
#define ENCODER   if (0)
 
#define PRINT   if (0)
 
#define DECODER_OR_ENCODER   if (0)
 
#define DXF_OR_PRINT   if (0)
 
#define DXF_OR_FREE   if (0)
 
#define DXF   if (0)
 
#define JSON   if (0)
 
#define FREE   if (0)
 
#define IF_FREE_OR_SINCE(x)   SINCE (x)
 
#define IF_FREE_OR_VERSIONS(x, y)   VERSIONS (x, y)
 
#define IF_ENCODE_FROM_EARLIER   if (0)
 
#define IF_ENCODE_FROM_EARLIER_OR_DXF   if (0)
 
#define IF_ENCODE_FROM_PRE_R13   if (0)
 
#define IF_ENCODE_FROM_PRE_R2000   if (0)
 
#define IF_ENCODE_SINCE_R13   if (0)
 
#define IF_IS_ENCODER   0
 
#define IF_IS_DECODER   0
 
#define IF_IS_DXF   0
 
#define IF_IS_FREE   0
 
#define _DWG_FUNC_N(ACTION, name)   dwg_##ACTION##_##name
 
#define DWG_FUNC_N(ACTION, name)   _DWG_FUNC_N (ACTION, name)
 
#define _DWG_PRIVATE_N(ACTION, name)   dwg_##ACTION##_##name##_private
 
#define DWG_PRIVATE_N(ACTION, name)   _DWG_PRIVATE_N (ACTION, name)
 
#define SET_PARENT(field, obj)
 
#define SET_PARENT_OBJ(field)
 
#define SET_PARENT_FIELD(field, what_parent, obj)
 
#define ISFIRST
 
#define SETFIRST
 
#define CLEARFIRST
 
#define _IN_RANGE(var, n)
 
#define VALUEOUTOFBOUNDS(field, maxvalue)
 
#define SUB_VALUEOUTOFBOUNDS(o, field, maxvalue)
 
#define VALUE_HANDLE(value, nam, handle_code, dxf)
 
#define VALUE_B(value, dxf)
 
#define VALUE_TV(value, dxf)
 
#define VALUE_TF(value, dxf)
 
#define VALUE_TFF(value, dxf)
 
#define VALUE_3BD(value, dxf)
 
#define VALUE_2RD(value, dxf)
 
#define VALUE_2BD(value, dxf)   VALUE_2RD (value, dxf)
 
#define VALUE_3RD(value, dxf)   VALUE_3BD (value, dxf)
 
#define VALUE_BS(value, dxf)
 
#define VALUE_BSd(value, dxf)
 
#define VALUE_RSd(value, dxf)
 
#define VALUE_BL(value, dxf)
 
#define VALUE_RLx(value, dxf)   VALUE_RL (value, dxf)
 
#define KEY(nam)
 
#define BLOCK_NAME(nam, dxf)   FIELD_T (nam, dxf)
 
#define FIELDG(nam, type, dxf)   FIELD (nam, type)
 
#define SUB_FIELD_BSd(o, nam, dxf)   FIELD_BSd (o.nam, dxf)
 
#define SUB_FIELD_BSx(o, nam, dxf)   FIELD_BSx (o.nam, dxf)
 
#define SUB_FIELD_RSx(o, nam, dxf)   FIELD_RSx (o.nam, dxf)
 
#define SUB_FIELD_RLLd(o, nam, dxf)   FIELD_RLLd (o.nam, dxf)
 
#define SUB_FIELD_TU(o, nam, dxf)   FIELD_TU (o.nam, dxf)
 
#define SUB_FIELD_T(o, nam, dxf)   FIELD_T (o.nam, dxf)
 
#define SUB_FIELD_TV(o, nam, dxf)   FIELD_TV (o.nam, dxf)
 
#define SUB_FIELD_TF(o, nam, len, dxf)   FIELD_TF (o.nam, _obj->o.len, dxf)
 
#define SUB_FIELD_BLx(o, nam, dxf)   FIELD_BLx (o.nam, dxf)
 
#define SUB_FIELD_RC(o, nam, dxf)   SUB_FIELD (o, nam, RC, dxf)
 
#define SUB_FIELD_B(o, nam, dxf)   FIELDG (o.nam, B, dxf)
 
#define SUB_FIELD_BB(o, nam, dxf)   FIELDG (o.nam, BB, dxf)
 
#define SUB_FIELD_3B(o, nam, dxf)   FIELDG (o.nam, 3B, dxf)
 
#define SUB_FIELD_BS(o, nam, dxf)   FIELDG (o.nam, BS, dxf)
 
#define SUB_FIELD_BL(o, nam, dxf)   FIELDG (o.nam, BL, dxf)
 
#define SUB_FIELD_BLd(o, nam, dxf)   FIELD_BLd (o.nam, dxf)
 
#define SUB_FIELD_RS(o, nam, dxf)   FIELDG (o.nam, RS, dxf)
 
#define SUB_FIELD_RL(o, nam, dxf)   FIELDG (o.nam, RL, dxf)
 
#define SUB_FIELD_BLL(o, nam, dxf)   FIELDG (o.nam, BLL, dxf)
 
#define SUB_FIELD_RLL(o, nam, dxf)   FIELDG (o.nam, RLL, dxf)
 
#define SUB_FIELD_BD(o, nam, dxf)   FIELD_BD (o.nam, dxf)
 
#define SUB_FIELD_RD(o, nam, dxf)   FIELD_RD (o.nam, dxf)
 
#define SUB_FIELD_2RD(o, nam, dxf)   FIELD_2RD (o.nam, dxf)
 
#define SUB_FIELD_2BD(o, nam, dxf)   FIELD_2BD (o.nam, dxf)
 
#define SUB_FIELD_2BD_1(o, nam, dxf)   FIELD_2BD_1 (o.nam, dxf)
 
#define SUB_FIELD_3RD(o, nam, dxf)   FIELD_3RD (o.nam, dxf)
 
#define SUB_FIELD_3BD(o, nam, dxf)   FIELD_3BD (o.nam, dxf)
 
#define SUB_FIELD_3BD_inl(o, nam, dxf)   FIELD_3BD (o, dxf)
 
#define SUB_FIELD_3DPOINT(o, nam, dxf)   FIELD_3BD (o.nam, dxf)
 
#define SUB_HANDLE_VECTOR(o, nam, sizefield, code, dxf)
 
#define SUB_FIELD_VECTOR(o, nam, type, sizefield, dxf)
 
#define SUB_FIELD_VECTOR_N(o, nam, type, size, dxf)
 
#define FIELD_VECTOR_INL(nam, type, size, dxf)    FIELD_VECTOR_N (nam, type, size, dxf)
 
#define SUB_FIELD_VECTOR_INL(o, nam, type, size, dxf)    SUB_FIELD_VECTOR_N (o, nam, type, size, dxf)
 
#define SUB_FIELD_2RD_VECTOR(o, name, size, dxf)
 
#define SUB_FIELD_3BD_VECTOR(o, name, size, dxf)
 
#define FIELD_VECTOR_T1(nam, type, size, dxf)    FIELD_VECTOR_T (nam, type, size, dxf)
 
#define SUB_FIELD_VECTOR_TYPESIZE(o, nam, size, typesize, dxf)
 
#define _REPEAT_F(times, size, nam, type, idx)
 
#define REPEAT_F(times, size, nam, type)    _REPEAT_F (times, size, nam, type, 1)
 
#define FIELD_RLx(name, dxf)   FIELD_RL (name, dxf)
 
#define FIELD_RSx(name, dxf)   FIELD_RS (name, dxf)
 
#define FIELD_RCx(name, dxf)   FIELD_RC (name, dxf)
 
#define FIELD_BLx(name, dxf)   FIELD_BL (name, dxf)
 
#define FIELD_TFv(name, len, dxf)   FIELD_TV (name, dxf)
 
#define FIELD_TFFx(name, len, dxf)   FIELD_TFF (name, len, dxf)
 
#define FIELD_TU32(name, dxf)   FIELD_TV (name, dxf)
 
#define FIELD_RLd(name, dxf)   FIELD_RL (name, dxf)
 
#define FIELD_BLd(name, dxf)   FIELD_BL (name, dxf)
 
#define FIELD_BSx(name, dxf)   FIELD_BS (name, dxf)
 
#define FIELD_BSd(name, dxf)   FIELD_BS (name, dxf)
 
#define FIELD_RSd(name, dxf)   FIELD_RS (name, dxf)
 
#define FIELD_RLLd(name, dxf)   FIELD_RLL (name, dxf)
 
#define FIELD_RCu(name, dxf)   FIELD_RC (name, dxf)
 
#define FIELD_RCd(name, dxf)   FIELD_RC (name, dxf)
 
#define VALUE_BINARY(value, len, dxf)
 
#define FIELD_BINARY(name, len, dxf)   FIELD_TF (name, len, dxf)
 
#define FIELD_CMTC(name, dxf)
 
#define SUB_FIELD_CMTC(o, name, dxf)
 
#define FIELD_2RD0(name, dxf)   FIELD_2RD (name, dxf)
 
#define FIELD_RD0(name, dxf)   FIELD_RD (name, dxf)
 
#define FIELD_RD1(name, dxf)   FIELD_RD (name, dxf)
 
#define FIELD_BD0(name, dxf)   FIELD_BD (name, dxf)
 
#define FIELD_BD1(name, dxf)   FIELD_BD (name, dxf)
 
#define FIELD_BL0(name, dxf)   FIELD_BL (name, dxf)
 
#define SUB_FIELD_BL0(o, name, dxf)   SUB_FIELD_BL (o, name, dxf)
 
#define FIELD_B0(name, dxf)   FIELD_B (name, dxf)
 
#define FIELD_BS0(name, dxf)   FIELD_BS (name, dxf)
 
#define FIELD_BS1(name, dxf)   FIELD_BS (name, dxf)
 
#define FIELD_RC0(name, dxf)   FIELD_RC (name, dxf)
 
#define FIELD_RS0(name, dxf)   FIELD_RS (name, dxf)
 
#define FIELD_RL0(name, dxf)   FIELD_RL (name, dxf)
 
#define FIELD_BT0(name, dxf)   FIELD_BT (name, dxf)
 
#define VALUE_T0(name, dxf)   VALUE_T (name, dxf)
 
#define FIELD_TV0(name, dxf)   FIELD_TV (name, dxf)
 
#define FIELD_T0(name, dxf)   FIELD_T (name, dxf)
 
#define FIELD_CMC0(color, dxf)   FIELD_CMC (color, dxf)
 
#define FIELD_HANDLE0(name, code, dxf)   FIELD_HANDLE (name, code, dxf)
 
#define SUB_FIELD_HANDLE0(o, name, code, dxf)    SUB_FIELD_HANDLE (o, name, code, dxf)
 
#define VALUE_TV0(name, dxf)   VALUE_TV (name, dxf)
 
#define FIELD_2RD_1(nam, dxf)   FIELD_2RD (nam, dxf)
 
#define FIELD_D2T(name, dxf)   FIELD_TV (name, dxf)
 
#define LOG_TRACE_TF(var, len)
 
#define LOG_INSANE_TF(var, len)
 
#define SUBCLASS(text)
 
#define DXF_3DSOLID
 
#define JSON_3DSOLID
 
#define FIELD_2PT_TRACE(name, type, dxf)
 
#define FIELD_3PT_TRACE(name, type, dxf)
 
#define FIELD_ENC(a, b, c)   FIELD_CMC (a, b, c)
 
#define SUB_FIELD_ENC(a, b, c, d)   SUB_FIELD_CMC (a, b, c, d)
 
#define TRACE_DD
 
#define END_REPEAT(field)
 
#define END_REPEAT_F(field)
 
#define R11OPTS(b)   (_ent->opts_r11 & (b))
 
#define R11FLAG(b)   (_ent->flag_r11 & (b))
 
#define R11EXTRA(b)   (_ent->extra_r11 & (b))
 
#define HANDLE_UNKNOWN_BITS
 
#define UNKNOWN_BITS_REST
 
#define START_OBJECT_HANDLE_STREAM
 
#define CONTROL_HANDLE_STREAM
 
#define LOG_FLAG_W(token, w)
 
#define LOG_FLAG_TABLE_W(w)
 
#define LOG_FLAG_TABLE_MAX(v)
 
#define LOG_FLAG_TABLE_COMMON
 
#define LOG_FLAG_BLOCK_W(w)
 
#define LOG_FLAG_Block
 
#define LOG_FLAG_Layer
 
#define LOG_FLAG_TextStyle
 
#define LOG_FLAG_View
 
#define LOG_FLAG_VX
 
#define LOG_FLAG_Viewport   LOG_FLAG_TABLE_COMMON
 
#define LOG_FLAG_RegApp   LOG_FLAG_TABLE_COMMON
 
#define LOG_FLAG_DimStyle   LOG_FLAG_TABLE_COMMON
 
#define LOG_FLAG_Linetype   LOG_FLAG_TABLE_COMMON
 
#define LOG_FLAG_UCS   LOG_FLAG_TABLE_COMMON
 
#define COMMON_TABLE_FLAGS(acdbname)
 
#define FIELD_VECTOR_N1(name, type, size, dxf)    FIELD_VECTOR_N (name, type, size, dxf)
 
#define REPEAT_BLOCK   {
 
#define END_REPEAT_BLOCK   }
 
#define REPEAT_CN(times, name, type)
 
#define REPEAT_N(times, name, type)
 
#define _REPEAT(times, name, type, idx)
 
#define _REPEAT_C(times, name, type, idx)
 
#define REPEAT(times, name, type)   _REPEAT (times, name, type, 1)
 
#define REPEAT2(times, name, type)   _REPEAT (times, name, type, 2)
 
#define REPEAT3(times, name, type)   _REPEAT (times, name, type, 3)
 
#define REPEAT4(times, name, type)   _REPEAT (times, name, type, 4)
 
#define REPEAT_C(times, name, type)   _REPEAT_C (times, name, type, 1)
 
#define REPEAT2_C(times, name, type)   _REPEAT_C (times, name, type, 2)
 
#define REPEAT3_C(times, name, type)   _REPEAT_C (times, name, type, 3)
 
#define REPEAT4_C(times, name, type)   _REPEAT_C (times, name, type, 4)
 
#define _REPEAT_CN(times, name, type, idx)
 
#define _REPEAT_CNF(times, name, type, idx)
 
#define _REPEAT_NF(times, name, type, idx)
 
#define DWG_SUBCLASS_DECL(parenttype, subtype)
 
#define DWG_SUBCLASS(parenttype, subtype)
 
#define CALL_SUBCLASS(_xobj, parenttype, subtype)
 
#define CALL_ENTITY(name, xobj)
 
#define CALL_SUBENT(hdl, dxf)
 
#define CALL_SUBCURVE(hdl, curvetype)
 
#define UNKNOWN_UNTIL(pos)
 
#define LOG_FLAG_MAX(value, w)
 
#define LOG_TEXT_GENERATION_W(w)
 
#define LOG_TEXT_GENERATION
 
#define LOG_HORIZ_ALIGNMENT_W(w)
 
#define LOG_HORIZ_ALIGNMENT
 
#define LOG_VERT_ALIGNMENT_W(w)
 
#define LOG_VERT_ALIGNMENT
 
#define LOG_FLAG_ATTDEF_W(w)
 
#define LOG_FLAG_ATTDEF
 
#define LOG_FLAG_ATTRIB_W(w)
 
#define LOG_FLAG_ATTRIB
 
#define LOG_FLAG_LWPOLYLINE_W(w)
 
#define LOG_FLAG_LWPOLYLINE
 
#define LOG_FLAG_POLYLINE_W(w)
 
#define LOG_FLAG_POLYLINE
 
#define LOG_FLAG_VERTEX_W(w)
 
#define LOG_FLAG_VERTEX
 
#define LOG_POLYLINE_CURVETYPE_W(w)
 
#define LOG_POLYLINE_CURVETYPE
 
#define LOG_LEADER_PATHTYPE_W(w)
 
#define LOG_LEADER_PATHTYPE
 
#define LOG_LEADER_ANNOTTYPE_W(w)
 
#define LOG_LEADER_ANNOTTYPE
 
#define LOG_MLINE_FLAGS_W(w)
 
#define LOG_MLINE_FLAGS
 
#define LOG_MLINE_JUSTIFICATION_W(w)
 
#define LOG_MLINE_JUSTIFICATION
 
#define LOG_SPLINE_SCENARIO_W(w)
 
#define LOG_SPLINE_SCENARIO
 
#define LOG_SPLINE_SPLINEFLAGS_W(w)
 
#define LOG_SPLINE_SPLINEFLAGS
 
#define LOG_SPLINE_KNOTPARAM_W(w)
 
#define LOG_SPLINE_KNOTPARAM
 
#define LOG_LIGHT_TYPE_W(w)
 
#define LOG_LIGHT_TYPE
 
#define LOG_LIGHT_ATTENUATION_W(w)
 
#define LOG_LIGHT_ATTENUATION_TYPE
 
#define LOG_EXTLIGHT_SHAPE_W(w)
 
#define LOG_LIGHT_EXTLIGHT_SHAPE
 
#define LOG_INVISIBLE_W(w)
 
#define LOG_3DFACE_INVISIBLE
 
#define PRER13_SECTION_HDR(name)
 
#define DWG_TABLE(token)   DWG_OBJECT (token)
 

Macro Definition Documentation

◆ _DWG_FUNC_N

#define _DWG_FUNC_N (   ACTION,
  name 
)    dwg_##ACTION##_##name

◆ _DWG_PRIVATE_N

#define _DWG_PRIVATE_N (   ACTION,
  name 
)    dwg_##ACTION##_##name##_private

◆ _GNU_SOURCE

#define _GNU_SOURCE

◆ _IN_RANGE

#define _IN_RANGE (   var,
 
)
Value:
((sizeof (var) == 1 && n <= 0xff) || (sizeof (var) == 2 && n <= 0xffff) \
|| (sizeof (var) >= 4))

◆ _REPEAT

#define _REPEAT (   times,
  name,
  type,
  idx 
)
Value:
if (dat->version >= R_2000 && (BITCODE_BL)_obj->times > 20000) \
{ \
LOG_ERROR ("Invalid %s." #name " rcount" #idx " %ld", SAFEDXFNAME, \
(long)_obj->times); \
} \
if (_obj->times > 0 && _obj->name != NULL) \
for (rcount##idx = 0; rcount##idx < (BITCODE_BL)_obj->times; \
rcount##idx++)
#define SAFEDXFNAME
Definition: common.h:462
@ DWG_ERR_VALUEOUTOFBOUNDS
Definition: dwg.h:748
@ R_2000
Definition: dwg.h:296
uint32_t BITCODE_BL
Definition: dwg.h:115

◆ _REPEAT_C

#define _REPEAT_C (   times,
  name,
  type,
  idx 
)
Value:
if (_obj->times > 0 && _obj->name != NULL) \
for (rcount##idx = 0; rcount##idx < (BITCODE_BL)_obj->times; \
rcount##idx++)

◆ _REPEAT_CN

#define _REPEAT_CN (   times,
  name,
  type,
  idx 
)
Value:
if (_obj->name != NULL) \
for (rcount##idx = 0; rcount##idx < (BITCODE_BL)times; rcount##idx++)

◆ _REPEAT_CNF

#define _REPEAT_CNF (   times,
  name,
  type,
  idx 
)
Value:
if (_obj->name != NULL) \
for (rcount##idx = 0; rcount##idx < (BITCODE_BL)times; rcount##idx++)

◆ _REPEAT_F

#define _REPEAT_F (   times,
  size,
  nam,
  type,
  idx 
)
Value:
if (_obj->times > (BITCODE_BL)size) \
{ \
LOG_ERROR ("Invalid %s " FORMAT_BL " > %u", #nam, \
FIELD_VALUE (times), (unsigned)size); \
FIELD_VALUE (times) = (BITCODE_BL)size; \
} \
for (rcount##idx = 0; rcount##idx < (BITCODE_BL)_obj->times; rcount##idx++)
#define FIELD_VALUE(nam)
Definition: dec_macros.h:271
#define FORMAT_BL
Definition: dwg.h:147

◆ _REPEAT_NF

#define _REPEAT_NF (   times,
  name,
  type,
  idx 
)
Value:
if (dat->version >= R_2000 && times > 0x7ff) \
{ \
LOG_ERROR ("Invalid %s." #name " rcount" #idx " %ld", SAFEDXFNAME, \
(long)times); \
} \
if (_obj->name != NULL) \
for (rcount##idx = 0; rcount##idx < (BITCODE_BL)times; rcount##idx++)

◆ BLOCK_NAME

#define BLOCK_NAME (   nam,
  dxf 
)    FIELD_T (nam, dxf)

◆ CALL_ENTITY

#define CALL_ENTITY (   name,
  xobj 
)
Value:
error |= DWG_PRIVATE_N (ACTION, name) (dat, hdl_dat, str_dat, \
(Dwg_Object *)xobj)
#define ACTION
Definition: dec_macros.h:35
#define DWG_PRIVATE_N(ACTION, name)
Definition: spec.h:55
Definition: dwg.h:8968

◆ CALL_SUBCLASS

#define CALL_SUBCLASS (   _xobj,
  parenttype,
  subtype 
)
Value:
error |= DWG_PRIVATE_N (ACTION, parenttype##_##subtype) ( \
_xobj, dat, hdl_dat, str_dat, (Dwg_Object *)obj)

◆ CALL_SUBCURVE

#define CALL_SUBCURVE (   hdl,
  curvetype 
)

◆ CALL_SUBENT

#define CALL_SUBENT (   hdl,
  dxf 
)

◆ CLEARFIRST

#define CLEARFIRST

◆ COMMON_TABLE_FLAGS

#define COMMON_TABLE_FLAGS (   acdbname)

◆ CONTROL_HANDLE_STREAM

#define CONTROL_HANDLE_STREAM
Value:
assert (obj->supertype == DWG_SUPERTYPE_OBJECT); \
PRE (R_2007a) \
{ \
hdl_dat->byte = dat->byte; \
hdl_dat->bit = dat->bit; \
} \
SINCE (R_13b1) \
{ \
VALUE_HANDLE (obj->tio.object->ownerhandle, ownerhandle, 4, 0); \
REACTORS (4) \
XDICOBJHANDLE (3) \
}
@ DWG_SUPERTYPE_OBJECT
Definition: dwg.h:356
@ R_13b1
Definition: dwg.h:290
@ R_2007a
Definition: dwg.h:305

◆ DECODER

#define DECODER   if (0)

◆ DECODER_OR_ENCODER

#define DECODER_OR_ENCODER   if (0)

◆ DWG_FUNC_N

#define DWG_FUNC_N (   ACTION,
  name 
)    _DWG_FUNC_N (ACTION, name)

◆ DWG_PRIVATE_N

#define DWG_PRIVATE_N (   ACTION,
  name 
)    _DWG_PRIVATE_N (ACTION, name)

◆ DWG_SUBCLASS

#define DWG_SUBCLASS (   parenttype,
  subtype 
)
Value:
static int DWG_PRIVATE_N (ACTION, parenttype##_##subtype) ( \
Dwg_Object_##parenttype *restrict _obj, Bit_Chain * dat, \
Bit_Chain * hdl_dat, Bit_Chain * str_dat, Dwg_Object *restrict obj) \
{ \
BITCODE_BL vcount, rcount3, rcount4; \
Dwg_Data *dwg = obj->parent; \
int error = 0; \
subtype##_fields; \
return error; \
}
Definition: bits.h:70

◆ DWG_SUBCLASS_DECL

#define DWG_SUBCLASS_DECL (   parenttype,
  subtype 
)
Value:
static int DWG_PRIVATE_N (ACTION, parenttype##_##subtype) ( \
Dwg_Object_##parenttype *restrict _obj, Bit_Chain * dat, \
Bit_Chain * hdl_dat, Bit_Chain * str_dat, Dwg_Object *restrict obj)

◆ DWG_TABLE

#define DWG_TABLE (   token)    DWG_OBJECT (token)

◆ DXF

#define DXF   if (0)

◆ DXF_3DSOLID

#define DXF_3DSOLID

◆ DXF_OR_FREE

#define DXF_OR_FREE   if (0)

◆ DXF_OR_PRINT

#define DXF_OR_PRINT   if (0)

◆ ENCODER

#define ENCODER   if (0)

◆ END_REPEAT

#define END_REPEAT (   field)

◆ END_REPEAT_BLOCK

#define END_REPEAT_BLOCK   }

◆ END_REPEAT_F

#define END_REPEAT_F (   field)

◆ FIELD_2PT_TRACE

#define FIELD_2PT_TRACE (   name,
  type,
  dxf 
)
Value:
LOG_TRACE (#name ": (" FORMAT_BD ", " FORMAT_BD ") [" #type " %d]\n", \
_obj->name.x, _obj->name.y, dxf)
#define FORMAT_BD
Definition: dwg.h:202
#define LOG_TRACE(...)
Definition: logging.h:102

◆ FIELD_2RD0

#define FIELD_2RD0 (   name,
  dxf 
)    FIELD_2RD (name, dxf)

◆ FIELD_2RD_1

#define FIELD_2RD_1 (   nam,
  dxf 
)    FIELD_2RD (nam, dxf)

◆ FIELD_3PT_TRACE

#define FIELD_3PT_TRACE (   name,
  type,
  dxf 
)
Value:
LOG_TRACE (#name ": (" FORMAT_BD ", " FORMAT_BD ", " FORMAT_BD \
") [" #type " %d]\n", \
_obj->name.x, _obj->name.y, _obj->name.z, dxf)

◆ FIELD_B0

#define FIELD_B0 (   name,
  dxf 
)    FIELD_B (name, dxf)

◆ FIELD_BD0

#define FIELD_BD0 (   name,
  dxf 
)    FIELD_BD (name, dxf)

◆ FIELD_BD1

#define FIELD_BD1 (   name,
  dxf 
)    FIELD_BD (name, dxf)

◆ FIELD_BINARY

#define FIELD_BINARY (   name,
  len,
  dxf 
)    FIELD_TF (name, len, dxf)

◆ FIELD_BL0

#define FIELD_BL0 (   name,
  dxf 
)    FIELD_BL (name, dxf)

◆ FIELD_BLd

#define FIELD_BLd (   name,
  dxf 
)    FIELD_BL (name, dxf)

◆ FIELD_BLx

#define FIELD_BLx (   name,
  dxf 
)    FIELD_BL (name, dxf)

◆ FIELD_BS0

#define FIELD_BS0 (   name,
  dxf 
)    FIELD_BS (name, dxf)

◆ FIELD_BS1

#define FIELD_BS1 (   name,
  dxf 
)    FIELD_BS (name, dxf)

◆ FIELD_BSd

#define FIELD_BSd (   name,
  dxf 
)    FIELD_BS (name, dxf)

◆ FIELD_BSx

#define FIELD_BSx (   name,
  dxf 
)    FIELD_BS (name, dxf)

◆ FIELD_BT0

#define FIELD_BT0 (   name,
  dxf 
)    FIELD_BT (name, dxf)

◆ FIELD_CMC0

#define FIELD_CMC0 (   color,
  dxf 
)    FIELD_CMC (color, dxf)

◆ FIELD_CMTC

#define FIELD_CMTC (   name,
  dxf 
)
Value:
{ \
Dwg_Version_Type _ver = dat->version; \
if (dat->version < R_2004) \
dat->version = R_2004; \
FIELD_CMC (name, dxf); \
if (_ver != dat->version) \
dat->version = _ver; \
}
@ R_2004
Definition: dwg.h:302

◆ FIELD_D2T

#define FIELD_D2T (   name,
  dxf 
)    FIELD_TV (name, dxf)

◆ FIELD_ENC

#define FIELD_ENC (   a,
  b,
 
)    FIELD_CMC (a, b, c)

◆ FIELD_HANDLE0

#define FIELD_HANDLE0 (   name,
  code,
  dxf 
)    FIELD_HANDLE (name, code, dxf)

◆ FIELD_RC0

#define FIELD_RC0 (   name,
  dxf 
)    FIELD_RC (name, dxf)

◆ FIELD_RCd

#define FIELD_RCd (   name,
  dxf 
)    FIELD_RC (name, dxf)

◆ FIELD_RCu

#define FIELD_RCu (   name,
  dxf 
)    FIELD_RC (name, dxf)

◆ FIELD_RCx

#define FIELD_RCx (   name,
  dxf 
)    FIELD_RC (name, dxf)

◆ FIELD_RD0

#define FIELD_RD0 (   name,
  dxf 
)    FIELD_RD (name, dxf)

◆ FIELD_RD1

#define FIELD_RD1 (   name,
  dxf 
)    FIELD_RD (name, dxf)

◆ FIELD_RL0

#define FIELD_RL0 (   name,
  dxf 
)    FIELD_RL (name, dxf)

◆ FIELD_RLd

#define FIELD_RLd (   name,
  dxf 
)    FIELD_RL (name, dxf)

◆ FIELD_RLLd

#define FIELD_RLLd (   name,
  dxf 
)    FIELD_RLL (name, dxf)

◆ FIELD_RLx

#define FIELD_RLx (   name,
  dxf 
)    FIELD_RL (name, dxf)

◆ FIELD_RS0

#define FIELD_RS0 (   name,
  dxf 
)    FIELD_RS (name, dxf)

◆ FIELD_RSd

#define FIELD_RSd (   name,
  dxf 
)    FIELD_RS (name, dxf)

◆ FIELD_RSx

#define FIELD_RSx (   name,
  dxf 
)    FIELD_RS (name, dxf)

◆ FIELD_T0

#define FIELD_T0 (   name,
  dxf 
)    FIELD_T (name, dxf)

◆ FIELD_TFFx

#define FIELD_TFFx (   name,
  len,
  dxf 
)    FIELD_TFF (name, len, dxf)

◆ FIELD_TFv

#define FIELD_TFv (   name,
  len,
  dxf 
)    FIELD_TV (name, dxf)

◆ FIELD_TU32

#define FIELD_TU32 (   name,
  dxf 
)    FIELD_TV (name, dxf)

◆ FIELD_TV0

#define FIELD_TV0 (   name,
  dxf 
)    FIELD_TV (name, dxf)

◆ FIELD_VECTOR_INL

#define FIELD_VECTOR_INL (   nam,
  type,
  size,
  dxf 
)     FIELD_VECTOR_N (nam, type, size, dxf)

◆ FIELD_VECTOR_N1

#define FIELD_VECTOR_N1 (   name,
  type,
  size,
  dxf 
)     FIELD_VECTOR_N (name, type, size, dxf)

◆ FIELD_VECTOR_T1

#define FIELD_VECTOR_T1 (   nam,
  type,
  size,
  dxf 
)     FIELD_VECTOR_T (nam, type, size, dxf)

◆ FIELDG

#define FIELDG (   nam,
  type,
  dxf 
)    FIELD (nam, type)

◆ FREE

#define FREE   if (0)

◆ HANDLE_UNKNOWN_BITS

#define HANDLE_UNKNOWN_BITS

◆ IF_ENCODE_FROM_EARLIER

#define IF_ENCODE_FROM_EARLIER   if (0)

◆ IF_ENCODE_FROM_EARLIER_OR_DXF

#define IF_ENCODE_FROM_EARLIER_OR_DXF   if (0)

◆ IF_ENCODE_FROM_PRE_R13

#define IF_ENCODE_FROM_PRE_R13   if (0)

◆ IF_ENCODE_FROM_PRE_R2000

#define IF_ENCODE_FROM_PRE_R2000   if (0)

◆ IF_ENCODE_SINCE_R13

#define IF_ENCODE_SINCE_R13   if (0)

◆ IF_FREE_OR_SINCE

#define IF_FREE_OR_SINCE (   x)    SINCE (x)

◆ IF_FREE_OR_VERSIONS

#define IF_FREE_OR_VERSIONS (   x,
 
)    VERSIONS (x, y)

◆ IF_IS_DECODER

#define IF_IS_DECODER   0

◆ IF_IS_DXF

#define IF_IS_DXF   0

◆ IF_IS_ENCODER

#define IF_IS_ENCODER   0

◆ IF_IS_FREE

#define IF_IS_FREE   0

◆ ISFIRST

#define ISFIRST

◆ JSON

#define JSON   if (0)

◆ JSON_3DSOLID

#define JSON_3DSOLID

◆ KEY

#define KEY (   nam)

◆ LOG_3DFACE_INVISIBLE

#define LOG_3DFACE_INVISIBLE
Value:
{ \
if (_obj->invis_flags) \
{ \
LOG_TRACE (" "); \
LOG_INVISIBLE_W (EDGE1); \
LOG_INVISIBLE_W (EDGE2); \
LOG_INVISIBLE_W (EDGE3); \
LOG_INVISIBLE_W (EDGE4); \
LOG_FLAG_MAX (_obj->invis_flags, 15); \
LOG_TRACE ("\n"); \
} \
}
#define DECODER_OR_ENCODER
Definition: spec.h:27

◆ LOG_EXTLIGHT_SHAPE_W

#define LOG_EXTLIGHT_SHAPE_W (   w)
Value:
if (_obj->extlight_shape == LIGHT_EXTLIGHT_SHAPE_##w) \
LOG_TRACE (#w "(0x%x) ", LIGHT_EXTLIGHT_SHAPE_##w)

◆ LOG_FLAG_ATTDEF

#define LOG_FLAG_ATTDEF
Value:
{ \
if (_obj->flags) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_ATTDEF_W (INVISIBLE); \
LOG_FLAG_ATTDEF_W (CONSTANT); \
LOG_FLAG_ATTDEF_W (VERIFY); \
LOG_FLAG_ATTDEF_W (PRESET); \
LOG_FLAG_MAX (_obj->flags, 15); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_FLAG_ATTDEF_W

#define LOG_FLAG_ATTDEF_W (   w)
Value:
if (_obj->flags & FLAG_ATTDEF_##w) \
LOG_TRACE (#w "(0x%x) ", FLAG_ATTDEF_##w)

◆ LOG_FLAG_ATTRIB

#define LOG_FLAG_ATTRIB
Value:
{ \
if (_obj->flags) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_ATTRIB_W (INVISIBLE); \
LOG_FLAG_ATTRIB_W (CONSTANT); \
LOG_FLAG_ATTRIB_W (VERIFY); \
LOG_FLAG_ATTRIB_W (PRESET); \
LOG_FLAG_MAX (_obj->flags, 15); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_FLAG_ATTRIB_W

#define LOG_FLAG_ATTRIB_W (   w)
Value:
if (_obj->flags & FLAG_ATTRIB_##w) \
LOG_TRACE (#w "(0x%x) ", FLAG_ATTRIB_##w)

◆ LOG_FLAG_Block

#define LOG_FLAG_Block
Value:
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_W (BLOCK, ANONYMOUS); \
LOG_FLAG_W (BLOCK, HAS_ATTRIBS); \
LOG_FLAG_W (BLOCK, IS_EXT_REF); \
LOG_FLAG_W (BLOCK, IS_XREF_OVERLAY); \
LOG_FLAG_TABLE_W (IS_XREF_REF); \
LOG_FLAG_TABLE_W (IS_XREF_RESOLVED); \
LOG_FLAG_TABLE_W (IS_XREF_DEP); \
LOG_FLAG_TABLE_W (IS_REMOVED); \
LOG_FLAG_TABLE_MAX (255); \
LOG_TRACE ("\n"); \
}

◆ LOG_FLAG_BLOCK_W

#define LOG_FLAG_BLOCK_W (   w)
Value:
if (_obj->flag & FLAG_BLOCK_##w) \
LOG_TRACE (#w " (%d) ", FLAG_BLOCK_##w)

◆ LOG_FLAG_DimStyle

#define LOG_FLAG_DimStyle   LOG_FLAG_TABLE_COMMON

◆ LOG_FLAG_Layer

#define LOG_FLAG_Layer
Value:
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_W (LAYER, FROZEN); \
LOG_FLAG_W (LAYER, FROZEN_IN_NEW); \
LOG_FLAG_W (LAYER, LOCKED); \
LOG_FLAG_W (LAYER, PLOTFLAG); \
LOG_FLAG_TABLE_W (IS_XREF_REF); \
LOG_FLAG_TABLE_W (IS_XREF_RESOLVED); \
LOG_FLAG_TABLE_W (IS_XREF_DEP); \
LOG_FLAG_TABLE_W (IS_REMOVED); \
LOG_FLAG_TABLE_MAX (255); \
LOG_TRACE ("\n"); \
}

◆ LOG_FLAG_Linetype

#define LOG_FLAG_Linetype   LOG_FLAG_TABLE_COMMON

◆ LOG_FLAG_LWPOLYLINE

#define LOG_FLAG_LWPOLYLINE
Value:
{ \
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_LWPOLYLINE_W (HAS_EXTRUSION); \
LOG_FLAG_LWPOLYLINE_W (HAS_THICKNESS); \
LOG_FLAG_LWPOLYLINE_W (HAS_CONSTWIDTH); \
LOG_FLAG_LWPOLYLINE_W (HAS_ELEVATION); \
LOG_FLAG_LWPOLYLINE_W (HAS_NUM_BULGES); \
LOG_FLAG_LWPOLYLINE_W (HAS_NUM_WIDTHS); \
LOG_FLAG_LWPOLYLINE_W (UNKNOWN_64); \
LOG_FLAG_LWPOLYLINE_W (UNKNOWN_128); \
LOG_FLAG_LWPOLYLINE_W (PLINEGEN); \
LOG_FLAG_LWPOLYLINE_W (CLOSED); \
LOG_FLAG_LWPOLYLINE_W (VERTEXIDCOUNT); \
LOG_FLAG_MAX (_obj->flag, 2047); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_FLAG_LWPOLYLINE_W

#define LOG_FLAG_LWPOLYLINE_W (   w)
Value:
if (_obj->flag & FLAG_LWPOLYLINE_##w) \
LOG_TRACE (#w "(0x%x) ", FLAG_LWPOLYLINE_##w)

◆ LOG_FLAG_MAX

#define LOG_FLAG_MAX (   value,
 
)
Value:
if (value > w) \
LOG_WARN ("Unknown flag (0x%x)", value & ~(w))

◆ LOG_FLAG_POLYLINE

#define LOG_FLAG_POLYLINE
Value:
{ \
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_POLYLINE_W (CLOSED); \
LOG_FLAG_POLYLINE_W (CURVE_FIT); \
LOG_FLAG_POLYLINE_W (SPLINE_FIT); \
LOG_FLAG_POLYLINE_W (3D); \
LOG_FLAG_POLYLINE_W (MESH); \
LOG_FLAG_POLYLINE_W (MESH_CLOSED); \
LOG_FLAG_POLYLINE_W (PFACE_MESH); \
LOG_FLAG_POLYLINE_W (LT_PATTERN_CONTINUES); \
LOG_FLAG_MAX (_obj->flag, 255); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_FLAG_POLYLINE_W

#define LOG_FLAG_POLYLINE_W (   w)
Value:
if (_obj->flag & FLAG_POLYLINE_##w) \
LOG_TRACE (#w "(0x%x) ", FLAG_POLYLINE_##w)

◆ LOG_FLAG_RegApp

#define LOG_FLAG_RegApp   LOG_FLAG_TABLE_COMMON

◆ LOG_FLAG_TABLE_COMMON

#define LOG_FLAG_TABLE_COMMON
Value:
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_TABLE_W (IS_XREF_REF); \
LOG_FLAG_TABLE_W (IS_XREF_RESOLVED); \
LOG_FLAG_TABLE_W (IS_XREF_DEP); \
LOG_FLAG_TABLE_W (IS_REMOVED); \
LOG_FLAG_TABLE_MAX (255); \
LOG_TRACE ("\n"); \
}

◆ LOG_FLAG_TABLE_MAX

#define LOG_FLAG_TABLE_MAX (   v)
Value:
if (_obj->flag > v) \
LOG_WARN ("Unknown flag (%d)", _obj->flag)

◆ LOG_FLAG_TABLE_W

#define LOG_FLAG_TABLE_W (   w)
Value:
if (_obj->flag & FLAG_TABLE_##w) \
LOG_TRACE (#w " (%d) ", FLAG_TABLE_##w)

◆ LOG_FLAG_TextStyle

#define LOG_FLAG_TextStyle
Value:
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_W (STYLE, SHAPE); \
LOG_FLAG_W (STYLE, VERTICAL_TEXT); \
LOG_FLAG_TABLE_W (IS_XREF_REF); \
LOG_FLAG_TABLE_W (IS_XREF_RESOLVED); \
LOG_FLAG_TABLE_W (IS_XREF_DEP); \
LOG_FLAG_TABLE_W (IS_REMOVED); \
LOG_FLAG_TABLE_MAX (255); \
LOG_TRACE ("\n"); \
}

◆ LOG_FLAG_UCS

#define LOG_FLAG_UCS   LOG_FLAG_TABLE_COMMON

◆ LOG_FLAG_VERTEX

#define LOG_FLAG_VERTEX
Value:
{ \
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_VERTEX_W (EXTRA_VERTEX); \
LOG_FLAG_VERTEX_W (CURVE_FIT); \
LOG_FLAG_VERTEX_W (UNUSED_4); \
LOG_FLAG_VERTEX_W (SPLINE_FIT); \
LOG_FLAG_VERTEX_W (SPLINE_FRAME_CONTROL_POINT); \
LOG_FLAG_VERTEX_W (3D); \
LOG_FLAG_VERTEX_W (MESH); \
LOG_FLAG_VERTEX_W (PFACE_MESH); \
LOG_FLAG_MAX (_obj->flag, 255); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_FLAG_VERTEX_W

#define LOG_FLAG_VERTEX_W (   w)
Value:
if (_obj->flag & FLAG_VERTEX_##w) \
LOG_TRACE (#w "(0x%x) ", FLAG_VERTEX_##w)

◆ LOG_FLAG_View

#define LOG_FLAG_View
Value:
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_W (VIEW, PSPACE); \
LOG_FLAG_TABLE_W (IS_XREF_REF); \
LOG_FLAG_TABLE_W (IS_XREF_RESOLVED); \
LOG_FLAG_TABLE_W (IS_XREF_DEP); \
LOG_FLAG_TABLE_W (IS_REMOVED); \
LOG_FLAG_TABLE_MAX (255); \
LOG_TRACE ("\n"); \
}

◆ LOG_FLAG_Viewport

#define LOG_FLAG_Viewport   LOG_FLAG_TABLE_COMMON

◆ LOG_FLAG_VX

#define LOG_FLAG_VX
Value:
if (_obj->flag) \
{ \
LOG_TRACE (" "); \
LOG_FLAG_W (VX, IS_ON); \
LOG_FLAG_TABLE_W (IS_XREF_REF); \
LOG_FLAG_TABLE_W (IS_XREF_RESOLVED); \
LOG_FLAG_TABLE_W (IS_XREF_DEP); \
LOG_FLAG_TABLE_W (IS_REMOVED); \
LOG_FLAG_TABLE_MAX (255); \
LOG_TRACE ("\n"); \
}

◆ LOG_FLAG_W

#define LOG_FLAG_W (   token,
 
)
Value:
if (_obj->flag & FLAG_##token##_##w) \
LOG_TRACE (#w " (%d) ", FLAG_##token##_##w)

◆ LOG_HORIZ_ALIGNMENT

#define LOG_HORIZ_ALIGNMENT
Value:
{ \
if (_obj->horiz_alignment) \
{ \
LOG_TRACE (" "); \
LOG_HORIZ_ALIGNMENT_W (LEFT); \
LOG_HORIZ_ALIGNMENT_W (CENTER); \
LOG_HORIZ_ALIGNMENT_W (RIGHT); \
LOG_HORIZ_ALIGNMENT_W (ALIGNED); \
LOG_HORIZ_ALIGNMENT_W (MIDDLE); \
LOG_HORIZ_ALIGNMENT_W (FIT); \
LOG_FLAG_MAX (_obj->horiz_alignment, HORIZ_ALIGNMENT_FIT); \
LOG_TRACE ("\n"); \
} \
}
@ HORIZ_ALIGNMENT_FIT
Definition: dwg.h:8432

◆ LOG_HORIZ_ALIGNMENT_W

#define LOG_HORIZ_ALIGNMENT_W (   w)
Value:
if (_obj->horiz_alignment == HORIZ_ALIGNMENT_##w) \
LOG_TRACE (#w "(0x%x) ", HORIZ_ALIGNMENT_##w)

◆ LOG_INSANE_TF

#define LOG_INSANE_TF (   var,
  len 
)

◆ LOG_INVISIBLE_W

#define LOG_INVISIBLE_W (   w)
Value:
if (_obj->invis_flags & _3DFACE_INVISIBLE_##w) \
LOG_TRACE (#w "(0x%x) ", _3DFACE_INVISIBLE_##w)

◆ LOG_LEADER_ANNOTTYPE

#define LOG_LEADER_ANNOTTYPE
Value:
{ \
if (_obj->annot_type) \
{ \
LOG_TRACE (" "); \
LOG_LEADER_ANNOTTYPE_W (MTEXT); \
LOG_LEADER_ANNOTTYPE_W (TOLERANCE); \
LOG_LEADER_ANNOTTYPE_W (INSERT); \
LOG_LEADER_ANNOTTYPE_W (NO_ANNOT); \
LOG_FLAG_MAX (_obj->annot_type, 15); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_LEADER_ANNOTTYPE_W

#define LOG_LEADER_ANNOTTYPE_W (   w)
Value:
if (_obj->annot_type == LEADER_ANNOTTYPE_##w) \
LOG_TRACE (#w "(0x%x) ", LEADER_ANNOTTYPE_##w)

◆ LOG_LEADER_PATHTYPE

#define LOG_LEADER_PATHTYPE
Value:
{ \
if (_obj->path_type) \
{ \
LOG_TRACE (" "); \
LOG_LEADER_PATHTYPE_W (STRAIGHT); \
LOG_LEADER_PATHTYPE_W (SPLINE); \
LOG_FLAG_MAX (_obj->path_type, 3); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_LEADER_PATHTYPE_W

#define LOG_LEADER_PATHTYPE_W (   w)
Value:
if (_obj->path_type == LEADER_PATHTYPE_##w) \
LOG_TRACE (#w "(0x%x) ", LEADER_PATHTYPE_##w)

◆ LOG_LIGHT_ATTENUATION_TYPE

#define LOG_LIGHT_ATTENUATION_TYPE
Value:
{ \
LOG_TRACE (" "); \
LOG_LIGHT_ATTENUATION_W (NONE); \
LOG_LIGHT_ATTENUATION_W (INV_LINEAR); \
LOG_LIGHT_ATTENUATION_W (INV_SQUARE); \
LOG_FLAG_MAX (_obj->attenuation_type, 2); \
LOG_TRACE ("\n"); \
}

◆ LOG_LIGHT_ATTENUATION_W

#define LOG_LIGHT_ATTENUATION_W (   w)
Value:
if (_obj->attenuation_type == LIGHT_ATTENUATION_TYPE_##w) \
LOG_TRACE (#w "(0x%x) ", LIGHT_ATTENUATION_TYPE_##w)

◆ LOG_LIGHT_EXTLIGHT_SHAPE

#define LOG_LIGHT_EXTLIGHT_SHAPE
Value:
{ \
LOG_TRACE (" "); \
LOG_EXTLIGHT_SHAPE_W (LINEAR); \
LOG_EXTLIGHT_SHAPE_W (RECT); \
LOG_EXTLIGHT_SHAPE_W (DISK); \
LOG_EXTLIGHT_SHAPE_W (CYLINDER); \
LOG_EXTLIGHT_SHAPE_W (SPHERE); \
LOG_FLAG_MAX (_obj->extlight_shape, 4); \
LOG_TRACE ("\n"); \
}

◆ LOG_LIGHT_TYPE

#define LOG_LIGHT_TYPE
Value:
{ \
if (_obj->type) \
{ \
LOG_TRACE (" "); \
LOG_LIGHT_TYPE_W (DISTANT); \
LOG_LIGHT_TYPE_W (POINT); \
LOG_LIGHT_TYPE_W (SPOT); \
LOG_FLAG_MAX (_obj->type, 3); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_LIGHT_TYPE_W

#define LOG_LIGHT_TYPE_W (   w)
Value:
if (_obj->type == LIGHT_TYPE_##w) \
LOG_TRACE (#w "(0x%x) ", LIGHT_TYPE_##w)

◆ LOG_MLINE_FLAGS

#define LOG_MLINE_FLAGS
Value:
{ \
if (_obj->flags) \
{ \
LOG_TRACE (" "); \
LOG_MLINE_FLAGS_W (HAS_VERTEX); \
LOG_MLINE_FLAGS_W (CLOSED); \
LOG_MLINE_FLAGS_W (SUPPRESS_START_CAPS); \
LOG_MLINE_FLAGS_W (SUPPRESS_END_CAPS); \
LOG_FLAG_MAX (_obj->flags, 15); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_MLINE_FLAGS_W

#define LOG_MLINE_FLAGS_W (   w)
Value:
if (_obj->flags & MLINE_FLAGS_##w) \
LOG_TRACE (#w "(0x%x) ", MLINE_FLAGS_##w)

◆ LOG_MLINE_JUSTIFICATION

#define LOG_MLINE_JUSTIFICATION
Value:
{ \
if (_obj->justification) \
{ \
LOG_TRACE (" "); \
LOG_MLINE_JUSTIFICATION_W (TOP); \
LOG_MLINE_JUSTIFICATION_W (MIDDLE); \
LOG_MLINE_JUSTIFICATION_W (BOTTOM); \
LOG_FLAG_MAX (_obj->justification, 3); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_MLINE_JUSTIFICATION_W

#define LOG_MLINE_JUSTIFICATION_W (   w)
Value:
if (_obj->justification == MLINE_JUSTIFICATION_##w) \
LOG_TRACE (#w "(0x%x) ", MLINE_JUSTIFICATION_##w)

◆ LOG_POLYLINE_CURVETYPE

#define LOG_POLYLINE_CURVETYPE
Value:
{ \
if (_obj->curve_type) \
{ \
LOG_TRACE (" "); \
LOG_POLYLINE_CURVETYPE_W (DEFAULT); \
LOG_POLYLINE_CURVETYPE_W (QUADR_BSPLINE); \
LOG_POLYLINE_CURVETYPE_W (CUBIC_BSPLINE); \
LOG_POLYLINE_CURVETYPE_W (BEZIER_SURFACE); \
LOG_FLAG_MAX (_obj->curve_type, 8); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_POLYLINE_CURVETYPE_W

#define LOG_POLYLINE_CURVETYPE_W (   w)
Value:
if (_obj->curve_type == POLYLINE_CURVETYPE_##w) \
LOG_TRACE (#w "(0x%x) ", POLYLINE_CURVETYPE_##w)

◆ LOG_SPLINE_KNOTPARAM

#define LOG_SPLINE_KNOTPARAM
Value:
{ \
if (_obj->knotparam) \
{ \
LOG_TRACE (" "); \
LOG_SPLINE_KNOTPARAM_W (CHORD); \
LOG_SPLINE_KNOTPARAM_W (SQUARE_ROOT); \
LOG_SPLINE_KNOTPARAM_W (UNIFORM); \
LOG_SPLINE_KNOTPARAM_W (CUSTOM); \
LOG_FLAG_MAX (_obj->knotparam, 15); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_SPLINE_KNOTPARAM_W

#define LOG_SPLINE_KNOTPARAM_W (   w)
Value:
if (_obj->knotparam == SPLINE_KNOTPARAM_##w) \
LOG_TRACE (#w "(0x%x) ", SPLINE_KNOTPARAM_##w)

◆ LOG_SPLINE_SCENARIO

#define LOG_SPLINE_SCENARIO
Value:
{ \
if (_obj->scenario) \
{ \
LOG_TRACE (" "); \
LOG_SPLINE_SCENARIO_W (SPLINE); \
LOG_SPLINE_SCENARIO_W (BEZIER); \
LOG_FLAG_MAX (_obj->scenario, 2); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_SPLINE_SCENARIO_W

#define LOG_SPLINE_SCENARIO_W (   w)
Value:
if (_obj->scenario == SPLINE_SCENARIO_##w) \
LOG_TRACE (#w "(0x%x) ", SPLINE_SCENARIO_##w)

◆ LOG_SPLINE_SPLINEFLAGS

#define LOG_SPLINE_SPLINEFLAGS
Value:
{ \
if (_obj->splineflags) \
{ \
LOG_TRACE (" "); \
LOG_SPLINE_SPLINEFLAGS_W (METHOD_FIT_POINTS); \
LOG_SPLINE_SPLINEFLAGS_W (CV_FRAME_SHOW); \
LOG_SPLINE_SPLINEFLAGS_W (CLOSED); \
LOG_FLAG_MAX (_obj->splineflags, 7); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_SPLINE_SPLINEFLAGS_W

#define LOG_SPLINE_SPLINEFLAGS_W (   w)
Value:
if (_obj->splineflags & SPLINE_SPLINEFLAGS_##w) \
LOG_TRACE (#w "(0x%x) ", SPLINE_SPLINEFLAGS_##w)

◆ LOG_TEXT_GENERATION

#define LOG_TEXT_GENERATION
Value:
{ \
if (_obj->generation) \
{ \
LOG_TRACE (" "); \
LOG_TEXT_GENERATION_W (BACKWARDS); \
LOG_TEXT_GENERATION_W (UPSIDE_DOWN); \
LOG_FLAG_MAX (_obj->generation, 7); \
LOG_TRACE ("\n"); \
} \
}

◆ LOG_TEXT_GENERATION_W

#define LOG_TEXT_GENERATION_W (   w)
Value:
if (_obj->generation & TEXT_GENERATION_##w) \
LOG_TRACE (#w "(0x%x) ", TEXT_GENERATION_##w)

◆ LOG_TRACE_TF

#define LOG_TRACE_TF (   var,
  len 
)

◆ LOG_VERT_ALIGNMENT

#define LOG_VERT_ALIGNMENT
Value:
{ \
if (_obj->vert_alignment) \
{ \
LOG_TRACE (" "); \
LOG_VERT_ALIGNMENT_W (BASELINE); \
LOG_VERT_ALIGNMENT_W (BOTTOM); \
LOG_VERT_ALIGNMENT_W (MIDDLE); \
LOG_VERT_ALIGNMENT_W (TOP); \
LOG_FLAG_MAX (_obj->vert_alignment, VERT_ALIGNMENT_TOP); \
LOG_TRACE ("\n"); \
} \
}
@ VERT_ALIGNMENT_TOP
Definition: dwg.h:8439

◆ LOG_VERT_ALIGNMENT_W

#define LOG_VERT_ALIGNMENT_W (   w)
Value:
if (_obj->vert_alignment == VERT_ALIGNMENT_##w) \
LOG_TRACE (#w "(0x%x) ", VERT_ALIGNMENT_##w)

◆ PRER13_SECTION_HDR

#define PRER13_SECTION_HDR (   name)

◆ PRINT

#define PRINT   if (0)

◆ R11EXTRA

#define R11EXTRA (   b)    (_ent->extra_r11 & (b))

◆ R11FLAG

#define R11FLAG (   b)    (_ent->flag_r11 & (b))

◆ R11OPTS

#define R11OPTS (   b)    (_ent->opts_r11 & (b))

◆ REPEAT

#define REPEAT (   times,
  name,
  type 
)    _REPEAT (times, name, type, 1)

◆ REPEAT2

#define REPEAT2 (   times,
  name,
  type 
)    _REPEAT (times, name, type, 2)

◆ REPEAT2_C

#define REPEAT2_C (   times,
  name,
  type 
)    _REPEAT_C (times, name, type, 2)

◆ REPEAT3

#define REPEAT3 (   times,
  name,
  type 
)    _REPEAT (times, name, type, 3)

◆ REPEAT3_C

#define REPEAT3_C (   times,
  name,
  type 
)    _REPEAT_C (times, name, type, 3)

◆ REPEAT4

#define REPEAT4 (   times,
  name,
  type 
)    _REPEAT (times, name, type, 4)

◆ REPEAT4_C

#define REPEAT4_C (   times,
  name,
  type 
)    _REPEAT_C (times, name, type, 4)

◆ REPEAT_BLOCK

#define REPEAT_BLOCK   {

◆ REPEAT_C

#define REPEAT_C (   times,
  name,
  type 
)    _REPEAT_C (times, name, type, 1)

◆ REPEAT_CN

#define REPEAT_CN (   times,
  name,
  type 
)
Value:
if (_obj->name != NULL) \
for (rcount1 = 0; rcount1 < (BITCODE_BL)times; rcount1++)

◆ REPEAT_F

#define REPEAT_F (   times,
  size,
  nam,
  type 
)     _REPEAT_F (times, size, nam, type, 1)

◆ REPEAT_N

#define REPEAT_N (   times,
  name,
  type 
)
Value:
if (dat->version >= R_2000 && (BITCODE_BL)times > 20000) \
{ \
LOG_ERROR ("Invalid %s." #name " rcount1 %ld", SAFEDXFNAME, \
(long)times); \
} \
if (_obj->name != NULL) \
for (rcount1 = 0; rcount1 < (BITCODE_BL)times; rcount1++)

◆ SET_PARENT

#define SET_PARENT (   field,
  obj 
)

◆ SET_PARENT_FIELD

#define SET_PARENT_FIELD (   field,
  what_parent,
  obj 
)

◆ SET_PARENT_OBJ

#define SET_PARENT_OBJ (   field)

◆ SETFIRST

#define SETFIRST

◆ START_OBJECT_HANDLE_STREAM

#define START_OBJECT_HANDLE_STREAM
Value:
assert (obj->supertype == DWG_SUPERTYPE_OBJECT)
#define START_HANDLE_STREAM
Definition: dec_macros.h:1486

◆ SUB_FIELD_2BD

#define SUB_FIELD_2BD (   o,
  nam,
  dxf 
)    FIELD_2BD (o.nam, dxf)

◆ SUB_FIELD_2BD_1

#define SUB_FIELD_2BD_1 (   o,
  nam,
  dxf 
)    FIELD_2BD_1 (o.nam, dxf)

◆ SUB_FIELD_2RD

#define SUB_FIELD_2RD (   o,
  nam,
  dxf 
)    FIELD_2RD (o.nam, dxf)

◆ SUB_FIELD_2RD_VECTOR

#define SUB_FIELD_2RD_VECTOR (   o,
  name,
  size,
  dxf 
)
Value:
if (_obj->o.size > 0) \
{ \
for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \
{ \
SUB_FIELD_2RD (o, name[vcount], dxf); \
} \
}

◆ SUB_FIELD_3B

#define SUB_FIELD_3B (   o,
  nam,
  dxf 
)    FIELDG (o.nam, 3B, dxf)

◆ SUB_FIELD_3BD

#define SUB_FIELD_3BD (   o,
  nam,
  dxf 
)    FIELD_3BD (o.nam, dxf)

◆ SUB_FIELD_3BD_inl

#define SUB_FIELD_3BD_inl (   o,
  nam,
  dxf 
)    FIELD_3BD (o, dxf)

◆ SUB_FIELD_3BD_VECTOR

#define SUB_FIELD_3BD_VECTOR (   o,
  name,
  size,
  dxf 
)
Value:
if (_obj->o.size > 0) \
{ \
for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \
{ \
SUB_FIELD_3BD (o, name[vcount], dxf); \
} \
}

◆ SUB_FIELD_3DPOINT

#define SUB_FIELD_3DPOINT (   o,
  nam,
  dxf 
)    FIELD_3BD (o.nam, dxf)

◆ SUB_FIELD_3RD

#define SUB_FIELD_3RD (   o,
  nam,
  dxf 
)    FIELD_3RD (o.nam, dxf)

◆ SUB_FIELD_B

#define SUB_FIELD_B (   o,
  nam,
  dxf 
)    FIELDG (o.nam, B, dxf)

◆ SUB_FIELD_BB

#define SUB_FIELD_BB (   o,
  nam,
  dxf 
)    FIELDG (o.nam, BB, dxf)

◆ SUB_FIELD_BD

#define SUB_FIELD_BD (   o,
  nam,
  dxf 
)    FIELD_BD (o.nam, dxf)

◆ SUB_FIELD_BL

#define SUB_FIELD_BL (   o,
  nam,
  dxf 
)    FIELDG (o.nam, BL, dxf)

◆ SUB_FIELD_BL0

#define SUB_FIELD_BL0 (   o,
  name,
  dxf 
)    SUB_FIELD_BL (o, name, dxf)

◆ SUB_FIELD_BLd

#define SUB_FIELD_BLd (   o,
  nam,
  dxf 
)    FIELD_BLd (o.nam, dxf)

◆ SUB_FIELD_BLL

#define SUB_FIELD_BLL (   o,
  nam,
  dxf 
)    FIELDG (o.nam, BLL, dxf)

◆ SUB_FIELD_BLx

#define SUB_FIELD_BLx (   o,
  nam,
  dxf 
)    FIELD_BLx (o.nam, dxf)

◆ SUB_FIELD_BS

#define SUB_FIELD_BS (   o,
  nam,
  dxf 
)    FIELDG (o.nam, BS, dxf)

◆ SUB_FIELD_BSd

#define SUB_FIELD_BSd (   o,
  nam,
  dxf 
)    FIELD_BSd (o.nam, dxf)

◆ SUB_FIELD_BSx

#define SUB_FIELD_BSx (   o,
  nam,
  dxf 
)    FIELD_BSx (o.nam, dxf)

◆ SUB_FIELD_CMTC

#define SUB_FIELD_CMTC (   o,
  name,
  dxf 
)
Value:
{ \
Dwg_Version_Type _ver = dat->version; \
Dwg_Version_Type _fver = dat->from_version; \
if (dat->version < R_2004) \
dat->version = R_2004; \
if (dat->from_version < R_2004) \
dat->from_version = R_2004; \
SUB_FIELD_CMC (o, name, dxf); \
if (_ver != dat->version) \
dat->version = _ver; \
if (_fver != dat->from_version) \
dat->from_version = _fver; \
}

◆ SUB_FIELD_ENC

#define SUB_FIELD_ENC (   a,
  b,
  c,
 
)    SUB_FIELD_CMC (a, b, c, d)

◆ SUB_FIELD_HANDLE0

#define SUB_FIELD_HANDLE0 (   o,
  name,
  code,
  dxf 
)     SUB_FIELD_HANDLE (o, name, code, dxf)

◆ SUB_FIELD_RC

#define SUB_FIELD_RC (   o,
  nam,
  dxf 
)    SUB_FIELD (o, nam, RC, dxf)

◆ SUB_FIELD_RD

#define SUB_FIELD_RD (   o,
  nam,
  dxf 
)    FIELD_RD (o.nam, dxf)

◆ SUB_FIELD_RL

#define SUB_FIELD_RL (   o,
  nam,
  dxf 
)    FIELDG (o.nam, RL, dxf)

◆ SUB_FIELD_RLL

#define SUB_FIELD_RLL (   o,
  nam,
  dxf 
)    FIELDG (o.nam, RLL, dxf)

◆ SUB_FIELD_RLLd

#define SUB_FIELD_RLLd (   o,
  nam,
  dxf 
)    FIELD_RLLd (o.nam, dxf)

◆ SUB_FIELD_RS

#define SUB_FIELD_RS (   o,
  nam,
  dxf 
)    FIELDG (o.nam, RS, dxf)

◆ SUB_FIELD_RSx

#define SUB_FIELD_RSx (   o,
  nam,
  dxf 
)    FIELD_RSx (o.nam, dxf)

◆ SUB_FIELD_T

#define SUB_FIELD_T (   o,
  nam,
  dxf 
)    FIELD_T (o.nam, dxf)

◆ SUB_FIELD_TF

#define SUB_FIELD_TF (   o,
  nam,
  len,
  dxf 
)    FIELD_TF (o.nam, _obj->o.len, dxf)

◆ SUB_FIELD_TU

#define SUB_FIELD_TU (   o,
  nam,
  dxf 
)    FIELD_TU (o.nam, dxf)

◆ SUB_FIELD_TV

#define SUB_FIELD_TV (   o,
  nam,
  dxf 
)    FIELD_TV (o.nam, dxf)

◆ SUB_FIELD_VECTOR

#define SUB_FIELD_VECTOR (   o,
  nam,
  type,
  sizefield,
  dxf 
)
Value:
if (_obj->o.sizefield && _obj->o.nam) \
{ \
BITCODE_BL _size = _obj->o.sizefield; \
for (vcount = 0; vcount < _size; vcount++) \
{ \
SUB_FIELD (o, nam[vcount], type, dxf); \
} \
}

◆ SUB_FIELD_VECTOR_INL

#define SUB_FIELD_VECTOR_INL (   o,
  nam,
  type,
  size,
  dxf 
)     SUB_FIELD_VECTOR_N (o, nam, type, size, dxf)

◆ SUB_FIELD_VECTOR_N

#define SUB_FIELD_VECTOR_N (   o,
  nam,
  type,
  size,
  dxf 
)
Value:
if (size > 0 && _obj->o.nam != NULL) \
{ \
BITCODE_BL _size = (BITCODE_BL)size; \
for (vcount = 0; vcount < _size; vcount++) \
{ \
SUB_FIELD (o, nam[vcount], type, dxf); \
} \
}

◆ SUB_FIELD_VECTOR_TYPESIZE

#define SUB_FIELD_VECTOR_TYPESIZE (   o,
  nam,
  size,
  typesize,
  dxf 
)
Value:
if (_obj->o.size && _obj->o.nam) \
{ \
for (vcount = 0; vcount < (BITCODE_BL)_obj->o.size; vcount++) \
{ \
switch (typesize) \
{ \
case 0: \
break; \
case 1: \
SUB_FIELD (o, nam[vcount], RC, dxf); \
break; \
case 2: \
SUB_FIELD (o, nam[vcount], RS, dxf); \
break; \
case 4: \
SUB_FIELD (o, nam[vcount], RL, dxf); \
break; \
case 8: \
SUB_FIELD (o, nam[vcount], RLL, dxf); \
break; \
default: \
LOG_ERROR ("Unknown SUB_FIELD_VECTOR_TYPE " #nam \
" typesize %d", \
typesize); \
break; \
} \
} \
}

◆ SUB_HANDLE_VECTOR

#define SUB_HANDLE_VECTOR (   o,
  nam,
  sizefield,
  code,
  dxf 
)
Value:
if (_obj->o.sizefield && _obj->o.nam) \
{ \
BITCODE_BL _size = _obj->o.sizefield; \
for (vcount = 0; vcount < _size; vcount++) \
{ \
SUB_FIELD_HANDLE (o, nam[vcount], code, dxf); \
} \
}

◆ SUB_VALUEOUTOFBOUNDS

#define SUB_VALUEOUTOFBOUNDS (   o,
  field,
  maxvalue 
)
Value:
if (_IN_RANGE (_obj->o.field, maxvalue) && _obj->o.field > maxvalue) \
{ \
LOG_ERROR ("Invalid %s." #field " %lu", obj ? obj->name : "", \
(unsigned long)_obj->o.field); \
_obj->o.field = 0; \
}
#define _IN_RANGE(var, n)
Definition: spec.h:71

◆ SUBCLASS

#define SUBCLASS (   text)

◆ TRACE_DD

#define TRACE_DD

◆ UNKNOWN_BITS_REST

#define UNKNOWN_BITS_REST

◆ UNKNOWN_UNTIL

#define UNKNOWN_UNTIL (   pos)
Value:
LOG_TRACE ("unknown (%ld): ", pos - dat->byte); \
dat->byte = pos

◆ VALUE_2BD

#define VALUE_2BD (   value,
  dxf 
)    VALUE_2RD (value, dxf)

◆ VALUE_2RD

#define VALUE_2RD (   value,
  dxf 
)

◆ VALUE_3BD

#define VALUE_3BD (   value,
  dxf 
)

◆ VALUE_3RD

#define VALUE_3RD (   value,
  dxf 
)    VALUE_3BD (value, dxf)

◆ VALUE_B

#define VALUE_B (   value,
  dxf 
)

◆ VALUE_BINARY

#define VALUE_BINARY (   value,
  len,
  dxf 
)

◆ VALUE_BL

#define VALUE_BL (   value,
  dxf 
)

◆ VALUE_BS

#define VALUE_BS (   value,
  dxf 
)

◆ VALUE_BSd

#define VALUE_BSd (   value,
  dxf 
)

◆ VALUE_HANDLE

#define VALUE_HANDLE (   value,
  nam,
  handle_code,
  dxf 
)

◆ VALUE_RLx

#define VALUE_RLx (   value,
  dxf 
)    VALUE_RL (value, dxf)

◆ VALUE_RSd

#define VALUE_RSd (   value,
  dxf 
)

◆ VALUE_T0

#define VALUE_T0 (   name,
  dxf 
)    VALUE_T (name, dxf)

◆ VALUE_TF

#define VALUE_TF (   value,
  dxf 
)

◆ VALUE_TFF

#define VALUE_TFF (   value,
  dxf 
)

◆ VALUE_TV

#define VALUE_TV (   value,
  dxf 
)

◆ VALUE_TV0

#define VALUE_TV0 (   name,
  dxf 
)    VALUE_TV (name, dxf)

◆ VALUEOUTOFBOUNDS

#define VALUEOUTOFBOUNDS (   field,
  maxvalue 
)
Value:
if (_IN_RANGE (_obj->field, maxvalue) && _obj->field > maxvalue) \
{ \
LOG_ERROR ("Invalid %s." #field " %lu", obj ? obj->name : "", \
(unsigned long)_obj->field); \
_obj->field = 0; \
}