@mlightcad/data-model 1.11.3 → 1.12.0
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.
- package/README.md +19 -12
- package/dist/data-model.cjs +15 -12
- package/lib/acis/AcDbAcisDecrypt.d.ts +51 -0
- package/lib/acis/AcDbAcisDecrypt.d.ts.map +1 -0
- package/lib/acis/AcDbAcisDecrypt.js +98 -0
- package/lib/acis/AcDbAcisDecrypt.js.map +1 -0
- package/lib/acis/index.d.ts +1 -0
- package/lib/acis/index.d.ts.map +1 -1
- package/lib/acis/index.js +1 -0
- package/lib/acis/index.js.map +1 -1
- package/lib/base/AcDbDxfFiler.d.ts +140 -4
- package/lib/base/AcDbDxfFiler.d.ts.map +1 -1
- package/lib/base/AcDbDxfFiler.js +690 -9
- package/lib/base/AcDbDxfFiler.js.map +1 -1
- package/lib/base/AcDbDxfGroupCodeTypes.d.ts +12 -0
- package/lib/base/AcDbDxfGroupCodeTypes.d.ts.map +1 -0
- package/lib/base/AcDbDxfGroupCodeTypes.js +96 -0
- package/lib/base/AcDbDxfGroupCodeTypes.js.map +1 -0
- package/lib/base/AcDbDxfPair.d.ts +38 -0
- package/lib/base/AcDbDxfPair.d.ts.map +1 -0
- package/lib/base/AcDbDxfPair.js +2 -0
- package/lib/base/AcDbDxfPair.js.map +1 -0
- package/lib/base/AcDbDxfPairReader.d.ts +65 -0
- package/lib/base/AcDbDxfPairReader.d.ts.map +1 -0
- package/lib/base/AcDbDxfPairReader.js +539 -0
- package/lib/base/AcDbDxfPairReader.js.map +1 -0
- package/lib/base/AcDbDxfStringChunks.d.ts +41 -0
- package/lib/base/AcDbDxfStringChunks.d.ts.map +1 -0
- package/lib/base/AcDbDxfStringChunks.js +121 -0
- package/lib/base/AcDbDxfStringChunks.js.map +1 -0
- package/lib/base/AcDbObject.d.ts +40 -0
- package/lib/base/AcDbObject.d.ts.map +1 -1
- package/lib/base/AcDbObject.js +144 -14
- package/lib/base/AcDbObject.js.map +1 -1
- package/lib/base/index.d.ts +9 -2
- package/lib/base/index.d.ts.map +1 -1
- package/lib/base/index.js +4 -1
- package/lib/base/index.js.map +1 -1
- package/lib/converter/AcDbFontNameCollector.d.ts +4 -0
- package/lib/converter/AcDbFontNameCollector.d.ts.map +1 -1
- package/lib/converter/AcDbFontNameCollector.js +6 -0
- package/lib/converter/AcDbFontNameCollector.js.map +1 -1
- package/lib/database/AcDbBlockTableRecord.d.ts +18 -2
- package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbBlockTableRecord.js +67 -2
- package/lib/database/AcDbBlockTableRecord.js.map +1 -1
- package/lib/database/AcDbDatabase.d.ts +55 -8
- package/lib/database/AcDbDatabase.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.js +358 -76
- package/lib/database/AcDbDatabase.js.map +1 -1
- package/lib/database/AcDbDatabaseConverterManager.d.ts +5 -0
- package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -1
- package/lib/database/AcDbDatabaseConverterManager.js +5 -0
- package/lib/database/AcDbDatabaseConverterManager.js.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.d.ts +9 -0
- package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js +277 -0
- package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
- package/lib/database/AcDbDwgVersion.d.ts +37 -0
- package/lib/database/AcDbDwgVersion.d.ts.map +1 -1
- package/lib/database/AcDbDwgVersion.js +31 -6
- package/lib/database/AcDbDwgVersion.js.map +1 -1
- package/lib/database/AcDbLayerTableRecord.d.ts +1 -0
- package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbLayerTableRecord.js +52 -1
- package/lib/database/AcDbLayerTableRecord.js.map +1 -1
- package/lib/database/AcDbLinetypeTableRecord.d.ts +1 -0
- package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbLinetypeTableRecord.js +60 -0
- package/lib/database/AcDbLinetypeTableRecord.js.map +1 -1
- package/lib/database/AcDbRegAppTableRecord.d.ts +1 -0
- package/lib/database/AcDbRegAppTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbRegAppTableRecord.js +26 -0
- package/lib/database/AcDbRegAppTableRecord.js.map +1 -1
- package/lib/database/AcDbSystemVariables.d.ts +3 -1
- package/lib/database/AcDbSystemVariables.d.ts.map +1 -1
- package/lib/database/AcDbSystemVariables.js +2 -0
- package/lib/database/AcDbSystemVariables.js.map +1 -1
- package/lib/database/AcDbTextStyleTableRecord.d.ts +9 -0
- package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbTextStyleTableRecord.js +101 -0
- package/lib/database/AcDbTextStyleTableRecord.js.map +1 -1
- package/lib/database/AcDbUcsTable.d.ts +15 -0
- package/lib/database/AcDbUcsTable.d.ts.map +1 -0
- package/lib/database/AcDbUcsTable.js +33 -0
- package/lib/database/AcDbUcsTable.js.map +1 -0
- package/lib/database/AcDbUcsTableRecord.d.ts +75 -0
- package/lib/database/AcDbUcsTableRecord.d.ts.map +1 -0
- package/lib/database/AcDbUcsTableRecord.js +240 -0
- package/lib/database/AcDbUcsTableRecord.js.map +1 -0
- package/lib/database/AcDbViewTableRecord.d.ts +9 -0
- package/lib/database/AcDbViewTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbViewTableRecord.js +148 -0
- package/lib/database/AcDbViewTableRecord.js.map +1 -1
- package/lib/database/AcDbViewportTableRecord.d.ts +8 -0
- package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbViewportTableRecord.js +253 -1
- package/lib/database/AcDbViewportTableRecord.js.map +1 -1
- package/lib/database/index.d.ts +4 -1
- package/lib/database/index.d.ts.map +1 -1
- package/lib/database/index.js +2 -0
- package/lib/database/index.js.map +1 -1
- package/lib/dxf/AcDbDxfAcdsDataReader.d.ts +25 -0
- package/lib/dxf/AcDbDxfAcdsDataReader.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfAcdsDataReader.js +98 -0
- package/lib/dxf/AcDbDxfAcdsDataReader.js.map +1 -0
- package/lib/dxf/AcDbDxfDimensionAssembler.d.ts +10 -0
- package/lib/dxf/AcDbDxfDimensionAssembler.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfDimensionAssembler.js +149 -0
- package/lib/dxf/AcDbDxfDimensionAssembler.js.map +1 -0
- package/lib/dxf/AcDbDxfDocumentReader.d.ts +101 -0
- package/lib/dxf/AcDbDxfDocumentReader.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfDocumentReader.js +1100 -0
- package/lib/dxf/AcDbDxfDocumentReader.js.map +1 -0
- package/lib/dxf/AcDbDxfEntityFactory.d.ts +14 -0
- package/lib/dxf/AcDbDxfEntityFactory.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfEntityFactory.js +147 -0
- package/lib/dxf/AcDbDxfEntityFactory.js.map +1 -0
- package/lib/dxf/AcDbDxfHeaderReader.d.ts +9 -0
- package/lib/dxf/AcDbDxfHeaderReader.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfHeaderReader.js +248 -0
- package/lib/dxf/AcDbDxfHeaderReader.js.map +1 -0
- package/lib/dxf/AcDbDxfObjectsReader.d.ts +38 -0
- package/lib/dxf/AcDbDxfObjectsReader.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfObjectsReader.js +533 -0
- package/lib/dxf/AcDbDxfObjectsReader.js.map +1 -0
- package/lib/dxf/AcDbDxfPairArrayReader.d.ts +27 -0
- package/lib/dxf/AcDbDxfPairArrayReader.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfPairArrayReader.js +69 -0
- package/lib/dxf/AcDbDxfPairArrayReader.js.map +1 -0
- package/lib/dxf/AcDbDxfPolylineAssembler.d.ts +11 -0
- package/lib/dxf/AcDbDxfPolylineAssembler.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfPolylineAssembler.js +318 -0
- package/lib/dxf/AcDbDxfPolylineAssembler.js.map +1 -0
- package/lib/dxf/AcDbDxfVersionCaps.d.ts +8 -0
- package/lib/dxf/AcDbDxfVersionCaps.d.ts.map +1 -0
- package/lib/dxf/AcDbDxfVersionCaps.js +18 -0
- package/lib/dxf/AcDbDxfVersionCaps.js.map +1 -0
- package/lib/dxf/AcDbNativeDxfConverter.d.ts +30 -0
- package/lib/dxf/AcDbNativeDxfConverter.d.ts.map +1 -0
- package/lib/dxf/AcDbNativeDxfConverter.js +266 -0
- package/lib/dxf/AcDbNativeDxfConverter.js.map +1 -0
- package/lib/dxf/index.d.ts +12 -0
- package/lib/dxf/index.d.ts.map +1 -0
- package/lib/dxf/index.js +9 -0
- package/lib/dxf/index.js.map +1 -0
- package/lib/dxf/registerNativeDxfConverter.d.ts +2 -0
- package/lib/dxf/registerNativeDxfConverter.d.ts.map +1 -0
- package/lib/dxf/registerNativeDxfConverter.js +12 -0
- package/lib/dxf/registerNativeDxfConverter.js.map +1 -0
- package/lib/entity/AcDb3dSolid.d.ts +43 -0
- package/lib/entity/AcDb3dSolid.d.ts.map +1 -1
- package/lib/entity/AcDb3dSolid.js +154 -16
- package/lib/entity/AcDb3dSolid.js.map +1 -1
- package/lib/entity/AcDbArc.d.ts +9 -0
- package/lib/entity/AcDbArc.d.ts.map +1 -1
- package/lib/entity/AcDbArc.js +107 -3
- package/lib/entity/AcDbArc.js.map +1 -1
- package/lib/entity/AcDbAttribute.d.ts +1 -0
- package/lib/entity/AcDbAttribute.d.ts.map +1 -1
- package/lib/entity/AcDbAttribute.js +44 -0
- package/lib/entity/AcDbAttribute.js.map +1 -1
- package/lib/entity/AcDbAttributeDefinition.d.ts +1 -0
- package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
- package/lib/entity/AcDbAttributeDefinition.js +47 -0
- package/lib/entity/AcDbAttributeDefinition.js.map +1 -1
- package/lib/entity/AcDbBlockReference.d.ts +26 -0
- package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
- package/lib/entity/AcDbBlockReference.js +185 -5
- package/lib/entity/AcDbBlockReference.js.map +1 -1
- package/lib/entity/AcDbCircle.d.ts +9 -0
- package/lib/entity/AcDbCircle.d.ts.map +1 -1
- package/lib/entity/AcDbCircle.js +73 -1
- package/lib/entity/AcDbCircle.js.map +1 -1
- package/lib/entity/AcDbEllipse.d.ts +2 -0
- package/lib/entity/AcDbEllipse.d.ts.map +1 -1
- package/lib/entity/AcDbEllipse.js +71 -0
- package/lib/entity/AcDbEllipse.js.map +1 -1
- package/lib/entity/AcDbEntity.d.ts +12 -0
- package/lib/entity/AcDbEntity.d.ts.map +1 -1
- package/lib/entity/AcDbEntity.js +91 -1
- package/lib/entity/AcDbEntity.js.map +1 -1
- package/lib/entity/AcDbFace.d.ts +1 -0
- package/lib/entity/AcDbFace.d.ts.map +1 -1
- package/lib/entity/AcDbFace.js +49 -1
- package/lib/entity/AcDbFace.js.map +1 -1
- package/lib/entity/AcDbFcf.d.ts +1 -0
- package/lib/entity/AcDbFcf.d.ts.map +1 -1
- package/lib/entity/AcDbFcf.js +71 -0
- package/lib/entity/AcDbFcf.js.map +1 -1
- package/lib/entity/AcDbHatch.d.ts +17 -0
- package/lib/entity/AcDbHatch.d.ts.map +1 -1
- package/lib/entity/AcDbHatch.js +629 -4
- package/lib/entity/AcDbHatch.js.map +1 -1
- package/lib/entity/AcDbLeader.d.ts +1 -0
- package/lib/entity/AcDbLeader.d.ts.map +1 -1
- package/lib/entity/AcDbLeader.js +135 -0
- package/lib/entity/AcDbLeader.js.map +1 -1
- package/lib/entity/AcDbLine.d.ts +16 -1
- package/lib/entity/AcDbLine.d.ts.map +1 -1
- package/lib/entity/AcDbLine.js +102 -3
- package/lib/entity/AcDbLine.js.map +1 -1
- package/lib/entity/AcDbMLeader.d.ts +22 -0
- package/lib/entity/AcDbMLeader.d.ts.map +1 -1
- package/lib/entity/AcDbMLeader.js +871 -11
- package/lib/entity/AcDbMLeader.js.map +1 -1
- package/lib/entity/AcDbMLine.d.ts +1 -0
- package/lib/entity/AcDbMLine.d.ts.map +1 -1
- package/lib/entity/AcDbMLine.js +168 -0
- package/lib/entity/AcDbMLine.js.map +1 -1
- package/lib/entity/AcDbMText.d.ts +46 -1
- package/lib/entity/AcDbMText.d.ts.map +1 -1
- package/lib/entity/AcDbMText.js +278 -4
- package/lib/entity/AcDbMText.js.map +1 -1
- package/lib/entity/AcDbOle2Frame.d.ts +1 -0
- package/lib/entity/AcDbOle2Frame.d.ts.map +1 -1
- package/lib/entity/AcDbOle2Frame.js +83 -1
- package/lib/entity/AcDbOle2Frame.js.map +1 -1
- package/lib/entity/AcDbOleFrame.d.ts +1 -0
- package/lib/entity/AcDbOleFrame.d.ts.map +1 -1
- package/lib/entity/AcDbOleFrame.js +44 -1
- package/lib/entity/AcDbOleFrame.js.map +1 -1
- package/lib/entity/AcDbPoint.d.ts +27 -1
- package/lib/entity/AcDbPoint.d.ts.map +1 -1
- package/lib/entity/AcDbPoint.js +113 -2
- package/lib/entity/AcDbPoint.js.map +1 -1
- package/lib/entity/AcDbPolyline.d.ts +22 -1
- package/lib/entity/AcDbPolyline.d.ts.map +1 -1
- package/lib/entity/AcDbPolyline.js +195 -1
- package/lib/entity/AcDbPolyline.js.map +1 -1
- package/lib/entity/AcDbProxyEntity.d.ts +4 -2
- package/lib/entity/AcDbProxyEntity.d.ts.map +1 -1
- package/lib/entity/AcDbProxyEntity.js +55 -3
- package/lib/entity/AcDbProxyEntity.js.map +1 -1
- package/lib/entity/AcDbRasterImage.d.ts +16 -0
- package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
- package/lib/entity/AcDbRasterImage.js +156 -0
- package/lib/entity/AcDbRasterImage.js.map +1 -1
- package/lib/entity/AcDbRay.d.ts +1 -0
- package/lib/entity/AcDbRay.d.ts.map +1 -1
- package/lib/entity/AcDbRay.js +42 -0
- package/lib/entity/AcDbRay.js.map +1 -1
- package/lib/entity/AcDbShape.d.ts +1 -0
- package/lib/entity/AcDbShape.d.ts.map +1 -1
- package/lib/entity/AcDbShape.js +76 -1
- package/lib/entity/AcDbShape.js.map +1 -1
- package/lib/entity/AcDbSpline.d.ts +23 -1
- package/lib/entity/AcDbSpline.d.ts.map +1 -1
- package/lib/entity/AcDbSpline.js +226 -1
- package/lib/entity/AcDbSpline.js.map +1 -1
- package/lib/entity/AcDbTable.d.ts +5 -0
- package/lib/entity/AcDbTable.d.ts.map +1 -1
- package/lib/entity/AcDbTable.js +265 -1
- package/lib/entity/AcDbTable.js.map +1 -1
- package/lib/entity/AcDbText.d.ts +25 -1
- package/lib/entity/AcDbText.d.ts.map +1 -1
- package/lib/entity/AcDbText.js +175 -1
- package/lib/entity/AcDbText.js.map +1 -1
- package/lib/entity/AcDbTextExtentsHelpers.d.ts +2 -2
- package/lib/entity/AcDbTextExtentsHelpers.js +3 -3
- package/lib/entity/AcDbTextExtentsHelpers.js.map +1 -1
- package/lib/entity/AcDbTrace.d.ts +9 -1
- package/lib/entity/AcDbTrace.d.ts.map +1 -1
- package/lib/entity/AcDbTrace.js +84 -5
- package/lib/entity/AcDbTrace.js.map +1 -1
- package/lib/entity/AcDbViewport.d.ts +156 -0
- package/lib/entity/AcDbViewport.d.ts.map +1 -1
- package/lib/entity/AcDbViewport.js +852 -1
- package/lib/entity/AcDbViewport.js.map +1 -1
- package/lib/entity/AcDbXline.d.ts +1 -0
- package/lib/entity/AcDbXline.d.ts.map +1 -1
- package/lib/entity/AcDbXline.js +42 -0
- package/lib/entity/AcDbXline.js.map +1 -1
- package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts +1 -0
- package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDb3PointAngularDimension.js +163 -0
- package/lib/entity/dimension/AcDb3PointAngularDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbAlignedDimension.d.ts +2 -0
- package/lib/entity/dimension/AcDbAlignedDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbAlignedDimension.js +109 -2
- package/lib/entity/dimension/AcDbAlignedDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbArcDimension.d.ts +1 -0
- package/lib/entity/dimension/AcDbArcDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbArcDimension.js +68 -0
- package/lib/entity/dimension/AcDbArcDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbDiametricDimension.d.ts +1 -0
- package/lib/entity/dimension/AcDbDiametricDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbDiametricDimension.js +77 -0
- package/lib/entity/dimension/AcDbDiametricDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbDimension.d.ts +50 -1
- package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbDimension.js +176 -5
- package/lib/entity/dimension/AcDbDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbOrdinateDimension.d.ts +1 -0
- package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbOrdinateDimension.js +46 -0
- package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbRadialDimension.d.ts +1 -0
- package/lib/entity/dimension/AcDbRadialDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbRadialDimension.js +69 -0
- package/lib/entity/dimension/AcDbRadialDimension.js.map +1 -1
- package/lib/index.d.ts +7 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -3
- package/lib/index.js.map +1 -1
- package/lib/ly/AcLyLayerFilterIO.d.ts.map +1 -1
- package/lib/ly/AcLyLayerFilterIO.js +5 -0
- package/lib/ly/AcLyLayerFilterIO.js.map +1 -1
- package/lib/misc/AcDbMemoryEstimator.d.ts.map +1 -1
- package/lib/misc/AcDbMemoryEstimator.js +3 -0
- package/lib/misc/AcDbMemoryEstimator.js.map +1 -1
- package/lib/misc/index.d.ts +1 -1
- package/lib/misc/index.d.ts.map +1 -1
- package/lib/misc/index.js +1 -1
- package/lib/misc/index.js.map +1 -1
- package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts +6 -5
- package/lib/misc/proxyGraphic/AcDbProxyGraphic.d.ts.map +1 -1
- package/lib/misc/proxyGraphic/AcDbProxyGraphic.js +9 -36
- package/lib/misc/proxyGraphic/AcDbProxyGraphic.js.map +1 -1
- package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts +12 -0
- package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.d.ts.map +1 -1
- package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js +54 -0
- package/lib/misc/proxyGraphic/AcDbProxyGraphicBinaryStream.js.map +1 -1
- package/lib/misc/proxyGraphic/index.d.ts +1 -1
- package/lib/misc/proxyGraphic/index.d.ts.map +1 -1
- package/lib/misc/proxyGraphic/index.js +1 -1
- package/lib/misc/proxyGraphic/index.js.map +1 -1
- package/lib/object/AcDbDictionary.d.ts +7 -0
- package/lib/object/AcDbDictionary.d.ts.map +1 -1
- package/lib/object/AcDbDictionary.js +35 -0
- package/lib/object/AcDbDictionary.js.map +1 -1
- package/lib/object/AcDbFilter.d.ts +95 -0
- package/lib/object/AcDbFilter.d.ts.map +1 -1
- package/lib/object/AcDbFilter.js +256 -1
- package/lib/object/AcDbFilter.js.map +1 -1
- package/lib/object/AcDbGroup.d.ts +26 -0
- package/lib/object/AcDbGroup.d.ts.map +1 -0
- package/lib/object/AcDbGroup.js +171 -0
- package/lib/object/AcDbGroup.js.map +1 -0
- package/lib/object/AcDbIndex.d.ts +1 -0
- package/lib/object/AcDbIndex.d.ts.map +1 -1
- package/lib/object/AcDbIndex.js +23 -0
- package/lib/object/AcDbIndex.js.map +1 -1
- package/lib/object/AcDbLayerFilter.d.ts +1 -0
- package/lib/object/AcDbLayerFilter.d.ts.map +1 -1
- package/lib/object/AcDbLayerFilter.js +21 -0
- package/lib/object/AcDbLayerFilter.js.map +1 -1
- package/lib/object/AcDbLayerIndex.d.ts +1 -0
- package/lib/object/AcDbLayerIndex.d.ts.map +1 -1
- package/lib/object/AcDbLayerIndex.js +38 -0
- package/lib/object/AcDbLayerIndex.js.map +1 -1
- package/lib/object/AcDbMLeaderStyle.d.ts +1 -0
- package/lib/object/AcDbMLeaderStyle.d.ts.map +1 -1
- package/lib/object/AcDbMLeaderStyle.js +158 -1
- package/lib/object/AcDbMLeaderStyle.js.map +1 -1
- package/lib/object/AcDbMlineStyle.d.ts +2 -0
- package/lib/object/AcDbMlineStyle.d.ts.map +1 -1
- package/lib/object/AcDbMlineStyle.js +88 -0
- package/lib/object/AcDbMlineStyle.js.map +1 -1
- package/lib/object/AcDbRasterImageDef.d.ts +49 -0
- package/lib/object/AcDbRasterImageDef.d.ts.map +1 -1
- package/lib/object/AcDbRasterImageDef.js +136 -2
- package/lib/object/AcDbRasterImageDef.js.map +1 -1
- package/lib/object/AcDbSortentsTable.d.ts +14 -0
- package/lib/object/AcDbSortentsTable.d.ts.map +1 -0
- package/lib/object/AcDbSortentsTable.js +122 -0
- package/lib/object/AcDbSortentsTable.js.map +1 -0
- package/lib/object/AcDbXrecord.d.ts +8 -0
- package/lib/object/AcDbXrecord.d.ts.map +1 -1
- package/lib/object/AcDbXrecord.js +43 -2
- package/lib/object/AcDbXrecord.js.map +1 -1
- package/lib/object/index.d.ts +2 -0
- package/lib/object/index.d.ts.map +1 -1
- package/lib/object/index.js +2 -0
- package/lib/object/index.js.map +1 -1
- package/lib/object/layout/AcDbLayout.d.ts +60 -1
- package/lib/object/layout/AcDbLayout.d.ts.map +1 -1
- package/lib/object/layout/AcDbLayout.js +237 -1
- package/lib/object/layout/AcDbLayout.js.map +1 -1
- package/lib/object/layout/AcDbPlotSettings.d.ts +11 -0
- package/lib/object/layout/AcDbPlotSettings.d.ts.map +1 -1
- package/lib/object/layout/AcDbPlotSettings.js +143 -0
- package/lib/object/layout/AcDbPlotSettings.js.map +1 -1
- package/package.json +6 -5
package/lib/base/AcDbDxfFiler.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
var __values = (this && this.__values) || function(o) {
|
|
2
13
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
3
14
|
if (m) return m.call(o);
|
|
@@ -10,17 +21,55 @@ var __values = (this && this.__values) || function(o) {
|
|
|
10
21
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
11
22
|
};
|
|
12
23
|
import { AcCmTransparencyMethod } from '@mlightcad/common';
|
|
24
|
+
import { AcGePoint2d, AcGePoint3d, AcGeVector3d } from '@mlightcad/geometry-engine';
|
|
13
25
|
import { AcDbDwgVersion } from '../database/AcDbDwgVersion';
|
|
26
|
+
import { acdbDxfIsInt32Code, acdbDxfValueType } from './AcDbDxfGroupCodeTypes';
|
|
27
|
+
import { acdbCreateDxfPairReader, acdbMakeAsciiDxfPairReader } from './AcDbDxfPairReader';
|
|
28
|
+
import { ACDB_DXF_XDATA_BINARY_MAX_BYTES, ACDB_DXF_XDATA_STRING_MAX_BYTES, acdbChunkBinaryByMaxBytes, acdbChunkDxfMTextContents, acdbChunkUtf8ByMaxBytes } from './AcDbDxfStringChunks';
|
|
14
29
|
/**
|
|
15
|
-
*
|
|
30
|
+
* Lightweight status codes for DXF filing (ObjectARX-inspired).
|
|
31
|
+
*/
|
|
32
|
+
export var AcDbDxfFilerStatus;
|
|
33
|
+
(function (AcDbDxfFilerStatus) {
|
|
34
|
+
AcDbDxfFilerStatus[AcDbDxfFilerStatus["Ok"] = 0] = "Ok";
|
|
35
|
+
AcDbDxfFilerStatus[AcDbDxfFilerStatus["EndOfFile"] = 1] = "EndOfFile";
|
|
36
|
+
AcDbDxfFilerStatus[AcDbDxfFilerStatus["EndOfObject"] = 2] = "EndOfObject";
|
|
37
|
+
AcDbDxfFilerStatus[AcDbDxfFilerStatus["InvalidDxfCode"] = 3] = "InvalidDxfCode";
|
|
38
|
+
AcDbDxfFilerStatus[AcDbDxfFilerStatus["BadDxfSequence"] = 4] = "BadDxfSequence";
|
|
39
|
+
AcDbDxfFilerStatus[AcDbDxfFilerStatus["NotThatKindOfClass"] = 5] = "NotThatKindOfClass";
|
|
40
|
+
AcDbDxfFilerStatus[AcDbDxfFilerStatus["WrongMode"] = 6] = "WrongMode";
|
|
41
|
+
})(AcDbDxfFilerStatus || (AcDbDxfFilerStatus = {}));
|
|
42
|
+
/** Magic prefix for AutoCAD Binary DXF files (22 bytes). */
|
|
43
|
+
var BINARY_DXF_MAGIC = (function () {
|
|
44
|
+
var prefix = 'AutoCAD Binary DXF\r\n';
|
|
45
|
+
var bytes = new Uint8Array(22);
|
|
46
|
+
for (var i = 0; i < prefix.length; i++)
|
|
47
|
+
bytes[i] = prefix.charCodeAt(i);
|
|
48
|
+
bytes[20] = 0x1a;
|
|
49
|
+
bytes[21] = 0x00;
|
|
50
|
+
return bytes;
|
|
51
|
+
})();
|
|
52
|
+
/**
|
|
53
|
+
* DXF filer that mirrors the ObjectARX {@link AcDbDxfFiler} API.
|
|
16
54
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
55
|
+
* - **Write mode** (default): accumulates classic group-code ASCII DXF text,
|
|
56
|
+
* or binary DXF bytes when `outputFormat` is `'binary'`.
|
|
57
|
+
* - **Read mode**: pulls typed pairs from an {@link AcDbDxfPairReader} with
|
|
58
|
+
* `readItem` / `pushBackItem` / `atEndOfObject` / `atSubclassData`.
|
|
19
59
|
*/
|
|
20
60
|
var AcDbDxfFiler = /** @class */ (function () {
|
|
21
61
|
function AcDbDxfFiler(options) {
|
|
22
62
|
if (options === void 0) { options = {}; }
|
|
23
|
-
var _a;
|
|
63
|
+
var _a, _b;
|
|
64
|
+
this._binaryLength = 0;
|
|
65
|
+
/**
|
|
66
|
+
* Pushback stack for read mode (ObjectARX `pushBackItem`).
|
|
67
|
+
* LIFO: nested pushBacks are supported so a second push does not clobber
|
|
68
|
+
* the first.
|
|
69
|
+
*/
|
|
70
|
+
this._pushed = [];
|
|
71
|
+
this._status = AcDbDxfFilerStatus.Ok;
|
|
72
|
+
this._errorMessage = '';
|
|
24
73
|
this._database = options.database;
|
|
25
74
|
this._precision = Math.max(0, Math.min(16, (_a = options.precision) !== null && _a !== void 0 ? _a : 16));
|
|
26
75
|
this._version =
|
|
@@ -29,10 +78,39 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
29
78
|
: options.version != null
|
|
30
79
|
? new AcDbDwgVersion(options.version)
|
|
31
80
|
: undefined;
|
|
81
|
+
this._outputFormat = (_b = options.outputFormat) !== null && _b !== void 0 ? _b : 'ascii';
|
|
32
82
|
this._lines = [];
|
|
83
|
+
this._binaryChunks = [];
|
|
33
84
|
this._handleMap = new Map();
|
|
34
85
|
this._nextHandle = 1;
|
|
86
|
+
this._mode = options.reader ? 'read' : 'write';
|
|
87
|
+
this._reader = options.reader;
|
|
88
|
+
if (this._mode === 'write' && this._outputFormat === 'binary') {
|
|
89
|
+
this.appendBinary(BINARY_DXF_MAGIC);
|
|
90
|
+
}
|
|
35
91
|
}
|
|
92
|
+
/** Create a read-mode filer from an existing pair reader. */
|
|
93
|
+
AcDbDxfFiler.forReading = function (reader, options) {
|
|
94
|
+
if (options === void 0) { options = {}; }
|
|
95
|
+
return new AcDbDxfFiler(__assign(__assign({}, options), { reader: reader }));
|
|
96
|
+
};
|
|
97
|
+
/** Create a read-mode filer from DXF bytes (ASCII or binary). */
|
|
98
|
+
AcDbDxfFiler.fromBuffer = function (data, options) {
|
|
99
|
+
if (options === void 0) { options = {}; }
|
|
100
|
+
return AcDbDxfFiler.forReading(acdbCreateDxfPairReader(data), options);
|
|
101
|
+
};
|
|
102
|
+
/** Create a read-mode filer from an already-decoded ASCII DXF string. */
|
|
103
|
+
AcDbDxfFiler.fromString = function (text, options) {
|
|
104
|
+
if (options === void 0) { options = {}; }
|
|
105
|
+
return AcDbDxfFiler.forReading(acdbMakeAsciiDxfPairReader(text), options);
|
|
106
|
+
};
|
|
107
|
+
Object.defineProperty(AcDbDxfFiler.prototype, "mode", {
|
|
108
|
+
get: function () {
|
|
109
|
+
return this._mode;
|
|
110
|
+
},
|
|
111
|
+
enumerable: false,
|
|
112
|
+
configurable: true
|
|
113
|
+
});
|
|
36
114
|
Object.defineProperty(AcDbDxfFiler.prototype, "database", {
|
|
37
115
|
get: function () {
|
|
38
116
|
return this._database;
|
|
@@ -68,14 +146,68 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
68
146
|
enumerable: false,
|
|
69
147
|
configurable: true
|
|
70
148
|
});
|
|
149
|
+
Object.defineProperty(AcDbDxfFiler.prototype, "filerStatus", {
|
|
150
|
+
get: function () {
|
|
151
|
+
return this._status;
|
|
152
|
+
},
|
|
153
|
+
enumerable: false,
|
|
154
|
+
configurable: true
|
|
155
|
+
});
|
|
156
|
+
Object.defineProperty(AcDbDxfFiler.prototype, "errorMessage", {
|
|
157
|
+
get: function () {
|
|
158
|
+
return this._errorMessage;
|
|
159
|
+
},
|
|
160
|
+
enumerable: false,
|
|
161
|
+
configurable: true
|
|
162
|
+
});
|
|
71
163
|
AcDbDxfFiler.prototype.setVersion = function (value) {
|
|
72
164
|
this._version =
|
|
73
165
|
value instanceof AcDbDwgVersion ? value : new AcDbDwgVersion(value);
|
|
74
166
|
return this;
|
|
75
167
|
};
|
|
168
|
+
AcDbDxfFiler.prototype.setError = function (status, message) {
|
|
169
|
+
if (message === void 0) { message = ''; }
|
|
170
|
+
this._status = status;
|
|
171
|
+
this._errorMessage = message;
|
|
172
|
+
return this;
|
|
173
|
+
};
|
|
174
|
+
AcDbDxfFiler.prototype.resetStatus = function () {
|
|
175
|
+
this._status = AcDbDxfFilerStatus.Ok;
|
|
176
|
+
this._errorMessage = '';
|
|
177
|
+
return this;
|
|
178
|
+
};
|
|
76
179
|
AcDbDxfFiler.prototype.toString = function () {
|
|
180
|
+
this.assertWriteMode();
|
|
181
|
+
if (this._outputFormat === 'binary') {
|
|
182
|
+
throw new Error('Use toBinary() for binary DXF output');
|
|
183
|
+
}
|
|
77
184
|
return this._lines.join('\n') + '\n';
|
|
78
185
|
};
|
|
186
|
+
/** Finalize binary DXF bytes (includes magic prefix). */
|
|
187
|
+
AcDbDxfFiler.prototype.toBinary = function () {
|
|
188
|
+
var e_1, _a;
|
|
189
|
+
this.assertWriteMode();
|
|
190
|
+
if (this._outputFormat !== 'binary') {
|
|
191
|
+
throw new Error('Filer is not in binary output mode');
|
|
192
|
+
}
|
|
193
|
+
var out = new Uint8Array(this._binaryLength);
|
|
194
|
+
var offset = 0;
|
|
195
|
+
try {
|
|
196
|
+
for (var _b = __values(this._binaryChunks), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
197
|
+
var chunk = _c.value;
|
|
198
|
+
out.set(chunk, offset);
|
|
199
|
+
offset += chunk.length;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
203
|
+
finally {
|
|
204
|
+
try {
|
|
205
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
206
|
+
}
|
|
207
|
+
finally { if (e_1) throw e_1.error; }
|
|
208
|
+
}
|
|
209
|
+
return out;
|
|
210
|
+
};
|
|
79
211
|
AcDbDxfFiler.prototype.registerHandle = function (key) {
|
|
80
212
|
if (!this._handleMap.has(key)) {
|
|
81
213
|
// If key is already a valid hex handle, preserve it
|
|
@@ -94,9 +226,265 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
94
226
|
return undefined;
|
|
95
227
|
return this.registerHandle(key);
|
|
96
228
|
};
|
|
229
|
+
Object.defineProperty(AcDbDxfFiler.prototype, "atEof", {
|
|
230
|
+
// ---------------------------------------------------------------------------
|
|
231
|
+
// Read API (ObjectARX-inspired)
|
|
232
|
+
// ---------------------------------------------------------------------------
|
|
233
|
+
/** True if no more pairs are available. */
|
|
234
|
+
get: function () {
|
|
235
|
+
var _a;
|
|
236
|
+
if (this._mode !== 'read')
|
|
237
|
+
return false;
|
|
238
|
+
if (this._pushed.length > 0)
|
|
239
|
+
return false;
|
|
240
|
+
return ((_a = this._reader) === null || _a === void 0 ? void 0 : _a.peek()) === undefined;
|
|
241
|
+
},
|
|
242
|
+
enumerable: false,
|
|
243
|
+
configurable: true
|
|
244
|
+
});
|
|
245
|
+
/**
|
|
246
|
+
* Current read position in the underlying pair stream.
|
|
247
|
+
* Useful for byte-based parse progress while streaming a DXF.
|
|
248
|
+
*/
|
|
249
|
+
AcDbDxfFiler.prototype.position = function () {
|
|
250
|
+
if (this._mode !== 'read' || !this._reader) {
|
|
251
|
+
return { byteOffset: 0 };
|
|
252
|
+
}
|
|
253
|
+
return this._reader.position();
|
|
254
|
+
};
|
|
255
|
+
Object.defineProperty(AcDbDxfFiler.prototype, "atEndOfObject", {
|
|
256
|
+
/**
|
|
257
|
+
* True if the next pair starts a new object (group code 0) or EOF.
|
|
258
|
+
* Does not consume the pair.
|
|
259
|
+
*/
|
|
260
|
+
get: function () {
|
|
261
|
+
if (this._mode !== 'read')
|
|
262
|
+
return true;
|
|
263
|
+
var next = this.peekPair();
|
|
264
|
+
return next === undefined || next.code === 0;
|
|
265
|
+
},
|
|
266
|
+
enumerable: false,
|
|
267
|
+
configurable: true
|
|
268
|
+
});
|
|
269
|
+
Object.defineProperty(AcDbDxfFiler.prototype, "atExtendedData", {
|
|
270
|
+
/** True if the next pair is XDATA start (1001) or similar extended data. */
|
|
271
|
+
get: function () {
|
|
272
|
+
if (this._mode !== 'read')
|
|
273
|
+
return false;
|
|
274
|
+
var next = this.peekPair();
|
|
275
|
+
if (!next)
|
|
276
|
+
return false;
|
|
277
|
+
return next.code === 1001 || next.code === 1000 || next.code === 1002;
|
|
278
|
+
},
|
|
279
|
+
enumerable: false,
|
|
280
|
+
configurable: true
|
|
281
|
+
});
|
|
282
|
+
/**
|
|
283
|
+
* Advance past subclass marker (100, name) if present.
|
|
284
|
+
* Returns true when positioned at the named subclass data.
|
|
285
|
+
*/
|
|
286
|
+
AcDbDxfFiler.prototype.atSubclassData = function (name) {
|
|
287
|
+
if (this._mode !== 'read')
|
|
288
|
+
return false;
|
|
289
|
+
var next = this.peekPair();
|
|
290
|
+
if (!next || next.code !== 100)
|
|
291
|
+
return false;
|
|
292
|
+
if (typeof next.value !== 'string' || next.value !== name)
|
|
293
|
+
return false;
|
|
294
|
+
this.readPair();
|
|
295
|
+
return true;
|
|
296
|
+
};
|
|
297
|
+
/** Peek the next pair without consuming it. */
|
|
298
|
+
AcDbDxfFiler.prototype.peekItem = function () {
|
|
299
|
+
var pair = this.peekPair();
|
|
300
|
+
return pair ? this.pairToTypedValue(pair) : undefined;
|
|
301
|
+
};
|
|
302
|
+
/**
|
|
303
|
+
* Read one DXF item into a typed value (ObjectARX `readItem`).
|
|
304
|
+
* Returns undefined at EOF and sets {@link filerStatus} to EndOfFile.
|
|
305
|
+
*/
|
|
306
|
+
AcDbDxfFiler.prototype.readItem = function () {
|
|
307
|
+
var pair = this.readPair();
|
|
308
|
+
if (!pair) {
|
|
309
|
+
this._status = AcDbDxfFilerStatus.EndOfFile;
|
|
310
|
+
return undefined;
|
|
311
|
+
}
|
|
312
|
+
this._status = AcDbDxfFilerStatus.Ok;
|
|
313
|
+
return this.pairToTypedValue(pair);
|
|
314
|
+
};
|
|
315
|
+
/**
|
|
316
|
+
* Push the last-read (or provided) pair back so the next read returns it.
|
|
317
|
+
* Multiple pushbacks form a LIFO stack (nested readers can push without
|
|
318
|
+
* overwriting a prior push).
|
|
319
|
+
*/
|
|
320
|
+
AcDbDxfFiler.prototype.pushBackItem = function (item) {
|
|
321
|
+
if (item && 'type' in item) {
|
|
322
|
+
this._pushed.push(item);
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
if (item) {
|
|
326
|
+
this._pushed.push(this.typedValueToPair(item));
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
// No-arg form: re-push the last consumed pair.
|
|
330
|
+
if (this._lastRead) {
|
|
331
|
+
this._pushed.push(this._lastRead);
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
/** Skip pairs until the next object boundary (code 0) without consuming it. */
|
|
335
|
+
AcDbDxfFiler.prototype.skipToEndOfObject = function () {
|
|
336
|
+
while (!this.atEndOfObject && !this.atEof) {
|
|
337
|
+
this.readPair();
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
AcDbDxfFiler.prototype.readString = function (expectedCode) {
|
|
341
|
+
var pair = this.readPair();
|
|
342
|
+
if (!pair)
|
|
343
|
+
return undefined;
|
|
344
|
+
if (expectedCode != null && pair.code !== expectedCode) {
|
|
345
|
+
this.pushBackPair(pair);
|
|
346
|
+
this.setError(AcDbDxfFilerStatus.InvalidDxfCode, "Expected group code ".concat(expectedCode, ", got ").concat(pair.code));
|
|
347
|
+
return undefined;
|
|
348
|
+
}
|
|
349
|
+
if (pair.type === 'string' || pair.type === 'handle')
|
|
350
|
+
return pair.value;
|
|
351
|
+
return String(pair.value);
|
|
352
|
+
};
|
|
353
|
+
AcDbDxfFiler.prototype.readInt16 = function (expectedCode) {
|
|
354
|
+
return this.readNumber(expectedCode);
|
|
355
|
+
};
|
|
356
|
+
AcDbDxfFiler.prototype.readInt32 = function (expectedCode) {
|
|
357
|
+
return this.readNumber(expectedCode);
|
|
358
|
+
};
|
|
359
|
+
AcDbDxfFiler.prototype.readInt64 = function (expectedCode) {
|
|
360
|
+
var pair = this.readPair();
|
|
361
|
+
if (!pair)
|
|
362
|
+
return undefined;
|
|
363
|
+
if (expectedCode != null && pair.code !== expectedCode) {
|
|
364
|
+
this.pushBackPair(pair);
|
|
365
|
+
this.setError(AcDbDxfFilerStatus.InvalidDxfCode, "Expected group code ".concat(expectedCode, ", got ").concat(pair.code));
|
|
366
|
+
return undefined;
|
|
367
|
+
}
|
|
368
|
+
if (pair.type === 'long' || pair.type === 'int' || pair.type === 'double') {
|
|
369
|
+
return pair.value;
|
|
370
|
+
}
|
|
371
|
+
if (pair.type === 'bool')
|
|
372
|
+
return pair.value ? 1 : 0;
|
|
373
|
+
var n = Number(pair.value);
|
|
374
|
+
return Number.isFinite(n) ? n : 0;
|
|
375
|
+
};
|
|
376
|
+
AcDbDxfFiler.prototype.readDouble = function (expectedCode) {
|
|
377
|
+
return this.readNumber(expectedCode);
|
|
378
|
+
};
|
|
379
|
+
AcDbDxfFiler.prototype.readBoolean = function (expectedCode) {
|
|
380
|
+
var pair = this.readPair();
|
|
381
|
+
if (!pair)
|
|
382
|
+
return undefined;
|
|
383
|
+
if (expectedCode != null && pair.code !== expectedCode) {
|
|
384
|
+
this.pushBackPair(pair);
|
|
385
|
+
this.setError(AcDbDxfFilerStatus.InvalidDxfCode, "Expected group code ".concat(expectedCode, ", got ").concat(pair.code));
|
|
386
|
+
return undefined;
|
|
387
|
+
}
|
|
388
|
+
if (pair.type === 'bool')
|
|
389
|
+
return pair.value;
|
|
390
|
+
if (typeof pair.value === 'number')
|
|
391
|
+
return pair.value !== 0;
|
|
392
|
+
if (typeof pair.value === 'string') {
|
|
393
|
+
return pair.value !== '0' && pair.value !== '';
|
|
394
|
+
}
|
|
395
|
+
return Boolean(pair.value);
|
|
396
|
+
};
|
|
397
|
+
AcDbDxfFiler.prototype.readHandle = function (expectedCode) {
|
|
398
|
+
var pair = this.readPair();
|
|
399
|
+
if (!pair)
|
|
400
|
+
return undefined;
|
|
401
|
+
if (expectedCode != null && pair.code !== expectedCode) {
|
|
402
|
+
this.pushBackPair(pair);
|
|
403
|
+
this.setError(AcDbDxfFilerStatus.InvalidDxfCode, "Expected group code ".concat(expectedCode, ", got ").concat(pair.code));
|
|
404
|
+
return undefined;
|
|
405
|
+
}
|
|
406
|
+
if (pair.type === 'handle' || pair.type === 'string')
|
|
407
|
+
return pair.value;
|
|
408
|
+
return String(pair.value);
|
|
409
|
+
};
|
|
410
|
+
AcDbDxfFiler.prototype.readObjectId = function (expectedCode) {
|
|
411
|
+
return this.readHandle(expectedCode);
|
|
412
|
+
};
|
|
413
|
+
/**
|
|
414
|
+
* Read a 2D point starting at `code` (x), then `code+10` (y).
|
|
415
|
+
* Tolerates missing Y (defaults to 0) when the next code is not code+10.
|
|
416
|
+
*/
|
|
417
|
+
AcDbDxfFiler.prototype.readPoint2d = function (code) {
|
|
418
|
+
var _a;
|
|
419
|
+
var x = this.readDouble(code);
|
|
420
|
+
if (x === undefined)
|
|
421
|
+
return undefined;
|
|
422
|
+
var next = this.peekPair();
|
|
423
|
+
var y = 0;
|
|
424
|
+
if (next && next.code === code + 10) {
|
|
425
|
+
y = (_a = this.readNumber()) !== null && _a !== void 0 ? _a : 0;
|
|
426
|
+
}
|
|
427
|
+
return new AcGePoint2d(x, y);
|
|
428
|
+
};
|
|
429
|
+
/**
|
|
430
|
+
* Read a 3D point starting at `code` (x), then `code+10` / `code+20`.
|
|
431
|
+
* Missing Y/Z default to 0 when those group codes are absent.
|
|
432
|
+
*/
|
|
433
|
+
AcDbDxfFiler.prototype.readPoint3d = function (code) {
|
|
434
|
+
var _a, _b;
|
|
435
|
+
var x = this.readDouble(code);
|
|
436
|
+
if (x === undefined)
|
|
437
|
+
return undefined;
|
|
438
|
+
var y = 0;
|
|
439
|
+
var z = 0;
|
|
440
|
+
var n1 = this.peekPair();
|
|
441
|
+
if (n1 && n1.code === code + 10) {
|
|
442
|
+
y = (_a = this.readNumber()) !== null && _a !== void 0 ? _a : 0;
|
|
443
|
+
}
|
|
444
|
+
var n2 = this.peekPair();
|
|
445
|
+
if (n2 && n2.code === code + 20) {
|
|
446
|
+
z = (_b = this.readNumber()) !== null && _b !== void 0 ? _b : 0;
|
|
447
|
+
}
|
|
448
|
+
return new AcGePoint3d(x, y, z);
|
|
449
|
+
};
|
|
450
|
+
AcDbDxfFiler.prototype.readVector3d = function (code) {
|
|
451
|
+
var p = this.readPoint3d(code);
|
|
452
|
+
return p ? new AcGeVector3d(p.x, p.y, p.z) : undefined;
|
|
453
|
+
};
|
|
454
|
+
/**
|
|
455
|
+
* Apply color group codes (62 ACI / 420 true color) onto `color` when the
|
|
456
|
+
* current pair matches. Returns true if a color code was consumed.
|
|
457
|
+
*/
|
|
458
|
+
AcDbDxfFiler.prototype.readCmColorInto = function (color, aciCode, trueColorCode) {
|
|
459
|
+
if (aciCode === void 0) { aciCode = 62; }
|
|
460
|
+
if (trueColorCode === void 0) { trueColorCode = 420; }
|
|
461
|
+
var next = this.peekPair();
|
|
462
|
+
if (!next)
|
|
463
|
+
return false;
|
|
464
|
+
if (next.code === aciCode) {
|
|
465
|
+
var v = this.readNumber();
|
|
466
|
+
if (v != null)
|
|
467
|
+
color.colorIndex = v;
|
|
468
|
+
return true;
|
|
469
|
+
}
|
|
470
|
+
if (next.code === trueColorCode) {
|
|
471
|
+
var v = this.readNumber();
|
|
472
|
+
if (v != null)
|
|
473
|
+
color.setRGBValue(v);
|
|
474
|
+
return true;
|
|
475
|
+
}
|
|
476
|
+
return false;
|
|
477
|
+
};
|
|
478
|
+
// ---------------------------------------------------------------------------
|
|
479
|
+
// Write API
|
|
480
|
+
// ---------------------------------------------------------------------------
|
|
97
481
|
AcDbDxfFiler.prototype.writeGroup = function (code, value) {
|
|
482
|
+
this.assertWriteMode();
|
|
98
483
|
if (value == null)
|
|
99
484
|
return this;
|
|
485
|
+
if (this._outputFormat === 'binary') {
|
|
486
|
+
return this.writeBinaryGroup(code, value);
|
|
487
|
+
}
|
|
100
488
|
this._lines.push(String(Math.trunc(code)));
|
|
101
489
|
var text = this.formatValue(value);
|
|
102
490
|
// Never emit an empty value line — it breaks DXF pairing (e.g. "70\n\n4") and
|
|
@@ -107,7 +495,21 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
107
495
|
AcDbDxfFiler.prototype.writeStart = function (value) {
|
|
108
496
|
return this.writeString(0, value);
|
|
109
497
|
};
|
|
498
|
+
Object.defineProperty(AcDbDxfFiler.prototype, "capabilities", {
|
|
499
|
+
/**
|
|
500
|
+
* DXF dialect capabilities for the target write version.
|
|
501
|
+
* When version is unset (ad-hoc writers / unit tests), treat as latest.
|
|
502
|
+
*/
|
|
503
|
+
get: function () {
|
|
504
|
+
var _a;
|
|
505
|
+
return ((_a = this._version) !== null && _a !== void 0 ? _a : AcDbDwgVersion.latest).capabilities;
|
|
506
|
+
},
|
|
507
|
+
enumerable: false,
|
|
508
|
+
configurable: true
|
|
509
|
+
});
|
|
110
510
|
AcDbDxfFiler.prototype.writeSubclassMarker = function (value) {
|
|
511
|
+
if (!this.capabilities.supportsSubclassMarkers)
|
|
512
|
+
return this;
|
|
111
513
|
return this.writeString(100, value);
|
|
112
514
|
};
|
|
113
515
|
AcDbDxfFiler.prototype.writeString = function (code, value) {
|
|
@@ -115,6 +517,27 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
115
517
|
return this;
|
|
116
518
|
return this.writeGroup(code, value);
|
|
117
519
|
};
|
|
520
|
+
/**
|
|
521
|
+
* Write MTEXT (or embedded-MTEXT) contents using AutoCAD's group 3 / group 1
|
|
522
|
+
* 250-character chunking rules.
|
|
523
|
+
*/
|
|
524
|
+
AcDbDxfFiler.prototype.writeMTextContents = function (text) {
|
|
525
|
+
var e_2, _a;
|
|
526
|
+
try {
|
|
527
|
+
for (var _b = __values(acdbChunkDxfMTextContents(text !== null && text !== void 0 ? text : '')), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
528
|
+
var chunk = _c.value;
|
|
529
|
+
this.writeString(chunk.code, chunk.value);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
533
|
+
finally {
|
|
534
|
+
try {
|
|
535
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
536
|
+
}
|
|
537
|
+
finally { if (e_2) throw e_2.error; }
|
|
538
|
+
}
|
|
539
|
+
return this;
|
|
540
|
+
};
|
|
118
541
|
AcDbDxfFiler.prototype.writeInt8 = function (code, value) {
|
|
119
542
|
return value == null ? this : this.writeGroup(code, Math.trunc(value));
|
|
120
543
|
};
|
|
@@ -150,12 +573,20 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
150
573
|
return this.writeDouble(code, (radians * 180) / Math.PI);
|
|
151
574
|
};
|
|
152
575
|
AcDbDxfFiler.prototype.writeHandle = function (code, key) {
|
|
576
|
+
if (!this.capabilities.supportsHandles)
|
|
577
|
+
return this;
|
|
153
578
|
var handle = this.resolveHandle(key);
|
|
154
579
|
return handle ? this.writeString(code, handle) : this;
|
|
155
580
|
};
|
|
156
581
|
AcDbDxfFiler.prototype.writeObjectId = function (code, objectId) {
|
|
157
582
|
return this.writeHandle(code, objectId);
|
|
158
583
|
};
|
|
584
|
+
/** Lineweight (group 370). Omitted for DXF targets before AutoCAD 2000. */
|
|
585
|
+
AcDbDxfFiler.prototype.writeLineWeight = function (code, value) {
|
|
586
|
+
if (value == null || !this.capabilities.supportsLineWeight)
|
|
587
|
+
return this;
|
|
588
|
+
return this.writeInt16(code, value);
|
|
589
|
+
};
|
|
159
590
|
AcDbDxfFiler.prototype.writePoint2d = function (code, point) {
|
|
160
591
|
if (!point)
|
|
161
592
|
return this;
|
|
@@ -192,34 +623,89 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
192
623
|
}
|
|
193
624
|
var rgb = color.RGB;
|
|
194
625
|
if (rgb != null && color.colorIndex == null) {
|
|
195
|
-
this.
|
|
626
|
+
if (this.capabilities.supportsTrueColor) {
|
|
627
|
+
this.writeInt32(trueColorCode, rgb);
|
|
628
|
+
}
|
|
629
|
+
else {
|
|
630
|
+
// Pre-2004 DXF has no 420 — fall back to ACI white.
|
|
631
|
+
this.writeInt16(aciCode, 7);
|
|
632
|
+
}
|
|
196
633
|
}
|
|
197
634
|
return this;
|
|
198
635
|
};
|
|
199
636
|
AcDbDxfFiler.prototype.writeTransparency = function (transparency, code) {
|
|
200
637
|
if (code === void 0) { code = 440; }
|
|
201
638
|
if (!transparency ||
|
|
202
|
-
transparency.method === AcCmTransparencyMethod.ErrorValue
|
|
639
|
+
transparency.method === AcCmTransparencyMethod.ErrorValue ||
|
|
640
|
+
!this.capabilities.supportsTransparency) {
|
|
203
641
|
return this;
|
|
204
642
|
}
|
|
205
643
|
return this.writeInt32(code, transparency.serialize());
|
|
206
644
|
};
|
|
207
645
|
AcDbDxfFiler.prototype.writeResultBuffer = function (data) {
|
|
208
|
-
var
|
|
646
|
+
var e_3, _a, e_4, _b, e_5, _c;
|
|
209
647
|
if (!data)
|
|
210
648
|
return this;
|
|
211
649
|
try {
|
|
212
650
|
for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
|
|
213
651
|
var item = data_1_1.value;
|
|
652
|
+
var code = Number(item.code);
|
|
653
|
+
// XData ASCII strings are limited to 255 bytes per group 1000.
|
|
654
|
+
if (code === 1000 && typeof item.value === 'string') {
|
|
655
|
+
try {
|
|
656
|
+
for (var _d = (e_4 = void 0, __values(acdbChunkUtf8ByMaxBytes(item.value, ACDB_DXF_XDATA_STRING_MAX_BYTES))), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
657
|
+
var chunk = _e.value;
|
|
658
|
+
this.writeGroup(1000, chunk);
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
662
|
+
finally {
|
|
663
|
+
try {
|
|
664
|
+
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
|
|
665
|
+
}
|
|
666
|
+
finally { if (e_4) throw e_4.error; }
|
|
667
|
+
}
|
|
668
|
+
continue;
|
|
669
|
+
}
|
|
670
|
+
// XData binary chunks are limited to 127 bytes per group 1004.
|
|
671
|
+
if (code === 1004) {
|
|
672
|
+
var bytes = item.value instanceof Uint8Array
|
|
673
|
+
? item.value
|
|
674
|
+
: typeof item.value === 'string'
|
|
675
|
+
? acdbHexToBytes(item.value)
|
|
676
|
+
: undefined;
|
|
677
|
+
if (bytes) {
|
|
678
|
+
try {
|
|
679
|
+
for (var _f = (e_5 = void 0, __values(acdbChunkBinaryByMaxBytes(bytes, ACDB_DXF_XDATA_BINARY_MAX_BYTES))), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
680
|
+
var chunk = _g.value;
|
|
681
|
+
// ASCII DXF stores 1004 as hex; binary DXF stores raw bytes.
|
|
682
|
+
if (this._outputFormat === 'binary') {
|
|
683
|
+
this.writeGroup(1004, chunk);
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
this.writeGroup(1004, acdbBytesToHex(chunk));
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
691
|
+
finally {
|
|
692
|
+
try {
|
|
693
|
+
if (_g && !_g.done && (_c = _f.return)) _c.call(_f);
|
|
694
|
+
}
|
|
695
|
+
finally { if (e_5) throw e_5.error; }
|
|
696
|
+
}
|
|
697
|
+
continue;
|
|
698
|
+
}
|
|
699
|
+
}
|
|
214
700
|
this.writeGroup(item.code, item.value);
|
|
215
701
|
}
|
|
216
702
|
}
|
|
217
|
-
catch (
|
|
703
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
218
704
|
finally {
|
|
219
705
|
try {
|
|
220
706
|
if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
|
|
221
707
|
}
|
|
222
|
-
finally { if (
|
|
708
|
+
finally { if (e_3) throw e_3.error; }
|
|
223
709
|
}
|
|
224
710
|
return this;
|
|
225
711
|
};
|
|
@@ -241,6 +727,181 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
241
727
|
this.writeStart('ENDTAB');
|
|
242
728
|
return this;
|
|
243
729
|
};
|
|
730
|
+
// ---------------------------------------------------------------------------
|
|
731
|
+
// Internals
|
|
732
|
+
// ---------------------------------------------------------------------------
|
|
733
|
+
AcDbDxfFiler.prototype.assertWriteMode = function () {
|
|
734
|
+
if (this._mode !== 'write') {
|
|
735
|
+
throw new Error('AcDbDxfFiler is in read mode');
|
|
736
|
+
}
|
|
737
|
+
};
|
|
738
|
+
AcDbDxfFiler.prototype.appendBinary = function (bytes) {
|
|
739
|
+
this._binaryChunks.push(bytes);
|
|
740
|
+
this._binaryLength += bytes.length;
|
|
741
|
+
};
|
|
742
|
+
AcDbDxfFiler.prototype.writeBinaryCode = function (code) {
|
|
743
|
+
var truncated = Math.trunc(code) & 0xffff;
|
|
744
|
+
// AC1009 binary DXF uses 1-byte codes with 0xFF escape for codes > 255.
|
|
745
|
+
var legacyR12 = !this.capabilities.supportsSubclassMarkers;
|
|
746
|
+
if (legacyR12) {
|
|
747
|
+
if (truncated <= 0xff) {
|
|
748
|
+
this.appendBinary(Uint8Array.of(truncated));
|
|
749
|
+
}
|
|
750
|
+
else {
|
|
751
|
+
this.appendBinary(Uint8Array.of(0xff, truncated & 0xff, (truncated >> 8) & 0xff));
|
|
752
|
+
}
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
755
|
+
var buf = new Uint8Array(2);
|
|
756
|
+
new DataView(buf.buffer).setUint16(0, truncated, true);
|
|
757
|
+
this.appendBinary(buf);
|
|
758
|
+
};
|
|
759
|
+
AcDbDxfFiler.prototype.writeBinaryGroup = function (code, value) {
|
|
760
|
+
var type = acdbDxfValueType(Math.trunc(code));
|
|
761
|
+
this.writeBinaryCode(Math.trunc(code));
|
|
762
|
+
switch (type) {
|
|
763
|
+
case 'string':
|
|
764
|
+
case 'handle': {
|
|
765
|
+
var text = typeof value === 'string'
|
|
766
|
+
? this.sanitizeStringForDxfLine(value)
|
|
767
|
+
: this.formatValue(value);
|
|
768
|
+
var encoded = new TextEncoder().encode(text === '' ? '0' : text);
|
|
769
|
+
var withNul = new Uint8Array(encoded.length + 1);
|
|
770
|
+
withNul.set(encoded);
|
|
771
|
+
withNul[encoded.length] = 0;
|
|
772
|
+
this.appendBinary(withNul);
|
|
773
|
+
break;
|
|
774
|
+
}
|
|
775
|
+
case 'int': {
|
|
776
|
+
var n = Math.trunc(Number(value)) || 0;
|
|
777
|
+
if (acdbDxfIsInt32Code(Math.trunc(code))) {
|
|
778
|
+
var buf = new Uint8Array(4);
|
|
779
|
+
new DataView(buf.buffer).setInt32(0, n, true);
|
|
780
|
+
this.appendBinary(buf);
|
|
781
|
+
}
|
|
782
|
+
else {
|
|
783
|
+
var buf = new Uint8Array(2);
|
|
784
|
+
new DataView(buf.buffer).setInt16(0, n, true);
|
|
785
|
+
this.appendBinary(buf);
|
|
786
|
+
}
|
|
787
|
+
break;
|
|
788
|
+
}
|
|
789
|
+
case 'long': {
|
|
790
|
+
var buf = new Uint8Array(8);
|
|
791
|
+
var view = new DataView(buf.buffer);
|
|
792
|
+
if (typeof value === 'bigint') {
|
|
793
|
+
view.setBigInt64(0, value, true);
|
|
794
|
+
}
|
|
795
|
+
else {
|
|
796
|
+
view.setBigInt64(0, BigInt(Math.trunc(Number(value)) || 0), true);
|
|
797
|
+
}
|
|
798
|
+
this.appendBinary(buf);
|
|
799
|
+
break;
|
|
800
|
+
}
|
|
801
|
+
case 'double': {
|
|
802
|
+
var buf = new Uint8Array(8);
|
|
803
|
+
var n = Number(value);
|
|
804
|
+
new DataView(buf.buffer).setFloat64(0, Number.isFinite(n) ? n : 0, true);
|
|
805
|
+
this.appendBinary(buf);
|
|
806
|
+
break;
|
|
807
|
+
}
|
|
808
|
+
case 'bool': {
|
|
809
|
+
var b = typeof value === 'boolean'
|
|
810
|
+
? value
|
|
811
|
+
: Number(value) !== 0 && value !== '' && value != null;
|
|
812
|
+
this.appendBinary(Uint8Array.of(b ? 1 : 0));
|
|
813
|
+
break;
|
|
814
|
+
}
|
|
815
|
+
case 'binary': {
|
|
816
|
+
var bytes = value instanceof Uint8Array
|
|
817
|
+
? value
|
|
818
|
+
: new Uint8Array(0);
|
|
819
|
+
var length_1 = Math.min(255, bytes.length);
|
|
820
|
+
var chunk = new Uint8Array(1 + length_1);
|
|
821
|
+
chunk[0] = length_1;
|
|
822
|
+
chunk.set(bytes.subarray(0, length_1), 1);
|
|
823
|
+
this.appendBinary(chunk);
|
|
824
|
+
break;
|
|
825
|
+
}
|
|
826
|
+
default: {
|
|
827
|
+
var text = this.formatValue(value);
|
|
828
|
+
var encoded = new TextEncoder().encode(text === '' ? '0' : text);
|
|
829
|
+
var withNul = new Uint8Array(encoded.length + 1);
|
|
830
|
+
withNul.set(encoded);
|
|
831
|
+
withNul[encoded.length] = 0;
|
|
832
|
+
this.appendBinary(withNul);
|
|
833
|
+
break;
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
return this;
|
|
837
|
+
};
|
|
838
|
+
AcDbDxfFiler.prototype.assertReadMode = function () {
|
|
839
|
+
if (this._mode !== 'read' || !this._reader) {
|
|
840
|
+
throw new Error('AcDbDxfFiler is not in read mode');
|
|
841
|
+
}
|
|
842
|
+
};
|
|
843
|
+
AcDbDxfFiler.prototype.peekPair = function () {
|
|
844
|
+
this.assertReadMode();
|
|
845
|
+
if (this._pushed.length > 0) {
|
|
846
|
+
return this._pushed[this._pushed.length - 1];
|
|
847
|
+
}
|
|
848
|
+
return this._reader.peek();
|
|
849
|
+
};
|
|
850
|
+
AcDbDxfFiler.prototype.readPair = function () {
|
|
851
|
+
this.assertReadMode();
|
|
852
|
+
if (this._pushed.length > 0) {
|
|
853
|
+
var p_1 = this._pushed.pop();
|
|
854
|
+
this._lastRead = p_1;
|
|
855
|
+
return p_1;
|
|
856
|
+
}
|
|
857
|
+
var p = this._reader.next();
|
|
858
|
+
this._lastRead = p;
|
|
859
|
+
return p;
|
|
860
|
+
};
|
|
861
|
+
AcDbDxfFiler.prototype.pushBackPair = function (pair) {
|
|
862
|
+
this._pushed.push(pair);
|
|
863
|
+
};
|
|
864
|
+
AcDbDxfFiler.prototype.readNumber = function (expectedCode) {
|
|
865
|
+
var pair = this.readPair();
|
|
866
|
+
if (!pair)
|
|
867
|
+
return undefined;
|
|
868
|
+
if (expectedCode != null && pair.code !== expectedCode) {
|
|
869
|
+
this.pushBackPair(pair);
|
|
870
|
+
this.setError(AcDbDxfFilerStatus.InvalidDxfCode, "Expected group code ".concat(expectedCode, ", got ").concat(pair.code));
|
|
871
|
+
return undefined;
|
|
872
|
+
}
|
|
873
|
+
if (pair.type === 'double' ||
|
|
874
|
+
pair.type === 'int' ||
|
|
875
|
+
pair.type === 'long') {
|
|
876
|
+
var v = pair.value;
|
|
877
|
+
return typeof v === 'bigint' ? Number(v) : v;
|
|
878
|
+
}
|
|
879
|
+
if (pair.type === 'bool')
|
|
880
|
+
return pair.value ? 1 : 0;
|
|
881
|
+
var n = Number(pair.value);
|
|
882
|
+
return Number.isFinite(n) ? n : 0;
|
|
883
|
+
};
|
|
884
|
+
AcDbDxfFiler.prototype.pairToTypedValue = function (pair) {
|
|
885
|
+
return { code: pair.code, value: pair.value };
|
|
886
|
+
};
|
|
887
|
+
AcDbDxfFiler.prototype.typedValueToPair = function (item) {
|
|
888
|
+
var code = Number(item.code);
|
|
889
|
+
var value = item.value;
|
|
890
|
+
if (typeof value === 'boolean')
|
|
891
|
+
return { code: code, type: 'bool', value: value };
|
|
892
|
+
if (typeof value === 'number') {
|
|
893
|
+
// Prefer double for floats; int for integers — callers rarely push back
|
|
894
|
+
// typed values, so double is a safe default for numbers.
|
|
895
|
+
if (Number.isInteger(value))
|
|
896
|
+
return { code: code, type: 'int', value: value };
|
|
897
|
+
return { code: code, type: 'double', value: value };
|
|
898
|
+
}
|
|
899
|
+
if (typeof value === 'bigint')
|
|
900
|
+
return { code: code, type: 'long', value: value };
|
|
901
|
+
if (value instanceof Uint8Array)
|
|
902
|
+
return { code: code, type: 'binary', value: value };
|
|
903
|
+
return { code: code, type: 'string', value: String(value !== null && value !== void 0 ? value : '') };
|
|
904
|
+
};
|
|
244
905
|
AcDbDxfFiler.prototype.formatValue = function (value) {
|
|
245
906
|
if (typeof value === 'string') {
|
|
246
907
|
// ASCII DXF: one value must occupy a single line. Raw CR/LF inside a value
|
|
@@ -261,6 +922,9 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
261
922
|
return '0';
|
|
262
923
|
return trimmed;
|
|
263
924
|
}
|
|
925
|
+
if (value instanceof Uint8Array) {
|
|
926
|
+
return acdbBytesToHex(value);
|
|
927
|
+
}
|
|
264
928
|
return String(value);
|
|
265
929
|
};
|
|
266
930
|
/** Removes characters that must not appear on a single DXF value line. */
|
|
@@ -273,4 +937,21 @@ var AcDbDxfFiler = /** @class */ (function () {
|
|
|
273
937
|
return AcDbDxfFiler;
|
|
274
938
|
}());
|
|
275
939
|
export { AcDbDxfFiler };
|
|
940
|
+
function acdbBytesToHex(bytes) {
|
|
941
|
+
var _a;
|
|
942
|
+
var out = '';
|
|
943
|
+
for (var i = 0; i < bytes.length; i++) {
|
|
944
|
+
out += ((_a = bytes[i]) !== null && _a !== void 0 ? _a : 0).toString(16).padStart(2, '0').toUpperCase();
|
|
945
|
+
}
|
|
946
|
+
return out;
|
|
947
|
+
}
|
|
948
|
+
function acdbHexToBytes(hex) {
|
|
949
|
+
var trimmed = hex.replace(/\s+/g, '');
|
|
950
|
+
var byteLength = trimmed.length >>> 1;
|
|
951
|
+
var bytes = new Uint8Array(byteLength);
|
|
952
|
+
for (var j = 0; j < byteLength; j++) {
|
|
953
|
+
bytes[j] = Number.parseInt(trimmed.slice(j * 2, j * 2 + 2), 16) || 0;
|
|
954
|
+
}
|
|
955
|
+
return bytes;
|
|
956
|
+
}
|
|
276
957
|
//# sourceMappingURL=AcDbDxfFiler.js.map
|