@mlightcad/libredwg-web 0.7.4 → 0.7.5

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.
@@ -1168,6 +1168,45 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1168
1168
  Dwg_Color_Method2[Dwg_Color_Method2["None"] = 200] = "None";
1169
1169
  return Dwg_Color_Method2;
1170
1170
  })(Dwg_Color_Method || {});
1171
+ const RAW_COLOR_TYPE_BY_LAYER = 192;
1172
+ const RAW_COLOR_TYPE_BY_BLOCK = 193;
1173
+ const RAW_COLOR_TYPE_RGB = 194;
1174
+ const RAW_COLOR_TYPE_ACI = 195;
1175
+ const RAW_COLOR_TYPE_WINDOW_BG = 200;
1176
+ function dwgColorToMLeaderRawColor(color) {
1177
+ if (color == null) return void 0;
1178
+ const methodNum = color.method;
1179
+ const method = color.method != null && methodNum !== 0 ? methodNum : color.rgb >>> 24 & 255;
1180
+ const index = color.index;
1181
+ if (color.rgb != null && method >= RAW_COLOR_TYPE_BY_LAYER && method <= RAW_COLOR_TYPE_WINDOW_BG && (color.rgb >>> 24 & 255) === method) {
1182
+ return color.rgb >> 0;
1183
+ }
1184
+ if (method === Dwg_Color_Method.ByLayer || index === 256) {
1185
+ return RAW_COLOR_TYPE_BY_LAYER << 24 >> 0;
1186
+ }
1187
+ if (method === Dwg_Color_Method.ByBlock || index === 0) {
1188
+ return RAW_COLOR_TYPE_BY_BLOCK << 24 >> 0;
1189
+ }
1190
+ if (method === Dwg_Color_Method.None) {
1191
+ return RAW_COLOR_TYPE_WINDOW_BG << 24 >> 0;
1192
+ }
1193
+ if (method === Dwg_Color_Method.TrueColor) {
1194
+ const rgb = color.rgb != null ? color.rgb & 16777215 : void 0;
1195
+ if (rgb != null) {
1196
+ return (RAW_COLOR_TYPE_RGB << 24 | rgb) >> 0;
1197
+ }
1198
+ }
1199
+ if (method === Dwg_Color_Method.ForegroundColor) {
1200
+ return (RAW_COLOR_TYPE_ACI << 24 | 7) >> 0;
1201
+ }
1202
+ if (method === Dwg_Color_Method.Entities && index > 0 && index < 256) {
1203
+ return (RAW_COLOR_TYPE_ACI << 24 | index & 255) >> 0;
1204
+ }
1205
+ if (index > 0 && index < 256) {
1206
+ return (RAW_COLOR_TYPE_ACI << 24 | index & 255) >> 0;
1207
+ }
1208
+ return RAW_COLOR_TYPE_BY_BLOCK << 24 >> 0;
1209
+ }
1171
1210
  const MODEL_SPACE = "*MODEL_SPACE";
1172
1211
  const MODEL_SPACE_PREFIX = "*PAPER_SPACE";
1173
1212
  const isModelSpace = (name) => {
@@ -1262,6 +1301,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1262
1301
  return this.convertLWPolyline(entity_tio, commonAttrs);
1263
1302
  } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_MLINE) {
1264
1303
  return this.convertMLine(entity_tio, commonAttrs);
1304
+ } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_MULTILEADER) {
1305
+ return this.convertMultiLeader(entity_tio, commonAttrs);
1265
1306
  } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_MTEXT) {
1266
1307
  return this.convertMText(entity_tio, commonAttrs);
1267
1308
  } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_OLE2FRAME) {
@@ -1280,6 +1321,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1280
1321
  return this.convertRay(entity_tio, commonAttrs);
1281
1322
  } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_SECTIONOBJECT) {
1282
1323
  return this.convertSection(entity_tio, commonAttrs);
1324
+ } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_SHAPE) {
1325
+ return this.convertShape(entity_tio, commonAttrs);
1283
1326
  } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_SOLID) {
1284
1327
  return this.convertSolid(entity_tio, commonAttrs);
1285
1328
  } else if (fixedtype == Dwg_Object_Type.DWG_TYPE_SPLINE) {
@@ -1304,11 +1347,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1304
1347
  }
