@mlightcad/data-model 1.7.31 → 1.7.33

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.
@@ -1,4 +1,54 @@
1
+ import type { AcDbGradientName } from '../../entity/AcDbHatch';
1
2
  import type { AcDbPatPattern, AcDbPatPreviewOptions } from './AcDbPatDefinition';
3
+ export type AcDbPatGradientColor = number | string;
4
+ /**
5
+ * Optional preview options when rendering an AutoCAD hatch gradient to SVG.
6
+ */
7
+ export interface AcDbPatGradientPreviewOptions {
8
+ /**
9
+ * SVG viewport width in pixels.
10
+ */
11
+ width?: number;
12
+ /**
13
+ * SVG viewport height in pixels.
14
+ */
15
+ height?: number;
16
+ /**
17
+ * First gradient color.
18
+ *
19
+ * A number is treated as packed RGB (`0xRRGGBB`). A string is emitted as a
20
+ * CSS color value.
21
+ */
22
+ startColor?: AcDbPatGradientColor;
23
+ /**
24
+ * Second gradient color.
25
+ *
26
+ * A number is treated as packed RGB (`0xRRGGBB`). A string is emitted as a
27
+ * CSS color value.
28
+ */
29
+ endColor?: AcDbPatGradientColor;
30
+ /**
31
+ * Background fill color shown behind the gradient rectangle.
32
+ */
33
+ background?: string;
34
+ /**
35
+ * Gradient angle in radians, matching {@link AcDbHatch.gradientAngle}.
36
+ */
37
+ angle?: number;
38
+ /**
39
+ * Relative shift applied to the gradient focus or midpoint.
40
+ */
41
+ shift?: number;
42
+ /**
43
+ * Whether the gradient uses one base color plus a shade/tint variant.
44
+ */
45
+ oneColorMode?: boolean;
46
+ /**
47
+ * Shade/tint value used in one-color mode. `0` maps to black, `0.5` keeps the
48
+ * base color, and `1` maps to white.
49
+ */
50
+ shadeTintValue?: number;
51
+ }
2
52
  /**
3
53
  * Renders an {@link AcDbPatPattern} into a standalone SVG preview string.
4
54
  *
@@ -9,22 +59,60 @@ import type { AcDbPatPattern, AcDbPatPreviewOptions } from './AcDbPatDefinition'
9
59
  export declare class AcDbPatSvgRenderer {
10
60
  /** Numerical tolerance used to avoid division-by-zero and near-zero noise. */
11
61
  private static readonly EPSILON;
62
+ private static gradientIdCounter;
12
63
  /**
13
- * Converts an angle from degrees to radians.
64
+ * Builds an SVG-local ID that avoids collisions when multiple previews are
65
+ * injected into the same document.
14
66
  *
15
- * @param degrees - Angle in degrees.
16
- * @returns The same angle expressed in radians.
67
+ * @param name - Gradient pattern name.
68
+ * @returns Unique gradient ID.
17
69
  */
18
- private static toRadians;
70
+ private static nextGradientId;
19
71
  /**
20
- * Clamps a value into an inclusive range.
72
+ * Converts a packed RGB value to a CSS hex color.
21
73
  *
22
- * @param value - Source value.
23
- * @param min - Lower bound (inclusive).
24
- * @param max - Upper bound (inclusive).
25
- * @returns `value` projected into `[min, max]`.
74
+ * @param rgb - Packed RGB value.
75
+ * @returns CSS hex color.
26
76
  */
