@mlightcad/libredwg-web 0.7.4 → 0.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import { HEADER_VARIABLES } from '../database';
2
2
  import { Dwg_Object_Supertype, Dwg_Object_Type } from '../types';
3
+ import { dwgColorToMLeaderRawColor } from './dwgColorToMLeaderRawColor';
3
4
  import { LibreEntityConverter } from './entityConverter';
4
5
  import { idToString, isModelSpace, isPaperSpace } from './utils';
5
6
  /**
@@ -42,6 +43,7 @@ export class LibreDwgConverter {
42
43
  DICTIONARY: [],
43
44
  IMAGEDEF: [],
44
45
  LAYOUT: [],
46
+ MLEADERSTYLE: [],
45
47
  SPATIAL_FILTER: []
46
48
  },
47
49
  header: {},
@@ -128,6 +130,9 @@ export class LibreDwgConverter {
128
130
  case Dwg_Object_Type.DWG_TYPE_LAYOUT:
129
131
  db.objects.LAYOUT.push(this.convertLayout(tio, obj));
130
132
  break;
133
+ case Dwg_Object_Type.DWG_TYPE_MLEADERSTYLE:
134
+ db.objects.MLEADERSTYLE.push(this.convertMLeaderStyle(tio, obj));
135
+ break;
131
136
  case Dwg_Object_Type.DWG_TYPE_SPATIAL_FILTER:
132
137
  db.objects.SPATIAL_FILTER.push(this.convertSpatialFilter(tio, obj));
133
138
  break;
@@ -177,7 +182,7 @@ export class LibreDwgConverter {
177
182
  if (name == 'DIMBLK' || name == 'DIMBLK1' || name == 'DIMBLK2') {
178
183
  var_name = var_name + '_T';
179
184
  }
180
- let value = libredwg.dwg_dynapi_header_value(data, var_name).data;
185
+ let value = libredwg.dwg_dynapi_header_data(data, var_name);
181
186
  // Get object name if the 'value' is one Dwg_Object_Ref instance.
182
187
  // TODO: handle 'CMLSTYLE' correctly
183
188
  if (name == 'CELTYPE' ||
@@ -189,7 +194,7 @@ export class LibreDwgConverter {
189
194
  value = value ? libredwg.dwg_ref_get_object_name(value) : '';
190
195
  }
191
196
  else if (name == 'DRAGVS') {
192
- value = value ? libredwg.dwg_ref_get_absref(value) : 2;
197
+ value = value ? (libredwg.dwg_ref_get_absref(value) ?? 2) : 2;
193
198
  }
194
199
  // @ts-expect-error header variable name
195
200
  header[name] = value;
@@ -215,8 +220,8 @@ export class LibreDwgConverter {
215
220
  }
216
221
  convertAppId(item) {
217
222
  const libredwg = this.libredwg;
218
- const name = libredwg.dwg_dynapi_entity_value(item, 'name').data;
219
- const flag = libredwg.dwg_dynapi_entity_value(item, 'flag').data;
223
+ const name = libredwg.dwg_dynapi_entity_data(item, 'name');
224
+ const flag = libredwg.dwg_dynapi_entity_data(item, 'flag');
220
225
  return {
221
226
  name: name,
222
227
  standardFlag: flag
@@ -232,21 +237,15 @@ export class LibreDwgConverter {
232
237
  commonAttrs.name = block.name;
233
238
  }
234
239
  // The number of entities
235
- const num_owned = libredwg.dwg_dynapi_entity_value(item, 'num_owned')
236
- .data;
237
- const flags = libredwg.dwg_dynapi_entity_value(item, 'flag').data;
238
- const description = libredwg.dwg_dynapi_entity_value(item, 'description')
239
- .data;
240
- const basePoint = libredwg.dwg_dynapi_entity_value(item, 'base_pt')
241
- .data;
242
- const insertionUnits = libredwg.dwg_dynapi_entity_value(item, 'insert_units').data;
243
- const explodability = libredwg.dwg_dynapi_entity_value(item, 'explodable')
244
- .data;
245
- const scalability = libredwg.dwg_dynapi_entity_value(item, 'block_scaling')
246
- .data;
247
- const layout_ptr = libredwg.dwg_dynapi_entity_value(item, 'layout')
248
- .data;
249
- const layout = idToString(libredwg.dwg_ref_get_absref(layout_ptr));
240
+ const num_owned = libredwg.dwg_dynapi_entity_data(item, 'num_owned');
241
+ const flags = libredwg.dwg_dynapi_entity_data(item, 'flag');
242
+ const description = libredwg.dwg_dynapi_entity_data(item, 'description');
243
+ const basePoint = libredwg.dwg_dynapi_entity_data(item, 'base_pt');
244
+ const insertionUnits = libredwg.dwg_dynapi_entity_data(item, 'insert_units');
245
+ const explodability = libredwg.dwg_dynapi_entity_data(item, 'explodable');
246
+ const scalability = libredwg.dwg_dynapi_entity_data(item, 'block_scaling');
247
+ const layout_ptr = libredwg.dwg_dynapi_entity_data(item, 'layout');
248
+ const layout = (libredwg.dwg_ref_get_id(layout_ptr) ?? '');
250
249
  let bmpPreview = '';
251
250
  const uint8ArrayToHexString = (bytes) => {
252
251
  const hexChars = new Array(bytes.length);
@@ -265,8 +264,7 @@ export class LibreDwgConverter {
265
264
  let entities = this.convertEntities(obj, commonAttrs.handle);
266
265
  if (!entities || entities.length == 0) {
267
266
  entities = [];
268
- const entities_ptr = libredwg.dwg_dynapi_entity_value(item, 'entities')
269
- .data;
267
+ const entities_ptr = libredwg.dwg_dynapi_entity_data(item, 'entities');
270
268
  if (entities_ptr) {
271
269
  const object_ref_ptr_array = libredwg.dwg_ptr_to_object_ref_ptr_array(entities_ptr, num_owned);
272
270
  const converter = this.entityConverter;
@@ -311,165 +309,88 @@ export class LibreDwgConverter {
311
309
  convertDimStyle(item, obj) {
312
310
  const libredwg = this.libredwg;
313
311
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
314
- const DIMTOL = libredwg.dwg_dynapi_entity_value(item, 'DIMTOL')
315
- .data;
316
- const DIMLIM = libredwg.dwg_dynapi_entity_value(item, 'DIMLIM')
317
- .data;
318
- const DIMTIH = libredwg.dwg_dynapi_entity_value(item, 'DIMTIH')
319
- .data;
320
- const DIMTOH = libredwg.dwg_dynapi_entity_value(item, 'DIMTOH')
321
- .data;
322
- const DIMSE1 = libredwg.dwg_dynapi_entity_value(item, 'DIMSE1')
323
- .data;
324
- const DIMSE2 = libredwg.dwg_dynapi_entity_value(item, 'DIMSE2')
325
- .data;
326
- const DIMALT = libredwg.dwg_dynapi_entity_value(item, 'DIMALT')
327
- .data;
328
- const DIMTOFL = libredwg.dwg_dynapi_entity_value(item, 'DIMTOFL')
329
- .data;
330
- const DIMSAH = libredwg.dwg_dynapi_entity_value(item, 'DIMSAH')
331
- .data;
332
- const DIMTIX = libredwg.dwg_dynapi_entity_value(item, 'DIMTIX')
333
- .data;
334
- const DIMSOXD = libredwg.dwg_dynapi_entity_value(item, 'DIMSOXD')
335
- .data;
336
- const DIMALTD = libredwg.dwg_dynapi_entity_value(item, 'DIMALTD')
337
- .data;
338
- const DIMZIN = libredwg.dwg_dynapi_entity_value(item, 'DIMZIN')
339
- .data;
340
- const DIMSD1 = libredwg.dwg_dynapi_entity_value(item, 'DIMSD1')
341
- .data;
342
- const DIMSD2 = libredwg.dwg_dynapi_entity_value(item, 'DIMSD2')
343
- .data;
344
- const DIMTOLJ = libredwg.dwg_dynapi_entity_value(item, 'DIMTOLJ')
345
- .data;
346
- const DIMJUST = libredwg.dwg_dynapi_entity_value(item, 'DIMJUST')
347
- .data;
348
- const DIMFIT = libredwg.dwg_dynapi_entity_value(item, 'DIMFIT')
349
- .data;
350
- const DIMUPT = libredwg.dwg_dynapi_entity_value(item, 'DIMUPT')
351
- .data;
352
- const DIMTZIN = libredwg.dwg_dynapi_entity_value(item, 'DIMTZIN')
353
- .data;
354
- const DIMALTZ = libredwg.dwg_dynapi_entity_value(item, 'DIMALTZ')
355
- .data;
356
- const DIMALTTZ = libredwg.dwg_dynapi_entity_value(item, 'DIMALTTZ')
357
- .data;
358
- const DIMTAD = libredwg.dwg_dynapi_entity_value(item, 'DIMTAD')
359
- .data;
360
- const DIMUNIT = libredwg.dwg_dynapi_entity_value(item, 'DIMUNIT')
361
- .data;
362
- const DIMAUNIT = libredwg.dwg_dynapi_entity_value(item, 'DIMAUNIT')
363
- .data;
364
- const DIMDEC = libredwg.dwg_dynapi_entity_value(item, 'DIMDEC')
365
- .data;
366
- const DIMTDEC = libredwg.dwg_dynapi_entity_value(item, 'DIMTDEC')
367
- .data;
368
- const DIMALTU = libredwg.dwg_dynapi_entity_value(item, 'DIMALTU')
369
- .data;
370
- const DIMALTTD = libredwg.dwg_dynapi_entity_value(item, 'DIMALTTD')
371
- .data;
372
- const DIMSCALE = libredwg.dwg_dynapi_entity_value(item, 'DIMSCALE')
373
- .data;
374
- const DIMASZ = libredwg.dwg_dynapi_entity_value(item, 'DIMASZ')
375
- .data;
376
- const DIMEXO = libredwg.dwg_dynapi_entity_value(item, 'DIMEXO')
377
- .data;
378
- const DIMDLI = libredwg.dwg_dynapi_entity_value(item, 'DIMDLI')
379
- .data;
380
- const DIMEXE = libredwg.dwg_dynapi_entity_value(item, 'DIMEXE')
381
- .data;
382
- const DIMRND = libredwg.dwg_dynapi_entity_value(item, 'DIMRND')
383
- .data;
384
- const DIMDLE = libredwg.dwg_dynapi_entity_value(item, 'DIMDLE')
385
- .data;
386
- const DIMTP = libredwg.dwg_dynapi_entity_value(item, 'DIMTP').data;
387
- const DIMTM = libredwg.dwg_dynapi_entity_value(item, 'DIMTM').data;
388
- const DIMFXL = libredwg.dwg_dynapi_entity_value(item, 'DIMFXL')
389
- .data;
390
- const DIMJOGANG = libredwg.dwg_dynapi_entity_value(item, 'DIMJOGANG')
391
- .data;
392
- const DIMTFILL = libredwg.dwg_dynapi_entity_value(item, 'DIMTFILL')
393
- .data;
394
- const DIMTFILLCLR = libredwg.dwg_dynapi_entity_value(item, 'DIMTFILLCLR')
395
- .data;
396
- const DIMAZIN = libredwg.dwg_dynapi_entity_value(item, 'DIMAZIN')
397
- .data;
398
- const DIMARCSYM = libredwg.dwg_dynapi_entity_value(item, 'DIMARCSYM')
399
- .data;
400
- const DIMTXT = libredwg.dwg_dynapi_entity_value(item, 'DIMTXT')
401
- .data;
402
- const DIMCEN = libredwg.dwg_dynapi_entity_value(item, 'DIMCEN')
403
- .data;
404
- const DIMTSZ = libredwg.dwg_dynapi_entity_value(item, 'DIMTSZ')
405
- .data;
406
- const DIMALTF = libredwg.dwg_dynapi_entity_value(item, 'DIMALTF')
407
- .data;
408
- const DIMLFAC = libredwg.dwg_dynapi_entity_value(item, 'DIMLFAC')
409
- .data;
410
- const DIMTVP = libredwg.dwg_dynapi_entity_value(item, 'DIMTVP')
411
- .data;
412
- const DIMTFAC = libredwg.dwg_dynapi_entity_value(item, 'DIMTFAC')
413
- .data;
414
- const DIMGAP = libredwg.dwg_dynapi_entity_value(item, 'DIMGAP')
415
- .data;
416
- const DIMPOST = libredwg.dwg_dynapi_entity_value(item, 'DIMPOST')
417
- .data;
418
- const DIMAPOST = libredwg.dwg_dynapi_entity_value(item, 'DIMAPOST')
419
- .data;
420
- const DIMBLK_T = libredwg.dwg_dynapi_entity_value(item, 'DIMBLK_T')
421
- .data;
422
- const DIMBLK1_T = libredwg.dwg_dynapi_entity_value(item, 'DIMBLK1_T')
423
- .data;
424
- const DIMBLK2_T = libredwg.dwg_dynapi_entity_value(item, 'DIMBLK2_T')
425
- .data;
426
- const DIMALTRND = libredwg.dwg_dynapi_entity_value(item, 'DIMALTRND')
427
- .data;
428
- const DIMCLRD_N = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRD_N')
429
- .data;
430
- const DIMCLRE_N = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRE_N')
431
- .data;
432
- const DIMCLRT_N = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRT_N')
433
- .data;
434
- const DIMCLRD = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRD')
435
- .data;
436
- const DIMCLRE = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRE')
437
- .data;
438
- const DIMCLRT = libredwg.dwg_dynapi_entity_value(item, 'DIMCLRT')
439
- .data;
440
- const DIMADEC = libredwg.dwg_dynapi_entity_value(item, 'DIMADEC')
441
- .data;
442
- const DIMFRAC = libredwg.dwg_dynapi_entity_value(item, 'DIMFRAC')
443
- .data;
444
- const DIMLUNIT = libredwg.dwg_dynapi_entity_value(item, 'DIMLUNIT')
445
- .data;
446
- const DIMDSEP = libredwg.dwg_dynapi_entity_value(item, 'DIMDSEP')
447
- .data;
448
- const DIMTMOVE = libredwg.dwg_dynapi_entity_value(item, 'DIMTMOVE')
449
- .data;
450
- const DIMATFIT = libredwg.dwg_dynapi_entity_value(item, 'DIMATFIT')
451
- .data;
452
- const DIMFXLON = libredwg.dwg_dynapi_entity_value(item, 'DIMFXLON')
453
- .data;
454
- const DIMTXTDIRECTION = libredwg.dwg_dynapi_entity_value(item, 'DIMTXTDIRECTION').data;
455
- const DIMALTMZF = libredwg.dwg_dynapi_entity_value(item, 'DIMALTMZF')
456
- .data;
457
- const DIMALTMZS = libredwg.dwg_dynapi_entity_value(item, 'DIMALTMZS')
458
- .data;
459
- const DIMMZF = libredwg.dwg_dynapi_entity_value(item, 'DIMMZF')
460
- .data;
461
- const DIMMZS = libredwg.dwg_dynapi_entity_value(item, 'DIMMZS')
462
- .data;
463
- const DIMLWD = libredwg.dwg_dynapi_entity_value(item, 'DIMLWD')
464
- .data;
465
- const DIMLWE = libredwg.dwg_dynapi_entity_value(item, 'DIMLWE')
466
- .data;
467
- const DIMTXSTY_Ptr = libredwg.dwg_dynapi_entity_value(item, 'DIMTXSTY')
468
- .data;
469
- const DIMTXSTY = libredwg.dwg_ref_get_absref(DIMTXSTY_Ptr);
470
- const DIMLDRBLK_Ptr = libredwg.dwg_dynapi_entity_value(item, 'DIMLDRBLK')
471
- .data;
472
- const DIMLDRBLK = libredwg.dwg_ref_get_absref(DIMLDRBLK_Ptr);
312
+ const DIMTOL = libredwg.dwg_dynapi_entity_data(item, 'DIMTOL');
313
+ const DIMLIM = libredwg.dwg_dynapi_entity_data(item, 'DIMLIM');
314
+ const DIMTIH = libredwg.dwg_dynapi_entity_data(item, 'DIMTIH');
315
+ const DIMTOH = libredwg.dwg_dynapi_entity_data(item, 'DIMTOH');
316
+ const DIMSE1 = libredwg.dwg_dynapi_entity_data(item, 'DIMSE1');
317
+ const DIMSE2 = libredwg.dwg_dynapi_entity_data(item, 'DIMSE2');
318
+ const DIMALT = libredwg.dwg_dynapi_entity_data(item, 'DIMALT');
319
+ const DIMTOFL = libredwg.dwg_dynapi_entity_data(item, 'DIMTOFL');
320
+ const DIMSAH = libredwg.dwg_dynapi_entity_data(item, 'DIMSAH');
321
+ const DIMTIX = libredwg.dwg_dynapi_entity_data(item, 'DIMTIX');
322
+ const DIMSOXD = libredwg.dwg_dynapi_entity_data(item, 'DIMSOXD');
323
+ const DIMALTD = libredwg.dwg_dynapi_entity_data(item, 'DIMALTD');
324
+ const DIMZIN = libredwg.dwg_dynapi_entity_data(item, 'DIMZIN');
325
+ const DIMSD1 = libredwg.dwg_dynapi_entity_data(item, 'DIMSD1');
326
+ const DIMSD2 = libredwg.dwg_dynapi_entity_data(item, 'DIMSD2');
327
+ const DIMTOLJ = libredwg.dwg_dynapi_entity_data(item, 'DIMTOLJ');
328
+ const DIMJUST = libredwg.dwg_dynapi_entity_data(item, 'DIMJUST');
329
+ const DIMFIT = libredwg.dwg_dynapi_entity_data(item, 'DIMFIT');
330
+ const DIMUPT = libredwg.dwg_dynapi_entity_data(item, 'DIMUPT');
331
+ const DIMTZIN = libredwg.dwg_dynapi_entity_data(item, 'DIMTZIN');
332
+ const DIMALTZ = libredwg.dwg_dynapi_entity_data(item, 'DIMALTZ');
333
+ const DIMALTTZ = libredwg.dwg_dynapi_entity_data(item, 'DIMALTTZ');
334
+ const DIMTAD = libredwg.dwg_dynapi_entity_data(item, 'DIMTAD');
335
+ const DIMUNIT = libredwg.dwg_dynapi_entity_data(item, 'DIMUNIT');
336
+ const DIMAUNIT = libredwg.dwg_dynapi_entity_data(item, 'DIMAUNIT');
337
+ const DIMDEC = libredwg.dwg_dynapi_entity_data(item, 'DIMDEC');
338
+ const DIMTDEC = libredwg.dwg_dynapi_entity_data(item, 'DIMTDEC');
339
+ const DIMALTU = libredwg.dwg_dynapi_entity_data(item, 'DIMALTU');
340
+ const DIMALTTD = libredwg.dwg_dynapi_entity_data(item, 'DIMALTTD');
341
+ const DIMSCALE = libredwg.dwg_dynapi_entity_data(item, 'DIMSCALE');
342
+ const DIMASZ = libredwg.dwg_dynapi_entity_data(item, 'DIMASZ');
343
+ const DIMEXO = libredwg.dwg_dynapi_entity_data(item, 'DIMEXO');
344
+ const DIMDLI = libredwg.dwg_dynapi_entity_data(item, 'DIMDLI');
345
+ const DIMEXE = libredwg.dwg_dynapi_entity_data(item, 'DIMEXE');
346
+ const DIMRND = libredwg.dwg_dynapi_entity_data(item, 'DIMRND');
347
+ const DIMDLE = libredwg.dwg_dynapi_entity_data(item, 'DIMDLE');
348
+ const DIMTP = libredwg.dwg_dynapi_entity_data(item, 'DIMTP');
349
+ const DIMTM = libredwg.dwg_dynapi_entity_data(item, 'DIMTM');
350
+ const DIMFXL = libredwg.dwg_dynapi_entity_data(item, 'DIMFXL');
351
+ const DIMJOGANG = libredwg.dwg_dynapi_entity_data(item, 'DIMJOGANG');
352
+ const DIMTFILL = libredwg.dwg_dynapi_entity_data(item, 'DIMTFILL');
353
+ const DIMTFILLCLR = libredwg.dwg_dynapi_entity_data(item, 'DIMTFILLCLR');
354
+ const DIMAZIN = libredwg.dwg_dynapi_entity_data(item, 'DIMAZIN');
355
+ const DIMARCSYM = libredwg.dwg_dynapi_entity_data(item, 'DIMARCSYM');
356
+ const DIMTXT = libredwg.dwg_dynapi_entity_data(item, 'DIMTXT');
357
+ const DIMCEN = libredwg.dwg_dynapi_entity_data(item, 'DIMCEN');
358
+ const DIMTSZ = libredwg.dwg_dynapi_entity_data(item, 'DIMTSZ');
359
+ const DIMALTF = libredwg.dwg_dynapi_entity_data(item, 'DIMALTF');
360
+ const DIMLFAC = libredwg.dwg_dynapi_entity_data(item, 'DIMLFAC');
361
+ const DIMTVP = libredwg.dwg_dynapi_entity_data(item, 'DIMTVP');
362
+ const DIMTFAC = libredwg.dwg_dynapi_entity_data(item, 'DIMTFAC');
363
+ const DIMGAP = libredwg.dwg_dynapi_entity_data(item, 'DIMGAP');
364
+ const DIMPOST = libredwg.dwg_dynapi_entity_data(item, 'DIMPOST');
365
+ const DIMAPOST = libredwg.dwg_dynapi_entity_data(item, 'DIMAPOST');
366
+ const DIMBLK_T = libredwg.dwg_dynapi_entity_data(item, 'DIMBLK_T');
367
+ const DIMBLK1_T = libredwg.dwg_dynapi_entity_data(item, 'DIMBLK1_T');
368
+ const DIMBLK2_T = libredwg.dwg_dynapi_entity_data(item, 'DIMBLK2_T');
369
+ const DIMALTRND = libredwg.dwg_dynapi_entity_data(item, 'DIMALTRND');
370
+ const DIMCLRD_N = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRD_N');
371
+ const DIMCLRE_N = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRE_N');
372
+ const DIMCLRT_N = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRT_N');
373
+ const DIMCLRD = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRD');
374
+ const DIMCLRE = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRE');
375
+ const DIMCLRT = libredwg.dwg_dynapi_entity_data(item, 'DIMCLRT');
376
+ const DIMADEC = libredwg.dwg_dynapi_entity_data(item, 'DIMADEC');
377
+ const DIMFRAC = libredwg.dwg_dynapi_entity_data(item, 'DIMFRAC');
378
+ const DIMLUNIT = libredwg.dwg_dynapi_entity_data(item, 'DIMLUNIT');
379
+ const DIMDSEP = libredwg.dwg_dynapi_entity_data(item, 'DIMDSEP');
380
+ const DIMTMOVE = libredwg.dwg_dynapi_entity_data(item, 'DIMTMOVE');
381
+ const DIMATFIT = libredwg.dwg_dynapi_entity_data(item, 'DIMATFIT');
382
+ const DIMFXLON = libredwg.dwg_dynapi_entity_data(item, 'DIMFXLON');
383
+ const DIMTXTDIRECTION = libredwg.dwg_dynapi_entity_data(item, 'DIMTXTDIRECTION');
384
+ const DIMALTMZF = libredwg.dwg_dynapi_entity_data(item, 'DIMALTMZF');
385
+ const DIMALTMZS = libredwg.dwg_dynapi_entity_data(item, 'DIMALTMZS');
386
+ const DIMMZF = libredwg.dwg_dynapi_entity_data(item, 'DIMMZF');
387
+ const DIMMZS = libredwg.dwg_dynapi_entity_data(item, 'DIMMZS');
388
+ const DIMLWD = libredwg.dwg_dynapi_entity_data(item, 'DIMLWD');
389
+ const DIMLWE = libredwg.dwg_dynapi_entity_data(item, 'DIMLWE');
390
+ const DIMTXSTY_Ptr = libredwg.dwg_dynapi_entity_data(item, 'DIMTXSTY');
391
+ const DIMTXSTY = libredwg.dwg_ref_get_absref(DIMTXSTY_Ptr) ?? undefined;
392
+ const DIMLDRBLK_Ptr = libredwg.dwg_dynapi_entity_data(item, 'DIMLDRBLK');
393
+ const DIMLDRBLK = libredwg.dwg_ref_get_absref(DIMLDRBLK_Ptr) ?? undefined;
473
394
  return {
474
395
  ...commonAttrs,
475
396
  DIMPOST: DIMPOST,
@@ -557,22 +478,15 @@ export class LibreDwgConverter {
557
478
  convertLayer(item, obj) {
558
479
  const libredwg = this.libredwg;
559
480
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
560
- const flag = libredwg.dwg_dynapi_entity_value(item, 'flag').data;
561
- const frozen = libredwg.dwg_dynapi_entity_value(item, 'frozen')
562
- .data;
563
- const off = libredwg.dwg_dynapi_entity_value(item, 'off').data;
564
- const frozenInNew = libredwg.dwg_dynapi_entity_value(item, 'frozen_in_new')
565
- .data;
566
- const locked = libredwg.dwg_dynapi_entity_value(item, 'plotflockedlag')
567
- .data;
568
- const plotFlag = libredwg.dwg_dynapi_entity_value(item, 'plotflag')
569
- .data;
570
- const linewt = libredwg.dwg_dynapi_entity_value(item, 'linewt')
571
- .data;
572
- const color = libredwg.dwg_dynapi_entity_value(item, 'color')
573
- .data;
574
- const ltypeRef = libredwg.dwg_dynapi_entity_value(item, 'ltype')
575
- .data;
481
+ const flag = libredwg.dwg_dynapi_entity_data(item, 'flag');
482
+ const frozen = libredwg.dwg_dynapi_entity_data(item, 'frozen');
483
+ const off = libredwg.dwg_dynapi_entity_data(item, 'off');
484
+ const frozenInNew = libredwg.dwg_dynapi_entity_data(item, 'frozen_in_new');
485
+ const locked = libredwg.dwg_dynapi_entity_data(item, 'plotflockedlag');
486
+ const plotFlag = libredwg.dwg_dynapi_entity_data(item, 'plotflag');
487
+ const linewt = libredwg.dwg_dynapi_entity_data(item, 'linewt');
488
+ const color = libredwg.dwg_dynapi_entity_data(item, 'color');
489
+ const ltypeRef = libredwg.dwg_dynapi_entity_data(item, 'ltype');
576
490
  let ltypeName = 'Continuous';
577
491
  if (ltypeRef) {
578
492
  try {
@@ -623,15 +537,11 @@ export class LibreDwgConverter {
623
537
  convertLineType(item, obj) {
624
538
  const libredwg = this.libredwg;
625
539
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
626
- const flag = libredwg.dwg_dynapi_entity_value(item, 'flag').data;
627
- const description = libredwg.dwg_dynapi_entity_value(item, 'description')
628
- .data;
629
- const numDashes = libredwg.dwg_dynapi_entity_value(item, 'numdashes')
630
- .data;
631
- const patternLen = libredwg.dwg_dynapi_entity_value(item, 'pattern_len')
632
- .data;
633
- const dashes = libredwg.dwg_dynapi_entity_value(item, 'dashes')
634
- .data;
540
+ const flag = libredwg.dwg_dynapi_entity_data(item, 'flag');
541
+ const description = libredwg.dwg_dynapi_entity_data(item, 'description');
542
+ const numDashes = libredwg.dwg_dynapi_entity_data(item, 'numdashes');
543
+ const patternLen = libredwg.dwg_dynapi_entity_data(item, 'pattern_len');
544
+ const dashes = libredwg.dwg_dynapi_entity_data(item, 'dashes');
635
545
  const dashArray = dashes
636
546
  ? libredwg.dwg_ptr_to_ltype_dash_array(dashes, numDashes)
637
547
  : [];
@@ -665,19 +575,13 @@ export class LibreDwgConverter {
665
575
  convertStyle(item, obj) {
666
576
  const libredwg = this.libredwg;
667
577
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
668
- const standardFlag = libredwg.dwg_dynapi_entity_value(item, 'flag')
669
- .data;
670
- const widthFactor = libredwg.dwg_dynapi_entity_value(item, 'width_factor')
671
- .data;
672
- const obliqueAngle = libredwg.dwg_dynapi_entity_value(item, 'oblique_angle')
673
- .data;
674
- const textGenerationFlag = libredwg.dwg_dynapi_entity_value(item, 'generation').data;
675
- const lastHeight = libredwg.dwg_dynapi_entity_value(item, 'last_height')
676
- .data;
677
- const font = libredwg.dwg_dynapi_entity_value(item, 'font_file')
678
- .data;
679
- const bigFont = libredwg.dwg_dynapi_entity_value(item, 'bigfont_file')
680
- .data;
578
+ const standardFlag = libredwg.dwg_dynapi_entity_data(item, 'flag');
579
+ const widthFactor = libredwg.dwg_dynapi_entity_data(item, 'width_factor');
580
+ const obliqueAngle = libredwg.dwg_dynapi_entity_data(item, 'oblique_angle');
581
+ const textGenerationFlag = libredwg.dwg_dynapi_entity_data(item, 'generation');
582
+ const lastHeight = libredwg.dwg_dynapi_entity_data(item, 'last_height');
583
+ const font = libredwg.dwg_dynapi_entity_data(item, 'font_file');
584
+ const bigFont = libredwg.dwg_dynapi_entity_data(item, 'bigfont_file');
681
585
  return {
682
586
  ...commonAttrs,
683
587
  standardFlag: standardFlag,
@@ -693,73 +597,47 @@ export class LibreDwgConverter {
693
597
  convertViewport(item, obj) {
694
598
  const libredwg = this.libredwg;
695
599
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
696
- const standardFlag = libredwg.dwg_dynapi_entity_value(item, 'flag')
697
- .data;
698
- const viewHeight = libredwg.dwg_dynapi_entity_value(item, 'VIEWSIZE')
699
- .data;
700
- const aspectRatio = libredwg.dwg_dynapi_entity_value(item, 'aspect_ratio')
701
- .data;
702
- const center = libredwg.dwg_dynapi_entity_value(item, 'VIEWCTR')
703
- .data;
704
- const viewTarget = libredwg.dwg_dynapi_entity_value(item, 'view_target')
705
- .data;
706
- const viewDirectionFromTarget = libredwg.dwg_dynapi_entity_value(item, 'VIEWDIR').data;
707
- const viewTwistAngle = libredwg.dwg_dynapi_entity_value(item, 'view_twist')
708
- .data;
709
- const lensLength = libredwg.dwg_dynapi_entity_value(item, 'lens_length')
710
- .data;
711
- const frontClippingPlane = libredwg.dwg_dynapi_entity_value(item, 'front_clip_z').data;
712
- const backClippingPlane = libredwg.dwg_dynapi_entity_value(item, 'back_clip_z').data;
713
- const viewMode = libredwg.dwg_dynapi_entity_value(item, 'VIEWMODE')
714
- .data;
715
- const renderMode = libredwg.dwg_dynapi_entity_value(item, 'render_mode')
716
- .data;
717
- const isDefaultLightingOn = libredwg.dwg_dynapi_entity_value(item, 'use_default_lights')
718
- .data != 0;
719
- const defaultLightningType = libredwg.dwg_dynapi_entity_value(item, 'default_lightning_type').data;
720
- const brightness = libredwg.dwg_dynapi_entity_value(item, 'brightness')
721
- .data;
722
- const contrast = libredwg.dwg_dynapi_entity_value(item, 'contrast')
723
- .data;
724
- const ambient_color = libredwg.dwg_dynapi_entity_value(item, 'ambient_color').data;
600
+ const standardFlag = libredwg.dwg_dynapi_entity_data(item, 'flag');
601
+ const viewHeight = libredwg.dwg_dynapi_entity_data(item, 'VIEWSIZE');
602
+ const aspectRatio = libredwg.dwg_dynapi_entity_data(item, 'aspect_ratio');
603
+ const center = libredwg.dwg_dynapi_entity_data(item, 'VIEWCTR');
604
+ const viewTarget = libredwg.dwg_dynapi_entity_data(item, 'view_target');
605
+ const viewDirectionFromTarget = libredwg.dwg_dynapi_entity_data(item, 'VIEWDIR');
606
+ const viewTwistAngle = libredwg.dwg_dynapi_entity_data(item, 'view_twist');
607
+ const lensLength = libredwg.dwg_dynapi_entity_data(item, 'lens_length');
608
+ const frontClippingPlane = libredwg.dwg_dynapi_entity_data(item, 'front_clip_z');
609
+ const backClippingPlane = libredwg.dwg_dynapi_entity_data(item, 'back_clip_z');
610
+ const viewMode = libredwg.dwg_dynapi_entity_data(item, 'VIEWMODE');
611
+ const renderMode = libredwg.dwg_dynapi_entity_data(item, 'render_mode');
612
+ const isDefaultLightingOn = libredwg.dwg_dynapi_entity_data(item, 'use_default_lights') != 0;
613
+ const defaultLightningType = libredwg.dwg_dynapi_entity_data(item, 'default_lightning_type');
614
+ const brightness = libredwg.dwg_dynapi_entity_data(item, 'brightness');
615
+ const contrast = libredwg.dwg_dynapi_entity_data(item, 'contrast');
616
+ const ambient_color = libredwg.dwg_dynapi_entity_data(item, 'ambient_color');
725
617
  // ViewportTableRecord
726
- const lowerLeftCorner = libredwg.dwg_dynapi_entity_value(item, 'lower_left')
727
- .data;
728
- const upperRightCorner = libredwg.dwg_dynapi_entity_value(item, 'upper_right').data;
618
+ const lowerLeftCorner = libredwg.dwg_dynapi_entity_data(item, 'lower_left');
619
+ const upperRightCorner = libredwg.dwg_dynapi_entity_data(item, 'upper_right');
729
620
  // TODO: Not sure whether 'circleSides' is equal to 'circle_zoom'
730
- const circleSides = libredwg.dwg_dynapi_entity_value(item, 'circle_zoom')
731
- .data;
732
- const ucsIconSetting = libredwg.dwg_dynapi_entity_value(item, 'UCSICON')
733
- .data;
621
+ const circleSides = libredwg.dwg_dynapi_entity_data(item, 'circle_zoom');
622
+ const ucsIconSetting = libredwg.dwg_dynapi_entity_data(item, 'UCSICON');
734
623
  // TODO: Not sure whether 'gridSpacing' is equal to 'GRIDUNIT'
735
- const gridSpacing = libredwg.dwg_dynapi_entity_value(item, 'GRIDUNIT')
736
- .data;
737
- const snapRotationAngle = libredwg.dwg_dynapi_entity_value(item, 'SNAPANG')
738
- .data;
739
- const snapBasePoint = libredwg.dwg_dynapi_entity_value(item, 'SNAPBASE')
740
- .data;
624
+ const gridSpacing = libredwg.dwg_dynapi_entity_data(item, 'GRIDUNIT');
625
+ const snapRotationAngle = libredwg.dwg_dynapi_entity_data(item, 'SNAPANG');
626
+ const snapBasePoint = libredwg.dwg_dynapi_entity_data(item, 'SNAPBASE');
741
627
  // TODO: Not sure whether 'snapSpacing' is equal to 'SNAPUNIT'
742
- const snapSpacing = libredwg.dwg_dynapi_entity_value(item, 'SNAPUNIT')
743
- .data;
744
- const ucsOrigin = libredwg.dwg_dynapi_entity_value(item, 'ucsorg')
745
- .data;
746
- const ucsXAxis = libredwg.dwg_dynapi_entity_value(item, 'ucsxdir')
747
- .data;
748
- const ucsYAxis = libredwg.dwg_dynapi_entity_value(item, 'ucsydir')
749
- .data;
750
- const elevation = libredwg.dwg_dynapi_entity_value(item, 'ucs_elevation')
751
- .data;
752
- const majorGridLines = libredwg.dwg_dynapi_entity_value(item, 'grid_major')
753
- .data;
754
- const background = libredwg.dwg_dynapi_entity_value(item, 'background')
755
- .data;
628
+ const snapSpacing = libredwg.dwg_dynapi_entity_data(item, 'SNAPUNIT');
629
+ const ucsOrigin = libredwg.dwg_dynapi_entity_data(item, 'ucsorg');
630
+ const ucsXAxis = libredwg.dwg_dynapi_entity_data(item, 'ucsxdir');
631
+ const ucsYAxis = libredwg.dwg_dynapi_entity_data(item, 'ucsydir');
632
+ const elevation = libredwg.dwg_dynapi_entity_data(item, 'ucs_elevation');
633
+ const majorGridLines = libredwg.dwg_dynapi_entity_data(item, 'grid_major');
634
+ const background = libredwg.dwg_dynapi_entity_data(item, 'background');
756
635
  const backgroundObjectId = background
757
- ? idToString(libredwg.dwg_ref_get_absref(background))
636
+ ? (libredwg.dwg_ref_get_id(background) ?? '')
758
637
  : undefined;
759
- const visualstyle = libredwg.dwg_dynapi_entity_value(item, 'visualstyle')
760
- .data;
638
+ const visualstyle = libredwg.dwg_dynapi_entity_data(item, 'visualstyle');
761
639
  const visualStyleObjectId = visualstyle
762
- ? idToString(libredwg.dwg_ref_get_absref(visualstyle))
640
+ ? (libredwg.dwg_ref_get_id(visualstyle) ?? '')
763
641
  : undefined;
764
642
  // BITCODE_B UCSFOLLOW;
765
643
  // BITCODE_B FASTZOOM;
@@ -824,19 +702,16 @@ export class LibreDwgConverter {
824
702
  return {
825
703
  handle: idToString(handle.value),
826
704
  ownerHandle: idToString(ownerhandle.absolute_ref),
827
- name: libredwg.dwg_dynapi_entity_value(tio, 'name').data
705
+ name: libredwg.dwg_dynapi_entity_data(tio, 'name')
828
706
  };
829
707
  }
830
708
  convertDictionary(item, obj) {
831
709
  const libredwg = this.libredwg;
832
710
  const commonAttrs = this.getCommonObjectAttrs(obj);
833
- const isHardOwner = libredwg.dwg_dynapi_entity_value(item, 'is_hardowner')
834
- .data;
835
- const cloningFlag = libredwg.dwg_dynapi_entity_value(item, 'cloning')
836
- .data;
837
- const numitems = libredwg.dwg_dynapi_entity_value(item, 'numitems')
838
- .data;
839
- const itemhandles_ptr = libredwg.dwg_dynapi_entity_value(item, 'itemhandles').data;
711
+ const isHardOwner = libredwg.dwg_dynapi_entity_data(item, 'is_hardowner');
712
+ const cloningFlag = libredwg.dwg_dynapi_entity_data(item, 'cloning');
713
+ const numitems = libredwg.dwg_dynapi_entity_data(item, 'numitems');
714
+ const itemhandles_ptr = libredwg.dwg_dynapi_entity_data(item, 'itemhandles');
840
715
  const itemhandles = libredwg.dwg_ptr_to_object_ref_array(itemhandles_ptr, numitems);
841
716
  const texts = libredwg.dwg_object_dictionary_get_texts(obj);
842
717
  const entries = {};
@@ -851,17 +726,12 @@ export class LibreDwgConverter {
851
726
  convertImageDef(item, obj) {
852
727
  const libredwg = this.libredwg;
853
728
  const commonAttrs = this.getCommonObjectAttrs(obj);
854
- // const classVersion = libredwg.dwg_dynapi_entity_value(item, 'class_version').data as number
855
- const size = libredwg.dwg_dynapi_entity_value(item, 'image_size')
856
- .data;
857
- const fileName = libredwg.dwg_dynapi_entity_value(item, 'file_path')
858
- .data;
859
- const isLoaded = libredwg.dwg_dynapi_entity_value(item, 'is_loaded')
860
- .data;
861
- const sizeOfOnePixel = libredwg.dwg_dynapi_entity_value(item, 'pixel_size')
862
- .data;
863
- const resolutionUnits = libredwg.dwg_dynapi_entity_value(item, 'resunits')
864
- .data;
729
+ // const classVersion = libredwg.dwg_dynapi_entity_data<number>(item, 'class_version')
730
+ const size = libredwg.dwg_dynapi_entity_data(item, 'image_size');
731
+ const fileName = libredwg.dwg_dynapi_entity_data(item, 'file_path');
732
+ const isLoaded = libredwg.dwg_dynapi_entity_data(item, 'is_loaded');
733
+ const sizeOfOnePixel = libredwg.dwg_dynapi_entity_data(item, 'pixel_size');
734
+ const resolutionUnits = libredwg.dwg_dynapi_entity_data(item, 'resunits');
865
735
  return {
866
736
  ...commonAttrs,
867
737
  fileName: fileName,
@@ -875,39 +745,26 @@ export class LibreDwgConverter {
875
745
  const libredwg = this.libredwg;
876
746
  const commonAttrs = this.getCommonObjectAttrs(obj);
877
747
  // AcDbLayout
878
- const layoutName = libredwg.dwg_dynapi_entity_value(item, 'layout_name')
879
- .data;
880
- const tabOrder = libredwg.dwg_dynapi_entity_value(item, 'tab_order')
881
- .data;
882
- const controlFlag = libredwg.dwg_dynapi_entity_value(item, 'layout_flags')
883
- .data;
884
- const insertionPoint = libredwg.dwg_dynapi_entity_value(item, 'INSBASE')
885
- .data;
886
- const minLimit = libredwg.dwg_dynapi_entity_value(item, 'LIMMIN')
887
- .data;
888
- const maxLimit = libredwg.dwg_dynapi_entity_value(item, 'LIMMAX')
889
- .data;
890
- const ucsOrigin = libredwg.dwg_dynapi_entity_value(item, 'UCSORG')
891
- .data;
892
- const ucsXAxis = libredwg.dwg_dynapi_entity_value(item, 'UCSXDIR')
893
- .data;
894
- const ucsYAxis = libredwg.dwg_dynapi_entity_value(item, 'UCSYDIR')
895
- .data;
896
- const orthographicType = libredwg.dwg_dynapi_entity_value(item, 'UCSORTHOVIEW').data;
897
- const minExtent = libredwg.dwg_dynapi_entity_value(item, 'EXTMIN')
898
- .data;
899
- const maxExtent = libredwg.dwg_dynapi_entity_value(item, 'EXTMAX')
900
- .data;
901
- const elevation = libredwg.dwg_dynapi_entity_value(item, 'ucs_elevation')
902
- .data;
903
- const block_header_ref = libredwg.dwg_dynapi_entity_value(item, 'block_header').data;
904
- const paperSpaceTableId = idToString(libredwg.dwg_ref_get_absref(block_header_ref));
905
- const active_viewport_ref = libredwg.dwg_dynapi_entity_value(item, 'active_viewport').data;
906
- const viewportId = idToString(libredwg.dwg_ref_get_absref(active_viewport_ref));
907
- const named_ucs_ref = libredwg.dwg_dynapi_entity_value(item, 'named_ucs')
908
- .data;
748
+ const layoutName = libredwg.dwg_dynapi_entity_data(item, 'layout_name');
749
+ const tabOrder = libredwg.dwg_dynapi_entity_data(item, 'tab_order');
750
+ const controlFlag = libredwg.dwg_dynapi_entity_data(item, 'layout_flags');
751
+ const insertionPoint = libredwg.dwg_dynapi_entity_data(item, 'INSBASE');
752
+ const minLimit = libredwg.dwg_dynapi_entity_data(item, 'LIMMIN');
753
+ const maxLimit = libredwg.dwg_dynapi_entity_data(item, 'LIMMAX');
754
+ const ucsOrigin = libredwg.dwg_dynapi_entity_data(item, 'UCSORG');
755
+ const ucsXAxis = libredwg.dwg_dynapi_entity_data(item, 'UCSXDIR');
756
+ const ucsYAxis = libredwg.dwg_dynapi_entity_data(item, 'UCSYDIR');
757
+ const orthographicType = libredwg.dwg_dynapi_entity_data(item, 'UCSORTHOVIEW');
758
+ const minExtent = libredwg.dwg_dynapi_entity_data(item, 'EXTMIN');
759
+ const maxExtent = libredwg.dwg_dynapi_entity_data(item, 'EXTMAX');
760
+ const elevation = libredwg.dwg_dynapi_entity_data(item, 'ucs_elevation');
761
+ const block_header_ref = libredwg.dwg_dynapi_entity_data(item, 'block_header');
762
+ const paperSpaceTableId = (libredwg.dwg_ref_get_id(block_header_ref) ?? '');
763
+ const active_viewport_ref = libredwg.dwg_dynapi_entity_data(item, 'active_viewport');
764
+ const viewportId = (libredwg.dwg_ref_get_id(active_viewport_ref) ?? '');
765
+ const named_ucs_ref = libredwg.dwg_dynapi_entity_data(item, 'named_ucs');
909
766
  const namedUcsId = named_ucs_ref
910
- ? idToString(libredwg.dwg_ref_get_absref(named_ucs_ref))
767
+ ? (libredwg.dwg_ref_get_id(named_ucs_ref) ?? '')
911
768
  : undefined;
912
769
  // BITCODE_H base_ucs;
913
770
  // BITCODE_BL num_viewports; // r2004+
@@ -934,25 +791,78 @@ export class LibreDwgConverter {
934
791
  shadePlotId: '' // TODO: Set the correct value
935
792
  };
936
793
  }
794
+ convertMLeaderStyle(item, obj) {
795
+ const libredwg = this.libredwg;
796
+ const commonAttrs = this.getCommonObjectAttrs(obj);
797
+ const objectVal = (field) => libredwg.dwg_dynapi_entity_data(item, field);
798
+ const refToId = (ref) => libredwg.dwg_ref_get_id(ref);
799
+ const asBool = (value) => value > 0;
800
+ const mleaderColor = (color) => color != null ? dwgColorToMLeaderRawColor(color) : undefined;
801
+ return {
802
+ ...commonAttrs,
803
+ subclassMarker: 'AcDbMLeaderStyle',
804
+ unknown1: objectVal('class_version'),
805
+ contentType: objectVal('content_type'),
806
+ drawMLeaderOrderType: objectVal('mleader_order'),
807
+ drawLeaderOrderType: objectVal('leader_order'),
808
+ maxLeaderSegmentPoints: objectVal('max_points'),
809
+ firstSegmentAngleConstraint: objectVal('first_seg_angle'),
810
+ secondSegmentAngleConstraint: objectVal('second_seg_angle'),
811
+ leaderLineType: objectVal('type'),
812
+ leaderLineColor: mleaderColor(objectVal('line_color')),
813
+ leaderLineTypeId: refToId(objectVal('line_type')),
814
+ leaderLineWeight: objectVal('linewt'),
815
+ landingEnabled: asBool(objectVal('has_landing')),
816
+ landingGap: objectVal('landing_gap'),
817
+ doglegEnabled: asBool(objectVal('has_dogleg')),
818
+ doglegLength: objectVal('landing_dist'),
819
+ description: objectVal('description'),
820
+ arrowheadId: refToId(objectVal('arrow_head')),
821
+ arrowheadSize: objectVal('arrow_head_size'),
822
+ defaultMTextContents: objectVal('text_default'),
823
+ textStyleId: refToId(objectVal('text_style')),
824
+ textLeftAttachmentType: objectVal('attach_left'),
825
+ textAngleType: objectVal('text_angle_type'),
826
+ textAlignmentType: objectVal('text_align_type'),
827
+ textRightAttachmentType: objectVal('attach_right'),
828
+ textColor: mleaderColor(objectVal('text_color')),
829
+ textHeight: objectVal('text_height'),
830
+ textFrameEnabled: asBool(objectVal('has_text_frame')),
831
+ textAlignAlwaysLeft: asBool(objectVal('text_always_left')),
832
+ alignSpace: objectVal('align_space'),
833
+ blockContentId: refToId(objectVal('block')),
834
+ blockContentColor: mleaderColor(objectVal('block_color')),
835
+ blockContentScale: objectVal('block_scale'),
836
+ blockContentScaleEnabled: asBool(objectVal('use_block_scale')),
837
+ blockContentRotation: objectVal('block_rotation'),
838
+ blockContentRotationEnabled: asBool(objectVal('use_block_rotation')),
839
+ blockContentConnectionType: objectVal('block_connection'),
840
+ scale: objectVal('scale'),
841
+ overwritePropertyValue: asBool(objectVal('is_changed')),
842
+ annotative: asBool(objectVal('is_annotative')),
843
+ breakGapSize: objectVal('break_size'),
844
+ textAttachmentDirection: objectVal('attach_dir'),
845
+ bottomTextAttachmentDirection: objectVal('attach_bottom'),
846
+ topTextAttachmentDirection: objectVal('attach_top'),
847
+ unknown2: asBool(objectVal('text_extended'))
848
+ };
849
+ }
937
850
  convertSpatialFilter(item, obj) {
938
851
  const libredwg = this.libredwg;
939
852
  const commonAttrs = this.getCommonObjectAttrs(obj);
940
- const origin = libredwg.dwg_dynapi_entity_value(item, 'origin')
941
- .data;
942
- const numberOfPointsOnClipBoundary = libredwg.dwg_dynapi_entity_value(item, 'num_clip_verts').data;
943
- const clip_verts_ptr = libredwg.dwg_dynapi_entity_value(item, 'clip_verts')
944
- .data;
853
+ const origin = libredwg.dwg_dynapi_entity_data(item, 'origin');
854
+ const numberOfPointsOnClipBoundary = libredwg.dwg_dynapi_entity_data(item, 'num_clip_verts');
855
+ const clip_verts_ptr = libredwg.dwg_dynapi_entity_data(item, 'clip_verts');
945
856
  const vertices = libredwg.dwg_ptr_to_point2d_array(clip_verts_ptr, numberOfPointsOnClipBoundary);
946
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(item, 'extrusion').data;
947
- const clipBoundaryVisible = libredwg.dwg_dynapi_entity_value(item, 'display_boundary_on').data;
948
- const frontClippingPlaneFlag = libredwg.dwg_dynapi_entity_value(item, 'front_clip_on').data;
949
- const frontClippingPlaneDistance = libredwg.dwg_dynapi_entity_value(item, 'front_clip_z').data;
950
- const backClippingPlaneFlag = libredwg.dwg_dynapi_entity_value(item, 'back_clip_on').data;
951
- const backClippingPlaneDistance = libredwg.dwg_dynapi_entity_value(item, 'back_clip_z').data;
952
- const transform_ptr = libredwg.dwg_dynapi_entity_value(item, 'transform')
953
- .data;
857
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(item, 'extrusion');
858
+ const clipBoundaryVisible = libredwg.dwg_dynapi_entity_data(item, 'display_boundary_on');
859
+ const frontClippingPlaneFlag = libredwg.dwg_dynapi_entity_data(item, 'front_clip_on');
860
+ const frontClippingPlaneDistance = libredwg.dwg_dynapi_entity_data(item, 'front_clip_z');
861
+ const backClippingPlaneFlag = libredwg.dwg_dynapi_entity_data(item, 'back_clip_on');
862
+ const backClippingPlaneDistance = libredwg.dwg_dynapi_entity_data(item, 'back_clip_z');
863
+ const transform_ptr = libredwg.dwg_dynapi_entity_data(item, 'transform');
954
864
  const matrix = libredwg.dwg_ptr_to_double_array(transform_ptr, 12);
955
- const inverse_transform_ptr = libredwg.dwg_dynapi_entity_value(item, 'inverse_transform').data;
865
+ const inverse_transform_ptr = libredwg.dwg_dynapi_entity_data(item, 'inverse_transform');
956
866
  const invertBlockMatrix = libredwg.dwg_ptr_to_double_array(inverse_transform_ptr, 12);
957
867
  return {
958
868
  ...commonAttrs,