@mlightcad/data-model 1.1.1 → 1.1.3
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/dist/data-model.js +5490 -1022
- package/dist/data-model.umd.cjs +2 -2
- package/lib/base/AcDbHostApplicationServices.d.ts +72 -6
- package/lib/base/AcDbHostApplicationServices.d.ts.map +1 -1
- package/lib/base/AcDbHostApplicationServices.js +71 -7
- package/lib/base/AcDbHostApplicationServices.js.map +1 -1
- package/lib/base/AcDbObject.d.ts +160 -25
- package/lib/base/AcDbObject.d.ts.map +1 -1
- package/lib/base/AcDbObject.js +149 -25
- package/lib/base/AcDbObject.js.map +1 -1
- package/lib/converter/AcDbBatchProcessing.d.ts +112 -10
- package/lib/converter/AcDbBatchProcessing.d.ts.map +1 -1
- package/lib/converter/AcDbBatchProcessing.js +110 -11
- package/lib/converter/AcDbBatchProcessing.js.map +1 -1
- package/lib/converter/AcDbDxfConverter.d.ts +224 -6
- package/lib/converter/AcDbDxfConverter.d.ts.map +1 -1
- package/lib/converter/AcDbDxfConverter.js +224 -6
- package/lib/converter/AcDbDxfConverter.js.map +1 -1
- package/lib/converter/AcDbDxfParseWorker.d.ts +16 -0
- package/lib/converter/AcDbDxfParseWorker.d.ts.map +1 -1
- package/lib/converter/AcDbDxfParseWorker.js +16 -0
- package/lib/converter/AcDbDxfParseWorker.js.map +1 -1
- package/lib/converter/AcDbEntitiyConverter.d.ts +118 -3
- package/lib/converter/AcDbEntitiyConverter.d.ts.map +1 -1
- package/lib/converter/AcDbEntitiyConverter.js +118 -3
- package/lib/converter/AcDbEntitiyConverter.js.map +1 -1
- package/lib/converter/AcDbObjectConverter.d.ts +52 -0
- package/lib/converter/AcDbObjectConverter.d.ts.map +1 -1
- package/lib/converter/AcDbObjectConverter.js +52 -0
- package/lib/converter/AcDbObjectConverter.js.map +1 -1
- package/lib/database/AcDbBlockTable.d.ts +35 -3
- package/lib/database/AcDbBlockTable.d.ts.map +1 -1
- package/lib/database/AcDbBlockTable.js +35 -3
- package/lib/database/AcDbBlockTable.js.map +1 -1
- package/lib/database/AcDbBlockTableRecord.d.ts +98 -15
- package/lib/database/AcDbBlockTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbBlockTableRecord.js +96 -15
- package/lib/database/AcDbBlockTableRecord.js.map +1 -1
- package/lib/database/AcDbDatabase.d.ts +303 -33
- package/lib/database/AcDbDatabase.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.js +223 -39
- package/lib/database/AcDbDatabase.js.map +1 -1
- package/lib/database/AcDbDatabaseConverter.d.ts +77 -12
- package/lib/database/AcDbDatabaseConverter.d.ts.map +1 -1
- package/lib/database/AcDbDatabaseConverter.js +46 -13
- package/lib/database/AcDbDatabaseConverter.js.map +1 -1
- package/lib/database/AcDbDatabaseConverterManager.d.ts +97 -15
- package/lib/database/AcDbDatabaseConverterManager.d.ts.map +1 -1
- package/lib/database/AcDbDatabaseConverterManager.js +90 -15
- package/lib/database/AcDbDatabaseConverterManager.js.map +1 -1
- package/lib/database/AcDbDimStyleTable.d.ts +22 -2
- package/lib/database/AcDbDimStyleTable.d.ts.map +1 -1
- package/lib/database/AcDbDimStyleTable.js +22 -2
- package/lib/database/AcDbDimStyleTable.js.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.d.ts +115 -0
- package/lib/database/AcDbDimStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbDimStyleTableRecord.js +44 -0
- package/lib/database/AcDbDimStyleTableRecord.js.map +1 -1
- package/lib/database/AcDbLayerTable.d.ts +39 -2
- package/lib/database/AcDbLayerTable.d.ts.map +1 -1
- package/lib/database/AcDbLayerTable.js +39 -2
- package/lib/database/AcDbLayerTable.js.map +1 -1
- package/lib/database/AcDbLayerTableRecord.d.ts +198 -18
- package/lib/database/AcDbLayerTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbLayerTableRecord.js +182 -19
- package/lib/database/AcDbLayerTableRecord.js.map +1 -1
- package/lib/database/AcDbLinetypeTable.d.ts +21 -2
- package/lib/database/AcDbLinetypeTable.d.ts.map +1 -1
- package/lib/database/AcDbLinetypeTable.js +21 -2
- package/lib/database/AcDbLinetypeTable.js.map +1 -1
- package/lib/database/AcDbLinetypeTableRecord.d.ts +46 -14
- package/lib/database/AcDbLinetypeTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbLinetypeTableRecord.js +46 -14
- package/lib/database/AcDbLinetypeTableRecord.js.map +1 -1
- package/lib/database/AcDbSymbolTable.d.ts +134 -29
- package/lib/database/AcDbSymbolTable.d.ts.map +1 -1
- package/lib/database/AcDbSymbolTable.js +133 -37
- package/lib/database/AcDbSymbolTable.js.map +1 -1
- package/lib/database/AcDbSymbolTableRecord.d.ts +47 -2
- package/lib/database/AcDbSymbolTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbSymbolTableRecord.js +40 -2
- package/lib/database/AcDbSymbolTableRecord.js.map +1 -1
- package/lib/database/AcDbTextStyleTable.d.ts +36 -2
- package/lib/database/AcDbTextStyleTable.d.ts.map +1 -1
- package/lib/database/AcDbTextStyleTable.js +36 -2
- package/lib/database/AcDbTextStyleTable.js.map +1 -1
- package/lib/database/AcDbTextStyleTableRecord.d.ts +129 -17
- package/lib/database/AcDbTextStyleTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbTextStyleTableRecord.js +127 -17
- package/lib/database/AcDbTextStyleTableRecord.js.map +1 -1
- package/lib/database/AcDbViewportTable.d.ts +22 -2
- package/lib/database/AcDbViewportTable.d.ts.map +1 -1
- package/lib/database/AcDbViewportTable.js +22 -2
- package/lib/database/AcDbViewportTable.js.map +1 -1
- package/lib/database/AcDbViewportTableRecord.d.ts +74 -9
- package/lib/database/AcDbViewportTableRecord.d.ts.map +1 -1
- package/lib/database/AcDbViewportTableRecord.js +65 -9
- package/lib/database/AcDbViewportTableRecord.js.map +1 -1
- package/lib/entity/AcDbArc.d.ts +202 -17
- package/lib/entity/AcDbArc.d.ts.map +1 -1
- package/lib/entity/AcDbArc.js +201 -17
- package/lib/entity/AcDbArc.js.map +1 -1
- package/lib/entity/AcDbBlockReference.d.ts +147 -13
- package/lib/entity/AcDbBlockReference.d.ts.map +1 -1
- package/lib/entity/AcDbBlockReference.js +142 -13
- package/lib/entity/AcDbBlockReference.js.map +1 -1
- package/lib/entity/AcDbCircle.d.ts +145 -12
- package/lib/entity/AcDbCircle.d.ts.map +1 -1
- package/lib/entity/AcDbCircle.js +144 -12
- package/lib/entity/AcDbCircle.js.map +1 -1
- package/lib/entity/AcDbCurve.d.ts +33 -2
- package/lib/entity/AcDbCurve.d.ts.map +1 -1
- package/lib/entity/AcDbCurve.js +17 -0
- package/lib/entity/AcDbCurve.js.map +1 -1
- package/lib/entity/AcDbEllipse.d.ts +168 -16
- package/lib/entity/AcDbEllipse.d.ts.map +1 -1
- package/lib/entity/AcDbEllipse.js +167 -16
- package/lib/entity/AcDbEllipse.js.map +1 -1
- package/lib/entity/AcDbEntity.d.ts +299 -35
- package/lib/entity/AcDbEntity.d.ts.map +1 -1
- package/lib/entity/AcDbEntity.js +275 -27
- package/lib/entity/AcDbEntity.js.map +1 -1
- package/lib/entity/AcDbHatch.d.ts +60 -4
- package/lib/entity/AcDbHatch.d.ts.map +1 -1
- package/lib/entity/AcDbHatch.js +52 -4
- package/lib/entity/AcDbHatch.js.map +1 -1
- package/lib/entity/AcDbLeader.d.ts +157 -10
- package/lib/entity/AcDbLeader.d.ts.map +1 -1
- package/lib/entity/AcDbLeader.js +149 -10
- package/lib/entity/AcDbLeader.js.map +1 -1
- package/lib/entity/AcDbLine.d.ts +154 -13
- package/lib/entity/AcDbLine.d.ts.map +1 -1
- package/lib/entity/AcDbLine.js +153 -13
- package/lib/entity/AcDbLine.js.map +1 -1
- package/lib/entity/AcDbMText.d.ts +127 -11
- package/lib/entity/AcDbMText.d.ts.map +1 -1
- package/lib/entity/AcDbMText.js +112 -11
- package/lib/entity/AcDbMText.js.map +1 -1
- package/lib/entity/AcDbPoint.d.ts +86 -7
- package/lib/entity/AcDbPoint.d.ts.map +1 -1
- package/lib/entity/AcDbPoint.js +85 -7
- package/lib/entity/AcDbPoint.js.map +1 -1
- package/lib/entity/AcDbPolyline.d.ts +172 -25
- package/lib/entity/AcDbPolyline.d.ts.map +1 -1
- package/lib/entity/AcDbPolyline.js +170 -25
- package/lib/entity/AcDbPolyline.js.map +1 -1
- package/lib/entity/AcDbRasterImage.d.ts +75 -31
- package/lib/entity/AcDbRasterImage.d.ts.map +1 -1
- package/lib/entity/AcDbRasterImage.js +60 -31
- package/lib/entity/AcDbRasterImage.js.map +1 -1
- package/lib/entity/AcDbRay.d.ts +115 -9
- package/lib/entity/AcDbRay.d.ts.map +1 -1
- package/lib/entity/AcDbRay.js +113 -9
- package/lib/entity/AcDbRay.js.map +1 -1
- package/lib/entity/AcDbSpline.d.ts +106 -14
- package/lib/entity/AcDbSpline.d.ts.map +1 -1
- package/lib/entity/AcDbSpline.js +67 -4
- package/lib/entity/AcDbSpline.js.map +1 -1
- package/lib/entity/AcDbTable.d.ts +161 -44
- package/lib/entity/AcDbTable.d.ts.map +1 -1
- package/lib/entity/AcDbTable.js +135 -44
- package/lib/entity/AcDbTable.js.map +1 -1
- package/lib/entity/AcDbText.d.ts +298 -25
- package/lib/entity/AcDbText.d.ts.map +1 -1
- package/lib/entity/AcDbText.js +288 -25
- package/lib/entity/AcDbText.js.map +1 -1
- package/lib/entity/AcDbTrace.d.ts +150 -23
- package/lib/entity/AcDbTrace.d.ts.map +1 -1
- package/lib/entity/AcDbTrace.js +147 -23
- package/lib/entity/AcDbTrace.js.map +1 -1
- package/lib/entity/AcDbViewport.d.ts +122 -9
- package/lib/entity/AcDbViewport.d.ts.map +1 -1
- package/lib/entity/AcDbViewport.js +122 -9
- package/lib/entity/AcDbViewport.js.map +1 -1
- package/lib/entity/AcDbWipeout.d.ts +29 -1
- package/lib/entity/AcDbWipeout.d.ts.map +1 -1
- package/lib/entity/AcDbWipeout.js +29 -1
- package/lib/entity/AcDbWipeout.js.map +1 -1
- package/lib/entity/AcDbXline.d.ts +116 -9
- package/lib/entity/AcDbXline.d.ts.map +1 -1
- package/lib/entity/AcDbXline.js +114 -9
- package/lib/entity/AcDbXline.js.map +1 -1
- package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts +56 -12
- package/lib/entity/dimension/AcDb3PointAngularDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDb3PointAngularDimension.js +56 -12
- package/lib/entity/dimension/AcDb3PointAngularDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbAlignedDimension.d.ts +158 -17
- package/lib/entity/dimension/AcDbAlignedDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbAlignedDimension.js +153 -17
- package/lib/entity/dimension/AcDbAlignedDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbArcDimension.d.ts +58 -12
- package/lib/entity/dimension/AcDbArcDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbArcDimension.js +58 -12
- package/lib/entity/dimension/AcDbArcDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbDiametricDimension.d.ts +99 -25
- package/lib/entity/dimension/AcDbDiametricDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbDiametricDimension.js +99 -25
- package/lib/entity/dimension/AcDbDiametricDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbDimension.d.ts +108 -14
- package/lib/entity/dimension/AcDbDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbDimension.js +99 -14
- package/lib/entity/dimension/AcDbDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbOrdinateDimension.d.ts +48 -16
- package/lib/entity/dimension/AcDbOrdinateDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbOrdinateDimension.js +48 -16
- package/lib/entity/dimension/AcDbOrdinateDimension.js.map +1 -1
- package/lib/entity/dimension/AcDbRadialDimension.d.ts +167 -24
- package/lib/entity/dimension/AcDbRadialDimension.d.ts.map +1 -1
- package/lib/entity/dimension/AcDbRadialDimension.js +162 -24
- package/lib/entity/dimension/AcDbRadialDimension.js.map +1 -1
- package/lib/misc/AcDbAngleUnits.d.ts +12 -0
- package/lib/misc/AcDbAngleUnits.d.ts.map +1 -1
- package/lib/misc/AcDbAngleUnits.js +12 -0
- package/lib/misc/AcDbAngleUnits.js.map +1 -1
- package/lib/misc/AcDbConstants.d.ts +20 -0
- package/lib/misc/AcDbConstants.d.ts.map +1 -1
- package/lib/misc/AcDbConstants.js +20 -0
- package/lib/misc/AcDbConstants.js.map +1 -1
- package/lib/misc/AcDbDimArrowType.d.ts +24 -21
- package/lib/misc/AcDbDimArrowType.d.ts.map +1 -1
- package/lib/misc/AcDbDimArrowType.js +24 -21
- package/lib/misc/AcDbDimArrowType.js.map +1 -1
- package/lib/misc/AcDbObjectIterator.d.ts +42 -3
- package/lib/misc/AcDbObjectIterator.d.ts.map +1 -1
- package/lib/misc/AcDbObjectIterator.js +42 -3
- package/lib/misc/AcDbObjectIterator.js.map +1 -1
- package/lib/misc/AcDbOsnapMode.d.ts +18 -10
- package/lib/misc/AcDbOsnapMode.d.ts.map +1 -1
- package/lib/misc/AcDbOsnapMode.js +18 -10
- package/lib/misc/AcDbOsnapMode.js.map +1 -1
- package/lib/misc/AcDbRenderingCache.d.ts +107 -29
- package/lib/misc/AcDbRenderingCache.d.ts.map +1 -1
- package/lib/misc/AcDbRenderingCache.js +105 -29
- package/lib/misc/AcDbRenderingCache.js.map +1 -1
- package/lib/misc/AcDbUnitsValue.d.ts +58 -8
- package/lib/misc/AcDbUnitsValue.d.ts.map +1 -1
- package/lib/misc/AcDbUnitsValue.js +58 -8
- package/lib/misc/AcDbUnitsValue.js.map +1 -1
- package/lib/object/AcDbDictionary.d.ts +128 -30
- package/lib/object/AcDbDictionary.d.ts.map +1 -1
- package/lib/object/AcDbDictionary.js +126 -30
- package/lib/object/AcDbDictionary.js.map +1 -1
- package/lib/object/AcDbRasterImageDef.d.ts +38 -9
- package/lib/object/AcDbRasterImageDef.d.ts.map +1 -1
- package/lib/object/AcDbRasterImageDef.js +37 -9
- package/lib/object/AcDbRasterImageDef.js.map +1 -1
- package/lib/object/layout/AcDbLayout.d.ts +152 -13
- package/lib/object/layout/AcDbLayout.d.ts.map +1 -1
- package/lib/object/layout/AcDbLayout.js +146 -13
- package/lib/object/layout/AcDbLayout.js.map +1 -1
- package/lib/object/layout/AcDbLayoutDictionary.d.ts +35 -7
- package/lib/object/layout/AcDbLayoutDictionary.d.ts.map +1 -1
- package/lib/object/layout/AcDbLayoutDictionary.js +35 -7
- package/lib/object/layout/AcDbLayoutDictionary.js.map +1 -1
- package/lib/object/layout/AcDbLayoutManager.d.ts +103 -31
- package/lib/object/layout/AcDbLayoutManager.d.ts.map +1 -1
- package/lib/object/layout/AcDbLayoutManager.js +98 -31
- package/lib/object/layout/AcDbLayoutManager.js.map +1 -1
- package/package.json +8 -4
|
@@ -62,29 +62,48 @@ import { AcDbLinetypeTable } from './AcDbLinetypeTable';
|
|
|
62
62
|
import { AcDbTextStyleTable } from './AcDbTextStyleTable';
|
|
63
63
|
import { AcDbViewportTable } from './AcDbViewportTable';
|
|
64
64
|
/**
|
|
65
|
-
* The AcDbDatabase class represents
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
65
|
+
* The AcDbDatabase class represents an AutoCAD drawing file.
|
|
66
|
+
*
|
|
67
|
+
* Each AcDbDatabase object contains the various header variables, symbol tables,
|
|
68
|
+
* table records, entities, and objects that make up the drawing. The AcDbDatabase
|
|
69
|
+
* class has member functions to allow access to all the symbol tables, to read
|
|
70
|
+
* and write to DWG files, to get or set database defaults, to execute various
|
|
71
|
+
* database-level operations, and to get or set all header variables.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const database = new AcDbDatabase();
|
|
76
|
+
* await database.read(dxfData, { readOnly: true });
|
|
77
|
+
* const entities = database.tables.blockTable.modelSpace.entities;
|
|
78
|
+
* ```
|
|
70
79
|
*/
|
|
71
80
|
var AcDbDatabase = /** @class */ (function (_super) {
|
|
72
81
|
__extends(AcDbDatabase, _super);
|
|
73
82
|
/**
|
|
74
|
-
*
|
|
75
|
-
* If buildDefaultDrawing == true, then the new AcDbDatabase object contains the minimum necessary
|
|
76
|
-
* for a complete database. If buildDefaultDrawing == false, then the new AcDbDatabase object is
|
|
77
|
-
* completely empty.
|
|
83
|
+
* Creates a new AcDbDatabase instance.
|
|
78
84
|
*/
|
|
79
85
|
function AcDbDatabase() {
|
|
80
86
|
var _this = _super.call(this) || this;
|
|
87
|
+
/**
|
|
88
|
+
* Events that can be triggered by the database.
|
|
89
|
+
*
|
|
90
|
+
* These events allow applications to respond to various database operations
|
|
91
|
+
* such as entity modifications, layer changes, and progress updates.
|
|
92
|
+
*/
|
|
81
93
|
_this.events = {
|
|
94
|
+
/** Fired when an entity is appended to the database */
|
|
82
95
|
entityAppended: new AcCmEventManager(),
|
|
96
|
+
/** Fired when an entity is modified in the database */
|
|
83
97
|
entityModified: new AcCmEventManager(),
|
|
98
|
+
/** Fired when a layer is appended to the database */
|
|
84
99
|
layerAppended: new AcCmEventManager(),
|
|
100
|
+
/** Fired when a layer is modified in the database */
|
|
85
101
|
layerModified: new AcCmEventManager(),
|
|
102
|
+
/** Fired when a layer is erased from the database */
|
|
86
103
|
layerErased: new AcCmEventManager(),
|
|
104
|
+
/** Fired during database opening operations to report progress */
|
|
87
105
|
openProgress: new AcCmEventManager(),
|
|
106
|
+
/** Fired when a header system variable is changed */
|
|
88
107
|
headerSysVarChanged: new AcCmEventManager()
|
|
89
108
|
};
|
|
90
109
|
_this._angBase = 0;
|
|
@@ -113,7 +132,16 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
113
132
|
}
|
|
114
133
|
Object.defineProperty(AcDbDatabase.prototype, "tables", {
|
|
115
134
|
/**
|
|
116
|
-
*
|
|
135
|
+
* Gets all tables in this drawing database.
|
|
136
|
+
*
|
|
137
|
+
* @returns Object containing all the symbol tables in the database
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const tables = database.tables;
|
|
142
|
+
* const layers = tables.layerTable;
|
|
143
|
+
* const blocks = tables.blockTable;
|
|
144
|
+
* ```
|
|
117
145
|
*/
|
|
118
146
|
get: function () {
|
|
119
147
|
return this._tables;
|
|
@@ -123,7 +151,15 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
123
151
|
});
|
|
124
152
|
Object.defineProperty(AcDbDatabase.prototype, "dictionaries", {
|
|
125
153
|
/**
|
|
126
|
-
*
|
|
154
|
+
* Gets all named object dictionaries in this drawing database.
|
|
155
|
+
*
|
|
156
|
+
* @returns Object containing all the dictionaries in the database
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const dictionaries = database.dictionaries;
|
|
161
|
+
* const layouts = dictionaries.layouts;
|
|
162
|
+
* ```
|
|
127
163
|
*/
|
|
128
164
|
get: function () {
|
|
129
165
|
return this._dictionaries;
|
|
@@ -133,7 +169,16 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
133
169
|
});
|
|
134
170
|
Object.defineProperty(AcDbDatabase.prototype, "currentSpaceId", {
|
|
135
171
|
/**
|
|
136
|
-
*
|
|
172
|
+
* Gets the object ID of the AcDbBlockTableRecord of the current space.
|
|
173
|
+
*
|
|
174
|
+
* The current space can be either model space or paper space.
|
|
175
|
+
*
|
|
176
|
+
* @returns The object ID of the current space
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* const currentSpaceId = database.currentSpaceId;
|
|
181
|
+
* ```
|
|
137
182
|
*/
|
|
138
183
|
get: function () {
|
|
139
184
|
if (!this._currentSpace) {
|
|
@@ -141,6 +186,17 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
141
186
|
}
|
|
142
187
|
return this._currentSpace.objectId;
|
|
143
188
|
},
|
|
189
|
+
/**
|
|
190
|
+
* Sets the current space by object ID.
|
|
191
|
+
*
|
|
192
|
+
* @param value - The object ID of the block table record to set as current space
|
|
193
|
+
* @throws {Error} When the specified block table record ID doesn't exist
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* database.currentSpaceId = 'some-block-record-id';
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
144
200
|
set: function (value) {
|
|
145
201
|
var currentSpace = this.tables.blockTable.getIdAt(value);
|
|
146
202
|
if (currentSpace == null) {
|
|
@@ -155,11 +211,30 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
155
211
|
});
|
|
156
212
|
Object.defineProperty(AcDbDatabase.prototype, "aunits", {
|
|
157
213
|
/**
|
|
158
|
-
*
|
|
214
|
+
* Gets the angle units for the database.
|
|
215
|
+
*
|
|
216
|
+
* This is the current AUNITS value for the database.
|
|
217
|
+
*
|
|
218
|
+
* @returns The angle units value
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* const angleUnits = database.aunits;
|
|
223
|
+
* ```
|
|
159
224
|
*/
|
|
160
225
|
get: function () {
|
|
161
226
|
return this._aunits;
|
|
162
227
|
},
|
|
228
|
+
/**
|
|
229
|
+
* Sets the angle units for the database.
|
|
230
|
+
*
|
|
231
|
+
* @param value - The new angle units value
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```typescript
|
|
235
|
+
* database.aunits = AcDbAngleUnits.DecimalDegrees;
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
163
238
|
set: function (value) {
|
|
164
239
|
this._aunits = value || 0;
|
|
165
240
|
this.triggerHeaderSysVarChangedEvent('aunits');
|
|
@@ -169,12 +244,30 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
169
244
|
});
|
|
170
245
|
Object.defineProperty(AcDbDatabase.prototype, "insunits", {
|
|
171
246
|
/**
|
|
172
|
-
*
|
|
173
|
-
*
|
|
247
|
+
* Gets the drawing-units value for automatic scaling of blocks, images, or xrefs.
|
|
248
|
+
*
|
|
249
|
+
* This is the current INSUNITS value for the database.
|
|
250
|
+
*
|
|
251
|
+
* @returns The insertion units value
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* ```typescript
|
|
255
|
+
* const insertionUnits = database.insunits;
|
|
256
|
+
* ```
|
|
174
257
|
*/
|
|
175
258
|
get: function () {
|
|
176
259
|
return this._insunits;
|
|
177
260
|
},
|
|
261
|
+
/**
|
|
262
|
+
* Sets the drawing-units value for automatic scaling.
|
|
263
|
+
*
|
|
264
|
+
* @param value - The new insertion units value
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* ```typescript
|
|
268
|
+
* database.insunits = AcDbUnitsValue.Millimeters;
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
178
271
|
set: function (value) {
|
|
179
272
|
// TODO: Default value is 1 (imperial) or 4 (metric)
|
|
180
273
|
this._insunits = value || 4;
|
|
@@ -185,11 +278,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
185
278
|
});
|
|
186
279
|
Object.defineProperty(AcDbDatabase.prototype, "ltscale", {
|
|
187
280
|
/**
|
|
188
|
-
*
|
|
281
|
+
* Gets the line type scale factor.
|
|
282
|
+
*
|
|
283
|
+
* @returns The line type scale factor
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* ```typescript
|
|
287
|
+
* const lineTypeScale = database.ltscale;
|
|
288
|
+
* ```
|
|
189
289
|
*/
|
|
190
290
|
get: function () {
|
|
191
291
|
return this._ltscale;
|
|
192
292
|
},
|
|
293
|
+
/**
|
|
294
|
+
* Sets the line type scale factor.
|
|
295
|
+
*
|
|
296
|
+
* @param value - The new line type scale factor
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
* ```typescript
|
|
300
|
+
* database.ltscale = 2.0;
|
|
301
|
+
* ```
|
|
302
|
+
*/
|
|
193
303
|
set: function (value) {
|
|
194
304
|
this._ltscale = value || 1;
|
|
195
305
|
this.triggerHeaderSysVarChangedEvent('ltscale');
|
|
@@ -199,11 +309,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
199
309
|
});
|
|
200
310
|
Object.defineProperty(AcDbDatabase.prototype, "cecolor", {
|
|
201
311
|
/**
|
|
202
|
-
*
|
|
312
|
+
* Gets the color of new objects as they are created.
|
|
313
|
+
*
|
|
314
|
+
* @returns The current entity color
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
* ```typescript
|
|
318
|
+
* const currentColor = database.cecolor;
|
|
319
|
+
* ```
|
|
203
320
|
*/
|
|
204
321
|
get: function () {
|
|
205
322
|
return this._cecolor;
|
|
206
323
|
},
|
|
324
|
+
/**
|
|
325
|
+
* Sets the color of new objects as they are created.
|
|
326
|
+
*
|
|
327
|
+
* @param value - The new current entity color
|
|
328
|
+
*
|
|
329
|
+
* @example
|
|
330
|
+
* ```typescript
|
|
331
|
+
* database.cecolor = new AcCmColor(0xFF0000);
|
|
332
|
+
* ```
|
|
333
|
+
*/
|
|
207
334
|
set: function (value) {
|
|
208
335
|
this._cecolor = value || 0;
|
|
209
336
|
this.triggerHeaderSysVarChangedEvent('cecolor');
|
|
@@ -289,10 +416,28 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
289
416
|
configurable: true
|
|
290
417
|
});
|
|
291
418
|
/**
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
*
|
|
419
|
+
* Reads drawing data from a string or ArrayBuffer.
|
|
420
|
+
*
|
|
421
|
+
* This method parses the provided data and populates the database with
|
|
422
|
+
* the resulting entities, tables, and objects. The method supports
|
|
423
|
+
* both DXF and DWG file formats.
|
|
424
|
+
*
|
|
425
|
+
* @param data - The drawing data as a string or ArrayBuffer
|
|
426
|
+
* - For DXF files: Pass a string containing the DXF content
|
|
427
|
+
* - For DWG files: Pass an ArrayBuffer instance containing the binary DWG data
|
|
428
|
+
* @param options - Options for reading the database
|
|
429
|
+
* @param fileType - The type of file being read (defaults to DXF)
|
|
430
|
+
*
|
|
431
|
+
* @example
|
|
432
|
+
* ```typescript
|
|
433
|
+
* // Reading a DXF file (string)
|
|
434
|
+
* const database = new AcDbDatabase();
|
|
435
|
+
* await database.read(dxfString, { readOnly: true }, AcDbFileType.DXF);
|
|
436
|
+
*
|
|
437
|
+
* // Reading a DWG file (ArrayBuffer)
|
|
438
|
+
* const database = new AcDbDatabase();
|
|
439
|
+
* await database.read(dwgArrayBuffer, { readOnly: true }, AcDbFileType.DWG);
|
|
440
|
+
* ```
|
|
296
441
|
*/
|
|
297
442
|
AcDbDatabase.prototype.read = function (data_1, options_1) {
|
|
298
443
|
return __awaiter(this, arguments, void 0, function (data, options, fileType) {
|
|
@@ -340,13 +485,16 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
340
485
|
});
|
|
341
486
|
};
|
|
342
487
|
/**
|
|
343
|
-
* Read AutoCAD DXF drawing specified by the URL into the database object.
|
|
344
|
-
*
|
|
488
|
+
* Read AutoCAD DXF or DWG drawing specified by the URL into the database object.
|
|
489
|
+
* The method automatically detects the file type based on the URL extension:
|
|
490
|
+
* - .dxf files are read as text using readAsText()
|
|
491
|
+
* - .dwg files are read as binary data using readAsArrayBuffer()
|
|
492
|
+
* @param url Input the URL linked to one AutoCAD DXF or DWG file
|
|
345
493
|
* @param options Input options to read drawing data
|
|
346
494
|
*/
|
|
347
495
|
AcDbDatabase.prototype.openUri = function (url, options) {
|
|
348
496
|
return __awaiter(this, void 0, void 0, function () {
|
|
349
|
-
var response, blob, reader;
|
|
497
|
+
var response, blob, reader, fileExtension;
|
|
350
498
|
var _this = this;
|
|
351
499
|
return __generator(this, function (_a) {
|
|
352
500
|
switch (_a.label) {
|
|
@@ -357,31 +505,67 @@ var AcDbDatabase = /** @class */ (function (_super) {
|
|
|
357
505
|
case 2:
|
|
358
506
|
blob = _a.sent();
|
|
359
507
|
reader = new FileReader();
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
508
|
+
fileExtension = url.toLowerCase().split('.').pop();
|
|
509
|
+
if (fileExtension === 'dwg') {
|
|
510
|
+
// DWG files are binary, read as ArrayBuffer
|
|
511
|
+
reader.onload = function (event) {
|
|
512
|
+
var _a;
|
|
513
|
+
var content = (_a = event.target) === null || _a === void 0 ? void 0 : _a.result;
|
|
514
|
+
if (content)
|
|
515
|
+
_this.read(content, options, AcDbFileType.DWG);
|
|
516
|
+
};
|
|
517
|
+
reader.readAsArrayBuffer(blob);
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
// Default to DXF files (text-based) or fallback
|
|
521
|
+
reader.onload = function (event) {
|
|
522
|
+
var _a;
|
|
523
|
+
var content = (_a = event.target) === null || _a === void 0 ? void 0 : _a.result;
|
|
524
|
+
if (content)
|
|
525
|
+
_this.read(content, options, AcDbFileType.DXF);
|
|
526
|
+
};
|
|
527
|
+
reader.readAsText(blob);
|
|
528
|
+
}
|
|
367
529
|
return [2 /*return*/];
|
|
368
530
|
}
|
|
369
531
|
});
|
|
370
532
|
});
|
|
371
533
|
};
|
|
372
534
|
/**
|
|
373
|
-
*
|
|
535
|
+
* Clears all data from the database.
|
|
536
|
+
*
|
|
537
|
+
* This method removes all entities, tables, and objects from the database,
|
|
538
|
+
* effectively resetting it to an empty state.
|
|
539
|
+
*
|
|
540
|
+
* @example
|
|
541
|
+
* ```typescript
|
|
542
|
+
* database.clear();
|
|
543
|
+
* ```
|
|
374
544
|
*/
|
|
375
545
|
AcDbDatabase.prototype.clear = function () {
|
|
376
|
-
|
|
377
|
-
this.
|
|
378
|
-
this.
|
|
379
|
-
this.
|
|
380
|
-
this.
|
|
381
|
-
this.
|
|
382
|
-
this.
|
|
546
|
+
// Clear all tables and dictionaries
|
|
547
|
+
this._tables.blockTable.removeAll();
|
|
548
|
+
this._tables.dimStyleTable.removeAll();
|
|
549
|
+
this._tables.linetypeTable.removeAll();
|
|
550
|
+
this._tables.textStyleTable.removeAll();
|
|
551
|
+
this._tables.layerTable.removeAll();
|
|
552
|
+
this._tables.viewportTable.removeAll();
|
|
553
|
+
this._dictionaries.layouts.removeAll();
|
|
383
554
|
this._currentSpace = undefined;
|
|
384
555
|
};
|
|
556
|
+
/**
|
|
557
|
+
* Triggers a header system variable changed event.
|
|
558
|
+
*
|
|
559
|
+
* This method is called internally when header system variables
|
|
560
|
+
* are modified to notify listeners of the change.
|
|
561
|
+
*
|
|
562
|
+
* @param sysVarName - The name of the system variable that changed
|
|
563
|
+
*
|
|
564
|
+
* @example
|
|
565
|
+
* ```typescript
|
|
566
|
+
* database.triggerHeaderSysVarChangedEvent('aunits');
|
|
567
|
+
* ```
|
|
568
|
+
*/
|
|
385
569
|
AcDbDatabase.prototype.triggerHeaderSysVarChangedEvent = function (sysVarName) {
|
|
386
570
|
this.events.headerSysVarChanged.dispatch({
|
|
387
571
|
database: this,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcDbDatabase.js","sourceRoot":"","sources":["../../src/database/AcDbDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAA;AAClD,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACb,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,EACL,cAAc,EAEd,oBAAoB,EAErB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAMjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"AcDbDatabase.js","sourceRoot":"","sources":["../../src/database/AcDbDatabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { AcDbDatabase } from './AcDbDatabase';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the different stages of DXF/DWG file conversion.
|
|
4
|
+
*
|
|
5
|
+
* These stages define the order and types of operations performed
|
|
6
|
+
* during the conversion of a DXF or DWG file into an AcDbDatabase.
|
|
7
|
+
*/
|
|
2
8
|
export type AcDbConversionStage =
|
|
3
9
|
/**
|
|
4
10
|
* Start DXF/DWG file conversion
|
|
5
11
|
*/
|
|
6
12
|
'START'
|
|
7
13
|
/**
|
|
8
|
-
*
|
|
14
|
+
* Parsing DXF/DWG file
|
|
9
15
|
*/
|
|
10
16
|
| 'PARSE'
|
|
11
17
|
/**
|
|
@@ -56,9 +62,36 @@ export type AcDbConversionStage =
|
|
|
56
62
|
* Finish file conversion
|
|
57
63
|
*/
|
|
58
64
|
| 'END';
|
|
65
|
+
/**
|
|
66
|
+
* Represents the status of a conversion stage.
|
|
67
|
+
*/
|
|
59
68
|
export type AcDbConversionStageStatus = 'START' | 'END' | 'IN-PROGRESS';
|
|
60
69
|
/**
|
|
61
|
-
* Callback function to update progress when parsing one file
|
|
70
|
+
* Callback function to update progress when parsing one file.
|
|
71
|
+
*
|
|
72
|
+
* This callback is called during the conversion process to provide
|
|
73
|
+
* progress updates and stage information.
|
|
74
|
+
*
|
|
75
|
+
* @param percentage - Finish percentage (0-100)
|
|
76
|
+
* @param stage - Name of the current stage
|
|
77
|
+
* @param stageStatus - Status of the current stage
|
|
78
|
+
* @param data - Store data associated with the current stage. Its meaning varies by stage:
|
|
79
|
+
* - 'FONT' stage: fonts needed by this drawing
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const progressCallback: AcDbConversionProgressCallback = async (
|
|
84
|
+
* percentage,
|
|
85
|
+
* stage,
|
|
86
|
+
* stageStatus,
|
|
87
|
+
* data
|
|
88
|
+
* ) => {
|
|
89
|
+
* console.log(`Progress: ${percentage}% - Stage: ${stage} - Status: ${stageStatus}`);
|
|
90
|
+
* if (stage === 'FONT' && data) {
|
|
91
|
+
* console.log('Fonts needed:', data);
|
|
92
|
+
* }
|
|
93
|
+
* };
|
|
94
|
+
* ```
|
|
62
95
|
*/
|
|
63
96
|
export type AcDbConversionProgressCallback = (
|
|
64
97
|
/**
|
|
@@ -80,25 +113,57 @@ stageStatus: AcDbConversionStageStatus,
|
|
|
80
113
|
* Note: For now, 'FONT' stage uses this field only.
|
|
81
114
|
*/
|
|
82
115
|
data?: unknown) => Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Interface defining performance data for database conversion.
|
|
118
|
+
*/
|
|
83
119
|
export interface AcDbConvertDatabasePerformanceData {
|
|
84
120
|
[key: string]: number;
|
|
85
121
|
total: number;
|
|
86
122
|
}
|
|
87
123
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
124
|
+
* Abstract base class for database converters.
|
|
125
|
+
*
|
|
126
|
+
* This class provides the foundation for converting various file formats
|
|
127
|
+
* (such as DXF, DWG) into AcDbDatabase objects. It handles the conversion
|
|
128
|
+
* process in stages and provides progress tracking capabilities.
|
|
129
|
+
*
|
|
130
|
+
* @template TModel - The type of the parsed model data
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* class MyConverter extends AcDbDatabaseConverter<MyModel> {
|
|
135
|
+
* protected parse(data: string | ArrayBuffer): MyModel {
|
|
136
|
+
* // Implementation for parsing data
|
|
137
|
+
* }
|
|
138
|
+
*
|
|
139
|
+
* protected processEntities(model: MyModel, db: AcDbDatabase) {
|
|
140
|
+
* // Implementation for processing entities
|
|
141
|
+
* }
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
90
144
|
*/
|
|
91
145
|
export declare abstract class AcDbDatabaseConverter<TModel = unknown> {
|
|
146
|
+
/** Optional progress callback for tracking conversion progress */
|
|
92
147
|
progress?: AcDbConversionProgressCallback;
|
|
93
148
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* @param
|
|
101
|
-
*
|
|
149
|
+
* Reads and converts data into an AcDbDatabase.
|
|
150
|
+
*
|
|
151
|
+
* This method orchestrates the entire conversion process, including
|
|
152
|
+
* parsing, processing various components (fonts, linetypes, styles, etc.),
|
|
153
|
+
* and building the final database.
|
|
154
|
+
*
|
|
155
|
+
* @param data - The input data to convert (string or ArrayBuffer)
|
|
156
|
+
* @param db - The database to populate with converted data
|
|
157
|
+
* @param minimumChunkSize - Minimum chunk size for batch processing
|
|
158
|
+
* @param progress - Optional progress callback
|
|
159
|
+
* @returns Promise that resolves when conversion is complete
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const converter = new MyConverter();
|
|
164
|
+
* const database = new AcDbDatabase();
|
|
165
|
+
* await converter.read(dxfData, database, 100, progressCallback);
|
|
166
|
+
* ```
|
|
102
167
|
*/
|
|
103
168
|
read(data: string | ArrayBuffer, db: AcDbDatabase, minimumChunkSize: number, progress?: AcDbConversionProgressCallback): Promise<void>;
|
|
104
169
|
protected onFinished(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcDbDatabaseConverter.d.ts","sourceRoot":"","sources":["../../src/database/AcDbDatabaseConverter.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,mBAAmB;AAC7B;;GAEG;AACD,OAAO;AACT;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,MAAM;AACR;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,UAAU;AACZ;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,cAAc;AAChB;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,KAAK,CAAA;AAET,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,KAAK,GAAG,aAAa,CAAA;AAEvE
|
|
1
|
+
{"version":3,"file":"AcDbDatabaseConverter.d.ts","sourceRoot":"","sources":["../../src/database/AcDbDatabaseConverter.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB;AAC7B;;GAEG;AACD,OAAO;AACT;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,MAAM;AACR;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,UAAU;AACZ;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,cAAc;AAChB;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,OAAO;AACT;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,KAAK,CAAA;AAET;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,GAAG,KAAK,GAAG,aAAa,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,8BAA8B,GAAG;AAC3C;;GAEG;AACH,UAAU,EAAE,MAAM;AAClB;;GAEG;AACH,KAAK,EAAE,mBAAmB;AAC1B;;GAEG;AACH,WAAW,EAAE,yBAAyB;AACtC;;;;;GAKG;AACH,IAAI,CAAC,EAAE,OAAO,KACX,OAAO,CAAC,IAAI,CAAC,CAAA;AA2BlB;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd;AA+DD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,qBAAqB,CAAC,MAAM,GAAG,OAAO;IAC1D,kEAAkE;IAClE,QAAQ,CAAC,EAAE,8BAA8B,CAAA;IAEzC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,IAAI,CACR,IAAI,EAAE,MAAM,GAAG,WAAW,EAC1B,EAAE,EAAE,YAAY,EAChB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,CAAC,EAAE,8BAA8B;IAuO3C,SAAS,CAAC,UAAU;IAQpB,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM;IAIpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAI5C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAI5D,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAI7D,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAI5D,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAIzD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAI5D,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAIzD,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAI9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAI1D,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY;IAIzD,SAAS,CAAC,eAAe,CACvB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,EACjB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAC9B,SAAS,CAAC,EAAE,8BAA8B;CAI7C"}
|
|
@@ -53,9 +53,14 @@ import { AcCmPerformanceCollector, AcCmTask, AcCmTaskScheduler } from '@mlightca
|
|
|
53
53
|
import { AcDbRenderingCache } from '../misc';
|
|
54
54
|
var PERFORMANCE_ENTRY_NAME = 'Load Database';
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
56
|
+
* Task class for database conversion operations.
|
|
57
|
+
*
|
|
58
|
+
* This class extends AcCmTask to provide specialized functionality
|
|
59
|
+
* for database conversion tasks, including progress tracking and
|
|
60
|
+
* stage management.
|
|
61
|
+
*
|
|
62
|
+
* @template TIn - The input type for the task
|
|
63
|
+
* @template TOut - The output type for the task
|
|
59
64
|
*/
|
|
60
65
|
var AcDbConversionTask = /** @class */ (function (_super) {
|
|
61
66
|
__extends(AcDbConversionTask, _super);
|
|
@@ -107,21 +112,49 @@ var AcDbConversionTask = /** @class */ (function (_super) {
|
|
|
107
112
|
return AcDbConversionTask;
|
|
108
113
|
}(AcCmTask));
|
|
109
114
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
115
|
+
* Abstract base class for database converters.
|
|
116
|
+
*
|
|
117
|
+
* This class provides the foundation for converting various file formats
|
|
118
|
+
* (such as DXF, DWG) into AcDbDatabase objects. It handles the conversion
|
|
119
|
+
* process in stages and provides progress tracking capabilities.
|
|
120
|
+
*
|
|
121
|
+
* @template TModel - The type of the parsed model data
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* class MyConverter extends AcDbDatabaseConverter<MyModel> {
|
|
126
|
+
* protected parse(data: string | ArrayBuffer): MyModel {
|
|
127
|
+
* // Implementation for parsing data
|
|
128
|
+
* }
|
|
129
|
+
*
|
|
130
|
+
* protected processEntities(model: MyModel, db: AcDbDatabase) {
|
|
131
|
+
* // Implementation for processing entities
|
|
132
|
+
* }
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
112
135
|
*/
|
|
113
136
|
var AcDbDatabaseConverter = /** @class */ (function () {
|
|
114
137
|
function AcDbDatabaseConverter() {
|
|
115
138
|
}
|
|
116
139
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* @param
|
|
124
|
-
*
|
|
140
|
+
* Reads and converts data into an AcDbDatabase.
|
|
141
|
+
*
|
|
142
|
+
* This method orchestrates the entire conversion process, including
|
|
143
|
+
* parsing, processing various components (fonts, linetypes, styles, etc.),
|
|
144
|
+
* and building the final database.
|
|
145
|
+
*
|
|
146
|
+
* @param data - The input data to convert (string or ArrayBuffer)
|
|
147
|
+
* @param db - The database to populate with converted data
|
|
148
|
+
* @param minimumChunkSize - Minimum chunk size for batch processing
|
|
149
|
+
* @param progress - Optional progress callback
|
|
150
|
+
* @returns Promise that resolves when conversion is complete
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* const converter = new MyConverter();
|
|
155
|
+
* const database = new AcDbDatabase();
|
|
156
|
+
* await converter.read(dxfData, database, 100, progressCallback);
|
|
157
|
+
* ```
|
|
125
158
|
*/
|
|
126
159
|
AcDbDatabaseConverter.prototype.read = function (data, db, minimumChunkSize, progress) {
|
|
127
160
|
return __awaiter(this, void 0, void 0, function () {
|