@mlightcad/cad-simple-viewer 1.4.9 → 1.4.11

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.
Files changed (151) hide show
  1. package/dist/index.js +17930 -12377
  2. package/dist/index.umd.cjs +158 -30
  3. package/dist/libredwg-parser-worker.js +78 -31
  4. package/dist/mtext-renderer-worker.js +28725 -28097
  5. package/lib/app/AcApAnnotation.d.ts +2 -1
  6. package/lib/app/AcApAnnotation.d.ts.map +1 -1
  7. package/lib/app/AcApAnnotation.js +2 -1
  8. package/lib/app/AcApAnnotation.js.map +1 -1
  9. package/lib/app/AcApContext.d.ts.map +1 -1
  10. package/lib/app/AcApContext.js +14 -3
  11. package/lib/app/AcApContext.js.map +1 -1
  12. package/lib/app/AcApDocManager.d.ts +28 -1
  13. package/lib/app/AcApDocManager.d.ts.map +1 -1
  14. package/lib/app/AcApDocManager.js +117 -16
  15. package/lib/app/AcApDocManager.js.map +1 -1
  16. package/lib/app/AcApDocument.d.ts.map +1 -1
  17. package/lib/app/AcApDocument.js +2 -2
  18. package/lib/app/AcApDocument.js.map +1 -1
  19. package/lib/command/AcApClearMeasurementsCmd.d.ts +13 -0
  20. package/lib/command/AcApClearMeasurementsCmd.d.ts.map +1 -0
  21. package/lib/command/AcApClearMeasurementsCmd.js +86 -0
  22. package/lib/command/AcApClearMeasurementsCmd.js.map +1 -0
  23. package/lib/command/AcApLogCmd.d.ts.map +1 -1
  24. package/lib/command/AcApLogCmd.js +40 -6
  25. package/lib/command/AcApLogCmd.js.map +1 -1
  26. package/lib/command/AcApMTextCmd.d.ts +12 -0
  27. package/lib/command/AcApMTextCmd.d.ts.map +1 -0
  28. package/lib/command/AcApMTextCmd.js +120 -0
  29. package/lib/command/AcApMTextCmd.js.map +1 -0
  30. package/lib/command/AcApMeasureAngleCmd.d.ts +15 -0
  31. package/lib/command/AcApMeasureAngleCmd.d.ts.map +1 -0
  32. package/lib/command/AcApMeasureAngleCmd.js +358 -0
  33. package/lib/command/AcApMeasureAngleCmd.js.map +1 -0
  34. package/lib/command/AcApMeasureArcCmd.d.ts +25 -0
  35. package/lib/command/AcApMeasureArcCmd.d.ts.map +1 -0
  36. package/lib/command/AcApMeasureArcCmd.js +411 -0
  37. package/lib/command/AcApMeasureArcCmd.js.map +1 -0
  38. package/lib/command/AcApMeasureAreaCmd.d.ts +21 -0
  39. package/lib/command/AcApMeasureAreaCmd.d.ts.map +1 -0
  40. package/lib/command/AcApMeasureAreaCmd.js +379 -0
  41. package/lib/command/AcApMeasureAreaCmd.js.map +1 -0
  42. package/lib/command/AcApMeasureDistanceCmd.d.ts +34 -0
  43. package/lib/command/AcApMeasureDistanceCmd.d.ts.map +1 -0
  44. package/lib/command/AcApMeasureDistanceCmd.js +179 -0
  45. package/lib/command/AcApMeasureDistanceCmd.js.map +1 -0
  46. package/lib/command/AcApSwitchBgCmd.js +2 -2
  47. package/lib/command/AcApSwitchBgCmd.js.map +1 -1
  48. package/lib/command/AcApSysVarCmd.d.ts.map +1 -1
  49. package/lib/command/AcApSysVarCmd.js +16 -6
  50. package/lib/command/AcApSysVarCmd.js.map +1 -1
  51. package/lib/command/AcApZoomToBoxCmd.d.ts +1 -1
  52. package/lib/command/AcApZoomToBoxCmd.d.ts.map +1 -1
  53. package/lib/command/AcApZoomToBoxCmd.js +6 -3
  54. package/lib/command/AcApZoomToBoxCmd.js.map +1 -1
  55. package/lib/command/index.d.ts +6 -0
  56. package/lib/command/index.d.ts.map +1 -1
  57. package/lib/command/index.js +6 -0
  58. package/lib/command/index.js.map +1 -1
  59. package/lib/editor/global/AcEdConditionWaiter.d.ts +1 -1
  60. package/lib/editor/global/AcEdConditionWaiter.d.ts.map +1 -1
  61. package/lib/editor/global/AcEdConditionWaiter.js +3 -2
  62. package/lib/editor/global/AcEdConditionWaiter.js.map +1 -1
  63. package/lib/editor/input/AcEdCursorManager.js +2 -2
  64. package/lib/editor/input/AcEdCursorManager.js.map +1 -1
  65. package/lib/editor/input/AcEditor.d.ts +9 -2
  66. package/lib/editor/input/AcEditor.d.ts.map +1 -1
  67. package/lib/editor/input/AcEditor.js +13 -2
  68. package/lib/editor/input/AcEditor.js.map +1 -1
  69. package/lib/editor/input/prompt/AcEdPromptBoxOptions.d.ts +20 -0
  70. package/lib/editor/input/prompt/AcEdPromptBoxOptions.d.ts.map +1 -0
  71. package/lib/editor/input/prompt/AcEdPromptBoxOptions.js +80 -0
  72. package/lib/editor/input/prompt/AcEdPromptBoxOptions.js.map +1 -0
  73. package/lib/editor/input/prompt/index.d.ts +1 -0
  74. package/lib/editor/input/prompt/index.d.ts.map +1 -1
  75. package/lib/editor/input/prompt/index.js +1 -0
  76. package/lib/editor/input/prompt/index.js.map +1 -1
  77. package/lib/editor/input/ui/AcEdInputManager.d.ts +23 -2
  78. package/lib/editor/input/ui/AcEdInputManager.d.ts.map +1 -1
  79. package/lib/editor/input/ui/AcEdInputManager.js +114 -7
  80. package/lib/editor/input/ui/AcEdInputManager.js.map +1 -1
  81. package/lib/editor/input/ui/AcEdMTextEditor.d.ts +79 -0
  82. package/lib/editor/input/ui/AcEdMTextEditor.d.ts.map +1 -0
  83. package/lib/editor/input/ui/AcEdMTextEditor.js +157 -0
  84. package/lib/editor/input/ui/AcEdMTextEditor.js.map +1 -0
  85. package/lib/editor/input/ui/index.d.ts +2 -0
  86. package/lib/editor/input/ui/index.d.ts.map +1 -1
  87. package/lib/editor/input/ui/index.js +1 -0
  88. package/lib/editor/input/ui/index.js.map +1 -1
  89. package/lib/editor/view/AcEdBaseView.d.ts +15 -0
  90. package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
  91. package/lib/editor/view/AcEdBaseView.js +3 -1
  92. package/lib/editor/view/AcEdBaseView.js.map +1 -1
  93. package/lib/i18n/en/command.d.ts +12 -0
  94. package/lib/i18n/en/command.d.ts.map +1 -1
  95. package/lib/i18n/en/command.js +12 -0
  96. package/lib/i18n/en/command.js.map +1 -1
  97. package/lib/i18n/en/jig.d.ts +21 -0
  98. package/lib/i18n/en/jig.d.ts.map +1 -1
  99. package/lib/i18n/en/jig.js +21 -0
  100. package/lib/i18n/en/jig.js.map +1 -1
  101. package/lib/i18n/zh/command.d.ts +12 -0
  102. package/lib/i18n/zh/command.d.ts.map +1 -1
  103. package/lib/i18n/zh/command.js +12 -0
  104. package/lib/i18n/zh/command.js.map +1 -1
  105. package/lib/i18n/zh/jig.d.ts +21 -0
  106. package/lib/i18n/zh/jig.d.ts.map +1 -1
  107. package/lib/i18n/zh/jig.js +21 -0
  108. package/lib/i18n/zh/jig.js.map +1 -1
  109. package/lib/index.d.ts +2 -0
  110. package/lib/index.d.ts.map +1 -1
  111. package/lib/index.js +1 -0
  112. package/lib/index.js.map +1 -1
  113. package/lib/plugin/AcApPluginExample.d.ts.map +1 -1
  114. package/lib/plugin/AcApPluginExample.js +7 -6
  115. package/lib/plugin/AcApPluginExample.js.map +1 -1
  116. package/lib/plugin/AcApPluginManager.d.ts +4 -4
  117. package/lib/plugin/AcApPluginManager.d.ts.map +1 -1
  118. package/lib/plugin/AcApPluginManager.js +7 -6
  119. package/lib/plugin/AcApPluginManager.js.map +1 -1
  120. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
  121. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +1 -0
  122. package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
  123. package/lib/util/AcApMeasurementUtils.d.ts +12 -0
  124. package/lib/util/AcApMeasurementUtils.d.ts.map +1 -0
  125. package/lib/util/AcApMeasurementUtils.js +36 -0
  126. package/lib/util/AcApMeasurementUtils.js.map +1 -0
  127. package/lib/util/index.d.ts +1 -0
  128. package/lib/util/index.d.ts.map +1 -1
  129. package/lib/util/index.js +1 -0
  130. package/lib/util/index.js.map +1 -1
  131. package/lib/view/AcTrLayer.d.ts +15 -0
  132. package/lib/view/AcTrLayer.d.ts.map +1 -1
  133. package/lib/view/AcTrLayer.js +13 -2
  134. package/lib/view/AcTrLayer.js.map +1 -1
  135. package/lib/view/AcTrLayout.d.ts +25 -0
  136. package/lib/view/AcTrLayout.d.ts.map +1 -1
  137. package/lib/view/AcTrLayout.js +40 -3
  138. package/lib/view/AcTrLayout.js.map +1 -1
  139. package/lib/view/AcTrLayoutView.d.ts +5 -0
  140. package/lib/view/AcTrLayoutView.d.ts.map +1 -1
  141. package/lib/view/AcTrLayoutView.js +10 -0
  142. package/lib/view/AcTrLayoutView.js.map +1 -1
  143. package/lib/view/AcTrScene.d.ts +30 -4
  144. package/lib/view/AcTrScene.d.ts.map +1 -1
  145. package/lib/view/AcTrScene.js +59 -3
  146. package/lib/view/AcTrScene.js.map +1 -1
  147. package/lib/view/AcTrView2d.d.ts +17 -4
  148. package/lib/view/AcTrView2d.d.ts.map +1 -1
  149. package/lib/view/AcTrView2d.js +64 -15
  150. package/lib/view/AcTrView2d.js.map +1 -1
  151. package/package.json +7 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApMeasureAngleCmd.js","sourceRoot":"","sources":["../../src/command/AcApMeasureAngleCmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { AcApContext } from '../app';
