From 77f1cd27822be31a05b6bdf98d47f3664b168ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Josef=20=C5=A0pa=C4=8Dek?= Date: Wed, 27 Mar 2024 20:43:50 +0100 Subject: [PATCH] Log mlinestyle flag --- include/dwg.h | 15 +++++++++++++++ src/dwg.spec | 1 + src/spec.h | 27 +++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/include/dwg.h b/include/dwg.h index 9414f15c5..a47352e8e 100644 --- a/include/dwg.h +++ b/include/dwg.h @@ -8483,6 +8483,21 @@ enum { MLINE_FLAGS_SUPPRESS_START_CAPS = 4, MLINE_FLAGS_SUPPRESS_END_CAPS = 8, }; + +enum { + MLINESTYLE_FLAG_FILL = 1, + MLINESTYLE_FLAG_MITERS = 2, + MLINESTYLE_FLAG_UNKNOWN_4 = 4, + MLINESTYLE_FLAG_UNKNOWN_8 = 8, + MLINESTYLE_FLAG_START_SQUARE_END = 16, + MLINESTYLE_FLAG_START_INNER_ARC = 32, + MLINESTYLE_FLAG_START_ROUND = 64, + MLINESTYLE_FLAG_UNKNOWN_128 = 128, + MLINESTYLE_FLAG_END_SQUARE = 256, + MLINESTYLE_FLAG_END_INNER_ARC = 512, + MLINESTYLE_FLAG_END_ROUND = 1024, +}; + enum { LIGHT_TYPE_DISTANT = 1, LIGHT_TYPE_POINT = 2, diff --git a/src/dwg.spec b/src/dwg.spec index 196880a0f..60d28fb90 100644 --- a/src/dwg.spec +++ b/src/dwg.spec @@ -4844,6 +4844,7 @@ DWG_OBJECT (MLINESTYLE) 256 = End square (line) cap, 512 = End inner arcs cap, 1024 = End round (outer arcs) cap */ + LOG_MLINESTYLE_FLAG DXF { FIELD_T (description, 3); } FIELD_CMC (fill_color, 62); /*!< default 256 */ #ifdef IS_DXF diff --git a/src/spec.h b/src/spec.h index adbad4713..8e7fec8ca 100644 --- a/src/spec.h +++ b/src/spec.h @@ -1160,6 +1160,33 @@ } #endif +#ifndef LOG_MLINESTYLE_FLAG +# define LOG_MLINESTYLE_FLAG_W(w) \ + if (_obj->flag & MLINESTYLE_FLAG_##w) \ + LOG_TRACE (#w "(0x%x) ", MLINESTYLE_FLAG_##w) +# define LOG_MLINESTYLE_FLAG \ + DECODER_OR_ENCODER \ + { \ + if (_obj->flag) \ + { \ + LOG_TRACE (" "); \ + LOG_MLINESTYLE_FLAG_W (FILL); \ + LOG_MLINESTYLE_FLAG_W (MITERS); \ + LOG_MLINESTYLE_FLAG_W (UNKNOWN_4); \ + LOG_MLINESTYLE_FLAG_W (UNKNOWN_8); \ + LOG_MLINESTYLE_FLAG_W (START_SQUARE_END); \ + LOG_MLINESTYLE_FLAG_W (START_INNER_ARC); \ + LOG_MLINESTYLE_FLAG_W (START_ROUND); \ + LOG_MLINESTYLE_FLAG_W (UNKNOWN_128); \ + LOG_MLINESTYLE_FLAG_W (END_SQUARE); \ + LOG_MLINESTYLE_FLAG_W (END_INNER_ARC); \ + LOG_MLINESTYLE_FLAG_W (END_ROUND); \ + LOG_FLAG_MAX (_obj->flag, 2047); \ + LOG_TRACE ("\n"); \ + } \ + } +#endif + #ifndef LOG_MLINE_JUSTIFICATION # define LOG_MLINE_JUSTIFICATION_W(w) \ if (_obj->justification == MLINE_JUSTIFICATION_##w) \