27
- private static clamp;
77
+ private static packedRgbToCss;
78
+ /**
79
+ * Converts either packed RGB or CSS color input to a CSS color string.
80
+ *
81
+ * @param color - Source color.
82
+ * @param fallback - Color used when source is undefined.
83
+ * @returns CSS color.
84
+ */
85
+ private static gradientColorToCss;
86
+ /**
87
+ * Computes the shade/tint variant used by one-color gradient hatches.
88
+ *
89
+ * @param rgb - Packed base RGB value.
90
+ * @param shadeTintValue - Interpolation from black (`0`) through base
91
+ * (`0.5`) to white (`1`).
92
+ * @returns Packed RGB shade/tint value.
93
+ */
94
+ private static applyShadeTint;
95
+ /**
96
+ * Resolves the two CSS colors used by gradient stops.
97
+ *
98
+ * @param options - Gradient preview options.
99
+ * @returns CSS start and end colors.
100
+ */
101
+ private static resolveGradientColors;
102
+ /**
103
+ * Converts normalized stop data to SVG `<stop>` elements.
104
+ *
105
+ * @param stops - Gradient stops.
106
+ * @returns SVG stop markup.
107
+ */
108
+ private static renderGradientStops;
109
+ /**
110
+ * Gets the SVG coordinate direction for a gradient angle.
111
+ *
112
+ * @param angle - Angle in radians, measured in CAD coordinates.
113
+ * @returns Unit vector in SVG coordinates.
114
+ */
115
+ private static getGradientVector;
28
116
  /**
29
117
  * Checks whether a pattern is the reserved AutoCAD solid-fill pattern.
30
118
  *
@@ -93,6 +181,45 @@ export declare class AcDbPatSvgRenderer {
93
181
  * @returns SVG `<path>` markup containing all generated segments.
94
182
  */
95
183
  private static renderFamily;
184
+ /**
185
+ * Renders an SVG `<linearGradient>` definition.
186
+ *
187
+ * @param id - Gradient ID.
188
+ * @param angle - Gradient angle in radians.
189
+ * @param shift - Relative shift applied along the gradient axis.
190
+ * @param extent - Coordinate extent covering the viewport.
191
+ * @param stops - Color stops.
192
+ * @returns SVG gradient definition.
193
+ */
194
+ private static renderLinearGradientDef;
195
+ /**
196
+ * Renders an SVG `<radialGradient>` definition.
197
+ *
198
+ * @param id - Gradient ID.
199
+ * @param cx - Center X coordinate.
200
+ * @param cy - Center Y coordinate.
201
+ * @param radius - Gradient radius.
202
+ * @param stops - Color stops.
203
+ * @returns SVG gradient definition.
204
+ */
205
+ private static renderRadialGradientDef;
206
+ /**
207
+ * Builds the SVG definition for a hatch gradient pattern.
208
+ *
209
+ * SVG supports linear and radial gradients natively, so AutoCAD-specific
210
+ * shapes such as CYLINDER and CURVED are represented with mirrored stops or
211
+ * offset radial gradients.
212
+ *
213
+ * @param id - Gradient ID.
214
+ * @param name - AutoCAD gradient name.
215
+ * @param colors - Resolved gradient colors.
216
+ * @param angle - Gradient angle in radians.
217
+ * @param shift - Relative shift.
218
+ * @param width - SVG viewport width.
219
+ * @param height - SVG viewport height.
220
+ * @returns SVG gradient definition.
221
+ */
222
+ private static renderGradientDef;
96
223
  /**
97
224
  * Renders a PAT pattern preview as a complete SVG document string.
98
225
  *
@@ -106,5 +233,19 @@ export declare class AcDbPatSvgRenderer {
106
233
  * saved as a `.svg` asset.
107
234
  */
108
235
  renderPattern(pattern: AcDbPatPattern, options?: AcDbPatPreviewOptions): string;
236
+ /**
237
+ * Renders an AutoCAD hatch gradient preview as a complete SVG document
238
+ * string.
239
+ *
240
+ * The method uses native SVG linear/radial gradients where possible and
241
+ * approximates AutoCAD-only gradient shapes with mirrored stops or offset
242
+ * radial centers.
243
+ *
244
+ * @param name - AutoCAD gradient name.
245
+ * @param options - Optional preview style and size settings.
246
+ * @returns Standalone SVG markup that can be injected directly into DOM or
247
+ * saved as a `.svg` asset.
248
+ */
249
+ renderGradient(name: AcDbGradientName, options?: AcDbPatGradientPreviewOptions): string;
109
250
  }