2
+ import { AcEdCommand } from '../editor';
3
+ /**
4
+ * Command that measures the length of an arc on an existing circle or arc entity.
5
+ *
6
+ * Uses a two-phase pick flow that mirrors AutoCAD's arc-length measurement:
7
+ *
8
+ * 1. **Phase 1 — entity snap**: The user hovers over a circle or arc in the
9
+ * drawing. A square snap indicator appears on the circumference and the
10
+ * entity geometry is captured. Clicking confirms the start point.
11
+ *
12
+ * 2. **Phase 2 — end point**: The same square indicator follows the cursor,
13
+ * always locked to the captured circle. A canvas overlay draws the shorter
14
+ * arc between the start and current position in real time, together with a
15
+ * live badge showing the arc length.
16
+ *
17
+ * Persistent overlays are placed via {@link AcTrHtmlTransientManager} for dots
18
+ * and badge. The arc canvas is managed with a viewChanged listener cleaned up
19
+ * via {@link registerMeasurementCleanup}.
20
+ */
21
+ export declare class AcApMeasureArcCmd extends AcEdCommand {
22
+ constructor();
23
+ execute(context: AcApContext): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=AcApMeasureArcCmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApMeasureArcCmd.d.ts","sourceRoot":"","sources":["../../src/command/AcApMeasureArcCmd.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAkB,MAAM,QAAQ,CAAA;AACpD,OAAO,EAEL,WAAW,EAIZ,MAAM,WAAW,CAAA;AA2OlB;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;;IAM1C,OAAO,CAAC,OAAO,EAAE,WAAW;CAmJnC"}
@@ -0,0 +1,411 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ var __generator = (this && this.__generator) || function (thisArg, body) {
26
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
27
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
+ function verb(n) { return function (v) { return step([n, v]); }; }
29
+ function step(op) {
30
+ if (f) throw new TypeError("Generator is already executing.");
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
+ if (y = 0, t) op = [op[0] & 2, t.value];
34
+ switch (op[0]) {
35
+ case 0: case 1: t = op; break;
36
+ case 4: _.label++; return { value: op[1], done: false };
37
+ case 5: _.label++; y = op[1]; op = [0]; continue;
38
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
+ default:
40
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
+ if (t[2]) _.ops.pop();
45
+ _.trys.pop(); continue;
46
+ }
47
+ op = body.call(thisArg, _);
48
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
+ }
51
+ };
52
+ var __values = (this && this.__values) || function(o) {
53
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
54
+ if (m) return m.call(o);
55
+ if (o && typeof o.length === "number") return {
56
+ next: function () {
57
+ if (o && i >= o.length) o = void 0;
58
+ return { value: o && o[i++], done: !o };
59
+ }
60
+ };
61
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
62
+ };
63
+ import { AcDbArc, AcDbCircle, AcDbLine } from '@mlightcad/data-model';
64
+ import { AcApDocManager } from '../app';
65
+ import { AcEdCommand, AcEdOpenMode, AcEdPreviewJig, AcEdPromptPointOptions } from '../editor';
66
+ import { AcApI18n } from '../i18n';
67
+ import { colorToCss, makeBadge, makeDot, measurementColor } from '../util';
68
+ import { registerMeasurementCleanup } from './AcApClearMeasurementsCmd';
69
+ /** Returns the world point snapped to the nearest point on the circle circumference */
70
+ function snapToCircle(p, g) {
71
+ var angle = Math.atan2(p.y - g.cy, p.x - g.cx);
72
+ return {
73
+ x: g.cx + g.r * Math.cos(angle),
74
+ y: g.cy + g.r * Math.sin(angle),
75
+ z: 0
76
+ };
77
+ }
78
+ /** Returns the shorter arc length between two points on a circle */
79
+ function shortArcLength(p1, p2, g) {
80
+ var a1 = Math.atan2(p1.y - g.cy, p1.x - g.cx);
81
+ var a2 = Math.atan2(p2.y - g.cy, p2.x - g.cx);
82
+ var norm = function (a) {
83
+ return ((a % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI);
84
+ };
85
+ var span = norm(a2 - a1);
86
+ return Math.min(span, 2 * Math.PI - span) * g.r;
87
+ }
88
+ /** World midpoint of the shorter arc between two circle points */
89
+ function shortArcMid(p1, p2, g) {
90
+ var a1 = Math.atan2(p1.y - g.cy, p1.x - g.cx);
91
+ var a2 = Math.atan2(p2.y - g.cy, p2.x - g.cx);
92
+ var norm = function (a) {
93
+ return ((a % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI);
94
+ };
95
+ var ccwSpan = norm(a2 - a1);
96
+ var mid = ccwSpan <= Math.PI ? a1 + ccwSpan / 2 : a1 - (2 * Math.PI - ccwSpan) / 2;
97
+ return { x: g.cx + g.r * Math.cos(mid), y: g.cy + g.r * Math.sin(mid), z: 0 };
98
+ }
99
+ /**
100
+ * Draws the arc between two snapped circle points onto a canvas element.
101
+ * Uses screen-space angles so the Y-axis flip is handled automatically.
102
+ */
103
+ function drawArcOnCanvas(canvas, view, g, p1, p2, color) {
104
+ var rect = view.canvas.getBoundingClientRect();
105
+ var dpr = window.devicePixelRatio || 1;
106
+ var w = Math.round(rect.width);
107
+ var h = Math.round(rect.height);
108
+ canvas.style.left = "".concat(rect.left, "px");
109
+ canvas.style.top = "".concat(rect.top, "px");
110
+ canvas.style.width = "".concat(w, "px");
111
+ canvas.style.height = "".concat(h, "px");
112
+ if (canvas.width !== w * dpr || canvas.height !== h * dpr) {
113
+ canvas.width = w * dpr;
114
+ canvas.height = h * dpr;
115
+ }
116
+ var ctx = canvas.getContext('2d');
117
+ if (!ctx)
118
+ return;
119
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
120
+ ctx.save();
121
+ ctx.scale(dpr, dpr);
122
+ var sc = view.worldToScreen({ x: g.cx, y: g.cy });
123
+ var ss = view.worldToScreen(p1);
124
+ var se = view.worldToScreen(p2);
125
+ var screenR = Math.hypot(ss.x - sc.x, ss.y - sc.y);
126
+ var sa = Math.atan2(ss.y - sc.y, ss.x - sc.x);
127
+ var ea = Math.atan2(se.y - sc.y, se.x - sc.x);
128
+ var norm = function (a) {
129
+ return ((a % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI);
130
+ };
131
+ var cwSpan = norm(ea - sa);
132
+ var antiClockwise = cwSpan > Math.PI;
133
+ ctx.beginPath();
134
+ ctx.arc(sc.x, sc.y, screenR, sa, ea, antiClockwise);
135
+ ctx.strokeStyle = colorToCss(color);
136
+ ctx.lineWidth = 4;
137
+ ctx.stroke();
138
+ ctx.restore();
139
+ }
140
+ /**
141
+ * Jig for the first point: shows a small square snap indicator when the
142
+ * cursor hovers over a circle or arc entity. Notifies the caller via onSnap.
143
+ */
144
+ var AcApArcSnapJig = /** @class */ (function (_super) {
145
+ __extends(AcApArcSnapJig, _super);
146
+ function AcApArcSnapJig(context, color, onSnap) {
147
+ var _this = _super.call(this, context.view) || this;
148
+ _this._ctx = context;
149
+ _this._onSnap = onSnap;
150
+ var o = { x: 0, y: 0, z: 0 };
151
+ _this._dummy = new AcDbLine(o, o);
152
+ _this._indicator = document.createElement('div');
153
+ _this._indicator.style.cssText =
154
+ "position:fixed;width:10px;height:10px;border:2px solid ".concat(colorToCss(color), ";") +
155
+ 'background:transparent;pointer-events:none;box-sizing:border-box;' +
156
+ 'transform:translate(-50%,-50%);z-index:99998;display:none;';
157
+ document.body.appendChild(_this._indicator);
158
+ return _this;
159
+ }
160
+ Object.defineProperty(AcApArcSnapJig.prototype, "entity", {
161
+ get: function () {
162
+ return this._dummy;
163
+ },
164
+ enumerable: false,
165
+ configurable: true
166
+ });
167
+ AcApArcSnapJig.prototype.update = function (p) {
168
+ var e_1, _a;
169
+ var hits = this._ctx.view.pick(p);
170
+ var modelSpace = this._ctx.doc.database.tables.blockTable.modelSpace;
171
+ try {
172
+ for (var hits_1 = __values(hits), hits_1_1 = hits_1.next(); !hits_1_1.done; hits_1_1 = hits_1.next()) {
173
+ var hit = hits_1_1.value;
174
+ var entity = modelSpace.getIdAt(hit.id);
175
+ var geom = null;
176
+ if (entity instanceof AcDbCircle) {
177
+ geom = { cx: entity.center.x, cy: entity.center.y, r: entity.radius };
178
+ }
179
+ else if (entity instanceof AcDbArc) {
180
+ geom = { cx: entity.center.x, cy: entity.center.y, r: entity.radius };
181
+ }
182
+ if (geom) {
183
+ var snapped = snapToCircle(p, geom);
184
+ var rect = this._ctx.view.canvas.getBoundingClientRect();
185
+ var sp = this._ctx.view.worldToScreen(snapped);
186
+ this._indicator.style.left = "".concat(sp.x + rect.left, "px");
187
+ this._indicator.style.top = "".concat(sp.y + rect.top, "px");
188
+ this._indicator.style.display = 'block';
189
+ this._onSnap(geom, snapped);
190
+ return;
191
+ }
192
+ }
193
+ }
194
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
195
+ finally {
196
+ try {
197
+ if (hits_1_1 && !hits_1_1.done && (_a = hits_1.return)) _a.call(hits_1);
198
+ }
199
+ finally { if (e_1) throw e_1.error; }
200
+ }
201
+ this._indicator.style.display = 'none';
202
+ this._onSnap(null, null);
203
+ };
204
+ AcApArcSnapJig.prototype.end = function () {
205
+ _super.prototype.end.call(this);
206
+ this._indicator.remove();
207
+ };
208
+ return AcApArcSnapJig;
209
+ }(AcEdPreviewJig));
210
+ /**
211
+ * Jig for the second point: snaps cursor to the known circle, shows the
212
+ * square snap indicator, and fires onMove with the already-snapped point.
213
+ */
214
+ var AcApArcEndSnapJig = /** @class */ (function (_super) {
215
+ __extends(AcApArcEndSnapJig, _super);
216
+ function AcApArcEndSnapJig(context, geom, color, onMove) {
217
+ var _this = _super.call(this, context.view) || this;
218
+ _this._ctx = context;
219
+ _this._geom = geom;
220
+ _this._onMove = onMove;
221
+ var o = { x: 0, y: 0, z: 0 };
222
+ _this._dummy = new AcDbLine(o, o);
223
+ _this._indicator = document.createElement('div');
224
+ _this._indicator.style.cssText =
225
+ "position:fixed;width:10px;height:10px;border:2px solid ".concat(colorToCss(color), ";") +
226
+ 'background:transparent;pointer-events:none;box-sizing:border-box;' +
227
+ 'transform:translate(-50%,-50%);z-index:99998;';
228
+ document.body.appendChild(_this._indicator);
229
+ return _this;
230
+ }
231
+ Object.defineProperty(AcApArcEndSnapJig.prototype, "entity", {
232
+ get: function () {
233
+ return this._dummy;
234
+ },
235
+ enumerable: false,
236
+ configurable: true
237
+ });
238
+ AcApArcEndSnapJig.prototype.update = function (p) {
239
+ var snapped = snapToCircle(p, this._geom);
240
+ var rect = this._ctx.view.canvas.getBoundingClientRect();
241
+ var sp = this._ctx.view.worldToScreen(snapped);
242
+ this._indicator.style.left = "".concat(sp.x + rect.left, "px");
243
+ this._indicator.style.top = "".concat(sp.y + rect.top, "px");
244
+ this._onMove(snapped);
245
+ };
246
+ AcApArcEndSnapJig.prototype.end = function () {
247
+ _super.prototype.end.call(this);
248
+ this._indicator.remove();
249
+ };
250
+ return AcApArcEndSnapJig;
251
+ }(AcEdPreviewJig));
252
+ /**
253
+ * Command that measures the length of an arc on an existing circle or arc entity.
254
+ *
255
+ * Uses a two-phase pick flow that mirrors AutoCAD's arc-length measurement:
256
+ *
257
+ * 1. **Phase 1 — entity snap**: The user hovers over a circle or arc in the
258
+ * drawing. A square snap indicator appears on the circumference and the
259
+ * entity geometry is captured. Clicking confirms the start point.
260
+ *
261
+ * 2. **Phase 2 — end point**: The same square indicator follows the cursor,
262
+ * always locked to the captured circle. A canvas overlay draws the shorter
263
+ * arc between the start and current position in real time, together with a
264
+ * live badge showing the arc length.
265
+ *
266
+ * Persistent overlays are placed via {@link AcTrHtmlTransientManager} for dots
267
+ * and badge. The arc canvas is managed with a viewChanged listener cleaned up
268
+ * via {@link registerMeasurementCleanup}.
269
+ */
270
+ var AcApMeasureArcCmd = /** @class */ (function (_super) {
271
+ __extends(AcApMeasureArcCmd, _super);
272
+ function AcApMeasureArcCmd() {
273
+ var _this = _super.call(this) || this;
274
+ _this.mode = AcEdOpenMode.Read;
275
+ return _this;
276
+ }
277
+ AcApMeasureArcCmd.prototype.execute = function (context) {
278
+ return __awaiter(this, void 0, void 0, function () {
279
+ var editor, color, arcCanvas, snapGeom, snappedStart, snapJig, p1Prompt, _a, geom, start, css, dot1, liveBadge, reposDot1, redrawPreview, onViewChangedPreview, onMove, p2Prompt, p2Raw, _b, end, arcLen, mid, persistCanvas, redrawPersist, htManager, id;
280
+ return __generator(this, function (_c) {
281
+ switch (_c.label) {
282
+ case 0:
283
+ editor = AcApDocManager.instance.editor;
284
+ color = measurementColor(context.doc.database);
285
+ arcCanvas = document.createElement('canvas');
286
+ arcCanvas.style.cssText =
287
+ 'position:fixed;pointer-events:none;z-index:99997;';
288
+ document.body.appendChild(arcCanvas);
289
+ snapGeom = null;
290
+ snappedStart = null;
291
+ snapJig = new AcApArcSnapJig(context, color, function (geom, snapped) {
292
+ snapGeom = geom;
293
+ snappedStart = snapped;
294
+ });
295
+ p1Prompt = new AcEdPromptPointOptions(AcApI18n.t('jig.measureArc.startPoint'));
296
+ p1Prompt.jig = snapJig;
297
+ _c.label = 1;
298
+ case 1:
299
+ _c.trys.push([1, 3, , 4]);
300
+ return [4 /*yield*/, editor.getPoint(p1Prompt)];
301
+ case 2:
302
+ _c.sent();
303
+ return [3 /*break*/, 4];
304
+ case 3:
305
+ _a = _c.sent();
306
+ arcCanvas.remove();
307
+ return [2 /*return*/];
308
+ case 4:
309
+ if (!snapGeom || !snappedStart) {
310
+ arcCanvas.remove();
311
+ return [2 /*return*/];
312
+ }
313
+ geom = snapGeom;
314
+ start = snappedStart;
315
+ css = colorToCss(color);
316
+ dot1 = document.createElement('div');
317
+ dot1.style.cssText =
318
+ 'position:fixed;width:12px;height:12px;border-radius:50%;' +
319
+ "background:".concat(css, ";border:2px solid white;box-sizing:border-box;") +
320
+ 'pointer-events:none;transform:translate(-50%,-50%);z-index:99999;';
321
+ liveBadge = document.createElement('div');
322
+ liveBadge.style.cssText =
323
+ "position:fixed;background:rgba(255,255,255,0.95);color:".concat(css, ";") +
324
+ 'font-size:13px;font-family:sans-serif;font-weight:500;' +
325
+ 'padding:3px 14px;border-radius:20px;pointer-events:none;' +
326
+ 'transform:translate(-50%,-50%);white-space:nowrap;' +
327
+ 'box-shadow:0 1px 4px rgba(0,0,0,0.2);z-index:99999;display:none;';
328
+ document.body.appendChild(dot1);
329
+ document.body.appendChild(liveBadge);
330
+ reposDot1 = function () {
331
+ var rect = context.view.canvas.getBoundingClientRect();
332
+ var sp = context.view.worldToScreen(start);
333
+ dot1.style.left = "".concat(sp.x + rect.left, "px");
334
+ dot1.style.top = "".concat(sp.y + rect.top, "px");
335
+ };
336
+ reposDot1();
337
+ redrawPreview = function () {
338
+ return drawArcOnCanvas(arcCanvas, context.view, geom, start, start, color);
339
+ };
340
+ onViewChangedPreview = function () {
341
+ reposDot1();
342
+ redrawPreview();
343
+ };
344
+ context.view.events.viewChanged.addEventListener(onViewChangedPreview);
345
+ onMove = function (snapped) {
346
+ drawArcOnCanvas(arcCanvas, context.view, geom, start, snapped, color);
347
+ var len = shortArcLength(start, snapped, geom);
348
+ liveBadge.textContent = "~ ".concat(len.toFixed(4), " m");
349
+ liveBadge.style.display = '';
350
+ var mid = shortArcMid(start, snapped, geom);
351
+ var rect = context.view.canvas.getBoundingClientRect();
352
+ var sm = context.view.worldToScreen(mid);
353
+ liveBadge.style.left = "".concat(sm.x + rect.left, "px");
354
+ liveBadge.style.top = "".concat(sm.y + rect.top, "px");
355
+ reposDot1();
356
+ };
357
+ p2Prompt = new AcEdPromptPointOptions(AcApI18n.t('jig.measureArc.endPoint'));
358
+ p2Prompt.jig = new AcApArcEndSnapJig(context, geom, color, onMove);
359
+ _c.label = 5;
360
+ case 5:
361
+ _c.trys.push([5, 7, , 8]);
362
+ return [4 /*yield*/, editor.getPoint(p2Prompt)];
363
+ case 6:
364
+ p2Raw = _c.sent();
365
+ return [3 /*break*/, 8];
366
+ case 7:
367
+ _b = _c.sent();
368
+ arcCanvas.remove();
369
+ dot1.remove();
370
+ liveBadge.remove();
371
+ context.view.events.viewChanged.removeEventListener(onViewChangedPreview);
372
+ return [2 /*return*/];
373
+ case 8:
374
+ // Clean up construction-phase elements
375
+ liveBadge.remove();
376
+ dot1.remove();
377
+ context.view.events.viewChanged.removeEventListener(onViewChangedPreview);
378
+ arcCanvas.remove();
379
+ end = snapToCircle(p2Raw, geom);
380
+ arcLen = shortArcLength(start, end, geom);
381
+ mid = shortArcMid(start, end, geom);
382
+ persistCanvas = document.createElement('canvas');
383
+ persistCanvas.style.cssText =
384
+ 'position:fixed;pointer-events:none;z-index:99997;';
385
+ document.body.appendChild(persistCanvas);
386
+ drawArcOnCanvas(persistCanvas, context.view, geom, start, end, color);
387
+ redrawPersist = function () {
388
+ return drawArcOnCanvas(persistCanvas, context.view, geom, start, end, color);
389
+ };
390
+ context.view.events.viewChanged.addEventListener(redrawPersist);
391
+ htManager = AcApDocManager.instance.curView.htmlTransientManager;
392
+ id = "arc-".concat(Date.now());
393
+ htManager.add("".concat(id, "-dot1"), makeDot(color), start, 'measurement');
394
+ htManager.add("".concat(id, "-dot2"), makeDot(color), end, 'measurement');
395
+ htManager.add("".concat(id, "-badge"), makeBadge(color, "~ ".concat(arcLen.toFixed(4), " m")), mid, 'measurement');
396
+ registerMeasurementCleanup(function () {
397
+ persistCanvas.remove();
398
+ context.view.events.viewChanged.removeEventListener(redrawPersist);
399
+ htManager.remove("".concat(id, "-dot1"));
400
+ htManager.remove("".concat(id, "-dot2"));
401
+ htManager.remove("".concat(id, "-badge"));
402
+ });
403
+ return [2 /*return*/];
404
+ }
405
+ });
406
+ });
407
+ };
408
+ return AcApMeasureArcCmd;
409
+ }(AcEdCommand));
410
+ export { AcApMeasureArcCmd };
411
+ //# sourceMappingURL=AcApMeasureArcCmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApMeasureArcCmd.js","sourceRoot":"","sources":["../../src/command/AcApMeasureArcCmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { AcApContext } from '../app';
2
+ import { AcEdCommand } from '../editor';
3
+ /**
4
+ * Command that measures the area of a polygon drawn by the user.
5
+ *
6
+ * The user clicks successive vertices; after each click the canvas overlay
7
+ * updates with a semi-transparent blue fill and a dashed outline. The polygon
8
+ * auto-closes when the user clicks near the first vertex (14 px threshold),
9
+ * clicks near the last vertex, or draws a segment that crosses an existing
10
+ * edge — matching AutoCAD's area measurement behaviour. Pressing ESC/Enter
11
+ * also finalises the polygon.
12
+ *
13
+ * Persistent overlays are placed via {@link AcTrHtmlTransientManager} for dots
14
+ * and badge. The filled area canvas is managed with a viewChanged listener
15
+ * cleaned up via {@link registerMeasurementCleanup}.
16
+ */
17
+ export declare class AcApMeasureAreaCmd extends AcEdCommand {
18
+ constructor();
19
+ execute(context: AcApContext): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=AcApMeasureAreaCmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcApMeasureAreaCmd.d.ts","sourceRoot":"","sources":["../../src/command/AcApMeasureAreaCmd.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAkB,MAAM,QAAQ,CAAA;AACpD,OAAO,EAEL,WAAW,EAIZ,MAAM,WAAW,CAAA;AAgIlB;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;;IAM3C,OAAO,CAAC,OAAO,EAAE,WAAW;CA4LnC"}