@mlightcad/data-model 1.5.4 → 1.6.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.
@@ -343,7 +343,7 @@ var AcDbDimension = /** @class */ (function (_super) {
343
343
  var blockTableRecord = this.database.tables.blockTable.getAt(this.dimBlockId);
344
344
  if (blockTableRecord) {
345
345
  var matrix = this.computeDimBlockTransform();
346
- var group_1 = AcDbRenderingCache.instance.draw(renderer, blockTableRecord, this.rgbColor, false, matrix);
346
+ var group_1 = AcDbRenderingCache.instance.draw(renderer, blockTableRecord, this.rgbColor, false, matrix, this._normal);
347
347
  this.attachEntityInfo(group_1);
348
348
  return group_1;
349
349
  }
@@ -519,22 +519,88 @@ var AcDbDimension = /** @class */ (function (_super) {
519
519
  ? blockTableRecord.name.toUpperCase()
520
520
  : AcGiArrowType.Closed);
521
521
  };
522
+ /**
523
+ * Computes the block-local transformation matrix for the anonymous block
524
+ * referenced by this dimension entity.
525
+ *
526
+ * In AutoCAD, each dimension references an **anonymous block** that contains
527
+ * the graphical representation of the dimension (dimension line, extension
528
+ * lines, arrows, and text). That block is defined in the **dimension’s Object
529
+ * Coordinate System (OCS)**.
530
+ *
531
+ * This method computes the transformation that positions the anonymous
532
+ * dimension block **within the dimension’s OCS**, excluding any extrusion
533
+ * (normal) transformation.
534
+ *
535
+ * Conceptually, AutoCAD applies the following steps when displaying a
536
+ * dimension block:
537
+ *
538
+ * 1. Translate block geometry by the negative block base point
539
+ * 2. Translate by the dimension block position (DXF group code 12)
540
+ * 3. Finally, transform from OCS to WCS using the dimension normal (DXF 210)
541
+ *
542
+ * This method implements **steps 1 and 2 only**.
543
+ *
544
+ * The OCS → WCS transformation derived from {@link normal} is **intentionally
545
+ * excluded** and must be applied **after rendering** (see
546
+ * {@link AcDbRenderingCache.draw}). This matches AutoCAD / RealDWG behavior and
547
+ * ensures:
548
+ *
549
+ * - Dimension text rotation remains defined in OCS
550
+ * - Arrow orientation and extension line directions remain correct
551
+ * - Anonymous dimension blocks can be safely cached and reused
552
+ *
553
+ * ### Matrix composition (right-multiply convention)
554
+ *
555
+ * ```
556
+ * dimBlockTransform =
557
+ * T(dimBlockPosition)
558
+ * · T(-blockBasePoint)
559
+ * ```
560
+ *
561
+ * ### Notes
562
+ *
563
+ * - The returned matrix operates entirely in dimension OCS
564
+ * - No scaling or rotation is applied here
565
+ * - {@link normal} is applied later as a final orientation step
566
+ * - This mirrors the internal behavior of `AcDbDimension` in ObjectARX
567
+ *
568
+ * @returns A transformation matrix that positions the anonymous dimension
569
+ * block in OCS space, excluding extrusion.
570
+ */
522
571
  AcDbDimension.prototype.computeDimBlockTransform = function () {
523
572
  var _a;
524
573
  var blockTableRecord = this.dimBlockId
525
574
  ? this.database.tables.blockTable.getAt(this.dimBlockId)
526
575
  : undefined;
576
+ // The base point of the anonymous dimension block definition
527
577
  var basePoint = (_a = blockTableRecord === null || blockTableRecord === void 0 ? void 0 : blockTableRecord.origin) !== null && _a !== void 0 ? _a : AcGePoint3d.ORIGIN;
528
- // 1. Insertion point (DXF 12)
529
- var mInsert = new AcGeMatrix3d().makeTranslation(this._dimBlockPosition.x, this._dimBlockPosition.y, this._dimBlockPosition.z);
530
- // 2. OCS → WCS
531
- var mOcs = new AcGeMatrix3d();
532
- mOcs.setFromExtrusionDirection(this._normal);
533
- // 3. Base point compensation
578
+ // ------------------------------------------------------------
579
+ // Step 1: Base point compensation
580
+ //
581
+ // Move block geometry so that the block base point
582
+ // coincides with the origin of dimension OCS.
583
+ // ------------------------------------------------------------
534
584
  var mBase = new AcGeMatrix3d().makeTranslation(-basePoint.x, -basePoint.y, -basePoint.z);
535
- // Final matrix:
536
- // T(insert) · OCS · T(-base)
537
- return new AcGeMatrix3d().multiplyMatrices(mInsert, mOcs).multiply(mBase);
585
+ // ------------------------------------------------------------
586
+ // Step 2: Insertion offset (DXF group code 12)
587
+ //
588
+ // This is the relative offset of the dimension block
589
+ // in WCS, applied in dimension OCS coordinates.
590
+ // ------------------------------------------------------------
591
+ var mInsert = new AcGeMatrix3d().makeTranslation(this._dimBlockPosition.x, this._dimBlockPosition.y, this._dimBlockPosition.z);
592
+ // ------------------------------------------------------------
593
+ // Final matrix (OCS space only):
594
+ //
595
+ // dimBlockTransform =
596
+ // T(dimBlockPosition)
597
+ // · T(-blockBasePoint)
598
+ //
599
+ // NOTE:
600
+ // - This matrix operates entirely in dimension OCS
601
+ // - The extrusion / normal is intentionally excluded
602
+ // ------------------------------------------------------------
603
+ return new AcGeMatrix3d().multiplyMatrices(mInsert, mBase);
538
604
  };
539
605
  /** The entity type name */
540
606
  AcDbDimension.typeName = 'Dimension';
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbDimension.js","sourceRoot":"","sources":["../../../src/entity/dimension/AcDbDimension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcDbDimension.js","sourceRoot":"","sources":["../../../src/entity/dimension/AcDbDimension.ts"],"names":[],"mappings":"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"}
@@ -48,4 +48,108 @@ export declare enum AcDbOsnapMode {
48
48
  */
49
49
  Centroid = 11
50
50
  }
51
+ /**
52
+ * Converts an array of {@link AcDbOsnapMode} values into a single integer bitmask.
53
+ *
54
+ * ⚠️ Important:
55
+ * {@link AcDbOsnapMode} values are **ordinal identifiers**, not bit flags.
56
+ * Each mode is mapped to a bit position using the rule:
57
+ *
58
+ * `bit = (mode - 1)`
59
+ *
60
+ * This allows multiple object snap modes to be stored efficiently
61
+ * in a single integer using bitwise operations.
62
+ *
63
+ * @param modes - Array of object snap modes to enable
64
+ * @returns Integer bitmask representing the enabled object snap modes
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const mask = acDbOsnapModesToMask([
69
+ * AcDbOsnapMode.EndPoint,
70
+ * AcDbOsnapMode.MidPoint,
71
+ * AcDbOsnapMode.Perpendicular
72
+ * ])
73
+ * // mask === 131
74
+ * ```
75
+ */
76
+ export declare function acdbOsnapModesToMask(modes: AcDbOsnapMode[]): number;
77
+ /**
78
+ * Converts an integer bitmask into an array of {@link AcDbOsnapMode} values.
79
+ *
80
+ * The function iterates over all {@link AcDbOsnapMode} enum values and
81
+ * checks whether the corresponding bit (computed as `1 << (mode - 1)`)
82
+ * is set in the provided mask.
83
+ *
84
+ * @param mask - Integer bitmask containing object snap mode flags
85
+ * @returns Array of enabled {@link AcDbOsnapMode} values
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const modes = acDbMaskToOsnapModes(131)
90
+ * // [
91
+ * // AcDbOsnapMode.EndPoint,
92
+ * // AcDbOsnapMode.MidPoint,
93
+ * // AcDbOsnapMode.Perpendicular
94
+ * // ]
95
+ * ```
96
+ */
97
+ export declare function acdbMaskToOsnapModes(mask: number): AcDbOsnapMode[];
98
+ /**
99
+ * Toggles a specific {@link AcDbOsnapMode} in an object snap bitmask.
100
+ *
101
+ * If the mode is currently enabled, it will be disabled.
102
+ * If the mode is disabled, it will be enabled.
103
+ *
104
+ * @param mask - Current object snap mode bitmask
105
+ * @param mode - Object snap mode to toggle
106
+ * @returns Updated bitmask with the specified mode toggled
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * mask = acdbToggleOsnapMode(mask, AcDbOsnapMode.MidPoint)
111
+ * ```
112
+ */
113
+ export declare function acdbToggleOsnapMode(mask: number, mode: AcDbOsnapMode): number;
114
+ /**
115
+ * Checks whether a specific {@link AcDbOsnapMode} is enabled in the bitmask.
116
+ *
117
+ * @param mask - Object snap mode bitmask
118
+ * @param mode - Object snap mode to test
119
+ * @returns `true` if the mode is enabled; otherwise `false`
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * if (acdbHasOsnapMode(mask, AcDbOsnapMode.EndPoint)) {
124
+ * // EndPoint snapping is enabled
125
+ * }
126
+ * ```
127
+ */
128
+ export declare function acdbHasOsnapMode(mask: number, mode: AcDbOsnapMode): boolean;
129
+ /**
130
+ * Enables a specific {@link AcDbOsnapMode} in the object snap bitmask.
131
+ *
132
+ * @param mask - Current object snap mode bitmask
133
+ * @param mode - Object snap mode to enable
134
+ * @returns Updated bitmask with the mode enabled
135
+ *
136
+ * @example
137
+ * ```ts
138
+ * mask = acdbEnableOsnapMode(mask, AcDbOsnapMode.Tangent)
139
+ * ```
140
+ */
141
+ export declare function acdbEnableOsnapMode(mask: number, mode: AcDbOsnapMode): number;
142
+ /**
143
+ * Disables a specific {@link AcDbOsnapMode} in the object snap bitmask.
144
+ *
145
+ * @param mask - Current object snap mode bitmask
146
+ * @param mode - Object snap mode to disable
147
+ * @returns Updated bitmask with the mode disabled
148
+ *
149
+ * @example
150
+ * ```ts
151
+ * mask = acdbDisableOsnapMode(mask, AcDbOsnapMode.Nearest)
152
+ * ```
153
+ */
154
+ export declare function acdbDisableOsnapMode(mask: number, mode: AcDbOsnapMode): number;
51
155
  //# sourceMappingURL=AcDbOsnapMode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbOsnapMode.d.ts","sourceRoot":"","sources":["../../src/misc/AcDbOsnapMode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,aAAa;IACvB;;OAEG;IACH,QAAQ,IAAI;IACZ;;OAEG;IACH,QAAQ,IAAI;IACZ;;OAEG;IACH,MAAM,IAAI;IACV;;OAEG;IACH,IAAI,IAAI;IACR;;;OAGG;IACH,QAAQ,IAAI;IACZ;;OAEG;IACH,SAAS,IAAI;IACb;;OAEG;IACH,aAAa,IAAI;IACjB;;OAEG;IACH,OAAO,IAAI;IACX;;OAEG;IACH,OAAO,KAAK;IACZ;;OAEG;IACH,QAAQ,KAAK;CACd"}
1
+ {"version":3,"file":"AcDbOsnapMode.d.ts","sourceRoot":"","sources":["../../src/misc/AcDbOsnapMode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,aAAa;IACvB;;OAEG;IACH,QAAQ,IAAI;IACZ;;OAEG;IACH,QAAQ,IAAI;IACZ;;OAEG;IACH,MAAM,IAAI;IACV;;OAEG;IACH,IAAI,IAAI;IACR;;;OAGG;IACH,QAAQ,IAAI;IACZ;;OAEG;IACH,SAAS,IAAI;IACb;;OAEG;IACH,aAAa,IAAI;IACjB;;OAEG;IACH,OAAO,IAAI;IACX;;OAEG;IACH,OAAO,KAAK;IACZ;;OAEG;IACH,QAAQ,KAAK;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAQnE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAalE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAE7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAE3E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAE7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,GAClB,MAAM,CAER"}
@@ -1,3 +1,14 @@
1
+ var __values = (this && this.__values) || function(o) {
2
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
+ if (m) return m.call(o);
4
+ if (o && typeof o.length === "number") return {
5
+ next: function () {
6
+ if (o && i >= o.length) o = void 0;
7
+ return { value: o && o[i++], done: !o };
8
+ }
9
+ };
10
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
+ };
1
12
  /**
2
13
  * Enumeration of object snap modes used in AutoCAD.
3
14
  *
@@ -49,4 +60,155 @@ export var AcDbOsnapMode;
49
60
  */
50
61
  AcDbOsnapMode[AcDbOsnapMode["Centroid"] = 11] = "Centroid";
51
62
  })(AcDbOsnapMode || (AcDbOsnapMode = {}));
63
+ /**
64
+ * Converts an array of {@link AcDbOsnapMode} values into a single integer bitmask.
65
+ *
66
+ * ⚠️ Important:
67
+ * {@link AcDbOsnapMode} values are **ordinal identifiers**, not bit flags.
68
+ * Each mode is mapped to a bit position using the rule:
69
+ *
70
+ * `bit = (mode - 1)`
71
+ *
72
+ * This allows multiple object snap modes to be stored efficiently
73
+ * in a single integer using bitwise operations.
74
+ *
75
+ * @param modes - Array of object snap modes to enable
76
+ * @returns Integer bitmask representing the enabled object snap modes
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const mask = acDbOsnapModesToMask([
81
+ * AcDbOsnapMode.EndPoint,
82
+ * AcDbOsnapMode.MidPoint,
83
+ * AcDbOsnapMode.Perpendicular
84
+ * ])
85
+ * // mask === 131
86
+ * ```
87
+ */
88
+ export function acdbOsnapModesToMask(modes) {
89
+ var e_1, _a;
90
+ var mask = 0;
91
+ try {
92
+ for (var modes_1 = __values(modes), modes_1_1 = modes_1.next(); !modes_1_1.done; modes_1_1 = modes_1.next()) {
93
+ var mode = modes_1_1.value;
94
+ mask |= 1 << (mode - 1);
95
+ }
96
+ }
97
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
98
+ finally {
99
+ try {
100
+ if (modes_1_1 && !modes_1_1.done && (_a = modes_1.return)) _a.call(modes_1);
101
+ }
102
+ finally { if (e_1) throw e_1.error; }
103
+ }
104
+ return mask;
105
+ }
106
+ /**
107
+ * Converts an integer bitmask into an array of {@link AcDbOsnapMode} values.
108
+ *
109
+ * The function iterates over all {@link AcDbOsnapMode} enum values and
110
+ * checks whether the corresponding bit (computed as `1 << (mode - 1)`)
111
+ * is set in the provided mask.
112
+ *
113
+ * @param mask - Integer bitmask containing object snap mode flags
114
+ * @returns Array of enabled {@link AcDbOsnapMode} values
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * const modes = acDbMaskToOsnapModes(131)
119
+ * // [
120
+ * // AcDbOsnapMode.EndPoint,
121
+ * // AcDbOsnapMode.MidPoint,
122
+ * // AcDbOsnapMode.Perpendicular
123
+ * // ]
124
+ * ```
125
+ */
126
+ export function acdbMaskToOsnapModes(mask) {
127
+ var e_2, _a;
128
+ var modes = [];
129
+ try {
130
+ for (var _b = __values(Object.values(AcDbOsnapMode)), _c = _b.next(); !_c.done; _c = _b.next()) {
131
+ var value = _c.value;
132
+ if (typeof value !== 'number')
133
+ continue;
134
+ var bit = 1 << (value - 1);
135
+ if ((mask & bit) !== 0) {
136
+ modes.push(value);
137
+ }
138
+ }
139
+ }
140
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
141
+ finally {
142
+ try {
143
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
144
+ }
145
+ finally { if (e_2) throw e_2.error; }
146
+ }
147
+ return modes;
148
+ }
149
+ /**
150
+ * Toggles a specific {@link AcDbOsnapMode} in an object snap bitmask.
151
+ *
152
+ * If the mode is currently enabled, it will be disabled.
153
+ * If the mode is disabled, it will be enabled.
154
+ *
155
+ * @param mask - Current object snap mode bitmask
156
+ * @param mode - Object snap mode to toggle
157
+ * @returns Updated bitmask with the specified mode toggled
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * mask = acdbToggleOsnapMode(mask, AcDbOsnapMode.MidPoint)
162
+ * ```
163
+ */
164
+ export function acdbToggleOsnapMode(mask, mode) {
165
+ return mask ^ (1 << (mode - 1));
166
+ }
167
+ /**
168
+ * Checks whether a specific {@link AcDbOsnapMode} is enabled in the bitmask.
169
+ *
170
+ * @param mask - Object snap mode bitmask
171
+ * @param mode - Object snap mode to test
172
+ * @returns `true` if the mode is enabled; otherwise `false`
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * if (acdbHasOsnapMode(mask, AcDbOsnapMode.EndPoint)) {
177
+ * // EndPoint snapping is enabled
178
+ * }
179
+ * ```
180
+ */
181
+ export function acdbHasOsnapMode(mask, mode) {
182
+ return (mask & (1 << (mode - 1))) !== 0;
183
+ }
184
+ /**
185
+ * Enables a specific {@link AcDbOsnapMode} in the object snap bitmask.
186
+ *
187
+ * @param mask - Current object snap mode bitmask
188
+ * @param mode - Object snap mode to enable
189
+ * @returns Updated bitmask with the mode enabled
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * mask = acdbEnableOsnapMode(mask, AcDbOsnapMode.Tangent)
194
+ * ```
195
+ */
196
+ export function acdbEnableOsnapMode(mask, mode) {
197
+ return mask | (1 << (mode - 1));
198
+ }
199
+ /**
200
+ * Disables a specific {@link AcDbOsnapMode} in the object snap bitmask.
201
+ *
202
+ * @param mask - Current object snap mode bitmask
203
+ * @param mode - Object snap mode to disable
204
+ * @returns Updated bitmask with the mode disabled
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * mask = acdbDisableOsnapMode(mask, AcDbOsnapMode.Nearest)
209
+ * ```
210
+ */
211
+ export function acdbDisableOsnapMode(mask, mode) {
212
+ return mask & ~(1 << (mode - 1));
213
+ }
52
214
  //# sourceMappingURL=AcDbOsnapMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbOsnapMode.js","sourceRoot":"","sources":["../../src/misc/AcDbOsnapMode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,aA0CX;AA1CD,WAAY,aAAa;IACvB;;OAEG;IACH,yDAAY,CAAA;IACZ;;OAEG;IACH,yDAAY,CAAA;IACZ;;OAEG;IACH,qDAAU,CAAA;IACV;;OAEG;IACH,iDAAQ,CAAA;IACR;;;OAGG;IACH,yDAAY,CAAA;IACZ;;OAEG;IACH,2DAAa,CAAA;IACb;;OAEG;IACH,mEAAiB,CAAA;IACjB;;OAEG;IACH,uDAAW,CAAA;IACX;;OAEG;IACH,wDAAY,CAAA;IACZ;;OAEG;IACH,0DAAa,CAAA;AACf,CAAC,EA1CW,aAAa,KAAb,aAAa,QA0CxB"}
1
+ {"version":3,"file":"AcDbOsnapMode.js","sourceRoot":"","sources":["../../src/misc/AcDbOsnapMode.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,aA0CX;AA1CD,WAAY,aAAa;IACvB;;OAEG;IACH,yDAAY,CAAA;IACZ;;OAEG;IACH,yDAAY,CAAA;IACZ;;OAEG;IACH,qDAAU,CAAA;IACV;;OAEG;IACH,iDAAQ,CAAA;IACR;;;OAGG;IACH,yDAAY,CAAA;IACZ;;OAEG;IACH,2DAAa,CAAA;IACb;;OAEG;IACH,mEAAiB,CAAA;IACjB;;OAEG;IACH,uDAAW,CAAA;IACX;;OAEG;IACH,wDAAY,CAAA;IACZ;;OAEG;IACH,0DAAa,CAAA;AACf,CAAC,EA1CW,aAAa,KAAb,aAAa,QA0CxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAsB;;IACzD,IAAI,IAAI,GAAG,CAAC,CAAA;;QAEZ,KAAmB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE,CAAC;YAAtB,IAAM,IAAI,kBAAA;YACb,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QACzB,CAAC;;;;;;;;;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;;IAC/C,IAAM,KAAK,GAAoB,EAAE,CAAA;;QAEjC,KAAoB,IAAA,KAAA,SAAA,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA,gBAAA,4BAAE,CAAC;YAA9C,IAAM,KAAK,WAAA;YACd,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAQ;YAEvC,IAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;;;;;;;;;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAmB;IACnE,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAmB;IAChE,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAmB;IACnE,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,IAAmB;IAEnB,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AcGeMatrix3d } from '@mlightcad/geometry-engine';
1
+ import { AcGeMatrix3d, AcGeVector3d } from '@mlightcad/geometry-engine';
2
2
  import { AcGiEntity, AcGiRenderer } from '@mlightcad/graphic-interface';
3
3
  import { AcDbBlockTableRecord } from '../database';
4
4
  /**
@@ -134,7 +134,7 @@ export declare class AcDbRenderingCache {
134
134
  * );
135
135
  * ```
136
136
  */
137
- draw(renderer: AcGiRenderer, blockTableRecord: AcDbBlockTableRecord, color: number, cache?: boolean, transform?: AcGeMatrix3d): AcGiEntity | undefined;
137
+ draw(renderer: AcGiRenderer, blockTableRecord: AcDbBlockTableRecord, color: number, cache?: boolean, transform?: AcGeMatrix3d, normal?: AcGeVector3d): AcGiEntity | undefined;
138
138
  private addEntity;
139
139
  private attachEntityInfo;
140
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbRenderingCache.d.ts","sourceRoot":"","sources":["../../src/misc/AcDbRenderingCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAAyB;IACxC,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAoB;IAE7C;;;;;;;;;OASG;IACH,MAAM,KAAK,QAAQ,uBAKlB;IAED;;;;;;;OAOG;;IAKH;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIrC;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAMlC;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM;IAQhB;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB;;;;;;;;OAQG;IACH,KAAK;IAIL;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,IAAI,CACF,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,oBAAoB,EACtC,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,OAAc,EACrB,SAAS,CAAC,EAAE,YAAY;IAsD1B,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,gBAAgB;CAMzB"}
1
+ {"version":3,"file":"AcDbRenderingCache.d.ts","sourceRoot":"","sources":["../../src/misc/AcDbRenderingCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAGvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAElD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAAyB;IACxC,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAoB;IAE7C;;;;;;;;;OASG;IACH,MAAM,KAAK,QAAQ,uBAKlB;IAED;;;;;;;OAOG;;IAKH;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIrC;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAMlC;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM;IAQhB;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB;;;;;;;;OAQG;IACH,KAAK;IAIL;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,IAAI,CACF,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,oBAAoB,EACtC,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,OAAc,EACrB,SAAS,CAAC,EAAE,YAAY,EACxB,MAAM,CAAC,EAAE,YAAY;IA0DvB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -167,7 +167,7 @@ var AcDbRenderingCache = /** @class */ (function () {
167
167
  * );
168
168
  * ```
169
169
  */
170
- AcDbRenderingCache.prototype.draw = function (renderer, blockTableRecord, color, cache, transform) {
170
+ AcDbRenderingCache.prototype.draw = function (renderer, blockTableRecord, color, cache, transform, normal) {
171
171
  var e_1, _a;
172
172
  var _b;
173
173
  if (cache === void 0) { cache = true; }
@@ -224,6 +224,10 @@ var AcDbRenderingCache = /** @class */ (function () {
224
224
  }
225
225
  if (block && transform) {
226
226
  block.applyMatrix(transform);
227
+ if (normal && (normal.x != 0 || normal.y != 0 || normal.z != 1)) {
228
+ transform.setFromExtrusionDirection(normal);
229
+ block.applyMatrix(transform);
230
+ }
227
231
  }
228
232
  return block;
229
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbRenderingCache.js","sourceRoot":"","sources":["../../src/misc/AcDbRenderingCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcDbRenderingCache.js","sourceRoot":"","sources":["../../src/misc/AcDbRenderingCache.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlightcad/data-model",
3
- "version": "1.5.4",
3
+ "version": "1.6.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
@@ -36,8 +36,8 @@
36
36
  "iconv-lite": "^0.7.0",
37
37
  "uid": "^2.0.2",
38
38
  "@mlightcad/common": "1.3.0",
39
- "@mlightcad/geometry-engine": "3.1.3",
40
- "@mlightcad/graphic-interface": "3.1.4"
39
+ "@mlightcad/graphic-interface": "3.2.0",
40
+ "@mlightcad/geometry-engine": "3.1.3"
41
41
  },
42
42
  "scripts": {
43
43
  "analyze": "pnpm run analyze:lib && pnpm run analyze:worker",