110
251
  //# sourceMappingURL=AcDbPatSvgRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbPatSvgRenderer.d.ts","sourceRoot":"","sources":["../../../src/misc/pat/AcDbPatSvgRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,cAAc,EACd,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAiB5B;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IAEtC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,KAAK;IAIpB;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAQ/B;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAsFhC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAyC3B;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,qBAA0B;CAgD3E"}
1
+ {"version":3,"file":"AcDbPatSvgRenderer.d.ts","sourceRoot":"","sources":["../../../src/misc/pat/AcDbPatSvgRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,KAAK,EAEV,cAAc,EACd,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAiB5B,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAA;IAEjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAA;IAE/B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAYD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAI;IAEpC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IASjC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAkCpC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IASlC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAQ/B;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAgBhC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAI/B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAkFhC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAyC3B;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAuBtC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAgBtC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqFhC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,qBAA0B;IAiD1E;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE,6BAAkC;CA8B9C"}
@@ -20,6 +20,7 @@ var __values = (this && this.__values) || function(o) {
20
20
  };
21
21
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
22
22
  };
23
+ import { AcGeMathUtil } from '@mlightcad/geometry-engine';
23
24
  import { HATCH_PATTERN_SOLID } from '../AcDbConstants';
24
25
  /**
25
26
  * Renders an {@link AcDbPatPattern} into a standalone SVG preview string.
@@ -32,24 +33,113 @@ var AcDbPatSvgRenderer = /** @class */ (function () {
32
33
  function AcDbPatSvgRenderer() {
33
34
  }
34
35
  /**
35
- * Converts an angle from degrees to radians.
36
+ * Builds an SVG-local ID that avoids collisions when multiple previews are
37
+ * injected into the same document.
36
38
  *
37
- * @param degrees - Angle in degrees.
38
- * @returns The same angle expressed in radians.
39
+ * @param name - Gradient pattern name.
40
+ * @returns Unique gradient ID.
39
41
  */
40
- AcDbPatSvgRenderer.toRadians = function (degrees) {
41
- return (degrees * Math.PI) / 180;
42
+ AcDbPatSvgRenderer.nextGradientId = function (name) {
43
+ AcDbPatSvgRenderer.gradientIdCounter += 1;
44
+ return "acdb-pat-gradient-".concat(name.toLowerCase(), "-").concat(AcDbPatSvgRenderer.gradientIdCounter);
42
45
  };
43
46
  /**
44
- * Clamps a value into an inclusive range.
47
+ * Converts a packed RGB value to a CSS hex color.
45
48
  *
46
- * @param value - Source value.
47
- * @param min - Lower bound (inclusive).
48
- * @param max - Upper bound (inclusive).
49
- * @returns `value` projected into `[min, max]`.
49
+ * @param rgb - Packed RGB value.
50
+ * @returns CSS hex color.
50
51
  */
51
- AcDbPatSvgRenderer.clamp = function (value, min, max) {
52
- return Math.min(max, Math.max(min, value));
52
+ AcDbPatSvgRenderer.packedRgbToCss = function (rgb) {
53
+ return "#".concat((rgb & 0xffffff).toString(16).padStart(6, '0'));
54
+ };
55
+ /**
56
+ * Converts either packed RGB or CSS color input to a CSS color string.
57
+ *
58
+ * @param color - Source color.
59
+ * @param fallback - Color used when source is undefined.
60
+ * @returns CSS color.
61
+ */
62
+ AcDbPatSvgRenderer.gradientColorToCss = function (color, fallback) {
63
+ return typeof color === 'number'
64
+ ? AcDbPatSvgRenderer.packedRgbToCss(color)
65
+ : (color !== null && color !== void 0 ? color : fallback);
66
+ };
67
+ /**
68
+ * Computes the shade/tint variant used by one-color gradient hatches.
69
+ *
70
+ * @param rgb - Packed base RGB value.
71
+ * @param shadeTintValue - Interpolation from black (`0`) through base
72
+ * (`0.5`) to white (`1`).
73
+ * @returns Packed RGB shade/tint value.
74
+ */
75
+ AcDbPatSvgRenderer.applyShadeTint = function (rgb, shadeTintValue) {
76
+ var value = AcGeMathUtil.clamp(shadeTintValue, 0, 1);
77
+ var target = value < 0.5 ? 0x000000 : 0xffffff;
78
+ var amount = value < 0.5 ? 1 - value * 2 : value * 2 - 1;
79
+ var r = (rgb >> 16) & 0xff;
80
+ var g = (rgb >> 8) & 0xff;
81
+ var b = rgb & 0xff;
82
+ var targetR = (target >> 16) & 0xff;
83
+ var targetG = (target >> 8) & 0xff;
84
+ var targetB = target & 0xff;
85
+ return (Math.round(r + (targetR - r) * amount) * 0x10000 +
86
+ Math.round(g + (targetG - g) * amount) * 0x100 +
87
+ Math.round(b + (targetB - b) * amount));
88
+ };
89
+ /**
90
+ * Resolves the two CSS colors used by gradient stops.
91
+ *
92
+ * @param options - Gradient preview options.
93
+ * @returns CSS start and end colors.
94
+ */
95
+ AcDbPatSvgRenderer.resolveGradientColors = function (options) {
96
+ var _a, _b;
97
+ var fallbackStart = '#2563eb';
98
+ var fallbackEnd = '#f8fafc';
99
+ var start = AcDbPatSvgRenderer.gradientColorToCss(options.startColor, fallbackStart);
100
+ if (options.oneColorMode && options.endColor == null) {
101
+ if (typeof options.startColor === 'number') {
102
+ var tinted = AcDbPatSvgRenderer.applyShadeTint(options.startColor, (_a = options.shadeTintValue) !== null && _a !== void 0 ? _a : 0.5);
103
+ return {
104
+ start: start,
105
+ end: AcDbPatSvgRenderer.packedRgbToCss(tinted)
106
+ };
107
+ }
108
+ return {
109
+ start: start,
110
+ end: ((_b = options.shadeTintValue) !== null && _b !== void 0 ? _b : 0.5) < 0.5 ? '#000000' : '#ffffff'
111
+ };
112
+ }
113
+ return {
114
+ start: start,
115
+ end: AcDbPatSvgRenderer.gradientColorToCss(options.endColor, fallbackEnd)
116
+ };
117
+ };
118
+ /**
119
+ * Converts normalized stop data to SVG `<stop>` elements.
120
+ *
121
+ * @param stops - Gradient stops.
122
+ * @returns SVG stop markup.
123
+ */
124
+ AcDbPatSvgRenderer.renderGradientStops = function (stops) {
125
+ return stops
126
+ .map(function (stop) {
127
+ var offset = AcGeMathUtil.clamp(stop.offset, 0, 1) * 100;
128
+ return "<stop offset=\"".concat(offset.toFixed(2), "%\" stop-color=\"").concat(stop.color, "\" />");
129
+ })
130
+ .join('');
131
+ };
132
+ /**
133
+ * Gets the SVG coordinate direction for a gradient angle.
134
+ *
135
+ * @param angle - Angle in radians, measured in CAD coordinates.
136
+ * @returns Unit vector in SVG coordinates.
137
+ */
138
+ AcDbPatSvgRenderer.getGradientVector = function (angle) {
139
+ return {
140
+ x: Math.cos(angle),
141
+ y: -Math.sin(angle)
142
+ };
53
143
  };
54
144
  /**
55
145
  * Checks whether a pattern is the reserved AutoCAD solid-fill pattern.
@@ -183,8 +273,8 @@ var AcDbPatSvgRenderer = /** @class */ (function () {
183
273
  var length_1 = Math.abs(dashValue);
184
274
  var nextCursor = cursor + length_1;
185
275
  if (dashValue > 0 || dashValue === 0) {
186
- var drawStart = AcDbPatSvgRenderer.clamp(cursor, startAlong, endAlong);
187
- var drawEnd = AcDbPatSvgRenderer.clamp(nextCursor, startAlong, endAlong);
276
+ var drawStart = AcGeMathUtil.clamp(cursor, startAlong, endAlong);
277
+ var drawEnd = AcGeMathUtil.clamp(nextCursor, startAlong, endAlong);
188
278
  if (drawEnd > drawStart) {
189
279
  segments.push({
190
280
  x1: originX + dirX * drawStart,
@@ -230,7 +320,7 @@ var AcDbPatSvgRenderer = /** @class */ (function () {
230
320
  */
231
321
  AcDbPatSvgRenderer.renderFamily = function (line, maxRadius) {
232
322
  var e_4, _a;
233
- var angle = AcDbPatSvgRenderer.toRadians(line.angle);
323
+ var angle = AcGeMathUtil.degToRad(line.angle);
234
324
  var dirX = Math.cos(angle);
235
325
  var dirY = Math.sin(angle);
236
326
  var normalX = -dirY;
@@ -265,6 +355,111 @@ var AcDbPatSvgRenderer = /** @class */ (function () {
265
355
  }
266
356
  return "<path d=\"".concat(paths.join(' '), "\" fill=\"none\" />");
267
357
  };
358
+ /**
359
+ * Renders an SVG `<linearGradient>` definition.
360
+ *
361
+ * @param id - Gradient ID.
362
+ * @param angle - Gradient angle in radians.
363
+ * @param shift - Relative shift applied along the gradient axis.
364
+ * @param extent - Coordinate extent covering the viewport.
365
+ * @param stops - Color stops.
366
+ * @returns SVG gradient definition.
367
+ */
368
+ AcDbPatSvgRenderer.renderLinearGradientDef = function (id, angle, shift, extent, stops) {
369
+ var dir = AcDbPatSvgRenderer.getGradientVector(angle);
370
+ var shiftDistance = AcGeMathUtil.clamp(shift, -1, 1) * extent * 0.5;
371
+ var offsetX = dir.x * shiftDistance;
372
+ var offsetY = dir.y * shiftDistance;
373
+ return [
374
+ "<linearGradient id=\"".concat(id, "\" gradientUnits=\"userSpaceOnUse\""),
375
+ " x1=\"".concat((-dir.x * extent + offsetX).toFixed(2), "\""),
376
+ " y1=\"".concat((-dir.y * extent + offsetY).toFixed(2), "\""),
377
+ " x2=\"".concat((dir.x * extent + offsetX).toFixed(2), "\""),
378
+ " y2=\"".concat((dir.y * extent + offsetY).toFixed(2), "\">"),
379
+ AcDbPatSvgRenderer.renderGradientStops(stops),
380
+ '</linearGradient>'
381
+ ].join('');
382
+ };
383
+ /**
384
+ * Renders an SVG `<radialGradient>` definition.
385
+ *
386
+ * @param id - Gradient ID.
387
+ * @param cx - Center X coordinate.
388
+ * @param cy - Center Y coordinate.
389
+ * @param radius - Gradient radius.
390
+ * @param stops - Color stops.
391
+ * @returns SVG gradient definition.
392
+ */
393
+ AcDbPatSvgRenderer.renderRadialGradientDef = function (id, cx, cy, radius, stops) {
394
+ return [
395
+ "<radialGradient id=\"".concat(id, "\" gradientUnits=\"userSpaceOnUse\""),
396
+ " cx=\"".concat(cx.toFixed(2), "\" cy=\"").concat(cy.toFixed(2), "\" r=\"").concat(radius.toFixed(2), "\""),
397
+ " fx=\"".concat(cx.toFixed(2), "\" fy=\"").concat(cy.toFixed(2), "\">"),
398
+ AcDbPatSvgRenderer.renderGradientStops(stops),
399
+ '</radialGradient>'
400
+ ].join('');
401
+ };
402
+ /**
403
+ * Builds the SVG definition for a hatch gradient pattern.
404
+ *
405
+ * SVG supports linear and radial gradients natively, so AutoCAD-specific
406
+ * shapes such as CYLINDER and CURVED are represented with mirrored stops or
407
+ * offset radial gradients.
408
+ *
409
+ * @param id - Gradient ID.
410
+ * @param name - AutoCAD gradient name.
411
+ * @param colors - Resolved gradient colors.
412
+ * @param angle - Gradient angle in radians.
413
+ * @param shift - Relative shift.
414
+ * @param width - SVG viewport width.
415
+ * @param height - SVG viewport height.
416
+ * @returns SVG gradient definition.
417
+ */
418
+ AcDbPatSvgRenderer.renderGradientDef = function (id, name, colors, angle, shift, width, height) {
419
+ var gradientName = name.toUpperCase();
420
+ var inverse = gradientName.startsWith('INV');
421
+ var baseName = gradientName.replace(/^INV/, '');
422
+ var first = inverse ? colors.end : colors.start;
423
+ var second = inverse ? colors.start : colors.end;
424
+ var extent = Math.hypot(width, height) / 2;
425
+ var dir = AcDbPatSvgRenderer.getGradientVector(angle);
426
+ var centerShift = AcGeMathUtil.clamp(shift, -1, 1);
427
+ var centerX = dir.x * centerShift * width * 0.25;
428
+ var centerY = dir.y * centerShift * height * 0.25;
429
+ switch (baseName) {
430
+ case 'CYLINDER': {
431
+ var middle = AcGeMathUtil.clamp(0.5 + centerShift * 0.45, 0.05, 0.95);
432
+ return AcDbPatSvgRenderer.renderLinearGradientDef(id, angle, 0, extent, [
433
+ { offset: 0, color: first },
434
+ { offset: middle, color: second },
435
+ { offset: 1, color: first }
436
+ ]);
437
+ }
438
+ case 'SPHERICAL':
439
+ return AcDbPatSvgRenderer.renderRadialGradientDef(id, centerX, centerY, extent, [
440
+ { offset: 0, color: second },
441
+ { offset: 1, color: first }
442
+ ]);
443
+ case 'HEMISPHERICAL':
444
+ return AcDbPatSvgRenderer.renderRadialGradientDef(id, centerX + dir.x * width * 0.18, centerY + dir.y * height * 0.18, extent * 0.92, [
445
+ { offset: 0, color: second },
446
+ { offset: 0.72, color: first },
447
+ { offset: 1, color: first }
448
+ ]);
449
+ case 'CURVED':
450
+ return AcDbPatSvgRenderer.renderRadialGradientDef(id, -dir.x * width * 0.95 + centerX, -dir.y * height * 0.95 + centerY, extent * 1.65, [
451
+ { offset: 0, color: first },
452
+ { offset: 0.55, color: first },
453
+ { offset: 1, color: second }
454
+ ]);
455
+ case 'LINEAR':
456
+ default:
457
+ return AcDbPatSvgRenderer.renderLinearGradientDef(id, angle, shift, extent, [
458
+ { offset: 0, color: first },
459
+ { offset: 1, color: second }
460
+ ]);
461
+ }
462
+ };
268
463
  /**
269
464
  * Renders a PAT pattern preview as a complete SVG document string.
270
465
  *
@@ -311,8 +506,44 @@ var AcDbPatSvgRenderer = /** @class */ (function () {
311
506
  '</svg>'
312
507
  ].join('');
313
508
  };
509
+ /**
510
+ * Renders an AutoCAD hatch gradient preview as a complete SVG document
511
+ * string.
512
+ *
513
+ * The method uses native SVG linear/radial gradients where possible and
514
+ * approximates AutoCAD-only gradient shapes with mirrored stops or offset
515
+ * radial centers.
516
+ *
517
+ * @param name - AutoCAD gradient name.
518
+ * @param options - Optional preview style and size settings.
519
+ * @returns Standalone SVG markup that can be injected directly into DOM or
520
+ * saved as a `.svg` asset.
521
+ */
522
+ AcDbPatSvgRenderer.prototype.renderGradient = function (name, options) {
523
+ var _a, _b, _c, _d, _e;
524
+ if (options === void 0) { options = {}; }
525
+ var width = (_a = options.width) !== null && _a !== void 0 ? _a : 260;
526
+ var height = (_b = options.height) !== null && _b !== void 0 ? _b : 160;
527
+ var background = (_c = options.background) !== null && _c !== void 0 ? _c : '#ffffff';
528
+ var angle = (_d = options.angle) !== null && _d !== void 0 ? _d : 0;
529
+ var shift = (_e = options.shift) !== null && _e !== void 0 ? _e : 0;
530
+ var viewBox = "".concat(-width / 2, " ").concat(-height / 2, " ").concat(width, " ").concat(height);
531
+ var id = AcDbPatSvgRenderer.nextGradientId(name);
532
+ var colors = AcDbPatSvgRenderer.resolveGradientColors(options);
533
+ var gradientDef = AcDbPatSvgRenderer.renderGradientDef(id, name, colors, angle, shift, width, height);
534
+ return [
535
+ "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"".concat(viewBox, "\" width=\"").concat(width, "\" height=\"").concat(height, "\">"),
536
+ AcDbPatSvgRenderer.renderBackground(width, height, background),
537
+ '<defs>',
538
+ gradientDef,
539
+ '</defs>',
540
+ "<rect x=\"".concat(-width / 2, "\" y=\"").concat(-height / 2, "\" width=\"").concat(width, "\" height=\"").concat(height, "\" fill=\"url(#").concat(id, ")\" />"),
541
+ '</svg>'
542
+ ].join('');
543
+ };
314
544
  /** Numerical tolerance used to avoid division-by-zero and near-zero noise. */
315
545
  AcDbPatSvgRenderer.EPSILON = 1e-9;
546
+ AcDbPatSvgRenderer.gradientIdCounter = 0;
316
547
  return AcDbPatSvgRenderer;
317
548
  }());
318
549
  export { AcDbPatSvgRenderer };
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbPatSvgRenderer.js","sourceRoot":"","sources":["../../../src/misc/pat/AcDbPatSvgRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcDbPatSvgRenderer.js","sourceRoot":"","sources":["../../../src/misc/pat/AcDbPatSvgRenderer.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.7.31",
3
+ "version": "1.7.33",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
@@ -35,9 +35,9 @@
35
35
  "@mlightcad/dxf-json": "^1.2.0",
36
36
  "iconv-lite": "^0.7.0",
37
37
  "uid": "^2.0.2",
38
- "@mlightcad/common": "1.4.31",
39
- "@mlightcad/geometry-engine": "3.2.31",
40
- "@mlightcad/graphic-interface": "3.3.31"
38
+ "@mlightcad/geometry-engine": "3.2.33",
39
+ "@mlightcad/common": "1.4.33",
40
+ "@mlightcad/graphic-interface": "3.3.33"
41
41
  },
42
42
  "scripts": {
43
43
  "analyze": "pnpm run analyze:lib && pnpm run analyze:worker",