@mlightcad/data-model 1.15.24 → 1.15.26
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.cjs +14 -14
- package/lib/database/AcDbDatabase.d.ts +14 -0
- package/lib/database/AcDbDatabase.d.ts.map +1 -1
- package/lib/database/AcDbDatabase.js +66 -32
- package/lib/database/AcDbDatabase.js.map +1 -1
- package/lib/database/transaction/AcDbChangeApplier.d.ts +18 -0
- package/lib/database/transaction/AcDbChangeApplier.d.ts.map +1 -1
- package/lib/database/transaction/AcDbChangeApplier.js +62 -10
- package/lib/database/transaction/AcDbChangeApplier.js.map +1 -1
- package/lib/database/transaction/AcDbChangeRecorder.d.ts +21 -9
- package/lib/database/transaction/AcDbChangeRecorder.d.ts.map +1 -1
- package/lib/database/transaction/AcDbChangeRecorder.js +101 -32
- package/lib/database/transaction/AcDbChangeRecorder.js.map +1 -1
- package/lib/entity/AcDbHatch.d.ts +7 -0
- package/lib/entity/AcDbHatch.d.ts.map +1 -1
- package/lib/entity/AcDbHatch.js +53 -13
- package/lib/entity/AcDbHatch.js.map +1 -1
- package/package.json +5 -5
|
@@ -6,9 +6,25 @@ import { AcDbChangeContainer, AcDbDatabaseChange } from './AcDbDatabaseChange.js
|
|
|
6
6
|
*
|
|
7
7
|
* Append/remove pairs that cancel within the same transaction are coalesced,
|
|
8
8
|
* and duplicate modify/sysvar entries for the same target are ignored.
|
|
9
|
+
*
|
|
10
|
+
* Lookups go through indexes rather than scanning {@link getChanges}, so
|
|
11
|
+
* recording stays linear for transactions with hundreds of thousands of
|
|
12
|
+
* changes (for example a large file import).
|
|
9
13
|
*/
|
|
10
14
|
export declare class AcDbChangeRecorder {
|
|
11
15
|
private readonly changes;
|
|
16
|
+
/** First modify entry per object ID. */
|
|
17
|
+
private readonly modifyById;
|
|
18
|
+
/** First sysvar entry per normalized variable name. */
|
|
19
|
+
private readonly sysvarByName;
|
|
20
|
+
/** Live structural entries per {@link structuralKey}, oldest first. */
|
|
21
|
+
private readonly structuralByKey;
|
|
22
|
+
/**
|
|
23
|
+
* Entries cancelled since the last compaction. Removing them from
|
|
24
|
+
* {@link changes} one `splice` at a time would be quadratic, so they are
|
|
25
|
+
* dropped in one pass by {@link getChanges}.
|
|
26
|
+
*/
|
|
27
|
+
private readonly cancelled;
|
|
12
28
|
/**
|
|
13
29
|
* Returns the changes recorded so far in this transaction.
|
|
14
30
|
*
|
|
@@ -89,6 +105,7 @@ export declare class AcDbChangeRecorder {
|
|
|
89
105
|
*
|
|
90
106
|
* When an opposite structural change for the same container and object ID
|
|
91
107
|
* already exists in this transaction, both entries cancel and neither is kept.
|
|
108
|
+
* The oldest matching entry is the one cancelled.
|
|
92
109
|
*
|
|
93
110
|
* @param change - Append or remove entry to merge into the recorder
|
|
94
111
|
*/
|
|
@@ -102,15 +119,10 @@ export declare class AcDbChangeRecorder {
|
|
|
102
119
|
* @param change - Change copied from a child transaction recorder
|
|
103
120
|
*/
|
|
104
121
|
private mergeChange;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
* @param container - Container descriptor that must match exactly
|
|
110
|
-
* @param objectId - Object identifier of the affected record
|
|
111
|
-
* @returns Index in {@link changes}, or `-1` when no match exists
|
|
112
|
-
*/
|
|
113
|
-
private findStructuralChangeIndex;
|
|
122
|
+
private addModify;
|
|
123
|
+
private addSysvar;
|
|
124
|
+
/** Drops cancelled entries from {@link changes}, keeping order. */
|
|
125
|
+
private compact;
|
|
114
126
|
/**
|
|
115
127
|
* Reads the current value of a system variable from the database.
|
|
116
128
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcDbChangeRecorder.d.ts","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,
|
|
1
|
+
{"version":3,"file":"AcDbChangeRecorder.d.ts","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,yBAAyB,CAAA;AAgChC;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4C;IAC5E;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAE1D;;;;OAIG;IACH,UAAU,IAAI,kBAAkB,EAAE;IAKlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAM1C;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAYtC;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQtE;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQtE;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAYjD;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAatC;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAKjB,mEAAmE;IACnE,OAAO,CAAC,OAAO;IAcf;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAGvB"}
|
|
@@ -10,16 +10,51 @@ var __values = (this && this.__values) || function(o) {
|
|
|
10
10
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
11
11
|
};
|
|
12
12
|
import { AcDbSysVarManager } from '../AcDbSysVarManager.js';
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Builds a lookup key that is equal for two structural changes exactly when
|
|
15
|
+
* their kind, container (see `acdbAreChangeContainersEqual`) and object ID
|
|
16
|
+
* all match.
|
|
17
|
+
*/
|
|
18
|
+
function structuralKey(kind, container, objectId) {
|
|
19
|
+
var location;
|
|
20
|
+
switch (container.type) {
|
|
21
|
+
case 'blockTableRecord':
|
|
22
|
+
location = container.ownerId;
|
|
23
|
+
break;
|
|
24
|
+
case 'symbolTable':
|
|
25
|
+
location = container.tableName;
|
|
26
|
+
break;
|
|
27
|
+
case 'dictionary':
|
|
28
|
+
location = "".concat(container.dictionaryId, "\0").concat(container.key);
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
return "".concat(kind, "\0").concat(container.type, "\0").concat(location, "\0").concat(objectId);
|
|
32
|
+
}
|
|
14
33
|
/**
|
|
15
34
|
* Accumulates structured database changes during an active transaction.
|
|
16
35
|
*
|
|
17
36
|
* Append/remove pairs that cancel within the same transaction are coalesced,
|
|
18
37
|
* and duplicate modify/sysvar entries for the same target are ignored.
|
|
38
|
+
*
|
|
39
|
+
* Lookups go through indexes rather than scanning {@link getChanges}, so
|
|
40
|
+
* recording stays linear for transactions with hundreds of thousands of
|
|
41
|
+
* changes (for example a large file import).
|
|
19
42
|
*/
|
|
20
43
|
var AcDbChangeRecorder = /** @class */ (function () {
|
|
21
44
|
function AcDbChangeRecorder() {
|
|
22
45
|
this.changes = [];
|
|
46
|
+
/** First modify entry per object ID. */
|
|
47
|
+
this.modifyById = new Map();
|
|
48
|
+
/** First sysvar entry per normalized variable name. */
|
|
49
|
+
this.sysvarByName = new Map();
|
|
50
|
+
/** Live structural entries per {@link structuralKey}, oldest first. */
|
|
51
|
+
this.structuralByKey = new Map();
|
|
52
|
+
/**
|
|
53
|
+
* Entries cancelled since the last compaction. Removing them from
|
|
54
|
+
* {@link changes} one `splice` at a time would be quadratic, so they are
|
|
55
|
+
* dropped in one pass by {@link getChanges}.
|
|
56
|
+
*/
|
|
57
|
+
this.cancelled = new Set();
|
|
23
58
|
}
|
|
24
59
|
/**
|
|
25
60
|
* Returns the changes recorded so far in this transaction.
|
|
@@ -27,6 +62,7 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
27
62
|
* The returned array is the internal store; callers should treat it as read-only.
|
|
28
63
|
*/
|
|
29
64
|
AcDbChangeRecorder.prototype.getChanges = function () {
|
|
65
|
+
this.compact();
|
|
30
66
|
return this.changes;
|
|
31
67
|
};
|
|
32
68
|
/**
|
|
@@ -34,6 +70,10 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
34
70
|
*/
|
|
35
71
|
AcDbChangeRecorder.prototype.clear = function () {
|
|
36
72
|
this.changes.length = 0;
|
|
73
|
+
this.modifyById.clear();
|
|
74
|
+
this.sysvarByName.clear();
|
|
75
|
+
this.structuralByKey.clear();
|
|
76
|
+
this.cancelled.clear();
|
|
37
77
|
};
|
|
38
78
|
/**
|
|
39
79
|
* Merges changes from a nested transaction into this recorder.
|
|
@@ -68,11 +108,10 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
68
108
|
*/
|
|
69
109
|
AcDbChangeRecorder.prototype.recordModify = function (object) {
|
|
70
110
|
var objectId = object.objectId;
|
|
71
|
-
|
|
72
|
-
if (existing) {
|
|
111
|
+
if (this.modifyById.has(objectId)) {
|
|
73
112
|
return;
|
|
74
113
|
}
|
|
75
|
-
this.
|
|
114
|
+
this.addModify({
|
|
76
115
|
kind: 'modify',
|
|
77
116
|
objectId: objectId,
|
|
78
117
|
before: object.clonePreservingIdentity()
|
|
@@ -88,7 +127,7 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
88
127
|
* @param objectId - Object identifier to look up
|
|
89
128
|
*/
|
|
90
129
|
AcDbChangeRecorder.prototype.hasModify = function (objectId) {
|
|
91
|
-
return this.
|
|
130
|
+
return this.modifyById.has(objectId);
|
|
92
131
|
};
|
|
93
132
|
/**
|
|
94
133
|
* Records insertion of an object into a database container.
|
|
@@ -132,11 +171,10 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
132
171
|
*/
|
|
133
172
|
AcDbChangeRecorder.prototype.recordSysvar = function (name, before) {
|
|
134
173
|
var normalizedName = name.toLowerCase();
|
|
135
|
-
|
|
136
|
-
if (existing) {
|
|
174
|
+
if (this.sysvarByName.has(normalizedName)) {
|
|
137
175
|
return;
|
|
138
176
|
}
|
|
139
|
-
this.
|
|
177
|
+
this.addSysvar({
|
|
140
178
|
kind: 'sysvar',
|
|
141
179
|
name: normalizedName,
|
|
142
180
|
before: before
|
|
@@ -153,7 +191,7 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
153
191
|
AcDbChangeRecorder.prototype.finalize = function (database) {
|
|
154
192
|
var e_2, _a;
|
|
155
193
|
try {
|
|
156
|
-
for (var _b = __values(this.
|
|
194
|
+
for (var _b = __values(this.getChanges()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
157
195
|
var change = _c.value;
|
|
158
196
|
if (change.kind === 'modify') {
|
|
159
197
|
var object = database.getObjectById(change.objectId);
|
|
@@ -179,16 +217,31 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
179
217
|
*
|
|
180
218
|
* When an opposite structural change for the same container and object ID
|
|
181
219
|
* already exists in this transaction, both entries cancel and neither is kept.
|
|
220
|
+
* The oldest matching entry is the one cancelled.
|
|
182
221
|
*
|
|
183
222
|
* @param change - Append or remove entry to merge into the recorder
|
|
184
223
|
*/
|
|
185
224
|
AcDbChangeRecorder.prototype.recordStructuralChange = function (change) {
|
|
225
|
+
var objectId = change.object.objectId;
|
|
186
226
|
var oppositeKind = change.kind === 'append' ? 'remove' : 'append';
|
|
187
|
-
var
|
|
188
|
-
|
|
189
|
-
|
|
227
|
+
var oppositeKey = structuralKey(oppositeKind, change.container, objectId);
|
|
228
|
+
var opposites = this.structuralByKey.get(oppositeKey);
|
|
229
|
+
if (opposites && opposites.length > 0) {
|
|
230
|
+
var cancelled = opposites.shift();
|
|
231
|
+
if (opposites.length === 0) {
|
|
232
|
+
this.structuralByKey.delete(oppositeKey);
|
|
233
|
+
}
|
|
234
|
+
this.cancelled.add(cancelled);
|
|
190
235
|
return;
|
|
191
236
|
}
|
|
237
|
+
var key = structuralKey(change.kind, change.container, objectId);
|
|
238
|
+
var entries = this.structuralByKey.get(key);
|
|
239
|
+
if (entries) {
|
|
240
|
+
entries.push(change);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
this.structuralByKey.set(key, [change]);
|
|
244
|
+
}
|
|
192
245
|
this.changes.push(change);
|
|
193
246
|
};
|
|
194
247
|
/**
|
|
@@ -201,35 +254,51 @@ var AcDbChangeRecorder = /** @class */ (function () {
|
|
|
201
254
|
*/
|
|
202
255
|
AcDbChangeRecorder.prototype.mergeChange = function (change) {
|
|
203
256
|
if (change.kind === 'modify') {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
this.changes.push(change);
|
|
257
|
+
if (!this.modifyById.has(change.objectId)) {
|
|
258
|
+
this.addModify(change);
|
|
207
259
|
}
|
|
208
260
|
return;
|
|
209
261
|
}
|
|
210
262
|
if (change.kind === 'sysvar') {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
this.changes.push(change);
|
|
263
|
+
if (!this.sysvarByName.has(change.name)) {
|
|
264
|
+
this.addSysvar(change);
|
|
214
265
|
}
|
|
215
266
|
return;
|
|
216
267
|
}
|
|
217
268
|
this.recordStructuralChange(change);
|
|
218
269
|
};
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
270
|
+
AcDbChangeRecorder.prototype.addModify = function (change) {
|
|
271
|
+
this.modifyById.set(change.objectId, change);
|
|
272
|
+
this.changes.push(change);
|
|
273
|
+
};
|
|
274
|
+
AcDbChangeRecorder.prototype.addSysvar = function (change) {
|
|
275
|
+
this.sysvarByName.set(change.name, change);
|
|
276
|
+
this.changes.push(change);
|
|
277
|
+
};
|
|
278
|
+
/** Drops cancelled entries from {@link changes}, keeping order. */
|
|
279
|
+
AcDbChangeRecorder.prototype.compact = function () {
|
|
280
|
+
var e_3, _a;
|
|
281
|
+
if (this.cancelled.size === 0) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
var write = 0;
|
|
285
|
+
try {
|
|
286
|
+
for (var _b = __values(this.changes), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
287
|
+
var change = _c.value;
|
|
288
|
+
if (!this.cancelled.has(change)) {
|
|
289
|
+
this.changes[write++] = change;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
294
|
+
finally {
|
|
295
|
+
try {
|
|
296
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
297
|
+
}
|
|
298
|
+
finally { if (e_3) throw e_3.error; }
|
|
299
|
+
}
|
|
300
|
+
this.changes.length = write;
|
|
301
|
+
this.cancelled.clear();
|
|
233
302
|
};
|
|
234
303
|
/**
|
|
235
304
|
* Reads the current value of a system variable from the database.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcDbChangeRecorder.js","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"AcDbChangeRecorder.js","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -427,6 +427,13 @@ export declare class AcDbHatch extends AcDbEntity {
|
|
|
427
427
|
private shouldUseSysVarOverride;
|
|
428
428
|
private parseHpBackgroundColor;
|
|
429
429
|
private parseHpTransparency;
|
|
430
|
+
/**
|
|
431
|
+
* Returns definition lines as DXF stores them: fully expanded, with the
|
|
432
|
+
* pattern angle included. Lines expanded from the bundled PAT library do
|
|
433
|
+
* not carry the entity pattern angle yet (renderers add it), so it is
|
|
434
|
+
* applied here; explicit lines already include it.
|
|
435
|
+
*/
|
|
436
|
+
private getDxfDefinitionLines;
|
|
430
437
|
/**
|
|
431
438
|
* Populates renderable pattern definition lines for predefined hatch names.
|
|
432
439
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcDbHatch.d.ts","sourceRoot":"","sources":["../../src/entity/AcDbHatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAIV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,SAAS,EAIT,sBAAsB,EAGtB,cAAc,EAEd,YAAY,EAEZ,WAAW,EACX,eAAe,EAIf,YAAY,EACZ,gBAAgB,EACjB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,oBAAoB,EACpB,YAAY,EACb,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG/D,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAUjC,MAAM,gCAAgC,CAAA;AAOvC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAWhE;;GAEG;AACH,oBAAY,oBAAoB;IAC9B;;;;;;;;OAQG;IACH,WAAW,IAAI;IACf;;;;;;;;OAQG;IACH,UAAU,IAAI;IACd;;;;;;OAMG;IACH,MAAM,IAAI;CACX;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB;;;;;OAKG;IACH,MAAM,IAAI;IACV;;;;OAIG;IACH,KAAK,IAAI;IACT;;OAEG;IACH,MAAM,IAAI;CACX;AAED,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,WAAW,IAAI;IACf;;OAEG;IACH,cAAc,IAAI;CACnB;AAED,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,UAAU,GACV,aAAa,GACb,WAAW,GACX,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,QAAQ,GACR,WAAW,CAAA;AAEf;;GAEG;AACH,oBAAY,uBAAuB;IACjC;;OAEG;IACH,kBAAkB,IAAI;IACtB;;OAEG;IACH,mBAAmB,IAAI;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,SAAU,SAAQ,UAAU;IACvC,2BAA2B;IAC3B,OAAgB,QAAQ,EAAE,MAAM,CAAU;IAE1C,IAAa,WAAW,WAEvB;IAED,2CAA2C;IAC3C,OAAO,CAAC,IAAI,CAAY;IACxB;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAA4B;IACxD,iFAAiF;IACjF,OAAO,CAAC,YAAY,CAAS;IAC7B,sDAAsD;IACtD,OAAO,CAAC,UAAU,CAAQ;IAC1B,0DAA0D;IAC1D,OAAO,CAAC,OAAO,CAA4B;IAC3C,iDAAiD;IACjD,OAAO,CAAC,gBAAgB,CAAwB;IAChD,mFAAmF;IACnF,OAAO,CAAC,6BAA6B,CAAS;IAC9C,yEAAyE;IACzE,OAAO,CAAC,2BAA2B,CAAQ;IAC3C,0EAA0E;IAC1E,OAAO,CAAC,4BAA4B,CAAQ;IAC5C,oCAAoC;IACpC,OAAO,CAAC,YAAY,CAAQ;IAC5B,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAS;IAChC,gCAAgC;IAChC,OAAO,CAAC,YAAY,CAAsB;IAC1C,gDAAgD;IAChD,OAAO,CAAC,aAAa,CAAQ;IAC7B,sFAAsF;IACtF,OAAO,CAAC,gBAAgB,CAAS;IACjC,6CAA6C;IAC7C,OAAO,CAAC,aAAa,CAAQ;IAC7B,wFAAwF;IACxF,OAAO,CAAC,gBAAgB,CAAS;IACjC,2EAA2E;IAC3E,OAAO,CAAC,YAAY,CAAS;IAC7B,oFAAoF;IACpF,OAAO,CAAC,eAAe,CAAS;IAChC,oDAAoD;IACpD,OAAO,CAAC,gBAAgB,CAAC,CAAW;IACpC,qGAAqG;IACrG,OAAO,CAAC,mBAAmB,CAAS;IACpC,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAS;IAC/B,wFAAwF;IACxF,OAAO,CAAC,iBAAiB,CAAS;IAClC,2DAA2D;IAC3D,OAAO,CAAC,WAAW,CAAgB;IACnC,gGAAgG;IAChG,OAAO,CAAC,cAAc,CAAS;IAC/B;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,kFAAkF;IAClF,OAAO,CAAC,cAAc,CAAY;IAClC;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAQ;IAC9B,iDAAiD;IACjD,OAAO,CAAC,eAAe,CAAQ;IAC/B,yEAAyE;IACzE,OAAO,CAAC,mBAAmB,CAAC,CAAQ;IACpC,uEAAuE;IACvE,OAAO,CAAC,iBAAiB,CAAC,CAAQ;IAClC;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,wCAAwC;IACxC,OAAO,CAAC,aAAa,CAAyB;IAC9C,wCAAwC;IACxC,OAAO,CAAC,aAAa,CAAQ;IAC7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAS;IAEtC;;;;;;;;;;;;;OAaG;;IAqCH;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,IAAI,OAAO,YAEV;IAED;;OAEG;IACH,IAAI,WAAW,IASQ,OAAO,CAJ7B;IACD;;OAEG;IACH,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED;;;;;OAKG;IACH,IAAa,KAAK,IAuBQ,SAAS,CALlC;IAED;;OAEG;IACH,IAAa,KAAK,CAAC,KAAK,EAAE,SAAS,EAElC;IAED;;;;;;;;;;OAUG;IACH,IAAI,eAAe,2BAElB;IAED;;OAEG;IACH,IAAI,WAAW,IAGQ,MAAM,CAD5B;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAK5B;IAED;;OAEG;IACH,IAAI,WAAW,IAGQ,oBAAoB,CAD1C;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,oBAAoB,EAY1C;IAED;;OAEG;IACH,IAAI,YAAY,IAGQ,MAAM,CAD7B;IACD,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAG7B;IAED;;OAEG;IACH,IAAI,YAAY,IAGQ,MAAM,CAD7B;IACD,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAI7B;IAED;;OAEG;IACH,IAAI,UAAU,IAGQ,OAAO,CAD5B;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAE5B;IAED;;OAEG;IACH,IAAI,WAAW,IAGQ,OAAO,CAD7B;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,EAG7B;IAED;;OAEG;IACH,IAAI,eAAe,IAGQ,SAAS,GAAG,SAAS,CAD/C;IACD,IAAI,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAG/C;IAED;;OAEG;IACH,IAAI,aAAa,IAGQ,OAAO,CAD/B;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAG/B;IAED;;OAEG;IACH,IAAI,UAAU,IAGQ,cAAc,CADnC;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,cAAc,EAGnC;IAED;;OAEG;IACH,IAAI,SAAS,IAGQ,MAAM,CAD1B;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAE1B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,YAAY,CAEzB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAKjC;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,mBAAmB,CAEzC;IACD;;OAEG;IACH,IAAI,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAE7C;IAED;;OAEG;IACH,IAAI,aAAa,IAOQ,MAAM,CAL9B;IAED;;OAEG;IACH,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAE9B;IAED;;;OAGG;IACH,IAAI,aAAa,IAQQ,MAAM,CAN9B;IAED;;;OAGG;IACH,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAE9B;IAED;;OAEG;IACH,IAAI,YAAY,IAOQ,uBAAuB,CAL9C;IAED;;OAEG;IACH,IAAI,YAAY,CAAC,KAAK,EAAE,uBAAuB,EAE9C;IAED;;OAEG;IACH,IAAI,YAAY,IAUQ,MAAM,CAL7B;IAED;;OAEG;IACH,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAE7B;IAED;;OAEG;IACH,IAAI,oBAAoB,IASQ,OAAO,CAPtC;IAED;;;;OAIG;IACH,IAAI,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAEtC;IAED;;OAEG;IACH,IAAI,cAAc,IAQQ,MAAM,CAN/B;IAED;;;OAGG;IACH,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAE/B;IAED;;OAEG;IACH,IAAI,kBAAkB,IAOQ,MAAM,GAAG,SAAS,CAL/C;IAED;;OAEG;IACH,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAG/C;IAED;;OAEG;IACH,IAAI,gBAAgB,IAOQ,MAAM,GAAG,SAAS,CAL7C;IAED;;OAEG;IACH,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAG7C;IAED;;;OAGG;IACH,IAAI,SAAS,IAQQ,MAAM,GAAG,SAAS,CANtC;IAED;;;OAGG;IACH,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEtC;IAED;;;;;;;;OAQG;IACH,+BAA+B,CAAC,EAAE,EAAE,YAAY;IAuEhD,OAAO,CAAC,uBAAuB;cAaZ,6BAA6B;IAIhD,OAAO,CAAC,wBAAwB;IAehC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,mBAAmB;IAwB3B;;;;;;;;OAQG;IACH,OAAO,CAAC,sCAAsC;
|
|
1
|
+
{"version":3,"file":"AcDbHatch.d.ts","sourceRoot":"","sources":["../../src/entity/AcDbHatch.ts"],"names":[],"mappings":"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"}
|
package/lib/entity/AcDbHatch.js
CHANGED
|
@@ -825,6 +825,29 @@ var AcDbHatch = /** @class */ (function (_super) {
|
|
|
825
825
|
}
|
|
826
826
|
return undefined;
|
|
827
827
|
};
|
|
828
|
+
/**
|
|
829
|
+
* Returns definition lines as DXF stores them: fully expanded, with the
|
|
830
|
+
* pattern angle included. Lines expanded from the bundled PAT library do
|
|
831
|
+
* not carry the entity pattern angle yet (renderers add it), so it is
|
|
832
|
+
* applied here; explicit lines already include it.
|
|
833
|
+
*/
|
|
834
|
+
AcDbHatch.prototype.getDxfDefinitionLines = function (patternAngle) {
|
|
835
|
+
if (!this._definitionLinesAutoGenerated || patternAngle === 0) {
|
|
836
|
+
return this._definitionLines;
|
|
837
|
+
}
|
|
838
|
+
var cos = Math.cos(patternAngle);
|
|
839
|
+
var sin = Math.sin(patternAngle);
|
|
840
|
+
var rotate = function (p) { return ({
|
|
841
|
+
x: p.x * cos - p.y * sin,
|
|
842
|
+
y: p.x * sin + p.y * cos
|
|
843
|
+
}); };
|
|
844
|
+
return this._definitionLines.map(function (line) { return ({
|
|
845
|
+
angle: line.angle + patternAngle,
|
|
846
|
+
base: rotate(line.base),
|
|
847
|
+
offset: rotate(line.offset),
|
|
848
|
+
dashLengths: line.dashLengths
|
|
849
|
+
}); });
|
|
850
|
+
};
|
|
828
851
|
/**
|
|
829
852
|
* Populates renderable pattern definition lines for predefined hatch names.
|
|
830
853
|
*
|
|
@@ -867,18 +890,26 @@ var AcDbHatch = /** @class */ (function (_super) {
|
|
|
867
890
|
}
|
|
868
891
|
return;
|
|
869
892
|
}
|
|
870
|
-
this._definitionLines = pattern.lines.map(function (line) {
|
|
871
|
-
angle
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
893
|
+
this._definitionLines = pattern.lines.map(function (line) {
|
|
894
|
+
var angle = (line.angle * Math.PI) / 180;
|
|
895
|
+
// PAT delta-x/delta-y are measured along and across the line, while
|
|
896
|
+
// definition lines (DXF 45/46, and every renderer) hold the offset as a
|
|
897
|
+
// world-space vector, so rotate it into the line direction.
|
|
898
|
+
var cos = Math.cos(angle);
|
|
899
|
+
var sin = Math.sin(angle);
|
|
900
|
+
return {
|
|
901
|
+
angle: angle,
|
|
902
|
+
base: {
|
|
903
|
+
x: line.originX * scale,
|
|
904
|
+
y: line.originY * scale
|
|
905
|
+
},
|
|
906
|
+
offset: {
|
|
907
|
+
x: (line.deltaX * cos - line.deltaY * sin) * scale,
|
|
908
|
+
y: (line.deltaX * sin + line.deltaY * cos) * scale
|
|
909
|
+
},
|
|
910
|
+
dashLengths: line.dashes.map(function (dash) { return dash * scale; })
|
|
911
|
+
};
|
|
912
|
+
});
|
|
882
913
|
this._definitionLinesAutoGenerated = true;
|
|
883
914
|
this._definitionLinesPatternName = normalizedPatternName;
|
|
884
915
|
this._definitionLinesPatternScale = scale;
|
|
@@ -1952,7 +1983,7 @@ var AcDbHatch = /** @class */ (function (_super) {
|
|
|
1952
1983
|
filer.writeDouble(41, patternScale);
|
|
1953
1984
|
filer.writeInt16(77, 0);
|
|
1954
1985
|
filer.writeInt16(78, this.definitionLines.length);
|
|
1955
|
-
this.
|
|
1986
|
+
this.getDxfDefinitionLines(patternAngle).forEach(function (line) {
|
|
1956
1987
|
// Hatch pattern lines use 43/44 and 45/46 (not code+10 point pairs).
|
|
1957
1988
|
filer.writeAngle(53, line.angle);
|
|
1958
1989
|
filer.writeDouble(43, line.base.x);
|
|
@@ -2210,6 +2241,15 @@ var AcDbHatch = /** @class */ (function (_super) {
|
|
|
2210
2241
|
if (currentPatternLine) {
|
|
2211
2242
|
this.definitionLines.push(currentPatternLine);
|
|
2212
2243
|
}
|
|
2244
|
+
else if (this._definitionLinesAutoGenerated) {
|
|
2245
|
+
// Group codes 2/76/41 come before the pattern lines and expand
|
|
2246
|
+
// the bundled PAT entry; the file's own lines replace it.
|
|
2247
|
+
// Keeping both drew two interleaved families of strokes.
|
|
2248
|
+
this._definitionLines = [];
|
|
2249
|
+
this._definitionLinesAutoGenerated = false;
|
|
2250
|
+
this._definitionLinesPatternName = '';
|
|
2251
|
+
this._definitionLinesPatternScale = 1;
|
|
2252
|
+
}
|
|
2213
2253
|
currentPatternLine = {
|
|
2214
2254
|
angle: (n * Math.PI) / 180,
|
|
2215
2255
|
base: { x: 0, y: 0 },
|