1305
1348
  convert3dFace(entity, commonAttrs) {
1306
1349
  const libredwg = this.libredwg;
1307
- const corner1 = libredwg.dwg_dynapi_entity_value(entity, "corner1").data;
1308
- const corner2 = libredwg.dwg_dynapi_entity_value(entity, "corner2").data;
1309
- const corner3 = libredwg.dwg_dynapi_entity_value(entity, "corner3").data;
1310
- const corner4 = libredwg.dwg_dynapi_entity_value(entity, "corner4").data;
1311
- const flag = libredwg.dwg_dynapi_entity_value(entity, "invis_flags").data;
1350
+ const corner1 = libredwg.dwg_dynapi_entity_data(entity, "corner1");
1351
+ const corner2 = libredwg.dwg_dynapi_entity_data(entity, "corner2");
1352
+ const corner3 = libredwg.dwg_dynapi_entity_data(entity, "corner3");
1353
+ const corner4 = libredwg.dwg_dynapi_entity_data(entity, "corner4");
1354
+ const flag = libredwg.dwg_dynapi_entity_data(entity, "invis_flags");
1312
1355
  return {
1313
1356
  type: "3DFACE",
1314
1357
  ...commonAttrs,
@@ -1321,15 +1364,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1321
1364
  }
1322
1365
  convertArc(entity, commonAttrs) {
1323
1366
  const libredwg = this.libredwg;
1324
- const center = libredwg.dwg_dynapi_entity_value(entity, "center").data;
1325
- const radius = libredwg.dwg_dynapi_entity_value(entity, "radius").data;
1326
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
1327
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
1328
- entity,
1329
- "extrusion"
1330
- ).data;
1331
- const startAngle = libredwg.dwg_dynapi_entity_value(entity, "start_angle").data;
1332
- const endAngle = libredwg.dwg_dynapi_entity_value(entity, "end_angle").data;
1367
+ const center = libredwg.dwg_dynapi_entity_data(entity, "center");
1368
+ const radius = libredwg.dwg_dynapi_entity_data(entity, "radius");
1369
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
1370
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
1371
+ const startAngle = libredwg.dwg_dynapi_entity_data(entity, "start_angle");
1372
+ const endAngle = libredwg.dwg_dynapi_entity_data(entity, "end_angle");
1333
1373
  return {
1334
1374
  type: "ARC",
1335
1375
  ...commonAttrs,
@@ -1343,41 +1383,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1343
1383
  }
1344
1384
  convertEmbeddedMText(entity, subclassName) {
1345
1385
  const libredwg = this.libredwg;
1346
- const attachmentPoint = libredwg.dwg_dynapi_subclass_value(
1347
- entity,
1348
- subclassName,
1349
- "attachment"
1350
- ).data;
1351
- const insertionPoint = libredwg.dwg_dynapi_subclass_value(
1352
- entity,
1353
- subclassName,
1354
- "ins_pt"
1355
- ).data;
1356
- const direction = libredwg.dwg_dynapi_subclass_value(
1357
- entity,
1358
- subclassName,
1359
- "x_axis_dir"
1360
- ).data;
1361
- const rectHeight = libredwg.dwg_dynapi_subclass_value(
1362
- entity,
1363
- subclassName,
1364
- "rect_height"
1365
- ).data;
1366
- const rectWidth = libredwg.dwg_dynapi_subclass_value(
1367
- entity,
1368
- subclassName,
1369
- "rect_width"
1370
- ).data;
1371
- const extentsHeight = libredwg.dwg_dynapi_subclass_value(
1372
- entity,
1373
- subclassName,
1374
- "extents_height"
1375
- ).data;
1376
- const extentsWidth = libredwg.dwg_dynapi_subclass_value(
1377
- entity,
1378
- subclassName,
1379
- "extents_width"
1380
- ).data;
1386
+ const attachmentPoint = libredwg.dwg_dynapi_subclass_data(entity, subclassName, "attachment");
1387
+ const insertionPoint = libredwg.dwg_dynapi_subclass_data(entity, subclassName, "ins_pt");
1388
+ const direction = libredwg.dwg_dynapi_subclass_data(entity, subclassName, "x_axis_dir");
1389
+ const rectHeight = libredwg.dwg_dynapi_subclass_data(entity, subclassName, "rect_height");
1390
+ const rectWidth = libredwg.dwg_dynapi_subclass_data(entity, subclassName, "rect_width");
1391
+ const extentsHeight = libredwg.dwg_dynapi_subclass_data(entity, subclassName, "extents_height");
1392
+ const extentsWidth = libredwg.dwg_dynapi_subclass_data(entity, subclassName, "extents_width");
1381
1393
  return {
1382
1394
  insertionPoint,
1383
1395
  rectHeight,
@@ -1397,30 +1409,18 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1397
1409
  }
1398
1410
  convertAttdef(entity, commonAttrs) {
1399
1411
  const libredwg = this.libredwg;
1400
- const textValue = libredwg.dwg_dynapi_entity_value(entity, "default_value").data;
1412
+ const textValue = libredwg.dwg_dynapi_entity_data(entity, "default_value");
1401
1413
  const text = this.convertTextBase(entity);
1402
1414
  text.text = textValue;
1403
- const prompt = libredwg.dwg_dynapi_entity_value(entity, "prompt").data;
1404
- const tag = libredwg.dwg_dynapi_entity_value(entity, "tag").data;
1405
- const flags = libredwg.dwg_dynapi_entity_value(entity, "flags").data;
1406
- const fieldLength = libredwg.dwg_dynapi_entity_value(entity, "field_length").data;
1407
- const lockPositionFlag = libredwg.dwg_dynapi_entity_value(
1408
- entity,
1409
- "lock_position_flag"
1410
- ).data;
1411
- const duplicateRecordCloningFlag = libredwg.dwg_dynapi_entity_value(
1412
- entity,
1413
- "keep_duplicate_records"
1414
- ).data;
1415
- const isReallyLocked = libredwg.dwg_dynapi_entity_value(
1416
- entity,
1417
- "is_really_locked"
1418
- ).data;
1419
- const mtextFlag = libredwg.dwg_dynapi_entity_value(entity, "mtext_type").data;
1420
- const alignmentPoint = libredwg.dwg_dynapi_entity_value(
1421
- entity,
1422
- "alignment_pt"
1423
- ).data;
1415
+ const prompt = libredwg.dwg_dynapi_entity_data(entity, "prompt");
1416
+ const tag = libredwg.dwg_dynapi_entity_data(entity, "tag");
1417
+ const flags = libredwg.dwg_dynapi_entity_data(entity, "flags");
1418
+ const fieldLength = libredwg.dwg_dynapi_entity_data(entity, "field_length");
1419
+ const lockPositionFlag = libredwg.dwg_dynapi_entity_data(entity, "lock_position_flag");
1420
+ const duplicateRecordCloningFlag = libredwg.dwg_dynapi_entity_data(entity, "keep_duplicate_records");
1421
+ const isReallyLocked = libredwg.dwg_dynapi_entity_data(entity, "is_really_locked");
1422
+ const mtextFlag = libredwg.dwg_dynapi_entity_data(entity, "mtext_type");
1423
+ const alignmentPoint = libredwg.dwg_dynapi_entity_data(entity, "alignment_pt");
1424
1424
  return {
1425
1425
  type: "ATTDEF",
1426
1426
  ...commonAttrs,
@@ -1444,26 +1444,14 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1444
1444
  convertAttrib(entity, commonAttrs) {
1445
1445
  const libredwg = this.libredwg;
1446
1446
  const text = this.convertTextBase(entity);
1447
- const tag = libredwg.dwg_dynapi_entity_value(entity, "tag").data;
1448
- const flags = libredwg.dwg_dynapi_entity_value(entity, "flags").data;
1449
- const fieldLength = libredwg.dwg_dynapi_entity_value(entity, "field_length").data;
1450
- const lockPositionFlag = libredwg.dwg_dynapi_entity_value(
1451
- entity,
1452
- "lock_position_flag"
1453
- ).data;
1454
- const duplicateRecordCloningFlag = libredwg.dwg_dynapi_entity_value(
1455
- entity,
1456
- "keep_duplicate_records"
1457
- ).data;
1458
- const mtextFlag = libredwg.dwg_dynapi_entity_value(entity, "mtext_type").data;
1459
- const isReallyLocked = libredwg.dwg_dynapi_entity_value(
1460
- entity,
1461
- "is_really_locked"
1462
- ).data;
1463
- const alignmentPoint = libredwg.dwg_dynapi_entity_value(
1464
- entity,
1465
- "alignment_pt"
1466
- ).data;
1447
+ const tag = libredwg.dwg_dynapi_entity_data(entity, "tag");
1448
+ const flags = libredwg.dwg_dynapi_entity_data(entity, "flags");
1449
+ const fieldLength = libredwg.dwg_dynapi_entity_data(entity, "field_length");
1450
+ const lockPositionFlag = libredwg.dwg_dynapi_entity_data(entity, "lock_position_flag");
1451
+ const duplicateRecordCloningFlag = libredwg.dwg_dynapi_entity_data(entity, "keep_duplicate_records");
1452
+ const mtextFlag = libredwg.dwg_dynapi_entity_data(entity, "mtext_type");
1453
+ const isReallyLocked = libredwg.dwg_dynapi_entity_data(entity, "is_really_locked");
1454
+ const alignmentPoint = libredwg.dwg_dynapi_entity_data(entity, "alignment_pt");
1467
1455
  return {
1468
1456
  type: "ATTRIB",
1469
1457
  ...commonAttrs,
@@ -1489,13 +1477,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1489
1477
  }
1490
1478
  convertCircle(entity, commonAttrs) {
1491
1479
  const libredwg = this.libredwg;
1492
- const center = libredwg.dwg_dynapi_entity_value(entity, "center").data;
1493
- const radius = libredwg.dwg_dynapi_entity_value(entity, "radius").data;
1494
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
1495
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
1496
- entity,
1497
- "extrusion"
1498
- ).data;
1480
+ const center = libredwg.dwg_dynapi_entity_data(entity, "center");
1481
+ const radius = libredwg.dwg_dynapi_entity_data(entity, "radius");
1482
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
1483
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
1499
1484
  return {
1500
1485
  type: "CIRCLE",
1501
1486
  ...commonAttrs,
@@ -1508,26 +1493,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1508
1493
  convertAlignedDimension(entity, commonAttrs) {
1509
1494
  const libredwg = this.libredwg;
1510
1495
  const dimensionCommonAttrs = this.getDimensionCommonAttrs(entity);
1511
- const insertionPoint = libredwg.dwg_dynapi_entity_value(
1512
- entity,
1513
- "clone_ins_pt"
1514
- ).data;
1515
- const subDefinitionPoint1 = libredwg.dwg_dynapi_entity_value(
1516
- entity,
1517
- "xline1_pt"
1518
- ).data;
1519
- const subDefinitionPoint2 = libredwg.dwg_dynapi_entity_value(
1520
- entity,
1521
- "xline2_pt"
1522
- ).data;
1523
- const rotationAngle = libredwg.dwg_dynapi_entity_value(
1524
- entity,
1525
- "ins_rotation"
1526
- ).data;
1527
- const obliqueAngle = libredwg.dwg_dynapi_entity_value(
1528
- entity,
1529
- "oblique_angle"
1530
- ).data;
1496
+ const insertionPoint = libredwg.dwg_dynapi_entity_data(entity, "clone_ins_pt");
1497
+ const subDefinitionPoint1 = libredwg.dwg_dynapi_entity_data(entity, "xline1_pt");
1498
+ const subDefinitionPoint2 = libredwg.dwg_dynapi_entity_data(entity, "xline2_pt");
1499
+ const rotationAngle = libredwg.dwg_dynapi_entity_data(entity, "ins_rotation");
1500
+ const obliqueAngle = libredwg.dwg_dynapi_entity_data(entity, "oblique_angle");
1531
1501
  return {
1532
1502
  subclassMarker: "AcDbAlignedDimension",
1533
1503
  ...commonAttrs,
@@ -1542,16 +1512,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1542
1512
  convert3PointAngularDimension(entity, commonAttrs) {
1543
1513
  const libredwg = this.libredwg;
1544
1514
  const dimensionCommonAttrs = this.getDimensionCommonAttrs(entity);
1545
- const subDefinitionPoint1 = libredwg.dwg_dynapi_entity_value(
1546
- entity,
1547
- "xline1_pt"
1548
- ).data;
1549
- const subDefinitionPoint2 = libredwg.dwg_dynapi_entity_value(
1550
- entity,
1551
- "xline2_pt"
1552
- ).data;
1553
- const centerPoint = libredwg.dwg_dynapi_entity_value(entity, "center_pt").data;
1554
- const arcPoint = libredwg.dwg_dynapi_entity_value(entity, "xline2end_pt").data;
1515
+ const subDefinitionPoint1 = libredwg.dwg_dynapi_entity_data(entity, "xline1_pt");
1516
+ const subDefinitionPoint2 = libredwg.dwg_dynapi_entity_data(entity, "xline2_pt");
1517
+ const centerPoint = libredwg.dwg_dynapi_entity_data(entity, "center_pt");
1518
+ const arcPoint = libredwg.dwg_dynapi_entity_data(entity, "xline2end_pt");
1555
1519
  return {
1556
1520
  subclassMarker: "AcDb3PointAngularDimension",
1557
1521
  ...commonAttrs,
@@ -1565,8 +1529,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1565
1529
  convertDiameterDimension(entity, commonAttrs) {
1566
1530
  const libredwg = this.libredwg;
1567
1531
  const dimensionCommonAttrs = this.getDimensionCommonAttrs(entity);
1568
- const centerPoint = libredwg.dwg_dynapi_entity_value(entity, "first_arc_pt").data;
1569
- const leaderLength = libredwg.dwg_dynapi_entity_value(entity, "leader_len").data;
1532
+ const centerPoint = libredwg.dwg_dynapi_entity_data(entity, "first_arc_pt");
1533
+ const leaderLength = libredwg.dwg_dynapi_entity_data(entity, "leader_len");
1570
1534
  return {
1571
1535
  subclassMarker: "AcDbDiametricDimension",
1572
1536
  ...commonAttrs,
@@ -1578,14 +1542,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1578
1542
  convertOrdinateDimension(entity, commonAttrs) {
1579
1543
  const libredwg = this.libredwg;
1580
1544
  const dimensionCommonAttrs = this.getDimensionCommonAttrs(entity);
1581
- const subDefinitionPoint1 = libredwg.dwg_dynapi_entity_value(
1582
- entity,
1583
- "feature_location_pt"
1584
- ).data;
1585
- const subDefinitionPoint2 = libredwg.dwg_dynapi_entity_value(
1586
- entity,
1587
- "leader_endpt"
1588
- ).data;
1545
+ const subDefinitionPoint1 = libredwg.dwg_dynapi_entity_data(entity, "feature_location_pt");
1546
+ const subDefinitionPoint2 = libredwg.dwg_dynapi_entity_data(entity, "leader_endpt");
1589
1547
  return {
1590
1548
  subclassMarker: "AcDbOrdinateDimension",
1591
1549
  ...commonAttrs,
@@ -1597,8 +1555,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1597
1555
  convertRadiusDimension(entity, commonAttrs) {
1598
1556
  const libredwg = this.libredwg;
1599
1557
  const dimensionCommonAttrs = this.getDimensionCommonAttrs(entity);
1600
- const centerPoint = libredwg.dwg_dynapi_entity_value(entity, "first_arc_pt").data;
1601
- const leaderLength = libredwg.dwg_dynapi_entity_value(entity, "leader_len").data;
1558
+ const centerPoint = libredwg.dwg_dynapi_entity_data(entity, "first_arc_pt");
1559
+ const leaderLength = libredwg.dwg_dynapi_entity_data(entity, "leader_len");
1602
1560
  return {
1603
1561
  subclassMarker: "AcDbRadialDimension",
1604
1562
  ...commonAttrs,
@@ -1609,18 +1567,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1609
1567
  }
1610
1568
  convertEllise(entity, commonAttrs) {
1611
1569
  const libredwg = this.libredwg;
1612
- const center = libredwg.dwg_dynapi_entity_value(entity, "center").data;
1613
- const majorAxisEndPoint = libredwg.dwg_dynapi_entity_value(
1614
- entity,
1615
- "sm_axis"
1616
- ).data;
1617
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
1618
- entity,
1619
- "extrusion"
1620
- ).data;
1621
- const axisRatio = libredwg.dwg_dynapi_entity_value(entity, "axis_ratio").data;
1622
- const startAngle = libredwg.dwg_dynapi_entity_value(entity, "start_angle").data;
1623
- const endAngle = libredwg.dwg_dynapi_entity_value(entity, "end_angle").data;
1570
+ const center = libredwg.dwg_dynapi_entity_data(entity, "center");
1571
+ const majorAxisEndPoint = libredwg.dwg_dynapi_entity_data(entity, "sm_axis");
1572
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
1573
+ const axisRatio = libredwg.dwg_dynapi_entity_data(entity, "axis_ratio");
1574
+ const startAngle = libredwg.dwg_dynapi_entity_data(entity, "start_angle");
1575
+ const endAngle = libredwg.dwg_dynapi_entity_data(entity, "end_angle");
1624
1576
  return {
1625
1577
  type: "ELLIPSE",
1626
1578
  ...commonAttrs,
@@ -1634,53 +1586,29 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1634
1586
  }
1635
1587
  convertHatch(entity, commonAttrs) {
1636
1588
  const libredwg = this.libredwg;
1637
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
1638
- entity,
1639
- "extrusion"
1640
- ).data;
1641
- const patternName = libredwg.dwg_dynapi_entity_value(entity, "name").data;
1642
- const isSolidFill = libredwg.dwg_dynapi_entity_value(
1643
- entity,
1644
- "is_solid_fill"
1645
- ).data;
1646
- const isAssociative = libredwg.dwg_dynapi_entity_value(
1647
- entity,
1648
- "is_associative"
1649
- ).data;
1650
- const numberOfBoundaryPaths = libredwg.dwg_dynapi_entity_value(
1651
- entity,
1652
- "num_paths"
1653
- ).data;
1654
- const paths_ptr = libredwg.dwg_dynapi_entity_value(entity, "paths").data;
1589
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
1590
+ const patternName = libredwg.dwg_dynapi_entity_data(entity, "name");
1591
+ const isSolidFill = libredwg.dwg_dynapi_entity_data(entity, "is_solid_fill");
1592
+ const isAssociative = libredwg.dwg_dynapi_entity_data(entity, "is_associative");
1593
+ const numberOfBoundaryPaths = libredwg.dwg_dynapi_entity_data(entity, "num_paths");
1594
+ const paths_ptr = libredwg.dwg_dynapi_entity_data(entity, "paths");
1655
1595
  const boundaryPaths = libredwg.dwg_ptr_to_hatch_path_array(
1656
1596
  paths_ptr,
1657
1597
  numberOfBoundaryPaths
1658
1598
  );
1659
- const patternStyle = libredwg.dwg_dynapi_entity_value(entity, "style").data;
1660
- const patternType = libredwg.dwg_dynapi_entity_value(entity, "pattern_type").data;
1661
- const patternAngle = libredwg.dwg_dynapi_entity_value(entity, "angle").data;
1662
- const patternScale = libredwg.dwg_dynapi_entity_value(
1663
- entity,
1664
- "scale_spacing"
1665
- ).data;
1666
- const numberOfDefinitionLines = libredwg.dwg_dynapi_entity_value(
1667
- entity,
1668
- "num_deflines"
1669
- ).data;
1670
- const definitionLines_ptr = libredwg.dwg_dynapi_entity_value(
1671
- entity,
1672
- "deflines"
1673
- ).data;
1599
+ const patternStyle = libredwg.dwg_dynapi_entity_data(entity, "style");
1600
+ const patternType = libredwg.dwg_dynapi_entity_data(entity, "pattern_type");
1601
+ const patternAngle = libredwg.dwg_dynapi_entity_data(entity, "angle");
1602
+ const patternScale = libredwg.dwg_dynapi_entity_data(entity, "scale_spacing");
1603
+ const numberOfDefinitionLines = libredwg.dwg_dynapi_entity_data(entity, "num_deflines");
1604
+ const definitionLines_ptr = libredwg.dwg_dynapi_entity_data(entity, "deflines");
1674
1605
  const definitionLines = libredwg.dwg_ptr_to_hatch_defline_array(
1675
1606
  definitionLines_ptr,
1676
1607
  numberOfDefinitionLines
1677
1608
  );
1678
- const pixelSize = libredwg.dwg_dynapi_entity_value(entity, "pixel_size").data;
1679
- const numberOfSeedPoints = libredwg.dwg_dynapi_entity_value(
1680
- entity,
1681
- "num_seeds"
1682
- ).data;
1683
- const seedPoints_ptr = libredwg.dwg_dynapi_entity_value(entity, "seeds").data;
1609
+ const pixelSize = libredwg.dwg_dynapi_entity_data(entity, "pixel_size");
1610
+ const numberOfSeedPoints = libredwg.dwg_dynapi_entity_data(entity, "num_seeds");
1611
+ const seedPoints_ptr = libredwg.dwg_dynapi_entity_data(entity, "seeds");
1684
1612
  const seedPoints = libredwg.dwg_ptr_to_point2d_array(
1685
1613
  seedPoints_ptr,
1686
1614
  numberOfSeedPoints
@@ -1715,14 +1643,14 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1715
1643
  seedPoints
1716
1644
  // gradientFlag?: DwgHatchGradientFlag
1717
1645
  };
1718
- const gradientFlag = libredwg.dwg_dynapi_entity_value(entity, "is_gradient_fill").data;
1646
+ const gradientFlag = libredwg.dwg_dynapi_entity_data(entity, "is_gradient_fill");
1719
1647
  if (gradientFlag > 0) {
1720
- const gradientName = libredwg.dwg_dynapi_entity_value(entity, "gradient_name").data;
1721
- const gradientRotation = libredwg.dwg_dynapi_entity_value(entity, "gradient_angle").data;
1722
- const gradientDefinition = libredwg.dwg_dynapi_entity_value(entity, "gradient_shift").data;
1723
- const colorTint = libredwg.dwg_dynapi_entity_value(entity, "gradient_tint").data;
1724
- const gradientColorFlag = libredwg.dwg_dynapi_entity_value(entity, "single_color_gradient").data;
1725
- const gradientColors_ptr = libredwg.dwg_dynapi_entity_value(entity, "colors").data;
1648
+ const gradientName = libredwg.dwg_dynapi_entity_data(entity, "gradient_name");
1649
+ const gradientRotation = libredwg.dwg_dynapi_entity_data(entity, "gradient_angle");
1650
+ const gradientDefinition = libredwg.dwg_dynapi_entity_data(entity, "gradient_shift");
1651
+ const colorTint = libredwg.dwg_dynapi_entity_data(entity, "gradient_tint");
1652
+ const gradientColorFlag = libredwg.dwg_dynapi_entity_data(entity, "single_color_gradient");
1653
+ const gradientColors_ptr = libredwg.dwg_dynapi_entity_data(entity, "colors");
1726
1654
  const gradientColors = libredwg.dwg_ptr_to_hatch_gradient_color_array(gradientColors_ptr, gradientColorFlag == 1 ? 1 : 2);
1727
1655
  return {
1728
1656
  type: "HATCH",
@@ -1816,39 +1744,28 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1816
1744
  }
1817
1745
  convertImage(entity, commonAttrs) {
1818
1746
  const libredwg = this.libredwg;
1819
- const version = libredwg.dwg_dynapi_entity_value(entity, "class_version").data;
1820
- const position = libredwg.dwg_dynapi_entity_value(entity, "pt0").data;
1821
- const uPixel = libredwg.dwg_dynapi_entity_value(entity, "uvec").data;
1822
- const vPixel = libredwg.dwg_dynapi_entity_value(entity, "vvec").data;
1823
- const imageSize = libredwg.dwg_dynapi_entity_value(entity, "image_size").data;
1824
- const flags = libredwg.dwg_dynapi_entity_value(entity, "display_props").data;
1825
- const clipping = libredwg.dwg_dynapi_entity_value(entity, "clipping").data;
1826
- const brightness = libredwg.dwg_dynapi_entity_value(entity, "brightness").data;
1827
- const contrast = libredwg.dwg_dynapi_entity_value(entity, "contrast").data;
1828
- const fade = libredwg.dwg_dynapi_entity_value(entity, "fade").data;
1829
- const clipMode = libredwg.dwg_dynapi_entity_value(entity, "clip_mode").data;
1830
- const clippingBoundaryType = libredwg.dwg_dynapi_entity_value(
1831
- entity,
1832
- "clip_boundary_type"
1833
- ).data;
1834
- const countBoundaryPoints = libredwg.dwg_dynapi_entity_value(
1835
- entity,
1836
- "num_clip_verts"
1837
- ).data;
1838
- const clip_verts = libredwg.dwg_dynapi_entity_value(entity, "clip_verts").data;
1747
+ const version = libredwg.dwg_dynapi_entity_data(entity, "class_version");
1748
+ const position = libredwg.dwg_dynapi_entity_data(entity, "pt0");
1749
+ const uPixel = libredwg.dwg_dynapi_entity_data(entity, "uvec");
1750
+ const vPixel = libredwg.dwg_dynapi_entity_data(entity, "vvec");
1751
+ const imageSize = libredwg.dwg_dynapi_entity_data(entity, "image_size");
1752
+ const flags = libredwg.dwg_dynapi_entity_data(entity, "display_props");
1753
+ const clipping = libredwg.dwg_dynapi_entity_data(entity, "clipping");
1754
+ const brightness = libredwg.dwg_dynapi_entity_data(entity, "brightness");
1755
+ const contrast = libredwg.dwg_dynapi_entity_data(entity, "contrast");
1756
+ const fade = libredwg.dwg_dynapi_entity_data(entity, "fade");
1757
+ const clipMode = libredwg.dwg_dynapi_entity_data(entity, "clip_mode");
1758
+ const clippingBoundaryType = libredwg.dwg_dynapi_entity_data(entity, "clip_boundary_type");
1759
+ const countBoundaryPoints = libredwg.dwg_dynapi_entity_data(entity, "num_clip_verts");
1760
+ const clip_verts = libredwg.dwg_dynapi_entity_data(entity, "clip_verts");
1839
1761
  const clippingBoundaryPath = libredwg.dwg_ptr_to_point3d_array(
1840
1762
  clip_verts,
1841
1763
  countBoundaryPoints
1842
1764
  );
1843
- const imagedef_ref = libredwg.dwg_dynapi_entity_value(entity, "imagedef").data;
1844
- const imageDefHandle = idToString(libredwg.dwg_ref_get_absref(imagedef_ref));
1845
- const imagedefreactor_ref = libredwg.dwg_dynapi_entity_value(
1846
- entity,
1847
- "imagedefreactor"
1848
- ).data;
1849
- const imageDefReactorHandle = idToString(
1850
- libredwg.dwg_ref_get_absref(imagedefreactor_ref)
1851
- );
1765
+ const imagedef_ref = libredwg.dwg_dynapi_entity_data(entity, "imagedef");
1766
+ const imageDefHandle = libredwg.dwg_ref_get_id(imagedef_ref) ?? "";
1767
+ const imagedefreactor_ref = libredwg.dwg_dynapi_entity_data(entity, "imagedefreactor");
1768
+ const imageDefReactorHandle = libredwg.dwg_ref_get_id(imagedefreactor_ref) ?? "";
1852
1769
  return {
1853
1770
  type: "IMAGE",
1854
1771
  ...commonAttrs,
@@ -1873,10 +1790,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1873
1790
  convertInsert(entity, commonAttrs) {
1874
1791
  const libredwg = this.libredwg;
1875
1792
  let name = "";
1876
- const block_header_ref = libredwg.dwg_dynapi_entity_value(
1877
- entity,
1878
- "block_header"
1879
- ).data;
1793
+ const block_header_ref = libredwg.dwg_dynapi_entity_data(entity, "block_header");
1880
1794
  if (block_header_ref) {
1881
1795
  const block_header_obj = libredwg.dwg_ref_get_object(block_header_ref);
1882
1796
  if (block_header_obj) {
@@ -1887,22 +1801,16 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1887
1801
  }
1888
1802
  }
1889
1803
  if (!name) {
1890
- name = libredwg.dwg_dynapi_entity_value(entity, "block_name").data;
1804
+ name = libredwg.dwg_dynapi_entity_data(entity, "block_name");
1891
1805
  }
1892
- const insertionPoint = libredwg.dwg_dynapi_entity_value(entity, "ins_pt").data;
1893
- const scale = libredwg.dwg_dynapi_entity_value(entity, "scale").data;
1894
- const rotation = libredwg.dwg_dynapi_entity_value(entity, "rotation").data;
1895
- const columnCount = libredwg.dwg_dynapi_entity_value(entity, "num_cols").data;
1896
- const rowCount = libredwg.dwg_dynapi_entity_value(entity, "num_rows").data;
1897
- const columnSpacing = libredwg.dwg_dynapi_entity_value(
1898
- entity,
1899
- "col_spacing"
1900
- ).data;
1901
- const rowSpacing = libredwg.dwg_dynapi_entity_value(entity, "row_spacing").data;
1902
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
1903
- entity,
1904
- "extrusion"
1905
- ).data;
1806
+ const insertionPoint = libredwg.dwg_dynapi_entity_data(entity, "ins_pt");
1807
+ const scale = libredwg.dwg_dynapi_entity_data(entity, "scale");
1808
+ const rotation = libredwg.dwg_dynapi_entity_data(entity, "rotation");
1809
+ const columnCount = libredwg.dwg_dynapi_entity_data(entity, "num_cols");
1810
+ const rowCount = libredwg.dwg_dynapi_entity_data(entity, "num_rows");
1811
+ const columnSpacing = libredwg.dwg_dynapi_entity_data(entity, "col_spacing");
1812
+ const rowSpacing = libredwg.dwg_dynapi_entity_data(entity, "row_spacing");
1813
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
1906
1814
  const attrib_ptr_array = libredwg.dwg_entity_insert_get_attribs(entity);
1907
1815
  const attribs = [];
1908
1816
  attrib_ptr_array.forEach((object_ptr) => {
@@ -1936,48 +1844,21 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1936
1844
  convertLeader(entity, commonAttrs) {
1937
1845
  const libredwg = this.libredwg;
1938
1846
  const styleName = libredwg.dwg_entity_mtext_get_style_name(entity);
1939
- const isArrowheadEnabled = libredwg.dwg_dynapi_entity_value(
1940
- entity,
1941
- "arrowhead_type"
1942
- ).data;
1943
- const isSpline = libredwg.dwg_dynapi_entity_value(entity, "path_type").data;
1944
- const leaderCreationFlag = libredwg.dwg_dynapi_entity_value(
1945
- entity,
1946
- "annot_type"
1947
- ).data;
1948
- const isHooklineSameDirection = libredwg.dwg_dynapi_entity_value(
1949
- entity,
1950
- "hookline_dir"
1951
- ).data;
1952
- const isHooklineExists = libredwg.dwg_dynapi_entity_value(
1953
- entity,
1954
- "hookline_on"
1955
- ).data;
1956
- const textHeight = libredwg.dwg_dynapi_entity_value(entity, "box_height").data;
1957
- const textWidth = libredwg.dwg_dynapi_entity_value(entity, "box_width").data;
1958
- const numberOfVertices = libredwg.dwg_dynapi_entity_value(
1959
- entity,
1960
- "num_points"
1961
- ).data;
1962
- const vertices_ptr = libredwg.dwg_dynapi_entity_value(entity, "points").data;
1847
+ const isArrowheadEnabled = libredwg.dwg_dynapi_entity_data(entity, "arrowhead_type");
1848
+ const isSpline = libredwg.dwg_dynapi_entity_data(entity, "path_type");
1849
+ const leaderCreationFlag = libredwg.dwg_dynapi_entity_data(entity, "annot_type");
1850
+ const isHooklineSameDirection = libredwg.dwg_dynapi_entity_data(entity, "hookline_dir");
1851
+ const isHooklineExists = libredwg.dwg_dynapi_entity_data(entity, "hookline_on");
1852
+ const textHeight = libredwg.dwg_dynapi_entity_data(entity, "box_height");
1853
+ const textWidth = libredwg.dwg_dynapi_entity_data(entity, "box_width");
1854
+ const numberOfVertices = libredwg.dwg_dynapi_entity_data(entity, "num_points");
1855
+ const vertices_ptr = libredwg.dwg_dynapi_entity_data(entity, "points");
1963
1856
  const vertices = numberOfVertices > 0 ? libredwg.dwg_ptr_to_point3d_array(vertices_ptr, numberOfVertices) : [];
1964
- const byBlockColor = libredwg.dwg_dynapi_entity_value(
1965
- entity,
1966
- "byblock_color"
1967
- ).data;
1968
- const normal = libredwg.dwg_dynapi_entity_value(entity, "extrusion").data;
1969
- const horizontalDirection = libredwg.dwg_dynapi_entity_value(
1970
- entity,
1971
- "x_direction"
1972
- ).data;
1973
- const offsetFromBlock = libredwg.dwg_dynapi_entity_value(
1974
- entity,
1975
- "inspt_offset"
1976
- ).data;
1977
- const offsetFromAnnotation = libredwg.dwg_dynapi_entity_value(
1978
- entity,
1979
- "endptproj"
1980
- ).data;
1857
+ const byBlockColor = libredwg.dwg_dynapi_entity_data(entity, "byblock_color");
1858
+ const normal = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
1859
+ const horizontalDirection = libredwg.dwg_dynapi_entity_data(entity, "x_direction");
1860
+ const offsetFromBlock = libredwg.dwg_dynapi_entity_data(entity, "inspt_offset");
1861
+ const offsetFromAnnotation = libredwg.dwg_dynapi_entity_data(entity, "endptproj");
1981
1862
  return {
1982
1863
  type: "LEADER",
1983
1864
  ...commonAttrs,
@@ -2000,13 +1881,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2000
1881
  }
2001
1882
  convertLine(entity, commonAttrs) {
2002
1883
  const libredwg = this.libredwg;
2003
- const startPoint = libredwg.dwg_dynapi_entity_value(entity, "start").data;
2004
- const endPoint = libredwg.dwg_dynapi_entity_value(entity, "end").data;
2005
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
2006
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2007
- entity,
2008
- "extrusion"
2009
- ).data;
1884
+ const startPoint = libredwg.dwg_dynapi_entity_data(entity, "start");
1885
+ const endPoint = libredwg.dwg_dynapi_entity_data(entity, "end");
1886
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
1887
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2010
1888
  return {
2011
1889
  type: "LINE",
2012
1890
  ...commonAttrs,
@@ -2018,27 +1896,18 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2018
1896
  }
2019
1897
  convertLWPolyline(entity, commonAttrs) {
2020
1898
  const libredwg = this.libredwg;
2021
- const numberOfVertices = libredwg.dwg_dynapi_entity_value(
2022
- entity,
2023
- "num_points"
2024
- ).data;
2025
- const flag = libredwg.dwg_dynapi_entity_value(entity, "flag").data;
2026
- const constantWidth = libredwg.dwg_dynapi_entity_value(
2027
- entity,
2028
- "const_width"
2029
- ).data;
2030
- const elevation = libredwg.dwg_dynapi_entity_value(entity, "elevation").data;
2031
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
2032
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2033
- entity,
2034
- "extrusion"
2035
- ).data;
1899
+ const numberOfVertices = libredwg.dwg_dynapi_entity_data(entity, "num_points");
1900
+ const flag = libredwg.dwg_dynapi_entity_data(entity, "flag");
1901
+ const constantWidth = libredwg.dwg_dynapi_entity_data(entity, "const_width");
1902
+ const elevation = libredwg.dwg_dynapi_entity_data(entity, "elevation");
1903
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
1904
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2036
1905
  const vertices = [];
2037
- const num_points = libredwg.dwg_dynapi_entity_value(entity, "num_points").data;
2038
- const points_ptr = libredwg.dwg_dynapi_entity_value(entity, "points").data;
1906
+ const num_points = libredwg.dwg_dynapi_entity_data(entity, "num_points");
1907
+ const points_ptr = libredwg.dwg_dynapi_entity_data(entity, "points");
2039
1908
  const points = libredwg.dwg_ptr_to_point2d_array(points_ptr, num_points);
2040
- const num_bulges = libredwg.dwg_dynapi_entity_value(entity, "num_bulges").data;
2041
- const bulges_ptr = libredwg.dwg_dynapi_entity_value(entity, "bulges").data;
1909
+ const num_bulges = libredwg.dwg_dynapi_entity_data(entity, "num_bulges");
1910
+ const bulges_ptr = libredwg.dwg_dynapi_entity_data(entity, "bulges");
2042
1911
  const bulges = libredwg.dwg_ptr_to_double_array(bulges_ptr, num_bulges);
2043
1912
  points.forEach((point, index) => {
2044
1913
  vertices.push({
@@ -2062,23 +1931,14 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2062
1931
  }
2063
1932
  convertMLine(entity, commonAttrs) {
2064
1933
  const libredwg = this.libredwg;
2065
- const scale = libredwg.dwg_dynapi_entity_value(entity, "scale").data;
2066
- const flags = libredwg.dwg_dynapi_entity_value(entity, "flags").data;
2067
- const justification = libredwg.dwg_dynapi_entity_value(
2068
- entity,
2069
- "justification"
2070
- ).data;
2071
- const startPoint = libredwg.dwg_dynapi_entity_value(entity, "base_point").data;
2072
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2073
- entity,
2074
- "extrusion"
2075
- ).data;
2076
- const numberOfLines = libredwg.dwg_dynapi_entity_value(entity, "num_lines").data;
2077
- const numberOfVertices = libredwg.dwg_dynapi_entity_value(
2078
- entity,
2079
- "num_verts"
2080
- ).data;
2081
- const verts_ptr = libredwg.dwg_dynapi_entity_value(entity, "verts").data;
1934
+ const scale = libredwg.dwg_dynapi_entity_data(entity, "scale");
1935
+ const flags = libredwg.dwg_dynapi_entity_data(entity, "flags");
1936
+ const justification = libredwg.dwg_dynapi_entity_data(entity, "justification");
1937
+ const startPoint = libredwg.dwg_dynapi_entity_data(entity, "base_point");
1938
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
1939
+ const numberOfLines = libredwg.dwg_dynapi_entity_data(entity, "num_lines");
1940
+ const numberOfVertices = libredwg.dwg_dynapi_entity_data(entity, "num_verts");
1941
+ const verts_ptr = libredwg.dwg_dynapi_entity_data(entity, "verts");
2082
1942
  const verts = libredwg.dwg_ptr_to_mline_vertex_array(
2083
1943
  verts_ptr,
2084
1944
  numberOfVertices
@@ -2115,17 +1975,525 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2115
1975
  // TODO: Set the correct value
2116
1976
  };
2117
1977
  }
1978
+ convertMultiLeader(entity, commonAttrs) {
1979
+ const libredwg = this.libredwg;
1980
+ const entityVal = (field) => libredwg.dwg_dynapi_entity_data(entity, field);
1981
+ const subclassVal = (ptr, subclass, field) => libredwg.dwg_dynapi_subclass_data(ptr, subclass, field);
1982
+ const refToId = (ref) => libredwg.dwg_ref_get_id(ref);
1983
+ const asBool = (value) => value > 0;
1984
+ const mleaderColor = (color) => color != null ? dwgColorToMLeaderRawColor(color) : void 0;
1985
+ const version = entityVal("class_version");
1986
+ const leaderStyleId = refToId(entityVal("mleaderstyle"));
1987
+ const propertyOverrideFlag = entityVal("flags");
1988
+ const leaderLineType = entityVal("type");
1989
+ const leaderLineColor = mleaderColor(entityVal("line_color"));
1990
+ const leaderLineTypeId = refToId(entityVal("line_ltype"));
1991
+ const leaderLineWeight = entityVal("line_linewt");
1992
+ const landingEnabled = asBool(entityVal("has_landing"));
1993
+ const doglegEnabled = asBool(entityVal("has_dogleg"));
1994
+ const doglegLength = entityVal("landing_dist");
1995
+ const arrowheadId = refToId(entityVal("arrow_handle"));
1996
+ const arrowheadSize = entityVal("arrow_size");
1997
+ const contentType = entityVal("style_content");
1998
+ const textStyleId = refToId(entityVal("text_style"));
1999
+ const textLeftAttachmentType = entityVal("text_left");
2000
+ const textRightAttachmentType = entityVal("text_right");
2001
+ const textAngleType = entityVal("text_angletype");
2002
+ const textAlignmentType = entityVal("text_alignment");
2003
+ const textColor = mleaderColor(entityVal("text_color"));
2004
+ const textFrameEnabled = asBool(entityVal("has_text_frame"));
2005
+ const blockContentId = refToId(entityVal("block_style"));
2006
+ const blockContentColor = mleaderColor(entityVal("block_color"));
2007
+ const blockContentScale = entityVal("block_scale");
2008
+ const blockContentRotation = entityVal("block_rotation");
2009
+ const blockContentConnectionType = entityVal("style_attachment");
2010
+ const annotativeScaleEnabled = asBool(entityVal("is_annotative"));
2011
+ const textDirectionNegative = asBool(entityVal("is_neg_textdir"));
2012
+ const textAlignInIPE = entityVal("ipe_alignment");
2013
+ let textAttachmentPoint = entityVal("justification");
2014
+ const textAttachmentDirection = entityVal("attach_dir");
2015
+ const bottomTextAttachmentDirection = entityVal("attach_bottom");
2016
+ const topTextAttachmentDirection = entityVal("attach_top");
2017
+ const contentScale = entityVal("scale_factor");
2018
+ const numArrowheads = entityVal("num_arrowheads");
2019
+ const arrowheadsPtr = entityVal("arrowheads");
2020
+ const arrowHeadSize = libredwg.dwg_dynapi_subclass_size("LEADER_ArrowHead");
2021
+ const arrowheadOverrides = [];
2022
+ for (let i = 0; i < numArrowheads; i++) {
2023
+ const arrowheadPtr = arrowheadsPtr + i * arrowHeadSize;
2024
+ arrowheadOverrides.push({
2025
+ index: subclassVal(arrowheadPtr, "LEADER_ArrowHead", "is_default"),
2026
+ handle: refToId(
2027
+ subclassVal(arrowheadPtr, "LEADER_ArrowHead", "arrowhead")
2028
+ ) ?? ""
2029
+ });
2030
+ }
2031
+ const numBlocklabels = entityVal("num_blocklabels");
2032
+ const blocklabelsPtr = entityVal("blocklabels");
2033
+ const blockLabelSize = libredwg.dwg_dynapi_subclass_size("LEADER_BlockLabel");
2034
+ const blockAttributes = [];
2035
+ for (let i = 0; i < numBlocklabels; i++) {
2036
+ const blocklabelPtr = blocklabelsPtr + i * blockLabelSize;
2037
+ blockAttributes.push({
2038
+ id: refToId(
2039
+ subclassVal(blocklabelPtr, "LEADER_BlockLabel", "attdef")
2040
+ ),
2041
+ index: subclassVal(
2042
+ blocklabelPtr,
2043
+ "LEADER_BlockLabel",
2044
+ "ui_index"
2045
+ ),
2046
+ width: subclassVal(blocklabelPtr, "LEADER_BlockLabel", "width"),
2047
+ text: subclassVal(
2048
+ blocklabelPtr,
2049
+ "LEADER_BlockLabel",
2050
+ "label_text"
2051
+ )
2052
+ });
2053
+ }
2054
+ const ctxPtr = entity + libredwg.dwg_dynapi_entity_field_offset(entity, "ctx");
2055
+ const contentPtr = ctxPtr + libredwg.dwg_dynapi_subclass_field_offset(
2056
+ "MLEADER_AnnotContext",
2057
+ "content"
2058
+ );
2059
+ const contentScaleFactor = subclassVal(
2060
+ ctxPtr,
2061
+ "MLEADER_AnnotContext",
2062
+ "scale_factor"
2063
+ );
2064
+ const contentBasePosition = subclassVal(
2065
+ ctxPtr,
2066
+ "MLEADER_AnnotContext",
2067
+ "content_base"
2068
+ );
2069
+ const landingGap = subclassVal(
2070
+ ctxPtr,
2071
+ "MLEADER_AnnotContext",
2072
+ "landing_gap"
2073
+ );
2074
+ const textAttachment = subclassVal(
2075
+ ctxPtr,
2076
+ "MLEADER_AnnotContext",
2077
+ "attach_dir"
2078
+ );
2079
+ const contextTextHeight = subclassVal(
2080
+ ctxPtr,
2081
+ "MLEADER_AnnotContext",
2082
+ "text_height"
2083
+ );
2084
+ const contextArrowSize = subclassVal(
2085
+ ctxPtr,
2086
+ "MLEADER_AnnotContext",
2087
+ "arrow_size"
2088
+ );
2089
+ const contextTextLeft = subclassVal(
2090
+ ctxPtr,
2091
+ "MLEADER_AnnotContext",
2092
+ "text_left"
2093
+ );
2094
+ const contextTextRight = subclassVal(
2095
+ ctxPtr,
2096
+ "MLEADER_AnnotContext",
2097
+ "text_right"
2098
+ );
2099
+ const contextTextAngleType = subclassVal(
2100
+ ctxPtr,
2101
+ "MLEADER_AnnotContext",
2102
+ "text_angletype"
2103
+ );
2104
+ const contextTextAlignment = subclassVal(
2105
+ ctxPtr,
2106
+ "MLEADER_AnnotContext",
2107
+ "text_alignment"
2108
+ );
2109
+ const hasMText = asBool(
2110
+ subclassVal(ctxPtr, "MLEADER_AnnotContext", "has_content_txt")
2111
+ );
2112
+ const hasBlock = asBool(
2113
+ subclassVal(ctxPtr, "MLEADER_AnnotContext", "has_content_blk")
2114
+ );
2115
+ const planeOrigin = subclassVal(
2116
+ ctxPtr,
2117
+ "MLEADER_AnnotContext",
2118
+ "base"
2119
+ );
2120
+ const planeXAxisDirection = subclassVal(
2121
+ ctxPtr,
2122
+ "MLEADER_AnnotContext",
2123
+ "base_dir"
2124
+ );
2125
+ const planeYAxisDirection = subclassVal(
2126
+ ctxPtr,
2127
+ "MLEADER_AnnotContext",
2128
+ "base_vert"
2129
+ );
2130
+ const planeNormalReversed = asBool(
2131
+ subclassVal(ctxPtr, "MLEADER_AnnotContext", "is_normal_reversed")
2132
+ );
2133
+ let textFlowDirection;
2134
+ let normal;
2135
+ let textRotation;
2136
+ let textWidth;
2137
+ let textLineSpacingFactor;
2138
+ let textLineSpacingStyle;
2139
+ let textAnchor;
2140
+ let textDirection;
2141
+ let textBackgroundColor;
2142
+ let textBackgroundScaleFactor;
2143
+ let textBackgroundTransparency;
2144
+ let textBackgroundColorOn;
2145
+ let textFillOn;
2146
+ let textColumnType;
2147
+ let textUseAutoHeight;
2148
+ let textColumnWidth;
2149
+ let textColumnGutterWidth;
2150
+ let textColumnFlowReversed;
2151
+ let textColumnHeight;
2152
+ let textUseWordBreak;
2153
+ let textContent;
2154
+ if (hasMText) {
2155
+ const textAlignment = subclassVal(
2156
+ contentPtr,
2157
+ "MLEADER_Content_MText",
2158
+ "alignment"
2159
+ );
2160
+ if (textAlignment != null && textAlignment !== 0) {
2161
+ textAttachmentPoint = textAlignment;
2162
+ }
2163
+ normal = subclassVal(
2164
+ contentPtr,
2165
+ "MLEADER_Content_MText",
2166
+ "normal"
2167
+ );
2168
+ textAnchor = subclassVal(
2169
+ contentPtr,
2170
+ "MLEADER_Content_MText",
2171
+ "location"
2172
+ );
2173
+ textRotation = subclassVal(
2174
+ contentPtr,
2175
+ "MLEADER_Content_MText",
2176
+ "rotation"
2177
+ );
2178
+ textDirection = subclassVal(
2179
+ contentPtr,
2180
+ "MLEADER_Content_MText",
2181
+ "direction"
2182
+ );
2183
+ textWidth = subclassVal(contentPtr, "MLEADER_Content_MText", "width");
2184
+ textLineSpacingFactor = subclassVal(
2185
+ contentPtr,
2186
+ "MLEADER_Content_MText",
2187
+ "line_spacing_factor"
2188
+ );
2189
+ textLineSpacingStyle = subclassVal(
2190
+ contentPtr,
2191
+ "MLEADER_Content_MText",
2192
+ "line_spacing_style"
2193
+ );
2194
+ textFlowDirection = subclassVal(
2195
+ contentPtr,
2196
+ "MLEADER_Content_MText",
2197
+ "flow"
2198
+ );
2199
+ textBackgroundColor = mleaderColor(
2200
+ subclassVal(
2201
+ contentPtr,
2202
+ "MLEADER_Content_MText",
2203
+ "bg_color"
2204
+ )
2205
+ );
2206
+ textBackgroundScaleFactor = subclassVal(
2207
+ contentPtr,
2208
+ "MLEADER_Content_MText",
2209
+ "bg_scale"
2210
+ );
2211
+ textBackgroundTransparency = subclassVal(
2212
+ contentPtr,
2213
+ "MLEADER_Content_MText",
2214
+ "bg_transparency"
2215
+ );
2216
+ textFillOn = asBool(
2217
+ subclassVal(contentPtr, "MLEADER_Content_MText", "is_bg_fill")
2218
+ );
2219
+ textBackgroundColorOn = asBool(
2220
+ subclassVal(
2221
+ contentPtr,
2222
+ "MLEADER_Content_MText",
2223
+ "is_bg_mask_fill"
2224
+ )
2225
+ );
2226
+ textColumnType = subclassVal(
2227
+ contentPtr,
2228
+ "MLEADER_Content_MText",
2229
+ "col_type"
2230
+ );
2231
+ textUseAutoHeight = asBool(
2232
+ subclassVal(
2233
+ contentPtr,
2234
+ "MLEADER_Content_MText",
2235
+ "is_height_auto"
2236
+ )
2237
+ );
2238
+ textColumnWidth = subclassVal(
2239
+ contentPtr,
2240
+ "MLEADER_Content_MText",
2241
+ "col_width"
2242
+ );
2243
+ textColumnGutterWidth = subclassVal(
2244
+ contentPtr,
2245
+ "MLEADER_Content_MText",
2246
+ "col_gutter"
2247
+ );
2248
+ textColumnFlowReversed = asBool(
2249
+ subclassVal(
2250
+ contentPtr,
2251
+ "MLEADER_Content_MText",
2252
+ "is_col_flow_reversed"
2253
+ )
2254
+ );
2255
+ const numColSizes = subclassVal(
2256
+ contentPtr,
2257
+ "MLEADER_Content_MText",
2258
+ "num_col_sizes"
2259
+ );
2260
+ const colSizesPtr = subclassVal(
2261
+ contentPtr,
2262
+ "MLEADER_Content_MText",
2263
+ "col_sizes"
2264
+ );
2265
+ if (numColSizes > 0) {
2266
+ textColumnHeight = libredwg.dwg_ptr_to_double_array(
2267
+ colSizesPtr,
2268
+ numColSizes
2269
+ )[0];
2270
+ }
2271
+ textUseWordBreak = asBool(
2272
+ subclassVal(contentPtr, "MLEADER_Content_MText", "word_break")
2273
+ );
2274
+ textContent = subclassVal(
2275
+ contentPtr,
2276
+ "MLEADER_Content_MText",
2277
+ "default_text"
2278
+ );
2279
+ }
2280
+ let blockContent;
2281
+ if (hasBlock) {
2282
+ const transformPtr = subclassVal(
2283
+ contentPtr,
2284
+ "MLEADER_Content_Block",
2285
+ "transform"
2286
+ );
2287
+ blockContent = {
2288
+ blockContentId: refToId(
2289
+ subclassVal(contentPtr, "MLEADER_Content_Block", "block_table")
2290
+ ),
2291
+ normal: subclassVal(
2292
+ contentPtr,
2293
+ "MLEADER_Content_Block",
2294
+ "normal"
2295
+ ),
2296
+ position: subclassVal(
2297
+ contentPtr,
2298
+ "MLEADER_Content_Block",
2299
+ "location"
2300
+ ),
2301
+ scale: subclassVal(
2302
+ contentPtr,
2303
+ "MLEADER_Content_Block",
2304
+ "scale"
2305
+ ),
2306
+ rotation: subclassVal(
2307
+ contentPtr,
2308
+ "MLEADER_Content_Block",
2309
+ "rotation"
2310
+ ),
2311
+ color: mleaderColor(
2312
+ subclassVal(
2313
+ contentPtr,
2314
+ "MLEADER_Content_Block",
2315
+ "color"
2316
+ )
2317
+ ),
2318
+ transformationMatrix: transformPtr ? libredwg.dwg_ptr_to_double_array(transformPtr, 16) : void 0
2319
+ };
2320
+ }
2321
+ const numLeaders = subclassVal(
2322
+ ctxPtr,
2323
+ "MLEADER_AnnotContext",
2324
+ "num_leaders"
2325
+ );
2326
+ const leadersPtr = subclassVal(
2327
+ ctxPtr,
2328
+ "MLEADER_AnnotContext",
2329
+ "leaders"
2330
+ );
2331
+ const leaderNodeSize = libredwg.dwg_dynapi_subclass_size("LEADER_Node");
2332
+ const leaderLineSize = libredwg.dwg_dynapi_subclass_size("LEADER_Line");
2333
+ const leaderBreakSize = libredwg.dwg_dynapi_subclass_size("LEADER_Break");
2334
+ const leaderSections = [];
2335
+ for (let i = 0; i < numLeaders; i++) {
2336
+ const nodePtr = leadersPtr + i * leaderNodeSize;
2337
+ const lastLeaderLinePointSet = asBool(
2338
+ subclassVal(nodePtr, "LEADER_Node", "has_lastleaderlinepoint")
2339
+ );
2340
+ const doglegVectorSet = asBool(
2341
+ subclassVal(nodePtr, "LEADER_Node", "has_dogleg")
2342
+ );
2343
+ const numBreaks = subclassVal(nodePtr, "LEADER_Node", "num_breaks");
2344
+ const breaksPtr = subclassVal(nodePtr, "LEADER_Node", "breaks");
2345
+ const nodeBreaks = [];
2346
+ for (let j = 0; j < numBreaks; j++) {
2347
+ const breakPtr = breaksPtr + j * leaderBreakSize;
2348
+ nodeBreaks.push({
2349
+ start: subclassVal(breakPtr, "LEADER_Break", "start"),
2350
+ end: subclassVal(breakPtr, "LEADER_Break", "end")
2351
+ });
2352
+ }
2353
+ const numLines = subclassVal(nodePtr, "LEADER_Node", "num_lines");
2354
+ const linesPtr = subclassVal(nodePtr, "LEADER_Node", "lines");
2355
+ const leaderLines = [];
2356
+ for (let j = 0; j < numLines; j++) {
2357
+ const linePtr = linesPtr + j * leaderLineSize;
2358
+ const numPoints = subclassVal(
2359
+ linePtr,
2360
+ "LEADER_Line",
2361
+ "num_points"
2362
+ );
2363
+ const pointsPtr = subclassVal(linePtr, "LEADER_Line", "points");
2364
+ const vertices = numPoints > 0 ? libredwg.dwg_ptr_to_point3d_array(pointsPtr, numPoints) : [];
2365
+ const lineNumBreaks = subclassVal(
2366
+ linePtr,
2367
+ "LEADER_Line",
2368
+ "num_breaks"
2369
+ );
2370
+ const lineBreaksPtr = subclassVal(
2371
+ linePtr,
2372
+ "LEADER_Line",
2373
+ "breaks"
2374
+ );
2375
+ const lineBreaks = [];
2376
+ for (let k = 0; k < lineNumBreaks; k++) {
2377
+ const breakPtr = lineBreaksPtr + k * leaderBreakSize;
2378
+ lineBreaks.push({
2379
+ start: subclassVal(breakPtr, "LEADER_Break", "start"),
2380
+ end: subclassVal(breakPtr, "LEADER_Break", "end")
2381
+ });
2382
+ }
2383
+ leaderLines.push({
2384
+ vertices,
2385
+ leaderLineIndex: subclassVal(
2386
+ linePtr,
2387
+ "LEADER_Line",
2388
+ "line_index"
2389
+ ),
2390
+ breaks: lineBreaks.length > 0 ? lineBreaks : void 0
2391
+ });
2392
+ }
2393
+ leaderSections.push({
2394
+ lastLeaderLinePoint: lastLeaderLinePointSet ? subclassVal(
2395
+ nodePtr,
2396
+ "LEADER_Node",
2397
+ "lastleaderlinepoint"
2398
+ ) : void 0,
2399
+ lastLeaderLinePointSet,
2400
+ doglegVector: doglegVectorSet ? subclassVal(nodePtr, "LEADER_Node", "dogleg_vector") : void 0,
2401
+ doglegVectorSet,
2402
+ doglegLength: subclassVal(nodePtr, "LEADER_Node", "dogleg_length"),
2403
+ breaks: nodeBreaks.length > 0 ? nodeBreaks : void 0,
2404
+ leaderBranchIndex: subclassVal(
2405
+ nodePtr,
2406
+ "LEADER_Node",
2407
+ "branch_index"
2408
+ ),
2409
+ leaderLines
2410
+ });
2411
+ }
2412
+ return {
2413
+ type: "MULTILEADER",
2414
+ ...commonAttrs,
2415
+ subclassMarker: "AcDbMLeader",
2416
+ version,
2417
+ leaderStyleId,
2418
+ propertyOverrideFlag,
2419
+ leaderLineType,
2420
+ leaderLineColor,
2421
+ leaderLineTypeId,
2422
+ leaderLineWeight,
2423
+ landingEnabled,
2424
+ doglegEnabled,
2425
+ doglegLength,
2426
+ arrowheadId,
2427
+ arrowheadSize: arrowheadSize || contextArrowSize,
2428
+ contentType,
2429
+ textStyleId,
2430
+ textLeftAttachmentType: textLeftAttachmentType || contextTextLeft,
2431
+ textRightAttachmentType: textRightAttachmentType || contextTextRight,
2432
+ textAngleType: textAngleType || contextTextAngleType,
2433
+ textAlignmentType: textAlignmentType || contextTextAlignment,
2434
+ textColor,
2435
+ textFrameEnabled,
2436
+ landingGap,
2437
+ textAttachment,
2438
+ textFlowDirection,
2439
+ blockContentId,
2440
+ blockContentColor,
2441
+ blockContentScale,
2442
+ blockContentRotation,
2443
+ blockContentConnectionType,
2444
+ annotativeScaleEnabled,
2445
+ arrowheadOverrides: arrowheadOverrides.length > 0 ? arrowheadOverrides : void 0,
2446
+ blockAttributes: blockAttributes.length > 0 ? blockAttributes : void 0,
2447
+ textDirectionNegative,
2448
+ textAlignInIPE,
2449
+ textAttachmentPoint,
2450
+ textAttachmentDirection,
2451
+ bottomTextAttachmentDirection,
2452
+ topTextAttachmentDirection,
2453
+ contentScale: contentScale || contentScaleFactor,
2454
+ contentBasePosition,
2455
+ normal,
2456
+ textHeight: contextTextHeight,
2457
+ textRotation,
2458
+ textWidth,
2459
+ textLineSpacingFactor,
2460
+ textLineSpacingStyle,
2461
+ textAnchor,
2462
+ textDirection,
2463
+ textBackgroundColor,
2464
+ textBackgroundScaleFactor,
2465
+ textBackgroundTransparency,
2466
+ textBackgroundColorOn,
2467
+ textFillOn,
2468
+ textColumnType,
2469
+ textUseAutoHeight,
2470
+ textColumnWidth,
2471
+ textColumnGutterWidth,
2472
+ textColumnFlowReversed,
2473
+ textColumnHeight,
2474
+ textUseWordBreak,
2475
+ textContent,
2476
+ hasMText,
2477
+ hasBlock,
2478
+ blockContent,
2479
+ planeOrigin,
2480
+ planeXAxisDirection,
2481
+ planeYAxisDirection,
2482
+ planeNormalReversed,
2483
+ leaderSections: leaderSections.length > 0 ? leaderSections : void 0
2484
+ };
2485
+ }
2118
2486
  convertOle2Frame(entity, commonAttrs) {
2119
2487
  const libredwg = this.libredwg;
2120
- const oleVersion = libredwg.dwg_dynapi_entity_value(entity, "oleversion").data;
2121
- const oleClient = libredwg.dwg_dynapi_entity_value(entity, "oleclient").data;
2122
- const dataSize = libredwg.dwg_dynapi_entity_value(entity, "data_size").data;
2123
- const leftUpPoint = libredwg.dwg_dynapi_entity_value(entity, "pt1").data;
2124
- const rightDownPoint = libredwg.dwg_dynapi_entity_value(entity, "pt2").data;
2125
- const lockAspect = libredwg.dwg_dynapi_entity_value(entity, "lock_aspect").data;
2126
- const oleObjectType = libredwg.dwg_dynapi_entity_value(entity, "type").data;
2127
- const tileModeDescriptor = libredwg.dwg_dynapi_entity_value(entity, "mode").data;
2128
- const binaryData = libredwg.dwg_dynapi_entity_value(entity, "data").data;
2488
+ const oleVersion = libredwg.dwg_dynapi_entity_data(entity, "oleversion");
2489
+ const oleClient = libredwg.dwg_dynapi_entity_data(entity, "oleclient");
2490
+ const dataSize = libredwg.dwg_dynapi_entity_data(entity, "data_size");
2491
+ const leftUpPoint = libredwg.dwg_dynapi_entity_data(entity, "pt1");
2492
+ const rightDownPoint = libredwg.dwg_dynapi_entity_data(entity, "pt2");
2493
+ const lockAspect = libredwg.dwg_dynapi_entity_data(entity, "lock_aspect");
2494
+ const oleObjectType = libredwg.dwg_dynapi_entity_data(entity, "type");
2495
+ const tileModeDescriptor = libredwg.dwg_dynapi_entity_data(entity, "mode");
2496
+ const binaryData = libredwg.dwg_dynapi_entity_data(entity, "data");
2129
2497
  return {
2130
2498
  type: "OLE2FRAME",
2131
2499
  ...commonAttrs,
@@ -2142,10 +2510,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2142
2510
  }
2143
2511
  convertOleFrame(entity, commonAttrs) {
2144
2512
  const libredwg = this.libredwg;
2145
- const flag = libredwg.dwg_dynapi_entity_value(entity, "flag").data;
2146
- const mode = libredwg.dwg_dynapi_entity_value(entity, "mode").data;
2147
- const dataSize = libredwg.dwg_dynapi_entity_value(entity, "data_size").data;
2148
- const binaryData = libredwg.dwg_dynapi_entity_value(entity, "data").data;
2513
+ const flag = libredwg.dwg_dynapi_entity_data(entity, "flag");
2514
+ const mode = libredwg.dwg_dynapi_entity_data(entity, "mode");
2515
+ const dataSize = libredwg.dwg_dynapi_entity_data(entity, "data_size");
2516
+ const binaryData = libredwg.dwg_dynapi_entity_data(entity, "data");
2149
2517
  return {
2150
2518
  type: "OLEFRAME",
2151
2519
  ...commonAttrs,
@@ -2157,76 +2525,31 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2157
2525
  }
2158
2526
  convertMText(entity, commonAttrs) {
2159
2527
  const libredwg = this.libredwg;
2160
- const insertionPoint = libredwg.dwg_dynapi_entity_value(entity, "ins_pt").data;
2161
- const textHeight = libredwg.dwg_dynapi_entity_value(entity, "text_height").data;
2162
- const rectHeight = libredwg.dwg_dynapi_entity_value(entity, "rect_height").data;
2163
- const rectWidth = libredwg.dwg_dynapi_entity_value(entity, "rect_width").data;
2164
- const extentsWidth = libredwg.dwg_dynapi_entity_value(
2165
- entity,
2166
- "extents_width"
2167
- ).data;
2168
- const extentsHeight = libredwg.dwg_dynapi_entity_value(
2169
- entity,
2170
- "extents_height"
2171
- ).data;
2172
- const attachmentPoint = libredwg.dwg_dynapi_entity_value(
2173
- entity,
2174
- "attachment"
2175
- ).data;
2176
- const drawingDirection = libredwg.dwg_dynapi_entity_value(
2177
- entity,
2178
- "flow_dir"
2179
- ).data;
2180
- const text = libredwg.dwg_dynapi_entity_value(entity, "text").data;
2528
+ const insertionPoint = libredwg.dwg_dynapi_entity_data(entity, "ins_pt");
2529
+ const textHeight = libredwg.dwg_dynapi_entity_data(entity, "text_height");
2530
+ const rectHeight = libredwg.dwg_dynapi_entity_data(entity, "rect_height");
2531
+ const rectWidth = libredwg.dwg_dynapi_entity_data(entity, "rect_width");
2532
+ const extentsWidth = libredwg.dwg_dynapi_entity_data(entity, "extents_width");
2533
+ const extentsHeight = libredwg.dwg_dynapi_entity_data(entity, "extents_height");
2534
+ const attachmentPoint = libredwg.dwg_dynapi_entity_data(entity, "attachment");
2535
+ const drawingDirection = libredwg.dwg_dynapi_entity_data(entity, "flow_dir");
2536
+ const text = libredwg.dwg_dynapi_entity_data(entity, "text");
2181
2537
  const styleName = libredwg.dwg_entity_mtext_get_style_name(entity);
2182
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2183
- entity,
2184
- "extrusion"
2185
- ).data;
2186
- const direction = libredwg.dwg_dynapi_entity_value(entity, "x_axis_dir").data;
2187
- const lineSpacingStyle = libredwg.dwg_dynapi_entity_value(
2188
- entity,
2189
- "linespace_style"
2190
- ).data;
2191
- const lineSpacing = libredwg.dwg_dynapi_entity_value(
2192
- entity,
2193
- "linespace_factor"
2194
- ).data;
2195
- const backgroundFill = libredwg.dwg_dynapi_entity_value(
2196
- entity,
2197
- "bg_fill_flag"
2198
- ).data;
2199
- const fillBoxScale = libredwg.dwg_dynapi_entity_value(
2200
- entity,
2201
- "bg_fill_scale"
2202
- ).data;
2203
- const backgroundFillColor = libredwg.dwg_dynapi_entity_value(
2204
- entity,
2205
- "bg_fill_color"
2206
- ).data;
2207
- const backgroundFillTransparency = libredwg.dwg_dynapi_entity_value(
2208
- entity,
2209
- "bg_fill_trans"
2210
- ).data;
2211
- const columnType = libredwg.dwg_dynapi_entity_value(entity, "column_type").data;
2212
- const columnFlowReversed = libredwg.dwg_dynapi_entity_value(
2213
- entity,
2214
- "flow_reversed"
2215
- ).data;
2216
- const columnAutoHeight = libredwg.dwg_dynapi_entity_value(
2217
- entity,
2218
- "auto_height"
2219
- ).data;
2220
- const columnWidth = libredwg.dwg_dynapi_entity_value(entity, "column_width").data;
2221
- const columnGutter = libredwg.dwg_dynapi_entity_value(entity, "gutter").data;
2222
- const columnHeightCount = libredwg.dwg_dynapi_entity_value(
2223
- entity,
2224
- "num_column_heights"
2225
- ).data;
2226
- const columnHeights_ptr = libredwg.dwg_dynapi_entity_value(
2227
- entity,
2228
- "column_heights"
2229
- ).data;
2538
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2539
+ const direction = libredwg.dwg_dynapi_entity_data(entity, "x_axis_dir");
2540
+ const lineSpacingStyle = libredwg.dwg_dynapi_entity_data(entity, "linespace_style");
2541
+ const lineSpacing = libredwg.dwg_dynapi_entity_data(entity, "linespace_factor");
2542
+ const backgroundFill = libredwg.dwg_dynapi_entity_data(entity, "bg_fill_flag");
2543
+ const fillBoxScale = libredwg.dwg_dynapi_entity_data(entity, "bg_fill_scale");
2544
+ const backgroundFillColor = libredwg.dwg_dynapi_entity_data(entity, "bg_fill_color");
2545
+ const backgroundFillTransparency = libredwg.dwg_dynapi_entity_data(entity, "bg_fill_trans");
2546
+ const columnType = libredwg.dwg_dynapi_entity_data(entity, "column_type");
2547
+ const columnFlowReversed = libredwg.dwg_dynapi_entity_data(entity, "flow_reversed");
2548
+ const columnAutoHeight = libredwg.dwg_dynapi_entity_data(entity, "auto_height");
2549
+ const columnWidth = libredwg.dwg_dynapi_entity_data(entity, "column_width");
2550
+ const columnGutter = libredwg.dwg_dynapi_entity_data(entity, "gutter");
2551
+ const columnHeightCount = libredwg.dwg_dynapi_entity_data(entity, "num_column_heights");
2552
+ const columnHeights_ptr = libredwg.dwg_dynapi_entity_data(entity, "column_heights");
2230
2553
  const columnHeights = libredwg.dwg_ptr_to_double_array(
2231
2554
  columnHeights_ptr,
2232
2555
  columnHeightCount
@@ -2268,15 +2591,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2268
2591
  }
2269
2592
  convertPoint(entity, commonAttrs) {
2270
2593
  const libredwg = this.libredwg;
2271
- const x = libredwg.dwg_dynapi_entity_value(entity, "x").data;
2272
- const y = libredwg.dwg_dynapi_entity_value(entity, "y").data;
2273
- const z = libredwg.dwg_dynapi_entity_value(entity, "z").data;
2274
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
2275
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2276
- entity,
2277
- "extrusion"
2278
- ).data;
2279
- const angle = libredwg.dwg_dynapi_entity_value(entity, "x_ang").data;
2594
+ const x = libredwg.dwg_dynapi_entity_data(entity, "x");
2595
+ const y = libredwg.dwg_dynapi_entity_data(entity, "y");
2596
+ const z = libredwg.dwg_dynapi_entity_data(entity, "z");
2597
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
2598
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2599
+ const angle = libredwg.dwg_dynapi_entity_data(entity, "x_ang");
2280
2600
  return {
2281
2601
  type: "POINT",
2282
2602
  ...commonAttrs,
@@ -2288,16 +2608,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2288
2608
  }
2289
2609
  convertPolyline2d(entity, commonAttrs, object) {
2290
2610
  const libredwg = this.libredwg;
2291
- const flag = libredwg.dwg_dynapi_entity_value(entity, "flag").data;
2292
- const smoothType = libredwg.dwg_dynapi_entity_value(entity, "curve_type").data;
2293
- const startWidth = libredwg.dwg_dynapi_entity_value(entity, "start_width").data;
2294
- const endWidth = libredwg.dwg_dynapi_entity_value(entity, "end_width").data;
2295
- const elevation = libredwg.dwg_dynapi_entity_value(entity, "elevation").data;
2296
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
2297
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2298
- entity,
2299
- "extrusion"
2300
- ).data;
2611
+ const flag = libredwg.dwg_dynapi_entity_data(entity, "flag");
2612
+ const smoothType = libredwg.dwg_dynapi_entity_data(entity, "curve_type");
2613
+ const startWidth = libredwg.dwg_dynapi_entity_data(entity, "start_width");
2614
+ const endWidth = libredwg.dwg_dynapi_entity_data(entity, "end_width");
2615
+ const elevation = libredwg.dwg_dynapi_entity_data(entity, "elevation");
2616
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
2617
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2301
2618
  const vertices = libredwg.dwg_entity_polyline_2d_get_vertices(object);
2302
2619
  return {
2303
2620
  type: "POLYLINE2D",
@@ -2329,14 +2646,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2329
2646
  }
2330
2647
  convertPolyline3d(entity, commonAttrs, object) {
2331
2648
  const libredwg = this.libredwg;
2332
- const flag = libredwg.dwg_dynapi_entity_value(entity, "flag").data;
2333
- const smoothType = libredwg.dwg_dynapi_entity_value(entity, "curve_type").data;
2334
- const startWidth = libredwg.dwg_dynapi_entity_value(entity, "start_width").data;
2335
- const endWidth = libredwg.dwg_dynapi_entity_value(entity, "end_width").data;
2336
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2337
- entity,
2338
- "extrusion"
2339
- ).data;
2649
+ const flag = libredwg.dwg_dynapi_entity_data(entity, "flag");
2650
+ const smoothType = libredwg.dwg_dynapi_entity_data(entity, "curve_type");
2651
+ const startWidth = libredwg.dwg_dynapi_entity_data(entity, "start_width");
2652
+ const endWidth = libredwg.dwg_dynapi_entity_data(entity, "end_width");
2653
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2340
2654
  const vertices = libredwg.dwg_entity_polyline_3d_get_vertices(object);
2341
2655
  return {
2342
2656
  type: "POLYLINE3D",
@@ -2358,24 +2672,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2358
2672
  }
2359
2673
  convertProxyEntity(entity, commonAttrs, objectPtr) {
2360
2674
  const libredwg = this.libredwg;
2361
- const proxyEntityClassId = libredwg.dwg_dynapi_entity_value(
2362
- entity,
2363
- "proxy_id"
2364
- ).data;
2365
- const applicationEntityClassId = libredwg.dwg_dynapi_entity_value(
2366
- entity,
2367
- "class_id"
2368
- ).data;
2369
- const entityDataSize = libredwg.dwg_dynapi_entity_value(
2370
- entity,
2371
- "data_numbits"
2372
- ).data;
2373
- const objectDrawingFormat = libredwg.dwg_dynapi_entity_value(
2374
- entity,
2375
- "version"
2376
- ).data;
2377
- const fromDxf = libredwg.dwg_dynapi_entity_value(entity, "from_dxf").data;
2378
- const numObjIds = libredwg.dwg_dynapi_entity_value(entity, "num_objids").data;
2675
+ const proxyEntityClassId = libredwg.dwg_dynapi_entity_data(entity, "proxy_id");
2676
+ const applicationEntityClassId = libredwg.dwg_dynapi_entity_data(entity, "class_id");
2677
+ const entityDataSize = libredwg.dwg_dynapi_entity_data(entity, "data_numbits");
2678
+ const objectDrawingFormat = libredwg.dwg_dynapi_entity_data(entity, "version");
2679
+ const fromDxf = libredwg.dwg_dynapi_entity_data(entity, "from_dxf");
2680
+ const numObjIds = libredwg.dwg_dynapi_entity_data(entity, "num_objids");
2379
2681
  const graphicsBytes = libredwg.dwg_entity_get_preview(objectPtr);
2380
2682
  const graphicsDataSize = (graphicsBytes == null ? void 0 : graphicsBytes.length) ?? 0;
2381
2683
  const entityBytes = libredwg.dwg_entity_proxy_entity_get_entity_data(entity);
@@ -2383,7 +2685,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2383
2685
  const entityData = entityBytes ? uint8ArrayToHexString(entityBytes) : void 0;
2384
2686
  let linkedObjectIds;
2385
2687
  if (numObjIds > 0) {
2386
- const objidsPtr = libredwg.dwg_dynapi_entity_value(entity, "objids").data;
2688
+ const objidsPtr = libredwg.dwg_dynapi_entity_data(entity, "objids");
2387
2689
  if (objidsPtr) {
2388
2690
  const objids = libredwg.dwg_ptr_to_object_ref_array(
2389
2691
  objidsPtr,
@@ -2438,8 +2740,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2438
2740
  }
2439
2741
  convertRay(entity, commonAttrs) {
2440
2742
  const libredwg = this.libredwg;
2441
- const firstPoint = libredwg.dwg_dynapi_entity_value(entity, "point").data;
2442
- const unitDirection = libredwg.dwg_dynapi_entity_value(entity, "vector").data;
2743
+ const firstPoint = libredwg.dwg_dynapi_entity_data(entity, "point");
2744
+ const unitDirection = libredwg.dwg_dynapi_entity_data(entity, "vector");
2443
2745
  return {
2444
2746
  type: "RAY",
2445
2747
  ...commonAttrs,
@@ -2449,51 +2751,25 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2449
2751
  }
2450
2752
  convertSection(entity, commonAttrs) {
2451
2753
  const libredwg = this.libredwg;
2452
- const state = libredwg.dwg_dynapi_entity_value(entity, "state").data;
2453
- const flags = libredwg.dwg_dynapi_entity_value(entity, "flag").data;
2454
- const name = libredwg.dwg_dynapi_entity_value(entity, "name").data;
2455
- const verticalDirection = libredwg.dwg_dynapi_entity_value(
2456
- entity,
2457
- "vert_dir"
2458
- ).data;
2459
- const topHeight = libredwg.dwg_dynapi_entity_value(entity, "top_height").data;
2460
- const bottomHeight = libredwg.dwg_dynapi_entity_value(
2461
- entity,
2462
- "bottom_height"
2463
- ).data;
2464
- const indicatorTransparency = libredwg.dwg_dynapi_entity_value(
2465
- entity,
2466
- "indicator_alpha"
2467
- ).data;
2468
- const indicatorColor = libredwg.dwg_dynapi_entity_value(
2469
- entity,
2470
- "indicator_color"
2471
- ).data;
2472
- const numberOfVertices = libredwg.dwg_dynapi_entity_value(
2473
- entity,
2474
- "num_verts"
2475
- ).data;
2476
- const vertices_ptr = libredwg.dwg_dynapi_entity_value(entity, "verts").data;
2754
+ const state = libredwg.dwg_dynapi_entity_data(entity, "state");
2755
+ const flags = libredwg.dwg_dynapi_entity_data(entity, "flag");
2756
+ const name = libredwg.dwg_dynapi_entity_data(entity, "name");
2757
+ const verticalDirection = libredwg.dwg_dynapi_entity_data(entity, "vert_dir");
2758
+ const topHeight = libredwg.dwg_dynapi_entity_data(entity, "top_height");
2759
+ const bottomHeight = libredwg.dwg_dynapi_entity_data(entity, "bottom_height");
2760
+ const indicatorTransparency = libredwg.dwg_dynapi_entity_data(entity, "indicator_alpha");
2761
+ const indicatorColor = libredwg.dwg_dynapi_entity_data(entity, "indicator_color");
2762
+ const numberOfVertices = libredwg.dwg_dynapi_entity_data(entity, "num_verts");
2763
+ const vertices_ptr = libredwg.dwg_dynapi_entity_data(entity, "verts");
2477
2764
  const vertices = numberOfVertices > 0 ? libredwg.dwg_ptr_to_point3d_array(vertices_ptr, numberOfVertices) : [];
2478
- const numberOfBackLineVertices = libredwg.dwg_dynapi_entity_value(
2479
- entity,
2480
- "num_blverts"
2481
- ).data;
2482
- const backLineVertices_ptr = libredwg.dwg_dynapi_entity_value(
2483
- entity,
2484
- "blverts"
2485
- ).data;
2765
+ const numberOfBackLineVertices = libredwg.dwg_dynapi_entity_data(entity, "num_blverts");
2766
+ const backLineVertices_ptr = libredwg.dwg_dynapi_entity_data(entity, "blverts");
2486
2767
  const backLineVertices = numberOfBackLineVertices > 0 ? libredwg.dwg_ptr_to_point3d_array(
2487
2768
  backLineVertices_ptr,
2488
2769
  numberOfBackLineVertices
2489
2770
  ) : [];
2490
- const geometrySettingHandle = libredwg.dwg_dynapi_entity_value(
2491
- entity,
2492
- "geometrySettingHardId"
2493
- ).data;
2494
- const geometrySettingHardId = libredwg.dwg_ref_get_handle_absolute_ref(
2495
- geometrySettingHandle
2496
- );
2771
+ const geometrySettingHandle = libredwg.dwg_dynapi_entity_data(entity, "geometrySettingHardId");
2772
+ const geometrySettingHardId = libredwg.dwg_ref_get_handle_absolute_ref(geometrySettingHandle) ?? 0n;
2497
2773
  return {
2498
2774
  type: "SECTION",
2499
2775
  ...commonAttrs,
@@ -2512,17 +2788,40 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2512
2788
  geometrySettingHardId
2513
2789
  };
2514
2790
  }
2791
+ convertShape(entity, commonAttrs) {
2792
+ const libredwg = this.libredwg;
2793
+ const insertionPoint = libredwg.dwg_dynapi_entity_data(entity, "ins_pt");
2794
+ const size = libredwg.dwg_dynapi_entity_data(entity, "scale");
2795
+ const rotation = libredwg.dwg_dynapi_entity_data(entity, "rotation");
2796
+ const xScale = libredwg.dwg_dynapi_entity_data(entity, "width_factor");
2797
+ const obliqueAngle = libredwg.dwg_dynapi_entity_data(entity, "oblique_angle");
2798
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
2799
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2800
+ const shapeNumber = libredwg.dwg_dynapi_entity_data(entity, "style_id");
2801
+ const styleName = libredwg.dwg_entity_text_get_style_name(entity);
2802
+ return {
2803
+ type: "SHAPE",
2804
+ subclassMarker: "AcDbShape",
2805
+ ...commonAttrs,
2806
+ thickness,
2807
+ insertionPoint,
2808
+ size,
2809
+ shapeNumber,
2810
+ styleName,
2811
+ rotation,
2812
+ xScale,
2813
+ obliqueAngle,
2814
+ extrusionDirection
2815
+ };
2816
+ }
2515
2817
  convertSolid(entity, commonAttrs) {
2516
2818
  const libredwg = this.libredwg;
2517
- const corner1 = libredwg.dwg_dynapi_entity_value(entity, "corner1").data;
2518
- const corner2 = libredwg.dwg_dynapi_entity_value(entity, "corner2").data;
2519
- const corner3 = libredwg.dwg_dynapi_entity_value(entity, "corner3").data;
2520
- const corner4 = libredwg.dwg_dynapi_entity_value(entity, "corner4").data;
2521
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
2522
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2523
- entity,
2524
- "extrusion"
2525
- ).data;
2819
+ const corner1 = libredwg.dwg_dynapi_entity_data(entity, "corner1");
2820
+ const corner2 = libredwg.dwg_dynapi_entity_data(entity, "corner2");
2821
+ const corner3 = libredwg.dwg_dynapi_entity_data(entity, "corner3");
2822
+ const corner4 = libredwg.dwg_dynapi_entity_data(entity, "corner4");
2823
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
2824
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2526
2825
  return {
2527
2826
  type: "SOLID",
2528
2827
  ...commonAttrs,
@@ -2536,38 +2835,29 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2536
2835
  }
2537
2836
  convertSpline(entity, commonAttrs) {
2538
2837
  const libredwg = this.libredwg;
2539
- const flag = libredwg.dwg_dynapi_entity_value(entity, "splineflags").data;
2540
- const degree = libredwg.dwg_dynapi_entity_value(entity, "degree").data;
2541
- const knotTolerance = libredwg.dwg_dynapi_entity_value(entity, "knot_tol").data;
2542
- const numberOfKnots = libredwg.dwg_dynapi_entity_value(entity, "num_knots").data;
2543
- const knots_ptr = libredwg.dwg_dynapi_entity_value(entity, "knots").data;
2838
+ const flag = libredwg.dwg_dynapi_entity_data(entity, "splineflags");
2839
+ const degree = libredwg.dwg_dynapi_entity_data(entity, "degree");
2840
+ const knotTolerance = libredwg.dwg_dynapi_entity_data(entity, "knot_tol");
2841
+ const numberOfKnots = libredwg.dwg_dynapi_entity_data(entity, "num_knots");
2842
+ const knots_ptr = libredwg.dwg_dynapi_entity_data(entity, "knots");
2544
2843
  const knots = libredwg.dwg_ptr_to_double_array(knots_ptr, numberOfKnots);
2545
- const fitTolerance = libredwg.dwg_dynapi_entity_value(entity, "fit_tol").data;
2546
- const numberOfFitPoints = libredwg.dwg_dynapi_entity_value(
2547
- entity,
2548
- "num_fit_pts"
2549
- ).data;
2550
- const fit_pts_ptr = libredwg.dwg_dynapi_entity_value(entity, "fit_pts").data;
2844
+ const fitTolerance = libredwg.dwg_dynapi_entity_data(entity, "fit_tol");
2845
+ const numberOfFitPoints = libredwg.dwg_dynapi_entity_data(entity, "num_fit_pts");
2846
+ const fit_pts_ptr = libredwg.dwg_dynapi_entity_data(entity, "fit_pts");
2551
2847
  const fitPoints = libredwg.dwg_ptr_to_point3d_array(
2552
2848
  fit_pts_ptr,
2553
2849
  numberOfFitPoints
2554
2850
  );
2555
- const weighted = libredwg.dwg_dynapi_entity_value(entity, "weighted").data;
2556
- const controlTolerance = libredwg.dwg_dynapi_entity_value(
2557
- entity,
2558
- "ctrl_tol"
2559
- ).data;
2560
- const numberOfControlPoints = libredwg.dwg_dynapi_entity_value(
2561
- entity,
2562
- "num_ctrl_pts"
2563
- ).data;
2564
- const ctrl_pts_ptr = libredwg.dwg_dynapi_entity_value(entity, "ctrl_pts").data;
2851
+ const weighted = libredwg.dwg_dynapi_entity_data(entity, "weighted");
2852
+ const controlTolerance = libredwg.dwg_dynapi_entity_data(entity, "ctrl_tol");
2853
+ const numberOfControlPoints = libredwg.dwg_dynapi_entity_data(entity, "num_ctrl_pts");
2854
+ const ctrl_pts_ptr = libredwg.dwg_dynapi_entity_data(entity, "ctrl_pts");
2565
2855
  const controlPoints = libredwg.dwg_ptr_to_point4d_array(
2566
2856
  ctrl_pts_ptr,
2567
2857
  numberOfControlPoints
2568
2858
  );
2569
- const startTangent = libredwg.dwg_dynapi_entity_value(entity, "beg_tan_vec").data;
2570
- const endTangent = libredwg.dwg_dynapi_entity_value(entity, "end_tan_vec").data;
2859
+ const startTangent = libredwg.dwg_dynapi_entity_data(entity, "beg_tan_vec");
2860
+ const endTangent = libredwg.dwg_dynapi_entity_data(entity, "end_tan_vec");
2571
2861
  return {
2572
2862
  type: "SPLINE",
2573
2863
  ...commonAttrs,
@@ -2596,66 +2886,32 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2596
2886
  }
2597
2887
  convertTable(entity, commonAttrs) {
2598
2888
  const libredwg = this.libredwg;
2599
- const name = libredwg.dwg_dynapi_subclass_value(entity, "ldata", "name").data;
2600
- const startPoint = libredwg.dwg_dynapi_entity_value(entity, "ins_pt").data;
2601
- const directionVector = libredwg.dwg_dynapi_entity_value(
2602
- entity,
2603
- "horiz_direction"
2604
- ).data;
2605
- const tableValue = libredwg.dwg_dynapi_entity_value(
2606
- entity,
2607
- "flag_for_table_value"
2608
- ).data;
2609
- const rowCount = libredwg.dwg_dynapi_entity_value(entity, "num_rows").data;
2610
- const columnCount = libredwg.dwg_dynapi_entity_value(entity, "num_cols").data;
2611
- const row_heights_ptr = libredwg.dwg_dynapi_entity_value(
2612
- entity,
2613
- "row_heights"
2614
- ).data;
2889
+ const name = libredwg.dwg_dynapi_subclass_data(entity, "ldata", "name");
2890
+ const startPoint = libredwg.dwg_dynapi_entity_data(entity, "ins_pt");
2891
+ const directionVector = libredwg.dwg_dynapi_entity_data(entity, "horiz_direction");
2892
+ const tableValue = libredwg.dwg_dynapi_entity_data(entity, "flag_for_table_value");
2893
+ const rowCount = libredwg.dwg_dynapi_entity_data(entity, "num_rows");
2894
+ const columnCount = libredwg.dwg_dynapi_entity_data(entity, "num_cols");
2895
+ const row_heights_ptr = libredwg.dwg_dynapi_entity_data(entity, "row_heights");
2615
2896
  const rowHeightArr = libredwg.dwg_ptr_to_double_array(
2616
2897
  row_heights_ptr,
2617
2898
  rowCount
2618
2899
  );
2619
- const col_widths_ptr = libredwg.dwg_dynapi_entity_value(
2620
- entity,
2621
- "col_widths"
2622
- ).data;
2900
+ const col_widths_ptr = libredwg.dwg_dynapi_entity_data(entity, "col_widths");
2623
2901
  const columnWidthArr = libredwg.dwg_ptr_to_double_array(
2624
2902
  col_widths_ptr,
2625
2903
  columnCount
2626
2904
  );
2627
- const table_style_ref = libredwg.dwg_dynapi_entity_value(
2628
- entity,
2629
- "tablestyle"
2630
- ).data;
2631
- const tableStyleId = idToString(
2632
- libredwg.dwg_ref_get_absref(table_style_ref)
2633
- );
2634
- const block_header_ref = libredwg.dwg_dynapi_entity_value(
2635
- entity,
2636
- "block_header"
2637
- ).data;
2638
- const blockRecordHandle = idToString(
2639
- libredwg.dwg_ref_get_absref(block_header_ref)
2640
- );
2641
- const overrideFlag = libredwg.dwg_dynapi_entity_value(
2642
- entity,
2643
- "table_flag_override"
2644
- ).data;
2645
- const borderColorOverrideFlag = libredwg.dwg_dynapi_entity_value(
2646
- entity,
2647
- "border_color_overrides_flag"
2648
- ).data;
2649
- const borderLineWeightOverrideFlag = libredwg.dwg_dynapi_entity_value(
2650
- entity,
2651
- "border_lineweight_overrides_flag"
2652
- ).data;
2653
- const borderVisibilityOverrideFlag = libredwg.dwg_dynapi_entity_value(
2654
- entity,
2655
- "border_visibility_overrides_flag"
2656
- ).data;
2657
- const num_cells = libredwg.dwg_dynapi_entity_value(entity, "num_cells").data;
2658
- const cells_ptr = libredwg.dwg_dynapi_entity_value(entity, "cells").data;
2905
+ const table_style_ref = libredwg.dwg_dynapi_entity_data(entity, "tablestyle");
2906
+ const tableStyleId = libredwg.dwg_ref_get_id(table_style_ref) ?? "";
2907
+ const block_header_ref = libredwg.dwg_dynapi_entity_data(entity, "block_header");
2908
+ const blockRecordHandle = libredwg.dwg_ref_get_id(block_header_ref) ?? "";
2909
+ const overrideFlag = libredwg.dwg_dynapi_entity_data(entity, "table_flag_override");
2910
+ const borderColorOverrideFlag = libredwg.dwg_dynapi_entity_data(entity, "border_color_overrides_flag");
2911
+ const borderLineWeightOverrideFlag = libredwg.dwg_dynapi_entity_data(entity, "border_lineweight_overrides_flag");
2912
+ const borderVisibilityOverrideFlag = libredwg.dwg_dynapi_entity_data(entity, "border_visibility_overrides_flag");
2913
+ const num_cells = libredwg.dwg_dynapi_entity_data(entity, "num_cells");
2914
+ const cells_ptr = libredwg.dwg_dynapi_entity_data(entity, "cells");
2659
2915
  const cells = libredwg.dwg_ptr_to_table_cell_array(cells_ptr, num_cells);
2660
2916
  return {
2661
2917
  type: "ACAD_TABLE",
@@ -2714,28 +2970,19 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2714
2970
  }
2715
2971
  convertTextBase(entity) {
2716
2972
  const libredwg = this.libredwg;
2717
- const text = libredwg.dwg_dynapi_entity_value(entity, "text_value").data;
2718
- const thickness = libredwg.dwg_dynapi_entity_value(entity, "thickness").data;
2719
- const startPoint = libredwg.dwg_dynapi_entity_value(entity, "ins_pt").data;
2720
- const endPoint = libredwg.dwg_dynapi_entity_value(entity, "alignment_pt").data;
2721
- const rotation = libredwg.dwg_dynapi_entity_value(entity, "rotation").data;
2722
- const textHeight = libredwg.dwg_dynapi_entity_value(entity, "height").data;
2723
- const xScale = libredwg.dwg_dynapi_entity_value(entity, "width_factor").data;
2724
- const obliqueAngle = libredwg.dwg_dynapi_entity_value(
2725
- entity,
2726
- "oblique_angle"
2727
- ).data;
2973
+ const text = libredwg.dwg_dynapi_entity_data(entity, "text_value");
2974
+ const thickness = libredwg.dwg_dynapi_entity_data(entity, "thickness");
2975
+ const startPoint = libredwg.dwg_dynapi_entity_data(entity, "ins_pt");
2976
+ const endPoint = libredwg.dwg_dynapi_entity_data(entity, "alignment_pt");
2977
+ const rotation = libredwg.dwg_dynapi_entity_data(entity, "rotation");
2978
+ const textHeight = libredwg.dwg_dynapi_entity_data(entity, "height");
2979
+ const xScale = libredwg.dwg_dynapi_entity_data(entity, "width_factor");
2980
+ const obliqueAngle = libredwg.dwg_dynapi_entity_data(entity, "oblique_angle");
2728
2981
  const styleName = libredwg.dwg_entity_text_get_style_name(entity);
2729
- const generationFlag = libredwg.dwg_dynapi_entity_value(
2730
- entity,
2731
- "generation"
2732
- ).data;
2733
- const halign = libredwg.dwg_dynapi_entity_value(entity, "horiz_alignment").data;
2734
- const valign = libredwg.dwg_dynapi_entity_value(entity, "vert_alignment").data;
2735
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2736
- entity,
2737
- "extrusion"
2738
- ).data;
2982
+ const generationFlag = libredwg.dwg_dynapi_entity_data(entity, "generation");
2983
+ const halign = libredwg.dwg_dynapi_entity_data(entity, "horiz_alignment");
2984
+ const valign = libredwg.dwg_dynapi_entity_data(entity, "vert_alignment");
2985
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2739
2986
  return {
2740
2987
  text,
2741
2988
  thickness,
@@ -2761,16 +3008,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2761
3008
  }
2762
3009
  convertTolerance(entity, commonAttrs) {
2763
3010
  const libredwg = this.libredwg;
2764
- const insertionPoint = libredwg.dwg_dynapi_entity_value(entity, "ins_pt").data;
2765
- const text = libredwg.dwg_dynapi_entity_value(entity, "text_value").data;
2766
- const xAxisDirection = libredwg.dwg_dynapi_entity_value(
2767
- entity,
2768
- "x_direction"
2769
- ).data;
2770
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
2771
- entity,
2772
- "extrusion"
2773
- ).data;
3011
+ const insertionPoint = libredwg.dwg_dynapi_entity_data(entity, "ins_pt");
3012
+ const text = libredwg.dwg_dynapi_entity_data(entity, "text_value");
3013
+ const xAxisDirection = libredwg.dwg_dynapi_entity_data(entity, "x_direction");
3014
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
2774
3015
  const dimStyleName = libredwg.dwg_entity_get_dimstyle_name(entity);
2775
3016
  return {
2776
3017
  type: "TOLERANCE",
@@ -2784,83 +3025,50 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2784
3025
  }
2785
3026
  convertViewport(entity, commonAttrs) {
2786
3027
  const libredwg = this.libredwg;
2787
- const viewportCenter = libredwg.dwg_dynapi_entity_value(entity, "center").data;
2788
- const width = libredwg.dwg_dynapi_entity_value(entity, "width").data;
2789
- const height = libredwg.dwg_dynapi_entity_value(entity, "height").data;
2790
- const status = libredwg.dwg_dynapi_entity_value(entity, "on_off").data;
2791
- const displayCenter = libredwg.dwg_dynapi_entity_value(entity, "VIEWCTR").data;
2792
- const snapBase = libredwg.dwg_dynapi_entity_value(entity, "SNAPBASE").data;
2793
- const snapSpacing = libredwg.dwg_dynapi_entity_value(entity, "SNAPUNIT").data;
2794
- const gridSpacing = libredwg.dwg_dynapi_entity_value(entity, "GRIDUNIT").data;
2795
- const viewDirection = libredwg.dwg_dynapi_entity_value(entity, "VIEWDIR").data;
2796
- const targetPoint = libredwg.dwg_dynapi_entity_value(entity, "view_target").data;
2797
- const perspectiveLensLength = libredwg.dwg_dynapi_entity_value(
2798
- entity,
2799
- "lens_length"
2800
- ).data;
2801
- const frontClipZ = libredwg.dwg_dynapi_entity_value(entity, "front_clip_z").data;
2802
- const backClipZ = libredwg.dwg_dynapi_entity_value(entity, "back_clip_z").data;
2803
- const viewHeight = libredwg.dwg_dynapi_entity_value(entity, "VIEWSIZE").data;
2804
- const snapAngle = libredwg.dwg_dynapi_entity_value(entity, "SNAPANG").data;
2805
- const viewTwistAngle = libredwg.dwg_dynapi_entity_value(
2806
- entity,
2807
- "twist_angle"
2808
- ).data;
2809
- const circleZoomPercent = libredwg.dwg_dynapi_entity_value(
2810
- entity,
2811
- "circle_zoom"
2812
- ).data;
2813
- const statusBitFlags = libredwg.dwg_dynapi_entity_value(
2814
- entity,
2815
- "status_flag"
2816
- ).data;
2817
- const sheetName = libredwg.dwg_dynapi_entity_value(entity, "style_sheet").data;
2818
- const renderMode = libredwg.dwg_dynapi_entity_value(entity, "render_mode").data;
2819
- const ucsPerViewport = libredwg.dwg_dynapi_entity_value(entity, "UCSVP").data;
2820
- const ucsOrigin = libredwg.dwg_dynapi_entity_value(entity, "ucsorg").data;
2821
- const ucsXAxis = libredwg.dwg_dynapi_entity_value(entity, "ucsxdir").data;
2822
- const ucsYAxis = libredwg.dwg_dynapi_entity_value(entity, "ucsydir").data;
2823
- const named_ucs_ref = libredwg.dwg_dynapi_entity_value(entity, "named_ucs").data;
2824
- const ucsId = libredwg.dwg_ref_get_absref(named_ucs_ref);
2825
- const base_ucs_ref = libredwg.dwg_dynapi_entity_value(entity, "base_ucs").data;
2826
- const ucsBaseId = libredwg.dwg_ref_get_absref(base_ucs_ref);
2827
- const orthographicType = libredwg.dwg_dynapi_entity_value(
2828
- entity,
2829
- "UCSORTHOVIEW"
2830
- ).data;
2831
- const elevation = libredwg.dwg_dynapi_entity_value(entity, "ucs_elevation").data;
2832
- const shadePlotMode = libredwg.dwg_dynapi_entity_value(
2833
- entity,
2834
- "shadeplot_mode"
2835
- ).data;
2836
- const isDefaultLighting = libredwg.dwg_dynapi_entity_value(
2837
- entity,
2838
- "use_default_lights"
2839
- ).data;
2840
- const defaultLightingType = libredwg.dwg_dynapi_entity_value(
2841
- entity,
2842
- "default_lighting_type"
2843
- ).data;
2844
- const brightness = libredwg.dwg_dynapi_entity_value(entity, "brightness").data;
2845
- const contrast = libredwg.dwg_dynapi_entity_value(entity, "contrast").data;
2846
- const majorGridFrequency = libredwg.dwg_dynapi_entity_value(
2847
- entity,
2848
- "grid_major"
2849
- ).data;
2850
- const background_ref = libredwg.dwg_dynapi_entity_value(
2851
- entity,
2852
- "background"
2853
- ).data;
2854
- const backgroundId = libredwg.dwg_ref_get_absref(background_ref);
2855
- const shadeplot_ref = libredwg.dwg_dynapi_entity_value(entity, "shadeplot").data;
2856
- const shadePlotId = libredwg.dwg_ref_get_absref(shadeplot_ref);
2857
- const visualstyle_ref = libredwg.dwg_dynapi_entity_value(
2858
- entity,
2859
- "visualstyle"
2860
- ).data;
2861
- const visualStyleId = libredwg.dwg_ref_get_absref(visualstyle_ref);
2862
- const sun_ref = libredwg.dwg_dynapi_entity_value(entity, "sun").data;
2863
- const sunId = libredwg.dwg_ref_get_absref(sun_ref);
3028
+ const viewportCenter = libredwg.dwg_dynapi_entity_data(entity, "center");
3029
+ const width = libredwg.dwg_dynapi_entity_data(entity, "width");
3030
+ const height = libredwg.dwg_dynapi_entity_data(entity, "height");
3031
+ const status = libredwg.dwg_dynapi_entity_data(entity, "on_off");
3032
+ const displayCenter = libredwg.dwg_dynapi_entity_data(entity, "VIEWCTR");
3033
+ const snapBase = libredwg.dwg_dynapi_entity_data(entity, "SNAPBASE");
3034
+ const snapSpacing = libredwg.dwg_dynapi_entity_data(entity, "SNAPUNIT");
3035
+ const gridSpacing = libredwg.dwg_dynapi_entity_data(entity, "GRIDUNIT");
3036
+ const viewDirection = libredwg.dwg_dynapi_entity_data(entity, "VIEWDIR");
3037
+ const targetPoint = libredwg.dwg_dynapi_entity_data(entity, "view_target");
3038
+ const perspectiveLensLength = libredwg.dwg_dynapi_entity_data(entity, "lens_length");
3039
+ const frontClipZ = libredwg.dwg_dynapi_entity_data(entity, "front_clip_z");
3040
+ const backClipZ = libredwg.dwg_dynapi_entity_data(entity, "back_clip_z");
3041
+ const viewHeight = libredwg.dwg_dynapi_entity_data(entity, "VIEWSIZE");
3042
+ const snapAngle = libredwg.dwg_dynapi_entity_data(entity, "SNAPANG");
3043
+ const viewTwistAngle = libredwg.dwg_dynapi_entity_data(entity, "twist_angle");
3044
+ const circleZoomPercent = libredwg.dwg_dynapi_entity_data(entity, "circle_zoom");
3045
+ const statusBitFlags = libredwg.dwg_dynapi_entity_data(entity, "status_flag");
3046
+ const sheetName = libredwg.dwg_dynapi_entity_data(entity, "style_sheet");
3047
+ const renderMode = libredwg.dwg_dynapi_entity_data(entity, "render_mode");
3048
+ const ucsPerViewport = libredwg.dwg_dynapi_entity_data(entity, "UCSVP");
3049
+ const ucsOrigin = libredwg.dwg_dynapi_entity_data(entity, "ucsorg");
3050
+ const ucsXAxis = libredwg.dwg_dynapi_entity_data(entity, "ucsxdir");
3051
+ const ucsYAxis = libredwg.dwg_dynapi_entity_data(entity, "ucsydir");
3052
+ const named_ucs_ref = libredwg.dwg_dynapi_entity_data(entity, "named_ucs");
3053
+ const ucsId = libredwg.dwg_ref_get_id(named_ucs_ref);
3054
+ const base_ucs_ref = libredwg.dwg_dynapi_entity_data(entity, "base_ucs");
3055
+ const ucsBaseId = libredwg.dwg_ref_get_id(base_ucs_ref);
3056
+ const orthographicType = libredwg.dwg_dynapi_entity_data(entity, "UCSORTHOVIEW");
3057
+ const elevation = libredwg.dwg_dynapi_entity_data(entity, "ucs_elevation");
3058
+ const shadePlotMode = libredwg.dwg_dynapi_entity_data(entity, "shadeplot_mode");
3059
+ const isDefaultLighting = libredwg.dwg_dynapi_entity_data(entity, "use_default_lights");
3060
+ const defaultLightingType = libredwg.dwg_dynapi_entity_data(entity, "default_lighting_type");
3061
+ const brightness = libredwg.dwg_dynapi_entity_data(entity, "brightness");
3062
+ const contrast = libredwg.dwg_dynapi_entity_data(entity, "contrast");
3063
+ const majorGridFrequency = libredwg.dwg_dynapi_entity_data(entity, "grid_major");
3064
+ const background_ref = libredwg.dwg_dynapi_entity_data(entity, "background");
3065
+ const backgroundId = libredwg.dwg_ref_get_id(background_ref);
3066
+ const shadeplot_ref = libredwg.dwg_dynapi_entity_data(entity, "shadeplot");
3067
+ const shadePlotId = libredwg.dwg_ref_get_id(shadeplot_ref);
3068
+ const visualstyle_ref = libredwg.dwg_dynapi_entity_data(entity, "visualstyle");
3069
+ const visualStyleId = libredwg.dwg_ref_get_id(visualstyle_ref);
3070
+ const sun_ref = libredwg.dwg_dynapi_entity_data(entity, "sun");
3071
+ const sunId = libredwg.dwg_ref_get_id(sun_ref);
2864
3072
  return {
2865
3073
  type: "VIEWPORT",
2866
3074
  ...commonAttrs,
@@ -2890,55 +3098,46 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2890
3098
  ucsOrigin,
2891
3099
  ucsXAxis,
2892
3100
  ucsYAxis,
2893
- ucsId: idToString(ucsId),
2894
- ucsBaseId: idToString(ucsBaseId),
3101
+ ucsId: ucsId ?? "",
3102
+ ucsBaseId: ucsBaseId ?? "",
2895
3103
  orthographicType,
2896
3104
  elevation,
2897
3105
  shadePlotMode,
2898
3106
  majorGridFrequency,
2899
- backgroundId: idToString(backgroundId),
2900
- shadePlotId: idToString(shadePlotId),
2901
- visualStyleId: idToString(visualStyleId),
3107
+ backgroundId: backgroundId ?? "",
3108
+ shadePlotId: shadePlotId ?? "",
3109
+ visualStyleId: visualStyleId ?? "",
2902
3110
  isDefaultLighting: !!isDefaultLighting,
2903
3111
  defaultLightingType,
2904
3112
  brightness,
2905
3113
  contrast,
2906
- sunId: idToString(sunId)
3114
+ sunId: sunId ?? ""
2907
3115
  };
2908
3116
  }
2909
3117
  convertWipeout(entity, commonAttrs) {
2910
3118
  const libredwg = this.libredwg;
2911
- const version = libredwg.dwg_dynapi_entity_value(entity, "class_version").data;
2912
- const position = libredwg.dwg_dynapi_entity_value(entity, "pt0").data;
2913
- const uPixel = libredwg.dwg_dynapi_entity_value(entity, "uvec").data;
2914
- const vPixel = libredwg.dwg_dynapi_entity_value(entity, "vvec").data;
2915
- const imageSize = libredwg.dwg_dynapi_entity_value(entity, "image_size").data;
2916
- const flags = libredwg.dwg_dynapi_entity_value(entity, "display_props").data;
2917
- const clipping = libredwg.dwg_dynapi_entity_value(entity, "clipping").data;
2918
- const brightness = libredwg.dwg_dynapi_entity_value(entity, "brightness").data;
2919
- const contrast = libredwg.dwg_dynapi_entity_value(entity, "contrast").data;
2920
- const fade = libredwg.dwg_dynapi_entity_value(entity, "fade").data;
2921
- const clipMode = libredwg.dwg_dynapi_entity_value(entity, "clip_mode").data;
2922
- const clippingBoundaryType = libredwg.dwg_dynapi_entity_value(
2923
- entity,
2924
- "clip_boundary_type"
2925
- ).data;
2926
- const countBoundaryPoints = libredwg.dwg_dynapi_entity_value(
2927
- entity,
2928
- "num_clip_verts"
2929
- ).data;
2930
- const clip_verts = libredwg.dwg_dynapi_entity_value(entity, "clip_verts").data;
3119
+ const version = libredwg.dwg_dynapi_entity_data(entity, "class_version");
3120
+ const position = libredwg.dwg_dynapi_entity_data(entity, "pt0");
3121
+ const uPixel = libredwg.dwg_dynapi_entity_data(entity, "uvec");
3122
+ const vPixel = libredwg.dwg_dynapi_entity_data(entity, "vvec");
3123
+ const imageSize = libredwg.dwg_dynapi_entity_data(entity, "image_size");
3124
+ const flags = libredwg.dwg_dynapi_entity_data(entity, "display_props");
3125
+ const clipping = libredwg.dwg_dynapi_entity_data(entity, "clipping");
3126
+ const brightness = libredwg.dwg_dynapi_entity_data(entity, "brightness");
3127
+ const contrast = libredwg.dwg_dynapi_entity_data(entity, "contrast");
3128
+ const fade = libredwg.dwg_dynapi_entity_data(entity, "fade");
3129
+ const clipMode = libredwg.dwg_dynapi_entity_data(entity, "clip_mode");
3130
+ const clippingBoundaryType = libredwg.dwg_dynapi_entity_data(entity, "clip_boundary_type");
3131
+ const countBoundaryPoints = libredwg.dwg_dynapi_entity_data(entity, "num_clip_verts");
3132
+ const clip_verts = libredwg.dwg_dynapi_entity_data(entity, "clip_verts");
2931
3133
  const clippingBoundaryPath = libredwg.dwg_ptr_to_point2d_array(
2932
3134
  clip_verts,
2933
3135
  countBoundaryPoints
2934
3136
  );
2935
- const imagedef_ref = libredwg.dwg_dynapi_entity_value(entity, "imagedef").data;
2936
- const imageDefHandle = libredwg.dwg_ref_get_absref(imagedef_ref);
2937
- const imagedefreactor_ref = libredwg.dwg_dynapi_entity_value(
2938
- entity,
2939
- "imagedefreactor"
2940
- ).data;
2941
- const imageDefReactorHandle = libredwg.dwg_ref_get_absref(imagedefreactor_ref);
3137
+ const imagedef_ref = libredwg.dwg_dynapi_entity_data(entity, "imagedef");
3138
+ const imageDefHandle = libredwg.dwg_ref_get_absref(imagedef_ref) ?? 0;
3139
+ const imagedefreactor_ref = libredwg.dwg_dynapi_entity_data(entity, "imagedefreactor");
3140
+ const imageDefReactorHandle = libredwg.dwg_ref_get_absref(imagedefreactor_ref) ?? 0;
2942
3141
  return {
2943
3142
  type: "WIPEOUT",
2944
3143
  ...commonAttrs,
@@ -2962,8 +3161,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2962
3161
  }
2963
3162
  convertXline(entity, commonAttrs) {
2964
3163
  const libredwg = this.libredwg;
2965
- const firstPoint = libredwg.dwg_dynapi_entity_value(entity, "point").data;
2966
- const unitDirection = libredwg.dwg_dynapi_entity_value(entity, "vector").data;
3164
+ const firstPoint = libredwg.dwg_dynapi_entity_data(entity, "point");
3165
+ const unitDirection = libredwg.dwg_dynapi_entity_data(entity, "vector");
2967
3166
  return {
2968
3167
  type: "XLINE",
2969
3168
  ...commonAttrs,
@@ -2973,37 +3172,19 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2973
3172
  }
2974
3173
  getDimensionCommonAttrs(entity) {
2975
3174
  const libredwg = this.libredwg;
2976
- const version = libredwg.dwg_dynapi_entity_value(entity, "class_version").data;
3175
+ const version = libredwg.dwg_dynapi_entity_data(entity, "class_version");
2977
3176
  const name = libredwg.dwg_entity_get_block_name(entity, "block");
2978
- const definitionPoint = libredwg.dwg_dynapi_entity_value(entity, "def_pt").data;
2979
- const textPoint = libredwg.dwg_dynapi_entity_value(entity, "text_midpt").data;
2980
- const attachmentPoint = libredwg.dwg_dynapi_entity_value(
2981
- entity,
2982
- "attachmentPoint"
2983
- ).data;
2984
- const dimensionType = libredwg.dwg_dynapi_entity_value(entity, "flag").data;
2985
- const textLineSpacingStyle = libredwg.dwg_dynapi_entity_value(
2986
- entity,
2987
- "lspace_factor"
2988
- ).data;
2989
- const textLineSpacingFactor = libredwg.dwg_dynapi_entity_value(
2990
- entity,
2991
- "lspace_factor"
2992
- ).data;
2993
- const measurement = libredwg.dwg_dynapi_entity_value(
2994
- entity,
2995
- "act_measurement"
2996
- ).data;
2997
- const text = libredwg.dwg_dynapi_entity_value(entity, "user_text").data;
2998
- const textRotation = libredwg.dwg_dynapi_entity_value(
2999
- entity,
3000
- "text_rotation"
3001
- ).data;
3002
- const ocsRotation = libredwg.dwg_dynapi_entity_value(entity, "ins_rotation").data;
3003
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
3004
- entity,
3005
- "extrusion"
3006
- ).data;
3177
+ const definitionPoint = libredwg.dwg_dynapi_entity_data(entity, "def_pt");
3178
+ const textPoint = libredwg.dwg_dynapi_entity_data(entity, "text_midpt");
3179
+ const attachmentPoint = libredwg.dwg_dynapi_entity_data(entity, "attachmentPoint");
3180
+ const dimensionType = libredwg.dwg_dynapi_entity_data(entity, "flag");
3181
+ const textLineSpacingStyle = libredwg.dwg_dynapi_entity_data(entity, "lspace_factor");
3182
+ const textLineSpacingFactor = libredwg.dwg_dynapi_entity_data(entity, "lspace_factor");
3183
+ const measurement = libredwg.dwg_dynapi_entity_data(entity, "act_measurement");
3184
+ const text = libredwg.dwg_dynapi_entity_data(entity, "user_text");
3185
+ const textRotation = libredwg.dwg_dynapi_entity_data(entity, "text_rotation");
3186
+ const ocsRotation = libredwg.dwg_dynapi_entity_data(entity, "ins_rotation");
3187
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(entity, "extrusion");
3007
3188
  const styleName = libredwg.dwg_entity_get_dimstyle_name(entity);
3008
3189
  return {
3009
3190
  type: "DIMENSION",
@@ -3108,6 +3289,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3108
3289
  DICTIONARY: [],
3109
3290
  IMAGEDEF: [],
3110
3291
  LAYOUT: [],
3292
+ MLEADERSTYLE: [],
3111
3293
  SPATIAL_FILTER: []
3112
3294
  },
3113
3295
  header: {},
@@ -3188,6 +3370,9 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3188
3370
  case Dwg_Object_Type.DWG_TYPE_LAYOUT:
3189
3371
  db.objects.LAYOUT.push(this.convertLayout(tio, obj));
3190
3372
  break;
3373
+ case Dwg_Object_Type.DWG_TYPE_MLEADERSTYLE:
3374
+ db.objects.MLEADERSTYLE.push(this.convertMLeaderStyle(tio, obj));
3375
+ break;
3191
3376
  case Dwg_Object_Type.DWG_TYPE_SPATIAL_FILTER:
3192
3377
  db.objects.SPATIAL_FILTER.push(
3193
3378
  this.convertSpatialFilter(tio, obj)
@@ -3234,11 +3419,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3234
3419
  if (name == "DIMBLK" || name == "DIMBLK1" || name == "DIMBLK2") {
3235
3420
  var_name = var_name + "_T";
3236
3421
  }
3237
- let value = libredwg.dwg_dynapi_header_value(data, var_name).data;
3422
+ let value = libredwg.dwg_dynapi_header_data(data, var_name);
3238
3423
  if (name == "CELTYPE" || name == "CLAYER" || name == "CLAYER" || name == "DIMSTYLE" || name == "DIMTXSTY" || name == "TEXTSTYLE") {
3239
3424
  value = value ? libredwg.dwg_ref_get_object_name(value) : "";
3240
3425
  } else if (name == "DRAGVS") {
3241
- value = value ? libredwg.dwg_ref_get_absref(value) : 2;
3426
+ value = value ? libredwg.dwg_ref_get_absref(value) ?? 2 : 2;
3242
3427
  }
3243
3428
  header[name] = value;
3244
3429
  });
@@ -3263,8 +3448,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3263
3448
  }
3264
3449
  convertAppId(item) {
3265
3450
  const libredwg = this.libredwg;
3266
- const name = libredwg.dwg_dynapi_entity_value(item, "name").data;
3267
- const flag = libredwg.dwg_dynapi_entity_value(item, "flag").data;
3451
+ const name = libredwg.dwg_dynapi_entity_data(item, "name");
3452
+ const flag = libredwg.dwg_dynapi_entity_data(item, "flag");
3268
3453
  return {
3269
3454
  name,
3270
3455
  standardFlag: flag
@@ -3277,18 +3462,15 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3277
3462
  if (block.name) {
3278
3463
  commonAttrs.name = block.name;
3279
3464
  }
3280
- const num_owned = libredwg.dwg_dynapi_entity_value(item, "num_owned").data;
3281
- const flags = libredwg.dwg_dynapi_entity_value(item, "flag").data;
3282
- const description = libredwg.dwg_dynapi_entity_value(item, "description").data;
3283
- const basePoint = libredwg.dwg_dynapi_entity_value(item, "base_pt").data;
3284
- const insertionUnits = libredwg.dwg_dynapi_entity_value(
3285
- item,
3286
- "insert_units"
3287
- ).data;
3288
- const explodability = libredwg.dwg_dynapi_entity_value(item, "explodable").data;
3289
- const scalability = libredwg.dwg_dynapi_entity_value(item, "block_scaling").data;
3290
- const layout_ptr = libredwg.dwg_dynapi_entity_value(item, "layout").data;
3291
- const layout = idToString(libredwg.dwg_ref_get_absref(layout_ptr));
3465
+ const num_owned = libredwg.dwg_dynapi_entity_data(item, "num_owned");
3466
+ const flags = libredwg.dwg_dynapi_entity_data(item, "flag");
3467
+ const description = libredwg.dwg_dynapi_entity_data(item, "description");
3468
+ const basePoint = libredwg.dwg_dynapi_entity_data(item, "base_pt");
3469
+ const insertionUnits = libredwg.dwg_dynapi_entity_data(item, "insert_units");
3470
+ const explodability = libredwg.dwg_dynapi_entity_data(item, "explodable");
3471
+ const scalability = libredwg.dwg_dynapi_entity_data(item, "block_scaling");
3472
+ const layout_ptr = libredwg.dwg_dynapi_entity_data(item, "layout");
3473
+ const layout = libredwg.dwg_ref_get_id(layout_ptr) ?? "";
3292
3474
  let bmpPreview = "";
3293
3475
  const uint8ArrayToHexString2 = (bytes) => {
3294
3476
  const hexChars = new Array(bytes.length);
@@ -3304,7 +3486,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3304
3486
  let entities = this.convertEntities(obj, commonAttrs.handle);
3305
3487
  if (!entities || entities.length == 0) {
3306
3488
  entities = [];
3307
- const entities_ptr = libredwg.dwg_dynapi_entity_value(item, "entities").data;
3489
+ const entities_ptr = libredwg.dwg_dynapi_entity_data(item, "entities");
3308
3490
  if (entities_ptr) {
3309
3491
  const object_ref_ptr_array = libredwg.dwg_ptr_to_object_ref_ptr_array(
3310
3492
  entities_ptr,
@@ -3354,91 +3536,88 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3354
3536
  convertDimStyle(item, obj) {
3355
3537
  const libredwg = this.libredwg;
3356
3538
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
3357
- const DIMTOL = libredwg.dwg_dynapi_entity_value(item, "DIMTOL").data;
3358
- const DIMLIM = libredwg.dwg_dynapi_entity_value(item, "DIMLIM").data;
3359
- const DIMTIH = libredwg.dwg_dynapi_entity_value(item, "DIMTIH").data;
3360
- const DIMTOH = libredwg.dwg_dynapi_entity_value(item, "DIMTOH").data;
3361
- const DIMSE1 = libredwg.dwg_dynapi_entity_value(item, "DIMSE1").data;
3362
- const DIMSE2 = libredwg.dwg_dynapi_entity_value(item, "DIMSE2").data;
3363
- const DIMALT = libredwg.dwg_dynapi_entity_value(item, "DIMALT").data;
3364
- const DIMTOFL = libredwg.dwg_dynapi_entity_value(item, "DIMTOFL").data;
3365
- const DIMSAH = libredwg.dwg_dynapi_entity_value(item, "DIMSAH").data;
3366
- const DIMTIX = libredwg.dwg_dynapi_entity_value(item, "DIMTIX").data;
3367
- const DIMSOXD = libredwg.dwg_dynapi_entity_value(item, "DIMSOXD").data;
3368
- const DIMALTD = libredwg.dwg_dynapi_entity_value(item, "DIMALTD").data;
3369
- const DIMZIN = libredwg.dwg_dynapi_entity_value(item, "DIMZIN").data;
3370
- const DIMSD1 = libredwg.dwg_dynapi_entity_value(item, "DIMSD1").data;
3371
- const DIMSD2 = libredwg.dwg_dynapi_entity_value(item, "DIMSD2").data;
3372
- const DIMTOLJ = libredwg.dwg_dynapi_entity_value(item, "DIMTOLJ").data;
3373
- const DIMJUST = libredwg.dwg_dynapi_entity_value(item, "DIMJUST").data;
3374
- const DIMFIT = libredwg.dwg_dynapi_entity_value(item, "DIMFIT").data;
3375
- const DIMUPT = libredwg.dwg_dynapi_entity_value(item, "DIMUPT").data;
3376
- const DIMTZIN = libredwg.dwg_dynapi_entity_value(item, "DIMTZIN").data;
3377
- const DIMALTZ = libredwg.dwg_dynapi_entity_value(item, "DIMALTZ").data;
3378
- const DIMALTTZ = libredwg.dwg_dynapi_entity_value(item, "DIMALTTZ").data;
3379
- const DIMTAD = libredwg.dwg_dynapi_entity_value(item, "DIMTAD").data;
3380
- const DIMUNIT = libredwg.dwg_dynapi_entity_value(item, "DIMUNIT").data;
3381
- const DIMAUNIT = libredwg.dwg_dynapi_entity_value(item, "DIMAUNIT").data;
3382
- const DIMDEC = libredwg.dwg_dynapi_entity_value(item, "DIMDEC").data;
3383
- const DIMTDEC = libredwg.dwg_dynapi_entity_value(item, "DIMTDEC").data;
3384
- const DIMALTU = libredwg.dwg_dynapi_entity_value(item, "DIMALTU").data;
3385
- const DIMALTTD = libredwg.dwg_dynapi_entity_value(item, "DIMALTTD").data;
3386
- const DIMSCALE = libredwg.dwg_dynapi_entity_value(item, "DIMSCALE").data;
3387
- const DIMASZ = libredwg.dwg_dynapi_entity_value(item, "DIMASZ").data;
3388
- const DIMEXO = libredwg.dwg_dynapi_entity_value(item, "DIMEXO").data;
3389
- const DIMDLI = libredwg.dwg_dynapi_entity_value(item, "DIMDLI").data;
3390
- const DIMEXE = libredwg.dwg_dynapi_entity_value(item, "DIMEXE").data;
3391
- const DIMRND = libredwg.dwg_dynapi_entity_value(item, "DIMRND").data;
3392
- const DIMDLE = libredwg.dwg_dynapi_entity_value(item, "DIMDLE").data;
3393
- const DIMTP = libredwg.dwg_dynapi_entity_value(item, "DIMTP").data;
3394
- const DIMTM = libredwg.dwg_dynapi_entity_value(item, "DIMTM").data;
3395
- const DIMFXL = libredwg.dwg_dynapi_entity_value(item, "DIMFXL").data;
3396
- const DIMJOGANG = libredwg.dwg_dynapi_entity_value(item, "DIMJOGANG").data;
3397
- const DIMTFILL = libredwg.dwg_dynapi_entity_value(item, "DIMTFILL").data;
3398
- const DIMTFILLCLR = libredwg.dwg_dynapi_entity_value(item, "DIMTFILLCLR").data;
3399
- const DIMAZIN = libredwg.dwg_dynapi_entity_value(item, "DIMAZIN").data;
3400
- const DIMARCSYM = libredwg.dwg_dynapi_entity_value(item, "DIMARCSYM").data;
3401
- const DIMTXT = libredwg.dwg_dynapi_entity_value(item, "DIMTXT").data;
3402
- const DIMCEN = libredwg.dwg_dynapi_entity_value(item, "DIMCEN").data;
3403
- const DIMTSZ = libredwg.dwg_dynapi_entity_value(item, "DIMTSZ").data;
3404
- const DIMALTF = libredwg.dwg_dynapi_entity_value(item, "DIMALTF").data;
3405
- const DIMLFAC = libredwg.dwg_dynapi_entity_value(item, "DIMLFAC").data;
3406
- const DIMTVP = libredwg.dwg_dynapi_entity_value(item, "DIMTVP").data;
3407
- const DIMTFAC = libredwg.dwg_dynapi_entity_value(item, "DIMTFAC").data;
3408
- const DIMGAP = libredwg.dwg_dynapi_entity_value(item, "DIMGAP").data;
3409
- const DIMPOST = libredwg.dwg_dynapi_entity_value(item, "DIMPOST").data;
3410
- const DIMAPOST = libredwg.dwg_dynapi_entity_value(item, "DIMAPOST").data;
3411
- const DIMBLK_T = libredwg.dwg_dynapi_entity_value(item, "DIMBLK_T").data;
3412
- const DIMBLK1_T = libredwg.dwg_dynapi_entity_value(item, "DIMBLK1_T").data;
3413
- const DIMBLK2_T = libredwg.dwg_dynapi_entity_value(item, "DIMBLK2_T").data;
3414
- const DIMALTRND = libredwg.dwg_dynapi_entity_value(item, "DIMALTRND").data;
3415
- const DIMCLRD_N = libredwg.dwg_dynapi_entity_value(item, "DIMCLRD_N").data;
3416
- const DIMCLRE_N = libredwg.dwg_dynapi_entity_value(item, "DIMCLRE_N").data;
3417
- const DIMCLRT_N = libredwg.dwg_dynapi_entity_value(item, "DIMCLRT_N").data;
3418
- const DIMCLRD = libredwg.dwg_dynapi_entity_value(item, "DIMCLRD").data;
3419
- const DIMCLRE = libredwg.dwg_dynapi_entity_value(item, "DIMCLRE").data;
3420
- const DIMCLRT = libredwg.dwg_dynapi_entity_value(item, "DIMCLRT").data;
3421
- const DIMADEC = libredwg.dwg_dynapi_entity_value(item, "DIMADEC").data;
3422
- const DIMFRAC = libredwg.dwg_dynapi_entity_value(item, "DIMFRAC").data;
3423
- const DIMLUNIT = libredwg.dwg_dynapi_entity_value(item, "DIMLUNIT").data;
3424
- const DIMDSEP = libredwg.dwg_dynapi_entity_value(item, "DIMDSEP").data;
3425
- const DIMTMOVE = libredwg.dwg_dynapi_entity_value(item, "DIMTMOVE").data;
3426
- const DIMATFIT = libredwg.dwg_dynapi_entity_value(item, "DIMATFIT").data;
3427
- const DIMFXLON = libredwg.dwg_dynapi_entity_value(item, "DIMFXLON").data;
3428
- const DIMTXTDIRECTION = libredwg.dwg_dynapi_entity_value(
3429
- item,
3430
- "DIMTXTDIRECTION"
3431
- ).data;
3432
- const DIMALTMZF = libredwg.dwg_dynapi_entity_value(item, "DIMALTMZF").data;
3433
- const DIMALTMZS = libredwg.dwg_dynapi_entity_value(item, "DIMALTMZS").data;
3434
- const DIMMZF = libredwg.dwg_dynapi_entity_value(item, "DIMMZF").data;
3435
- const DIMMZS = libredwg.dwg_dynapi_entity_value(item, "DIMMZS").data;
3436
- const DIMLWD = libredwg.dwg_dynapi_entity_value(item, "DIMLWD").data;
3437
- const DIMLWE = libredwg.dwg_dynapi_entity_value(item, "DIMLWE").data;
3438
- const DIMTXSTY_Ptr = libredwg.dwg_dynapi_entity_value(item, "DIMTXSTY").data;
3439
- const DIMTXSTY = libredwg.dwg_ref_get_absref(DIMTXSTY_Ptr);
3440
- const DIMLDRBLK_Ptr = libredwg.dwg_dynapi_entity_value(item, "DIMLDRBLK").data;
3441
- const DIMLDRBLK = libredwg.dwg_ref_get_absref(DIMLDRBLK_Ptr);
3539
+ const DIMTOL = libredwg.dwg_dynapi_entity_data(item, "DIMTOL");
3540
+ const DIMLIM = libredwg.dwg_dynapi_entity_data(item, "DIMLIM");
3541
+ const DIMTIH = libredwg.dwg_dynapi_entity_data(item, "DIMTIH");
3542
+ const DIMTOH = libredwg.dwg_dynapi_entity_data(item, "DIMTOH");
3543
+ const DIMSE1 = libredwg.dwg_dynapi_entity_data(item, "DIMSE1");
3544
+ const DIMSE2 = libredwg.dwg_dynapi_entity_data(item, "DIMSE2");
3545
+ const DIMALT = libredwg.dwg_dynapi_entity_data(item, "DIMALT");
3546
+ const DIMTOFL = libredwg.dwg_dynapi_entity_data(item, "DIMTOFL");
3547
+ const DIMSAH = libredwg.dwg_dynapi_entity_data(item, "DIMSAH");
3548
+ const DIMTIX = libredwg.dwg_dynapi_entity_data(item, "DIMTIX");
3549
+ const DIMSOXD = libredwg.dwg_dynapi_entity_data(item, "DIMSOXD");
3550
+ const DIMALTD = libredwg.dwg_dynapi_entity_data(item, "DIMALTD");
3551
+ const DIMZIN = libredwg.dwg_dynapi_entity_data(item, "DIMZIN");
3552
+ const DIMSD1 = libredwg.dwg_dynapi_entity_data(item, "DIMSD1");
3553
+ const DIMSD2 = libredwg.dwg_dynapi_entity_data(item, "DIMSD2");
3554
+ const DIMTOLJ = libredwg.dwg_dynapi_entity_data(item, "DIMTOLJ");
3555
+ const DIMJUST = libredwg.dwg_dynapi_entity_data(item, "DIMJUST");
3556
+ const DIMFIT = libredwg.dwg_dynapi_entity_data(item, "DIMFIT");
3557
+ const DIMUPT = libredwg.dwg_dynapi_entity_data(item, "DIMUPT");
3558
+ const DIMTZIN = libredwg.dwg_dynapi_entity_data(item, "DIMTZIN");
3559
+ const DIMALTZ = libredwg.dwg_dynapi_entity_data(item, "DIMALTZ");
3560
+ const DIMALTTZ = libredwg.dwg_dynapi_entity_data(item, "DIMALTTZ");
3561
+ const DIMTAD = libredwg.dwg_dynapi_entity_data(item, "DIMTAD");
3562
+ const DIMUNIT = libredwg.dwg_dynapi_entity_data(item, "DIMUNIT");
3563
+ const DIMAUNIT = libredwg.dwg_dynapi_entity_data(item, "DIMAUNIT");
3564
+ const DIMDEC = libredwg.dwg_dynapi_entity_data(item, "DIMDEC");
3565
+ const DIMTDEC = libredwg.dwg_dynapi_entity_data(item, "DIMTDEC");
3566
+ const DIMALTU = libredwg.dwg_dynapi_entity_data(item, "DIMALTU");
3567
+ const DIMALTTD = libredwg.dwg_dynapi_entity_data(item, "DIMALTTD");
3568
+ const DIMSCALE = libredwg.dwg_dynapi_entity_data(item, "DIMSCALE");
3569
+ const DIMASZ = libredwg.dwg_dynapi_entity_data(item, "DIMASZ");
3570
+ const DIMEXO = libredwg.dwg_dynapi_entity_data(item, "DIMEXO");
3571
+ const DIMDLI = libredwg.dwg_dynapi_entity_data(item, "DIMDLI");
3572
+ const DIMEXE = libredwg.dwg_dynapi_entity_data(item, "DIMEXE");
3573
+ const DIMRND = libredwg.dwg_dynapi_entity_data(item, "DIMRND");
3574
+ const DIMDLE = libredwg.dwg_dynapi_entity_data(item, "DIMDLE");
3575
+ const DIMTP = libredwg.dwg_dynapi_entity_data(item, "DIMTP");
3576
+ const DIMTM = libredwg.dwg_dynapi_entity_data(item, "DIMTM");
3577
+ const DIMFXL = libredwg.dwg_dynapi_entity_data(item, "DIMFXL");
3578
+ const DIMJOGANG = libredwg.dwg_dynapi_entity_data(item, "DIMJOGANG");
3579
+ const DIMTFILL = libredwg.dwg_dynapi_entity_data(item, "DIMTFILL");
3580
+ const DIMTFILLCLR = libredwg.dwg_dynapi_entity_data(item, "DIMTFILLCLR");
3581
+ const DIMAZIN = libredwg.dwg_dynapi_entity_data(item, "DIMAZIN");
3582
+ const DIMARCSYM = libredwg.dwg_dynapi_entity_data(item, "DIMARCSYM");
3583
+ const DIMTXT = libredwg.dwg_dynapi_entity_data(item, "DIMTXT");
3584
+ const DIMCEN = libredwg.dwg_dynapi_entity_data(item, "DIMCEN");
3585
+ const DIMTSZ = libredwg.dwg_dynapi_entity_data(item, "DIMTSZ");
3586
+ const DIMALTF = libredwg.dwg_dynapi_entity_data(item, "DIMALTF");
3587
+ const DIMLFAC = libredwg.dwg_dynapi_entity_data(item, "DIMLFAC");
3588
+ const DIMTVP = libredwg.dwg_dynapi_entity_data(item, "DIMTVP");
3589
+ const DIMTFAC = libredwg.dwg_dynapi_entity_data(item, "DIMTFAC");
3590
+ const DIMGAP = libredwg.dwg_dynapi_entity_data(item, "DIMGAP");
3591
+ const DIMPOST = libredwg.dwg_dynapi_entity_data(item, "DIMPOST");
3592
+ const DIMAPOST = libredwg.dwg_dynapi_entity_data(item, "DIMAPOST");
3593
+ const DIMBLK_T = libredwg.dwg_dynapi_entity_data(item, "DIMBLK_T");
3594
+ const DIMBLK1_T = libredwg.dwg_dynapi_entity_data(item, "DIMBLK1_T");
3595
+ const DIMBLK2_T = libredwg.dwg_dynapi_entity_data(item, "DIMBLK2_T");
3596
+ const DIMALTRND = libredwg.dwg_dynapi_entity_data(item, "DIMALTRND");
3597
+ const DIMCLRD_N = libredwg.dwg_dynapi_entity_data(item, "DIMCLRD_N");
3598
+ const DIMCLRE_N = libredwg.dwg_dynapi_entity_data(item, "DIMCLRE_N");
3599
+ const DIMCLRT_N = libredwg.dwg_dynapi_entity_data(item, "DIMCLRT_N");
3600
+ const DIMCLRD = libredwg.dwg_dynapi_entity_data(item, "DIMCLRD");
3601
+ const DIMCLRE = libredwg.dwg_dynapi_entity_data(item, "DIMCLRE");
3602
+ const DIMCLRT = libredwg.dwg_dynapi_entity_data(item, "DIMCLRT");
3603
+ const DIMADEC = libredwg.dwg_dynapi_entity_data(item, "DIMADEC");
3604
+ const DIMFRAC = libredwg.dwg_dynapi_entity_data(item, "DIMFRAC");
3605
+ const DIMLUNIT = libredwg.dwg_dynapi_entity_data(item, "DIMLUNIT");
3606
+ const DIMDSEP = libredwg.dwg_dynapi_entity_data(item, "DIMDSEP");
3607
+ const DIMTMOVE = libredwg.dwg_dynapi_entity_data(item, "DIMTMOVE");
3608
+ const DIMATFIT = libredwg.dwg_dynapi_entity_data(item, "DIMATFIT");
3609
+ const DIMFXLON = libredwg.dwg_dynapi_entity_data(item, "DIMFXLON");
3610
+ const DIMTXTDIRECTION = libredwg.dwg_dynapi_entity_data(item, "DIMTXTDIRECTION");
3611
+ const DIMALTMZF = libredwg.dwg_dynapi_entity_data(item, "DIMALTMZF");
3612
+ const DIMALTMZS = libredwg.dwg_dynapi_entity_data(item, "DIMALTMZS");
3613
+ const DIMMZF = libredwg.dwg_dynapi_entity_data(item, "DIMMZF");
3614
+ const DIMMZS = libredwg.dwg_dynapi_entity_data(item, "DIMMZS");
3615
+ const DIMLWD = libredwg.dwg_dynapi_entity_data(item, "DIMLWD");
3616
+ const DIMLWE = libredwg.dwg_dynapi_entity_data(item, "DIMLWE");
3617
+ const DIMTXSTY_Ptr = libredwg.dwg_dynapi_entity_data(item, "DIMTXSTY");
3618
+ const DIMTXSTY = libredwg.dwg_ref_get_absref(DIMTXSTY_Ptr) ?? void 0;
3619
+ const DIMLDRBLK_Ptr = libredwg.dwg_dynapi_entity_data(item, "DIMLDRBLK");
3620
+ const DIMLDRBLK = libredwg.dwg_ref_get_absref(DIMLDRBLK_Ptr) ?? void 0;
3442
3621
  return {
3443
3622
  ...commonAttrs,
3444
3623
  DIMPOST,
@@ -3526,15 +3705,15 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3526
3705
  convertLayer(item, obj) {
3527
3706
  const libredwg = this.libredwg;
3528
3707
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
3529
- const flag = libredwg.dwg_dynapi_entity_value(item, "flag").data;
3530
- const frozen = libredwg.dwg_dynapi_entity_value(item, "frozen").data;
3531
- const off = libredwg.dwg_dynapi_entity_value(item, "off").data;
3532
- const frozenInNew = libredwg.dwg_dynapi_entity_value(item, "frozen_in_new").data;
3533
- const locked = libredwg.dwg_dynapi_entity_value(item, "plotflockedlag").data;
3534
- const plotFlag = libredwg.dwg_dynapi_entity_value(item, "plotflag").data;
3535
- const linewt = libredwg.dwg_dynapi_entity_value(item, "linewt").data;
3536
- const color = libredwg.dwg_dynapi_entity_value(item, "color").data;
3537
- const ltypeRef = libredwg.dwg_dynapi_entity_value(item, "ltype").data;
3708
+ const flag = libredwg.dwg_dynapi_entity_data(item, "flag");
3709
+ const frozen = libredwg.dwg_dynapi_entity_data(item, "frozen");
3710
+ const off = libredwg.dwg_dynapi_entity_data(item, "off");
3711
+ const frozenInNew = libredwg.dwg_dynapi_entity_data(item, "frozen_in_new");
3712
+ const locked = libredwg.dwg_dynapi_entity_data(item, "plotflockedlag");
3713
+ const plotFlag = libredwg.dwg_dynapi_entity_data(item, "plotflag");
3714
+ const linewt = libredwg.dwg_dynapi_entity_data(item, "linewt");
3715
+ const color = libredwg.dwg_dynapi_entity_data(item, "color");
3716
+ const ltypeRef = libredwg.dwg_dynapi_entity_data(item, "ltype");
3538
3717
  let ltypeName = "Continuous";
3539
3718
  if (ltypeRef) {
3540
3719
  try {
@@ -3573,11 +3752,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3573
3752
  convertLineType(item, obj) {
3574
3753
  const libredwg = this.libredwg;
3575
3754
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
3576
- const flag = libredwg.dwg_dynapi_entity_value(item, "flag").data;
3577
- const description = libredwg.dwg_dynapi_entity_value(item, "description").data;
3578
- const numDashes = libredwg.dwg_dynapi_entity_value(item, "numdashes").data;
3579
- const patternLen = libredwg.dwg_dynapi_entity_value(item, "pattern_len").data;
3580
- const dashes = libredwg.dwg_dynapi_entity_value(item, "dashes").data;
3755
+ const flag = libredwg.dwg_dynapi_entity_data(item, "flag");
3756
+ const description = libredwg.dwg_dynapi_entity_data(item, "description");
3757
+ const numDashes = libredwg.dwg_dynapi_entity_data(item, "numdashes");
3758
+ const patternLen = libredwg.dwg_dynapi_entity_data(item, "pattern_len");
3759
+ const dashes = libredwg.dwg_dynapi_entity_data(item, "dashes");
3581
3760
  const dashArray = dashes ? libredwg.dwg_ptr_to_ltype_dash_array(dashes, numDashes) : [];
3582
3761
  return {
3583
3762
  ...commonAttrs,
@@ -3609,16 +3788,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3609
3788
  convertStyle(item, obj) {
3610
3789
  const libredwg = this.libredwg;
3611
3790
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
3612
- const standardFlag = libredwg.dwg_dynapi_entity_value(item, "flag").data;
3613
- const widthFactor = libredwg.dwg_dynapi_entity_value(item, "width_factor").data;
3614
- const obliqueAngle = libredwg.dwg_dynapi_entity_value(item, "oblique_angle").data;
3615
- const textGenerationFlag = libredwg.dwg_dynapi_entity_value(
3616
- item,
3617
- "generation"
3618
- ).data;
3619
- const lastHeight = libredwg.dwg_dynapi_entity_value(item, "last_height").data;
3620
- const font = libredwg.dwg_dynapi_entity_value(item, "font_file").data;
3621
- const bigFont = libredwg.dwg_dynapi_entity_value(item, "bigfont_file").data;
3791
+ const standardFlag = libredwg.dwg_dynapi_entity_data(item, "flag");
3792
+ const widthFactor = libredwg.dwg_dynapi_entity_data(item, "width_factor");
3793
+ const obliqueAngle = libredwg.dwg_dynapi_entity_data(item, "oblique_angle");
3794
+ const textGenerationFlag = libredwg.dwg_dynapi_entity_data(item, "generation");
3795
+ const lastHeight = libredwg.dwg_dynapi_entity_data(item, "last_height");
3796
+ const font = libredwg.dwg_dynapi_entity_data(item, "font_file");
3797
+ const bigFont = libredwg.dwg_dynapi_entity_data(item, "bigfont_file");
3622
3798
  return {
3623
3799
  ...commonAttrs,
3624
3800
  standardFlag,
@@ -3635,58 +3811,40 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3635
3811
  convertViewport(item, obj) {
3636
3812
  const libredwg = this.libredwg;
3637
3813
  const commonAttrs = this.getCommonTableEntryAttrs(item, obj);
3638
- const standardFlag = libredwg.dwg_dynapi_entity_value(item, "flag").data;
3639
- const viewHeight = libredwg.dwg_dynapi_entity_value(item, "VIEWSIZE").data;
3640
- const aspectRatio = libredwg.dwg_dynapi_entity_value(item, "aspect_ratio").data;
3641
- const center = libredwg.dwg_dynapi_entity_value(item, "VIEWCTR").data;
3642
- const viewTarget = libredwg.dwg_dynapi_entity_value(item, "view_target").data;
3643
- const viewDirectionFromTarget = libredwg.dwg_dynapi_entity_value(
3644
- item,
3645
- "VIEWDIR"
3646
- ).data;
3647
- const viewTwistAngle = libredwg.dwg_dynapi_entity_value(item, "view_twist").data;
3648
- const lensLength = libredwg.dwg_dynapi_entity_value(item, "lens_length").data;
3649
- const frontClippingPlane = libredwg.dwg_dynapi_entity_value(
3650
- item,
3651
- "front_clip_z"
3652
- ).data;
3653
- const backClippingPlane = libredwg.dwg_dynapi_entity_value(
3654
- item,
3655
- "back_clip_z"
3656
- ).data;
3657
- const viewMode = libredwg.dwg_dynapi_entity_value(item, "VIEWMODE").data;
3658
- const renderMode = libredwg.dwg_dynapi_entity_value(item, "render_mode").data;
3659
- const isDefaultLightingOn = libredwg.dwg_dynapi_entity_value(item, "use_default_lights").data != 0;
3660
- const defaultLightningType = libredwg.dwg_dynapi_entity_value(
3661
- item,
3662
- "default_lightning_type"
3663
- ).data;
3664
- const brightness = libredwg.dwg_dynapi_entity_value(item, "brightness").data;
3665
- const contrast = libredwg.dwg_dynapi_entity_value(item, "contrast").data;
3666
- const ambient_color = libredwg.dwg_dynapi_entity_value(
3667
- item,
3668
- "ambient_color"
3669
- ).data;
3670
- const lowerLeftCorner = libredwg.dwg_dynapi_entity_value(item, "lower_left").data;
3671
- const upperRightCorner = libredwg.dwg_dynapi_entity_value(
3672
- item,
3673
- "upper_right"
3674
- ).data;
3675
- const circleSides = libredwg.dwg_dynapi_entity_value(item, "circle_zoom").data;
3676
- const ucsIconSetting = libredwg.dwg_dynapi_entity_value(item, "UCSICON").data;
3677
- const gridSpacing = libredwg.dwg_dynapi_entity_value(item, "GRIDUNIT").data;
3678
- const snapRotationAngle = libredwg.dwg_dynapi_entity_value(item, "SNAPANG").data;
3679
- const snapBasePoint = libredwg.dwg_dynapi_entity_value(item, "SNAPBASE").data;
3680
- const snapSpacing = libredwg.dwg_dynapi_entity_value(item, "SNAPUNIT").data;
3681
- const ucsOrigin = libredwg.dwg_dynapi_entity_value(item, "ucsorg").data;
3682
- const ucsXAxis = libredwg.dwg_dynapi_entity_value(item, "ucsxdir").data;
3683
- const ucsYAxis = libredwg.dwg_dynapi_entity_value(item, "ucsydir").data;
3684
- const elevation = libredwg.dwg_dynapi_entity_value(item, "ucs_elevation").data;
3685
- const majorGridLines = libredwg.dwg_dynapi_entity_value(item, "grid_major").data;
3686
- const background = libredwg.dwg_dynapi_entity_value(item, "background").data;
3687
- const backgroundObjectId = background ? idToString(libredwg.dwg_ref_get_absref(background)) : void 0;
3688
- const visualstyle = libredwg.dwg_dynapi_entity_value(item, "visualstyle").data;
3689
- const visualStyleObjectId = visualstyle ? idToString(libredwg.dwg_ref_get_absref(visualstyle)) : void 0;
3814
+ const standardFlag = libredwg.dwg_dynapi_entity_data(item, "flag");
3815
+ const viewHeight = libredwg.dwg_dynapi_entity_data(item, "VIEWSIZE");
3816
+ const aspectRatio = libredwg.dwg_dynapi_entity_data(item, "aspect_ratio");
3817
+ const center = libredwg.dwg_dynapi_entity_data(item, "VIEWCTR");
3818
+ const viewTarget = libredwg.dwg_dynapi_entity_data(item, "view_target");
3819
+ const viewDirectionFromTarget = libredwg.dwg_dynapi_entity_data(item, "VIEWDIR");
3820
+ const viewTwistAngle = libredwg.dwg_dynapi_entity_data(item, "view_twist");
3821
+ const lensLength = libredwg.dwg_dynapi_entity_data(item, "lens_length");
3822
+ const frontClippingPlane = libredwg.dwg_dynapi_entity_data(item, "front_clip_z");
3823
+ const backClippingPlane = libredwg.dwg_dynapi_entity_data(item, "back_clip_z");
3824
+ const viewMode = libredwg.dwg_dynapi_entity_data(item, "VIEWMODE");
3825
+ const renderMode = libredwg.dwg_dynapi_entity_data(item, "render_mode");
3826
+ const isDefaultLightingOn = libredwg.dwg_dynapi_entity_data(item, "use_default_lights") != 0;
3827
+ const defaultLightningType = libredwg.dwg_dynapi_entity_data(item, "default_lightning_type");
3828
+ const brightness = libredwg.dwg_dynapi_entity_data(item, "brightness");
3829
+ const contrast = libredwg.dwg_dynapi_entity_data(item, "contrast");
3830
+ const ambient_color = libredwg.dwg_dynapi_entity_data(item, "ambient_color");
3831
+ const lowerLeftCorner = libredwg.dwg_dynapi_entity_data(item, "lower_left");
3832
+ const upperRightCorner = libredwg.dwg_dynapi_entity_data(item, "upper_right");
3833
+ const circleSides = libredwg.dwg_dynapi_entity_data(item, "circle_zoom");
3834
+ const ucsIconSetting = libredwg.dwg_dynapi_entity_data(item, "UCSICON");
3835
+ const gridSpacing = libredwg.dwg_dynapi_entity_data(item, "GRIDUNIT");
3836
+ const snapRotationAngle = libredwg.dwg_dynapi_entity_data(item, "SNAPANG");
3837
+ const snapBasePoint = libredwg.dwg_dynapi_entity_data(item, "SNAPBASE");
3838
+ const snapSpacing = libredwg.dwg_dynapi_entity_data(item, "SNAPUNIT");
3839
+ const ucsOrigin = libredwg.dwg_dynapi_entity_data(item, "ucsorg");
3840
+ const ucsXAxis = libredwg.dwg_dynapi_entity_data(item, "ucsxdir");
3841
+ const ucsYAxis = libredwg.dwg_dynapi_entity_data(item, "ucsydir");
3842
+ const elevation = libredwg.dwg_dynapi_entity_data(item, "ucs_elevation");
3843
+ const majorGridLines = libredwg.dwg_dynapi_entity_data(item, "grid_major");
3844
+ const background = libredwg.dwg_dynapi_entity_data(item, "background");
3845
+ const backgroundObjectId = background ? libredwg.dwg_ref_get_id(background) ?? "" : void 0;
3846
+ const visualstyle = libredwg.dwg_dynapi_entity_data(item, "visualstyle");
3847
+ const visualStyleObjectId = visualstyle ? libredwg.dwg_ref_get_id(visualstyle) ?? "" : void 0;
3690
3848
  return {
3691
3849
  ...commonAttrs,
3692
3850
  standardFlag,
@@ -3741,19 +3899,16 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3741
3899
  return {
3742
3900
  handle: idToString(handle.value),
3743
3901
  ownerHandle: idToString(ownerhandle.absolute_ref),
3744
- name: libredwg.dwg_dynapi_entity_value(tio, "name").data
3902
+ name: libredwg.dwg_dynapi_entity_data(tio, "name")
3745
3903
  };
3746
3904
  }
3747
3905
  convertDictionary(item, obj) {
3748
3906
  const libredwg = this.libredwg;
3749
3907
  const commonAttrs = this.getCommonObjectAttrs(obj);
3750
- const isHardOwner = libredwg.dwg_dynapi_entity_value(item, "is_hardowner").data;
3751
- const cloningFlag = libredwg.dwg_dynapi_entity_value(item, "cloning").data;
3752
- const numitems = libredwg.dwg_dynapi_entity_value(item, "numitems").data;
3753
- const itemhandles_ptr = libredwg.dwg_dynapi_entity_value(
3754
- item,
3755
- "itemhandles"
3756
- ).data;
3908
+ const isHardOwner = libredwg.dwg_dynapi_entity_data(item, "is_hardowner");
3909
+ const cloningFlag = libredwg.dwg_dynapi_entity_data(item, "cloning");
3910
+ const numitems = libredwg.dwg_dynapi_entity_data(item, "numitems");
3911
+ const itemhandles_ptr = libredwg.dwg_dynapi_entity_data(item, "itemhandles");
3757
3912
  const itemhandles = libredwg.dwg_ptr_to_object_ref_array(
3758
3913
  itemhandles_ptr,
3759
3914
  numitems
@@ -3773,11 +3928,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3773
3928
  convertImageDef(item, obj) {
3774
3929
  const libredwg = this.libredwg;
3775
3930
  const commonAttrs = this.getCommonObjectAttrs(obj);
3776
- const size = libredwg.dwg_dynapi_entity_value(item, "image_size").data;
3777
- const fileName = libredwg.dwg_dynapi_entity_value(item, "file_path").data;
3778
- const isLoaded = libredwg.dwg_dynapi_entity_value(item, "is_loaded").data;
3779
- const sizeOfOnePixel = libredwg.dwg_dynapi_entity_value(item, "pixel_size").data;
3780
- const resolutionUnits = libredwg.dwg_dynapi_entity_value(item, "resunits").data;
3931
+ const size = libredwg.dwg_dynapi_entity_data(item, "image_size");
3932
+ const fileName = libredwg.dwg_dynapi_entity_data(item, "file_path");
3933
+ const isLoaded = libredwg.dwg_dynapi_entity_data(item, "is_loaded");
3934
+ const sizeOfOnePixel = libredwg.dwg_dynapi_entity_data(item, "pixel_size");
3935
+ const resolutionUnits = libredwg.dwg_dynapi_entity_data(item, "resunits");
3781
3936
  return {
3782
3937
  ...commonAttrs,
3783
3938
  fileName,
@@ -3790,38 +3945,25 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3790
3945
  convertLayout(item, obj) {
3791
3946
  const libredwg = this.libredwg;
3792
3947
  const commonAttrs = this.getCommonObjectAttrs(obj);
3793
- const layoutName = libredwg.dwg_dynapi_entity_value(item, "layout_name").data;
3794
- const tabOrder = libredwg.dwg_dynapi_entity_value(item, "tab_order").data;
3795
- const controlFlag = libredwg.dwg_dynapi_entity_value(item, "layout_flags").data;
3796
- const insertionPoint = libredwg.dwg_dynapi_entity_value(item, "INSBASE").data;
3797
- const minLimit = libredwg.dwg_dynapi_entity_value(item, "LIMMIN").data;
3798
- const maxLimit = libredwg.dwg_dynapi_entity_value(item, "LIMMAX").data;
3799
- const ucsOrigin = libredwg.dwg_dynapi_entity_value(item, "UCSORG").data;
3800
- const ucsXAxis = libredwg.dwg_dynapi_entity_value(item, "UCSXDIR").data;
3801
- const ucsYAxis = libredwg.dwg_dynapi_entity_value(item, "UCSYDIR").data;
3802
- const orthographicType = libredwg.dwg_dynapi_entity_value(
3803
- item,
3804
- "UCSORTHOVIEW"
3805
- ).data;
3806
- const minExtent = libredwg.dwg_dynapi_entity_value(item, "EXTMIN").data;
3807
- const maxExtent = libredwg.dwg_dynapi_entity_value(item, "EXTMAX").data;
3808
- const elevation = libredwg.dwg_dynapi_entity_value(item, "ucs_elevation").data;
3809
- const block_header_ref = libredwg.dwg_dynapi_entity_value(
3810
- item,
3811
- "block_header"
3812
- ).data;
3813
- const paperSpaceTableId = idToString(
3814
- libredwg.dwg_ref_get_absref(block_header_ref)
3815
- );
3816
- const active_viewport_ref = libredwg.dwg_dynapi_entity_value(
3817
- item,
3818
- "active_viewport"
3819
- ).data;
3820
- const viewportId = idToString(
3821
- libredwg.dwg_ref_get_absref(active_viewport_ref)
3822
- );
3823
- const named_ucs_ref = libredwg.dwg_dynapi_entity_value(item, "named_ucs").data;
3824
- const namedUcsId = named_ucs_ref ? idToString(libredwg.dwg_ref_get_absref(named_ucs_ref)) : void 0;
3948
+ const layoutName = libredwg.dwg_dynapi_entity_data(item, "layout_name");
3949
+ const tabOrder = libredwg.dwg_dynapi_entity_data(item, "tab_order");
3950
+ const controlFlag = libredwg.dwg_dynapi_entity_data(item, "layout_flags");
3951
+ const insertionPoint = libredwg.dwg_dynapi_entity_data(item, "INSBASE");
3952
+ const minLimit = libredwg.dwg_dynapi_entity_data(item, "LIMMIN");
3953
+ const maxLimit = libredwg.dwg_dynapi_entity_data(item, "LIMMAX");
3954
+ const ucsOrigin = libredwg.dwg_dynapi_entity_data(item, "UCSORG");
3955
+ const ucsXAxis = libredwg.dwg_dynapi_entity_data(item, "UCSXDIR");
3956
+ const ucsYAxis = libredwg.dwg_dynapi_entity_data(item, "UCSYDIR");
3957
+ const orthographicType = libredwg.dwg_dynapi_entity_data(item, "UCSORTHOVIEW");
3958
+ const minExtent = libredwg.dwg_dynapi_entity_data(item, "EXTMIN");
3959
+ const maxExtent = libredwg.dwg_dynapi_entity_data(item, "EXTMAX");
3960
+ const elevation = libredwg.dwg_dynapi_entity_data(item, "ucs_elevation");
3961
+ const block_header_ref = libredwg.dwg_dynapi_entity_data(item, "block_header");
3962
+ const paperSpaceTableId = libredwg.dwg_ref_get_id(block_header_ref) ?? "";
3963
+ const active_viewport_ref = libredwg.dwg_dynapi_entity_data(item, "active_viewport");
3964
+ const viewportId = libredwg.dwg_ref_get_id(active_viewport_ref) ?? "";
3965
+ const named_ucs_ref = libredwg.dwg_dynapi_entity_data(item, "named_ucs");
3966
+ const namedUcsId = named_ucs_ref ? libredwg.dwg_ref_get_id(named_ucs_ref) ?? "" : void 0;
3825
3967
  return {
3826
3968
  ...commonAttrs,
3827
3969
  layoutName,
@@ -3845,49 +3987,81 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3845
3987
  // TODO: Set the correct value
3846
3988
  };
3847
3989
  }
3990
+ convertMLeaderStyle(item, obj) {
3991
+ const libredwg = this.libredwg;
3992
+ const commonAttrs = this.getCommonObjectAttrs(obj);
3993
+ const objectVal = (field) => libredwg.dwg_dynapi_entity_data(item, field);
3994
+ const refToId = (ref) => libredwg.dwg_ref_get_id(ref);
3995
+ const asBool = (value) => value > 0;
3996
+ const mleaderColor = (color) => color != null ? dwgColorToMLeaderRawColor(color) : void 0;
3997
+ return {
3998
+ ...commonAttrs,
3999
+ subclassMarker: "AcDbMLeaderStyle",
4000
+ unknown1: objectVal("class_version"),
4001
+ contentType: objectVal("content_type"),
4002
+ drawMLeaderOrderType: objectVal("mleader_order"),
4003
+ drawLeaderOrderType: objectVal("leader_order"),
4004
+ maxLeaderSegmentPoints: objectVal("max_points"),
4005
+ firstSegmentAngleConstraint: objectVal("first_seg_angle"),
4006
+ secondSegmentAngleConstraint: objectVal("second_seg_angle"),
4007
+ leaderLineType: objectVal("type"),
4008
+ leaderLineColor: mleaderColor(objectVal("line_color")),
4009
+ leaderLineTypeId: refToId(objectVal("line_type")),
4010
+ leaderLineWeight: objectVal("linewt"),
4011
+ landingEnabled: asBool(objectVal("has_landing")),
4012
+ landingGap: objectVal("landing_gap"),
4013
+ doglegEnabled: asBool(objectVal("has_dogleg")),
4014
+ doglegLength: objectVal("landing_dist"),
4015
+ description: objectVal("description"),
4016
+ arrowheadId: refToId(objectVal("arrow_head")),
4017
+ arrowheadSize: objectVal("arrow_head_size"),
4018
+ defaultMTextContents: objectVal("text_default"),
4019
+ textStyleId: refToId(objectVal("text_style")),
4020
+ textLeftAttachmentType: objectVal("attach_left"),
4021
+ textAngleType: objectVal("text_angle_type"),
4022
+ textAlignmentType: objectVal("text_align_type"),
4023
+ textRightAttachmentType: objectVal("attach_right"),
4024
+ textColor: mleaderColor(objectVal("text_color")),
4025
+ textHeight: objectVal("text_height"),
4026
+ textFrameEnabled: asBool(objectVal("has_text_frame")),
4027
+ textAlignAlwaysLeft: asBool(objectVal("text_always_left")),
4028
+ alignSpace: objectVal("align_space"),
4029
+ blockContentId: refToId(objectVal("block")),
4030
+ blockContentColor: mleaderColor(objectVal("block_color")),
4031
+ blockContentScale: objectVal("block_scale"),
4032
+ blockContentScaleEnabled: asBool(objectVal("use_block_scale")),
4033
+ blockContentRotation: objectVal("block_rotation"),
4034
+ blockContentRotationEnabled: asBool(objectVal("use_block_rotation")),
4035
+ blockContentConnectionType: objectVal("block_connection"),
4036
+ scale: objectVal("scale"),
4037
+ overwritePropertyValue: asBool(objectVal("is_changed")),
4038
+ annotative: asBool(objectVal("is_annotative")),
4039
+ breakGapSize: objectVal("break_size"),
4040
+ textAttachmentDirection: objectVal("attach_dir"),
4041
+ bottomTextAttachmentDirection: objectVal("attach_bottom"),
4042
+ topTextAttachmentDirection: objectVal("attach_top"),
4043
+ unknown2: asBool(objectVal("text_extended"))
4044
+ };
4045
+ }
3848
4046
  convertSpatialFilter(item, obj) {
3849
4047
  const libredwg = this.libredwg;
3850
4048
  const commonAttrs = this.getCommonObjectAttrs(obj);
3851
- const origin = libredwg.dwg_dynapi_entity_value(item, "origin").data;
3852
- const numberOfPointsOnClipBoundary = libredwg.dwg_dynapi_entity_value(
3853
- item,
3854
- "num_clip_verts"
3855
- ).data;
3856
- const clip_verts_ptr = libredwg.dwg_dynapi_entity_value(item, "clip_verts").data;
4049
+ const origin = libredwg.dwg_dynapi_entity_data(item, "origin");
4050
+ const numberOfPointsOnClipBoundary = libredwg.dwg_dynapi_entity_data(item, "num_clip_verts");
4051
+ const clip_verts_ptr = libredwg.dwg_dynapi_entity_data(item, "clip_verts");
3857
4052
  const vertices = libredwg.dwg_ptr_to_point2d_array(
3858
4053
  clip_verts_ptr,
3859
4054
  numberOfPointsOnClipBoundary
3860
4055
  );
3861
- const extrusionDirection = libredwg.dwg_dynapi_entity_value(
3862
- item,
3863
- "extrusion"
3864
- ).data;
3865
- const clipBoundaryVisible = libredwg.dwg_dynapi_entity_value(
3866
- item,
3867
- "display_boundary_on"
3868
- ).data;
3869
- const frontClippingPlaneFlag = libredwg.dwg_dynapi_entity_value(
3870
- item,
3871
- "front_clip_on"
3872
- ).data;
3873
- const frontClippingPlaneDistance = libredwg.dwg_dynapi_entity_value(
3874
- item,
3875
- "front_clip_z"
3876
- ).data;
3877
- const backClippingPlaneFlag = libredwg.dwg_dynapi_entity_value(
3878
- item,
3879
- "back_clip_on"
3880
- ).data;
3881
- const backClippingPlaneDistance = libredwg.dwg_dynapi_entity_value(
3882
- item,
3883
- "back_clip_z"
3884
- ).data;
3885
- const transform_ptr = libredwg.dwg_dynapi_entity_value(item, "transform").data;
4056
+ const extrusionDirection = libredwg.dwg_dynapi_entity_data(item, "extrusion");
4057
+ const clipBoundaryVisible = libredwg.dwg_dynapi_entity_data(item, "display_boundary_on");
4058
+ const frontClippingPlaneFlag = libredwg.dwg_dynapi_entity_data(item, "front_clip_on");
4059
+ const frontClippingPlaneDistance = libredwg.dwg_dynapi_entity_data(item, "front_clip_z");
4060
+ const backClippingPlaneFlag = libredwg.dwg_dynapi_entity_data(item, "back_clip_on");
4061
+ const backClippingPlaneDistance = libredwg.dwg_dynapi_entity_data(item, "back_clip_z");
4062
+ const transform_ptr = libredwg.dwg_dynapi_entity_data(item, "transform");
3886
4063
  const matrix = libredwg.dwg_ptr_to_double_array(transform_ptr, 12);
3887
- const inverse_transform_ptr = libredwg.dwg_dynapi_entity_value(
3888
- item,
3889
- "inverse_transform"
3890
- ).data;
4064
+ const inverse_transform_ptr = libredwg.dwg_dynapi_entity_data(item, "inverse_transform");
3891
4065
  const invertBlockMatrix = libredwg.dwg_ptr_to_double_array(
3892
4066
  inverse_transform_ptr,
3893
4067
  12
@@ -5547,6 +5721,54 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5547
5721
  dwg_resolve_handleref(ref_ptr, obj_ptr) {
5548
5722
  return this.wasmInstance.dwg_resolve_handleref(ref_ptr, obj_ptr);
5549
5723
  }
5724
+ /**
5725
+ * Returns the absolute handle reference of one Dwg_Object_Ref instance.
5726
+ * @group Handle Conversion Methods
5727
+ * @returns Returns null when the reference or absolute_ref is absent.
5728
+ */
5729
+ dwg_ref_get_absref(ref_ptr) {
5730
+ if (!ref_ptr) return null;
5731
+ const absref = this.wasmInstance.dwg_ref_get_absref(ref_ptr);
5732
+ return absref === 0 ? null : absref;
5733
+ }
5734
+ /**
5735
+ * Returns the handle value of one Dwg_Object_Ref instance.
5736
+ * @group Handle Conversion Methods
5737
+ * @returns Returns null when the reference or handle value is absent.
5738
+ */
5739
+ dwg_ref_get_handle_value(ref_ptr) {
5740
+ if (!ref_ptr) return null;
5741
+ const value = this.wasmInstance.dwg_ref_get_handle_value(ref_ptr);
5742
+ return value === 0n ? null : value;
5743
+ }
5744
+ /**
5745
+ * Returns the absolute_ref of one Dwg_Object_Ref instance as bigint.
5746
+ * @group Handle Conversion Methods
5747
+ * @returns Returns null when the reference or absolute_ref is absent.
5748
+ */
5749
+ dwg_ref_get_handle_absolute_ref(ref_ptr) {
5750
+ if (!ref_ptr) return null;
5751
+ const value = this.wasmInstance.dwg_ref_get_handle_absolute_ref(ref_ptr);
5752
+ return value === 0n ? null : value;
5753
+ }
5754
+ /**
5755
+ * Returns the handle value of one Dwg_Object instance.
5756
+ * @group Handle Conversion Methods
5757
+ * @returns Returns null when the object or handle value is absent.
5758
+ */
5759
+ dwg_obj_get_handle_value(obj_ptr) {
5760
+ if (!obj_ptr) return null;
5761
+ const value = this.wasmInstance.dwg_obj_get_handle_value(obj_ptr);
5762
+ return value === 0n ? null : value;
5763
+ }
5764
+ /**
5765
+ * Returns the absolute_ref of one Dwg_Object_Ref as uppercase hex handle id.
5766
+ * @group Handle Conversion Methods
5767
+ */
5768
+ dwg_ref_get_id(ref_ptr) {
5769
+ const absref = this.dwg_ref_get_absref(ref_ptr);
5770
+ return absref == null ? void 0 : absref.toString(16).toUpperCase();
5771
+ }
5550
5772
  /**
5551
5773
  * Returns object (such as line type, layer name, dimension style, and etc.) name by its handle.
5552
5774
  * @group Handle Conversion Methods
@@ -5557,7 +5779,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5557
5779
  const wasmInstance = this.wasmInstance;
5558
5780
  const obj = wasmInstance.dwg_ref_get_object(ref_ptr);
5559
5781
  const obj_tio = wasmInstance.dwg_object_to_object_tio(obj);
5560
- const obj_name = this.dwg_dynapi_entity_value(obj_tio, "name").data;
5782
+ const obj_name = this.dwg_dynapi_entity_data(obj_tio, "name");
5561
5783
  return obj_name;
5562
5784
  }
5563
5785
  /**
@@ -6065,6 +6287,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6065
6287
  }
6066
6288
  return value;
6067
6289
  }
6290
+ /**
6291
+ * Returns the decoded field data of one object or entity.
6292
+ * @group Dynamic API Methods
6293
+ */
6294
+ dwg_dynapi_entity_data(obj, field) {
6295
+ return this.dwg_dynapi_entity_value(obj, field).data;
6296
+ }
6068
6297
  /**
6069
6298
  * Header field value getter. Used to get the field value of dwg/dxf header.
6070
6299
  * @group Dynamic API Methods
@@ -6075,6 +6304,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6075
6304
  dwg_dynapi_header_value(data, field) {
6076
6305
  return this.wasmInstance.dwg_dynapi_header_value(data, field);
6077
6306
  }
6307
+ /**
6308
+ * Returns the field data of dwg/dxf header.
6309
+ * @group Dynamic API Methods
6310
+ */
6311
+ dwg_dynapi_header_data(data, field) {
6312
+ return this.dwg_dynapi_header_value(data, field).data;
6313
+ }
6078
6314
  /**
6079
6315
  * The common field value getter. Used to get the value of object or entity common fields.
6080
6316
  * @group Dynamic API Methods
@@ -6085,6 +6321,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6085
6321
  dwg_dynapi_common_value(obj, field) {
6086
6322
  return this.wasmInstance.dwg_dynapi_common_value(obj, field);
6087
6323
  }
6324
+ /**
6325
+ * Returns the field data of object or entity common fields.
6326
+ * @group Dynamic API Methods
6327
+ */
6328
+ dwg_dynapi_common_data(obj, field) {
6329
+ return this.dwg_dynapi_common_value(obj, field).data;
6330
+ }
6088
6331
  /**
6089
6332
  * The field of one object or entity may not be primitive type. It means one field may consist of
6090
6333
  * multiple sub-fields. This method is used to get the sub-field value of those complex field.
@@ -6097,6 +6340,31 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6097
6340
  dwg_dynapi_subclass_value(obj, subclass, field) {
6098
6341
  return this.wasmInstance.dwg_dynapi_subclass_value(obj, subclass, field);
6099
6342
  }
6343
+ /**
6344
+ * Returns the sub-field data of one complex field.
6345
+ * @group Dynamic API Methods
6346
+ */
6347
+ dwg_dynapi_subclass_data(obj, subclass, field) {
6348
+ return this.dwg_dynapi_subclass_value(obj, subclass, field).data;
6349
+ }
6350
+ /**
6351
+ * Returns the struct size of a dynapi subclass.
6352
+ */
6353
+ dwg_dynapi_subclass_size(subclass) {
6354
+ return this.wasmInstance.dwg_dynapi_subclass_size(subclass);
6355
+ }
6356
+ /**
6357
+ * Returns the byte offset of a field within an entity struct.
6358
+ */
6359
+ dwg_dynapi_entity_field_offset(entity, field) {
6360
+ return this.wasmInstance.dwg_dynapi_entity_field_offset(entity, field);
6361
+ }
6362
+ /**
6363
+ * Returns the byte offset of a field within a dynapi subclass struct.
6364
+ */
6365
+ dwg_dynapi_subclass_field_offset(subclass, field) {
6366
+ return this.wasmInstance.dwg_dynapi_subclass_field_offset(subclass, field);
6367
+ }
6100
6368
  /**
6101
6369
  * Returns the handle of one Dwg_Object instance.
6102
6370
  * @group Dwg_Object Methods
@@ -6208,7 +6476,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6208
6476
  */
6209
6477
  dwg_entity_get_block_name(ptr, field) {
6210
6478
  const wasmInstance = this.wasmInstance;
6211
- const block_header_ref = wasmInstance.dwg_dynapi_entity_value(ptr, field).data;
6479
+ const block_header_ref = this.dwg_dynapi_entity_data(ptr, field);
6212
6480
  const block_header_obj = wasmInstance.dwg_ref_get_object(block_header_ref);
6213
6481
  const block_header_tio = wasmInstance.dwg_object_to_object_tio(block_header_obj);
6214
6482
  const block = this.dwg_entity_block_header_get_block(block_header_tio);
@@ -6224,10 +6492,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6224
6492
  */
6225
6493
  dwg_entity_get_dimstyle_name(ptr, field = "dimstyle") {
6226
6494
  const wasmInstance = this.wasmInstance;
6227
- const dimstyle_ref = wasmInstance.dwg_dynapi_entity_value(ptr, field).data;
6495
+ const dimstyle_ref = this.dwg_dynapi_entity_data(ptr, field);
6228
6496
  const dimstyle_obj = wasmInstance.dwg_ref_get_object(dimstyle_ref);
6229
6497
  const dimstyle_tio = wasmInstance.dwg_object_to_object_tio(dimstyle_obj);
6230
- const dimstyle_name = this.dwg_dynapi_entity_value(dimstyle_tio, "name").data;
6498
+ const dimstyle_name = this.dwg_dynapi_entity_data(dimstyle_tio, "name");
6231
6499
  return dimstyle_name;
6232
6500
  }
6233
6501
  /**
@@ -6238,11 +6506,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6238
6506
  */
6239
6507
  dwg_entity_block_header_get_block(ptr) {
6240
6508
  const wasmInstance = this.wasmInstance;
6241
- const block_ref = wasmInstance.dwg_dynapi_entity_value(ptr, "block_entity").data;
6509
+ const block_ref = this.dwg_dynapi_entity_data(ptr, "block_entity");
6242
6510
  const block_obj = wasmInstance.dwg_ref_get_object(block_ref);
6243
6511
  const block_tio = wasmInstance.dwg_object_to_entity_tio(block_obj);
6244
- const name = wasmInstance.dwg_dynapi_entity_value(block_tio, "name").data;
6245
- const base_pt = wasmInstance.dwg_dynapi_entity_value(block_tio, "base_pt").data;
6512
+ const name = this.dwg_dynapi_entity_data(block_tio, "name");
6513
+ const base_pt = this.dwg_dynapi_entity_data(block_tio, "base_pt");
6246
6514
  return {
6247
6515
  name,
6248
6516
  base_pt
@@ -6312,10 +6580,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6312
6580
  */
6313
6581
  dwg_entity_mtext_get_style_name(ptr) {
6314
6582
  const wasmInstance = this.wasmInstance;
6315
- const style_ref = wasmInstance.dwg_dynapi_entity_value(ptr, "style").data;
6583
+ const style_ref = this.dwg_dynapi_entity_data(ptr, "style");
6316
6584
  const style_obj = wasmInstance.dwg_ref_get_object(style_ref);
6317
6585
  const style_tio = wasmInstance.dwg_object_to_object_tio(style_obj);
6318
- const name = wasmInstance.dwg_dynapi_entity_value(style_tio, "name").data;
6586
+ const name = this.dwg_dynapi_entity_data(style_tio, "name");
6319
6587
  return name;
6320
6588
  }
6321
6589
  /**