copper3d 3.6.0 → 3.6.2
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/Utils/surfaceAnnotation/SurfaceAnnotator.d.ts +29 -1
- package/dist/Utils/surfaceAnnotation/SurfaceAnnotator.js +198 -13
- package/dist/Utils/surfaceAnnotation/SurfaceAnnotator.js.map +1 -1
- package/dist/Utils/surfaceAnnotation/geodesicContour.d.ts +13 -0
- package/dist/Utils/surfaceAnnotation/geodesicContour.js +38 -0
- package/dist/Utils/surfaceAnnotation/geodesicContour.js.map +1 -1
- package/dist/Utils/surfaceAnnotation/strokeContour.d.ts +8 -1
- package/dist/Utils/surfaceAnnotation/strokeContour.js +19 -4
- package/dist/Utils/surfaceAnnotation/strokeContour.js.map +1 -1
- package/dist/bundle.esm.js +256 -18
- package/dist/bundle.umd.js +256 -18
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/types/Utils/surfaceAnnotation/SurfaceAnnotator.d.ts +29 -1
- package/dist/types/Utils/surfaceAnnotation/geodesicContour.d.ts +13 -0
- package/dist/types/Utils/surfaceAnnotation/strokeContour.d.ts +8 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -38,6 +38,7 @@ export declare class SurfaceAnnotator {
|
|
|
38
38
|
private readonly markerRadius;
|
|
39
39
|
private readonly epsilon;
|
|
40
40
|
private readonly minGap;
|
|
41
|
+
private readonly maxJump;
|
|
41
42
|
private graph;
|
|
42
43
|
private store;
|
|
43
44
|
private managed;
|
|
@@ -48,6 +49,12 @@ export declare class SurfaceAnnotator {
|
|
|
48
49
|
private lastFreehand?;
|
|
49
50
|
private activeGeo?;
|
|
50
51
|
private activeGeoLine?;
|
|
52
|
+
private activeGeoMarkers;
|
|
53
|
+
private geoRay;
|
|
54
|
+
private geoNdc;
|
|
55
|
+
private geoHoverBadge?;
|
|
56
|
+
private hoveredGeoMarker;
|
|
57
|
+
private _projV;
|
|
51
58
|
constructor(opts: SurfaceAnnotatorOptions);
|
|
52
59
|
/** 窗口尺寸变化时更新所有 fat line 的像素分辨率,否则线宽会失真。 */
|
|
53
60
|
private onResize;
|
|
@@ -86,9 +93,30 @@ export declare class SurfaceAnnotator {
|
|
|
86
93
|
private disposeObject;
|
|
87
94
|
private nextId;
|
|
88
95
|
private hit;
|
|
89
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* 事件目标是否是容器内的 WebGL canvas。
|
|
98
|
+
* 仅认 canvas:面板(GUIDE / 控制面板 / 标注列表的 ✕ 按钮)都是 container 的子元素,
|
|
99
|
+
* 若只判断 contains 会把面板上的点击也当成在模型上作画 —— 这会"穿透"删除按钮、
|
|
100
|
+
* 让 ✕ 难以点中。只响应 canvas 上的指针事件即可彻底隔离 UI 与画布。
|
|
101
|
+
*/
|
|
90
102
|
private insideContainer;
|
|
91
103
|
private onPointerDown;
|
|
104
|
+
/** 射线拾取进行中的锚点小球,返回锚点下标;未命中返回 -1。 */
|
|
105
|
+
private pickGeoMarker;
|
|
106
|
+
/** 设置当前悬停的锚点(-1 = 无):更新高亮缩放、光标与"✕(可取消)"悬浮标。 */
|
|
107
|
+
private setGeoHover;
|
|
108
|
+
/** 懒创建悬浮 ✕ 标(挂在 container 内,pointer-events:none 不挡点击)。 */
|
|
109
|
+
private ensureGeoBadge;
|
|
110
|
+
/** 把 ✕ 标定位到锚点投影到屏幕的位置(正中心,即光标悬停处,避免歧义)。 */
|
|
111
|
+
private positionGeoBadge;
|
|
112
|
+
/** 据当前锚点重建可见的锚点小球(锚点比放点稍大,便于看见与点中取消)。 */
|
|
113
|
+
private rebuildGeoMarkers;
|
|
114
|
+
/** 据当前锚点重画进行中的测地线(不闭合);不足两点时移除线。 */
|
|
115
|
+
private redrawGeoLine;
|
|
116
|
+
/** 丢弃进行中的测地线:移除并 dispose 线与全部锚点。 */
|
|
117
|
+
private clearActiveGeo;
|
|
118
|
+
/** 移除进行中测地线的全部锚点小球(落定后调用:只留下线)。 */
|
|
119
|
+
private removeGeoMarkers;
|
|
92
120
|
private onPointerMove;
|
|
93
121
|
private onPointerUp;
|
|
94
122
|
private closeLastContour;
|
|
@@ -25,6 +25,11 @@ export class SurfaceAnnotator {
|
|
|
25
25
|
this.managed = new Set();
|
|
26
26
|
this.seq = 0;
|
|
27
27
|
this.selectedId = null;
|
|
28
|
+
this.activeGeoMarkers = []; // 进行中测地线的可见锚点
|
|
29
|
+
this.geoRay = new THREE.Raycaster();
|
|
30
|
+
this.geoNdc = new THREE.Vector2();
|
|
31
|
+
this.hoveredGeoMarker = -1;
|
|
32
|
+
this._projV = new THREE.Vector3();
|
|
28
33
|
/** 窗口尺寸变化时更新所有 fat line 的像素分辨率,否则线宽会失真。 */
|
|
29
34
|
this.onResize = () => {
|
|
30
35
|
const w = this.o.container.clientWidth;
|
|
@@ -69,7 +74,7 @@ export class SurfaceAnnotator {
|
|
|
69
74
|
return;
|
|
70
75
|
}
|
|
71
76
|
if (this.mode === "freehand") {
|
|
72
|
-
this.activeStroke = new StrokeContour(this.minGap, this.o.mesh);
|
|
77
|
+
this.activeStroke = new StrokeContour(this.minGap, this.maxJump, this.o.mesh);
|
|
73
78
|
this.activeStroke.begin();
|
|
74
79
|
const h = this.hit(e);
|
|
75
80
|
if (h)
|
|
@@ -79,6 +84,19 @@ export class SurfaceAnnotator {
|
|
|
79
84
|
return;
|
|
80
85
|
}
|
|
81
86
|
if (this.mode === "geodesic") {
|
|
87
|
+
// 先判断是否点中了一个已有锚点 → 取消该点(支持取消其中任意一点)。
|
|
88
|
+
const pick = this.pickGeoMarker(e);
|
|
89
|
+
if (pick >= 0 && this.activeGeo) {
|
|
90
|
+
this.activeGeo.removeAnchorAt(pick);
|
|
91
|
+
if (this.activeGeo.anchorCount === 0)
|
|
92
|
+
this.clearActiveGeo();
|
|
93
|
+
else {
|
|
94
|
+
this.rebuildGeoMarkers();
|
|
95
|
+
this.redrawGeoLine();
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// 否则在表面落一个新锚点。
|
|
82
100
|
const h = this.hit(e);
|
|
83
101
|
if (!h)
|
|
84
102
|
return;
|
|
@@ -87,19 +105,19 @@ export class SurfaceAnnotator {
|
|
|
87
105
|
}
|
|
88
106
|
const local = this.o.mesh.worldToLocal(h.point.clone());
|
|
89
107
|
this.activeGeo.addAnchor(local);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.activeGeoLine = makeContourLine(verts, this.geodesicColor, false, this.o.container, this.epsilon, this.o.mesh);
|
|
93
|
-
this.o.scene.add(this.activeGeoLine);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
updateContourLine(this.activeGeoLine, verts, false, this.epsilon, this.o.mesh);
|
|
97
|
-
}
|
|
108
|
+
this.rebuildGeoMarkers();
|
|
109
|
+
this.redrawGeoLine();
|
|
98
110
|
}
|
|
99
111
|
};
|
|
100
112
|
this.onPointerMove = (e) => {
|
|
101
|
-
if (this.spaceHeld)
|
|
113
|
+
if (this.spaceHeld) {
|
|
114
|
+
this.setGeoHover(-1);
|
|
102
115
|
return;
|
|
116
|
+
}
|
|
117
|
+
// 测地线模式下,悬停到锚点小球时显示"✕"提示(该点可被点击取消)。
|
|
118
|
+
if (this.mode === "geodesic" && !this.pointerDown) {
|
|
119
|
+
this.setGeoHover(this.insideContainer(e) ? this.pickGeoMarker(e) : -1);
|
|
120
|
+
}
|
|
103
121
|
if (this.mode === "freehand" &&
|
|
104
122
|
this.pointerDown &&
|
|
105
123
|
this.activeStroke &&
|
|
@@ -189,9 +207,10 @@ export class SurfaceAnnotator {
|
|
|
189
207
|
meshGeo.computeVertexNormals(); // 渲染需要法线
|
|
190
208
|
meshGeo.computeBoundingBox();
|
|
191
209
|
const diag = (_a = opts.bboxDiagonal) !== null && _a !== void 0 ? _a : meshGeo.boundingBox.getSize(new THREE.Vector3()).length();
|
|
192
|
-
this.markerRadius = (_b = opts.markerRadius) !== null && _b !== void 0 ? _b : diag * 0.
|
|
210
|
+
this.markerRadius = (_b = opts.markerRadius) !== null && _b !== void 0 ? _b : diag * 0.0032;
|
|
193
211
|
this.epsilon = diag * 0.002;
|
|
194
212
|
this.minGap = diag * 0.004;
|
|
213
|
+
this.maxJump = diag * 0.05;
|
|
195
214
|
// 测地线连通性:单独焊接一份"仅位置"的几何给 MeshGraph 用——
|
|
196
215
|
// 不动被渲染的 mesh(保留其法线/UV/纹理)。仅位置可保证同表面位置的顶点
|
|
197
216
|
// 被 mergeVertices 合并(否则逐面法线/UV 会阻止合并,图断裂 → 闭合穿模)。
|
|
@@ -229,6 +248,9 @@ export class SurfaceAnnotator {
|
|
|
229
248
|
}
|
|
230
249
|
setMode(m) {
|
|
231
250
|
var _a, _b;
|
|
251
|
+
// 离开测地线模式时丢弃尚未 Enter 落定的进行中测地线(清掉残留的锚点与线)。
|
|
252
|
+
if (m !== "geodesic" && this.activeGeo)
|
|
253
|
+
this.clearActiveGeo();
|
|
232
254
|
this.mode = m;
|
|
233
255
|
this.applyCameraGating();
|
|
234
256
|
(_b = (_a = this.o).onModeChange) === null || _b === void 0 ? void 0 : _b.call(_a, m);
|
|
@@ -241,6 +263,18 @@ export class SurfaceAnnotator {
|
|
|
241
263
|
return this.store.list();
|
|
242
264
|
}
|
|
243
265
|
undo() {
|
|
266
|
+
// 测地线进行中 → 撤销最近一次锚点编辑(加点 / 取消点都能回退);
|
|
267
|
+
// 否则撤销最近一条已落定的标注。
|
|
268
|
+
if (this.activeGeo && this.activeGeo.canUndo()) {
|
|
269
|
+
this.activeGeo.undoEdit();
|
|
270
|
+
if (this.activeGeo.anchorCount === 0)
|
|
271
|
+
this.clearActiveGeo();
|
|
272
|
+
else {
|
|
273
|
+
this.rebuildGeoMarkers();
|
|
274
|
+
this.redrawGeoLine();
|
|
275
|
+
}
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
244
278
|
this.store.undo();
|
|
245
279
|
}
|
|
246
280
|
clearAll() {
|
|
@@ -253,6 +287,7 @@ export class SurfaceAnnotator {
|
|
|
253
287
|
});
|
|
254
288
|
this.managed.clear();
|
|
255
289
|
this.selectedId = null;
|
|
290
|
+
this.clearActiveGeo();
|
|
256
291
|
}
|
|
257
292
|
deleteAnnotation(id) {
|
|
258
293
|
if (this.selectedId === id)
|
|
@@ -333,10 +368,153 @@ export class SurfaceAnnotator {
|
|
|
333
368
|
hit(e) {
|
|
334
369
|
return raycastSurface(this.o.camera, this.o.container, this.o.mesh, e.clientX, e.clientY);
|
|
335
370
|
}
|
|
336
|
-
/**
|
|
371
|
+
/**
|
|
372
|
+
* 事件目标是否是容器内的 WebGL canvas。
|
|
373
|
+
* 仅认 canvas:面板(GUIDE / 控制面板 / 标注列表的 ✕ 按钮)都是 container 的子元素,
|
|
374
|
+
* 若只判断 contains 会把面板上的点击也当成在模型上作画 —— 这会"穿透"删除按钮、
|
|
375
|
+
* 让 ✕ 难以点中。只响应 canvas 上的指针事件即可彻底隔离 UI 与画布。
|
|
376
|
+
*/
|
|
337
377
|
insideContainer(e) {
|
|
338
378
|
const t = e.target;
|
|
339
|
-
return !!t && this.o.container.contains(t);
|
|
379
|
+
return !!t && t.tagName === "CANVAS" && this.o.container.contains(t);
|
|
380
|
+
}
|
|
381
|
+
/** 射线拾取进行中的锚点小球,返回锚点下标;未命中返回 -1。 */
|
|
382
|
+
pickGeoMarker(e) {
|
|
383
|
+
if (!this.activeGeoMarkers.length)
|
|
384
|
+
return -1;
|
|
385
|
+
const rect = this.o.container.getBoundingClientRect();
|
|
386
|
+
this.geoNdc.x = ((e.clientX - rect.left) / rect.width) * 2 - 1;
|
|
387
|
+
this.geoNdc.y = -((e.clientY - rect.top) / rect.height) * 2 + 1;
|
|
388
|
+
this.geoRay.setFromCamera(this.geoNdc, this.o.camera);
|
|
389
|
+
const hits = this.geoRay.intersectObjects(this.activeGeoMarkers, false);
|
|
390
|
+
if (!hits.length)
|
|
391
|
+
return -1;
|
|
392
|
+
return this.activeGeoMarkers.indexOf(hits[0].object);
|
|
393
|
+
}
|
|
394
|
+
/** 设置当前悬停的锚点(-1 = 无):更新高亮缩放、光标与"✕(可取消)"悬浮标。 */
|
|
395
|
+
setGeoHover(idx) {
|
|
396
|
+
if (idx === this.hoveredGeoMarker) {
|
|
397
|
+
if (idx >= 0)
|
|
398
|
+
this.positionGeoBadge(this.activeGeoMarkers[idx]);
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
const prev = this.activeGeoMarkers[this.hoveredGeoMarker];
|
|
402
|
+
if (prev)
|
|
403
|
+
prev.scale.setScalar(1);
|
|
404
|
+
this.hoveredGeoMarker = idx;
|
|
405
|
+
const cur = this.activeGeoMarkers[idx];
|
|
406
|
+
if (cur) {
|
|
407
|
+
cur.scale.setScalar(1.3);
|
|
408
|
+
this.ensureGeoBadge().style.display = "flex";
|
|
409
|
+
this.positionGeoBadge(cur);
|
|
410
|
+
this.o.container.style.cursor = "pointer";
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
if (this.geoHoverBadge)
|
|
414
|
+
this.geoHoverBadge.style.display = "none";
|
|
415
|
+
this.o.container.style.cursor = "";
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/** 懒创建悬浮 ✕ 标(挂在 container 内,pointer-events:none 不挡点击)。 */
|
|
419
|
+
ensureGeoBadge() {
|
|
420
|
+
if (this.geoHoverBadge)
|
|
421
|
+
return this.geoHoverBadge;
|
|
422
|
+
const b = document.createElement("div");
|
|
423
|
+
b.textContent = "✕";
|
|
424
|
+
Object.assign(b.style, {
|
|
425
|
+
position: "absolute",
|
|
426
|
+
width: "16px",
|
|
427
|
+
height: "16px",
|
|
428
|
+
borderRadius: "50%",
|
|
429
|
+
background: "#ff5d6c",
|
|
430
|
+
color: "#fff",
|
|
431
|
+
font: "700 10px/1 system-ui, sans-serif",
|
|
432
|
+
display: "none",
|
|
433
|
+
alignItems: "center",
|
|
434
|
+
justifyContent: "center",
|
|
435
|
+
pointerEvents: "none",
|
|
436
|
+
zIndex: "15",
|
|
437
|
+
boxShadow: "0 2px 6px rgba(0,0,0,.45)",
|
|
438
|
+
transform: "translate(-50%, -50%)",
|
|
439
|
+
left: "0px",
|
|
440
|
+
top: "0px",
|
|
441
|
+
});
|
|
442
|
+
this.o.container.appendChild(b);
|
|
443
|
+
this.geoHoverBadge = b;
|
|
444
|
+
return b;
|
|
445
|
+
}
|
|
446
|
+
/** 把 ✕ 标定位到锚点投影到屏幕的位置(正中心,即光标悬停处,避免歧义)。 */
|
|
447
|
+
positionGeoBadge(marker) {
|
|
448
|
+
if (!marker)
|
|
449
|
+
return;
|
|
450
|
+
const b = this.ensureGeoBadge();
|
|
451
|
+
this._projV.copy(marker.position).project(this.o.camera);
|
|
452
|
+
const rect = this.o.container.getBoundingClientRect();
|
|
453
|
+
const x = (this._projV.x * 0.5 + 0.5) * rect.width;
|
|
454
|
+
const y = (-this._projV.y * 0.5 + 0.5) * rect.height;
|
|
455
|
+
b.style.left = `${x}px`;
|
|
456
|
+
b.style.top = `${y}px`;
|
|
457
|
+
}
|
|
458
|
+
/** 据当前锚点重建可见的锚点小球(锚点比放点稍大,便于看见与点中取消)。 */
|
|
459
|
+
rebuildGeoMarkers() {
|
|
460
|
+
this.setGeoHover(-1);
|
|
461
|
+
for (const m of this.activeGeoMarkers) {
|
|
462
|
+
this.o.scene.remove(m);
|
|
463
|
+
this.disposeObject(m);
|
|
464
|
+
}
|
|
465
|
+
this.activeGeoMarkers = [];
|
|
466
|
+
if (!this.activeGeo)
|
|
467
|
+
return;
|
|
468
|
+
for (const v of this.activeGeo.getAnchorLocals()) {
|
|
469
|
+
const marker = makePointMarker(v, this.o.mesh, this.geodesicColor, this.markerRadius * 1.15);
|
|
470
|
+
this.o.scene.add(marker);
|
|
471
|
+
this.activeGeoMarkers.push(marker);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
/** 据当前锚点重画进行中的测地线(不闭合);不足两点时移除线。 */
|
|
475
|
+
redrawGeoLine() {
|
|
476
|
+
if (!this.activeGeo)
|
|
477
|
+
return;
|
|
478
|
+
const verts = this.activeGeo.buildVertices(false);
|
|
479
|
+
if (verts.length < 2) {
|
|
480
|
+
if (this.activeGeoLine) {
|
|
481
|
+
this.o.scene.remove(this.activeGeoLine);
|
|
482
|
+
this.disposeObject(this.activeGeoLine);
|
|
483
|
+
this.activeGeoLine = undefined;
|
|
484
|
+
}
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
if (!this.activeGeoLine) {
|
|
488
|
+
this.activeGeoLine = makeContourLine(verts, this.geodesicColor, false, this.o.container, this.epsilon, this.o.mesh);
|
|
489
|
+
this.o.scene.add(this.activeGeoLine);
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
updateContourLine(this.activeGeoLine, verts, false, this.epsilon, this.o.mesh);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
/** 丢弃进行中的测地线:移除并 dispose 线与全部锚点。 */
|
|
496
|
+
clearActiveGeo() {
|
|
497
|
+
this.setGeoHover(-1);
|
|
498
|
+
if (this.activeGeoLine) {
|
|
499
|
+
this.o.scene.remove(this.activeGeoLine);
|
|
500
|
+
this.disposeObject(this.activeGeoLine);
|
|
501
|
+
this.activeGeoLine = undefined;
|
|
502
|
+
}
|
|
503
|
+
for (const m of this.activeGeoMarkers) {
|
|
504
|
+
this.o.scene.remove(m);
|
|
505
|
+
this.disposeObject(m);
|
|
506
|
+
}
|
|
507
|
+
this.activeGeoMarkers = [];
|
|
508
|
+
this.activeGeo = undefined;
|
|
509
|
+
}
|
|
510
|
+
/** 移除进行中测地线的全部锚点小球(落定后调用:只留下线)。 */
|
|
511
|
+
removeGeoMarkers() {
|
|
512
|
+
this.setGeoHover(-1);
|
|
513
|
+
for (const m of this.activeGeoMarkers) {
|
|
514
|
+
this.o.scene.remove(m);
|
|
515
|
+
this.disposeObject(m);
|
|
516
|
+
}
|
|
517
|
+
this.activeGeoMarkers = [];
|
|
340
518
|
}
|
|
341
519
|
closeLastContour() {
|
|
342
520
|
const last = this.lastFreehand;
|
|
@@ -379,7 +557,10 @@ export class SurfaceAnnotator {
|
|
|
379
557
|
}
|
|
380
558
|
else {
|
|
381
559
|
this.o.scene.remove(this.activeGeoLine);
|
|
560
|
+
this.disposeObject(this.activeGeoLine);
|
|
382
561
|
}
|
|
562
|
+
// 落定后清掉可见锚点,只留下贴合表面的线。
|
|
563
|
+
this.removeGeoMarkers();
|
|
383
564
|
this.activeGeo = undefined;
|
|
384
565
|
this.activeGeoLine = undefined;
|
|
385
566
|
}
|
|
@@ -391,6 +572,10 @@ export class SurfaceAnnotator {
|
|
|
391
572
|
return tag === "INPUT" || tag === "TEXTAREA" || t.isContentEditable;
|
|
392
573
|
}
|
|
393
574
|
dispose() {
|
|
575
|
+
var _a;
|
|
576
|
+
this.clearActiveGeo();
|
|
577
|
+
(_a = this.geoHoverBadge) === null || _a === void 0 ? void 0 : _a.remove();
|
|
578
|
+
this.geoHoverBadge = undefined;
|
|
394
579
|
window.removeEventListener("pointerdown", this.onPointerDown, true);
|
|
395
580
|
window.removeEventListener("pointermove", this.onPointerMove, true);
|
|
396
581
|
window.removeEventListener("pointerup", this.onPointerUp, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SurfaceAnnotator.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/SurfaceAnnotator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SurfaceAnnotator.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/SurfaceAnnotator.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,22 @@ export declare class GeodesicContour {
|
|
|
10
10
|
private mesh;
|
|
11
11
|
private anchors;
|
|
12
12
|
private segments;
|
|
13
|
+
private history;
|
|
13
14
|
constructor(graph: MeshGraph, mesh: THREE.Mesh);
|
|
15
|
+
/** 任何改动锚点前先存一份快照(顶点索引数组很小,快照成本可忽略)。 */
|
|
16
|
+
private snapshot;
|
|
14
17
|
/** 传入 local 命中点,snap 到最近顶点并对上一锚点求路径。 */
|
|
15
18
|
addAnchor(localHitPoint: THREE.Vector3): void;
|
|
19
|
+
/** 删除指定下标的锚点,重算相邻段(支持取消中间任意一点)。 */
|
|
20
|
+
removeAnchorAt(index: number): void;
|
|
21
|
+
/** 是否还有可撤销的编辑(加点/删点)。 */
|
|
22
|
+
canUndo(): boolean;
|
|
23
|
+
/** 撤销上一次锚点编辑(加点 → 删回去;删点 → 恢复)。无历史返回 false。 */
|
|
24
|
+
undoEdit(): boolean;
|
|
25
|
+
/** 据当前锚点序列整体重算所有相邻段路径。 */
|
|
26
|
+
private rebuildSegments;
|
|
27
|
+
/** 各锚点的 local 顶点(用于绘制可见的锚点标记)。 */
|
|
28
|
+
getAnchorLocals(): AnnotationVertex[];
|
|
16
29
|
get anchorCount(): number;
|
|
17
30
|
/** 把所有路径顶点(world)+ 法线 拼成折线;closed 时补一段首尾路径。 */
|
|
18
31
|
buildVertices(closed: boolean): AnnotationVertex[];
|
|
@@ -8,16 +8,54 @@ export class GeodesicContour {
|
|
|
8
8
|
this.mesh = mesh;
|
|
9
9
|
this.anchors = []; // 顶点索引
|
|
10
10
|
this.segments = []; // 相邻锚点间路径(含端点)
|
|
11
|
+
this.history = []; // 每次增删前的锚点快照,用于撤销
|
|
12
|
+
}
|
|
13
|
+
/** 任何改动锚点前先存一份快照(顶点索引数组很小,快照成本可忽略)。 */
|
|
14
|
+
snapshot() {
|
|
15
|
+
this.history.push(this.anchors.slice());
|
|
11
16
|
}
|
|
12
17
|
/** 传入 local 命中点,snap 到最近顶点并对上一锚点求路径。 */
|
|
13
18
|
addAnchor(localHitPoint) {
|
|
14
19
|
const v = this.graph.nearestVertex(localHitPoint);
|
|
20
|
+
this.snapshot();
|
|
15
21
|
if (this.anchors.length > 0) {
|
|
16
22
|
const prev = this.anchors[this.anchors.length - 1];
|
|
17
23
|
this.segments.push(this.graph.shortestPath(prev, v));
|
|
18
24
|
}
|
|
19
25
|
this.anchors.push(v);
|
|
20
26
|
}
|
|
27
|
+
/** 删除指定下标的锚点,重算相邻段(支持取消中间任意一点)。 */
|
|
28
|
+
removeAnchorAt(index) {
|
|
29
|
+
if (index < 0 || index >= this.anchors.length)
|
|
30
|
+
return;
|
|
31
|
+
this.snapshot();
|
|
32
|
+
this.anchors.splice(index, 1);
|
|
33
|
+
this.rebuildSegments();
|
|
34
|
+
}
|
|
35
|
+
/** 是否还有可撤销的编辑(加点/删点)。 */
|
|
36
|
+
canUndo() {
|
|
37
|
+
return this.history.length > 0;
|
|
38
|
+
}
|
|
39
|
+
/** 撤销上一次锚点编辑(加点 → 删回去;删点 → 恢复)。无历史返回 false。 */
|
|
40
|
+
undoEdit() {
|
|
41
|
+
const prev = this.history.pop();
|
|
42
|
+
if (!prev)
|
|
43
|
+
return false;
|
|
44
|
+
this.anchors = prev;
|
|
45
|
+
this.rebuildSegments();
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
/** 据当前锚点序列整体重算所有相邻段路径。 */
|
|
49
|
+
rebuildSegments() {
|
|
50
|
+
this.segments = [];
|
|
51
|
+
for (let i = 1; i < this.anchors.length; i++) {
|
|
52
|
+
this.segments.push(this.graph.shortestPath(this.anchors[i - 1], this.anchors[i]));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** 各锚点的 local 顶点(用于绘制可见的锚点标记)。 */
|
|
56
|
+
getAnchorLocals() {
|
|
57
|
+
return this.anchors.map((i) => this.graph.vertexLocal(i));
|
|
58
|
+
}
|
|
21
59
|
get anchorCount() {
|
|
22
60
|
return this.anchors.length;
|
|
23
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geodesicContour.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/geodesicContour.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"geodesicContour.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/geodesicContour.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,18 @@ import type { AnnotationVertex, SurfaceHit } from "./types";
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class StrokeContour {
|
|
9
9
|
private minGap;
|
|
10
|
+
private maxJump;
|
|
10
11
|
private mesh;
|
|
11
12
|
private verts;
|
|
12
13
|
private last;
|
|
14
|
+
private lastNormal;
|
|
13
15
|
private has;
|
|
14
|
-
|
|
16
|
+
/**
|
|
17
|
+
* @param minGap 采样最小间距(世界系),去抖
|
|
18
|
+
* @param maxJump 跳变阈值(世界系):距离 > maxJump 且法线大幅翻转时丢弃该样本,
|
|
19
|
+
* 避免笔触掠过沟缝/轮廓边时相邻点落在不同深度、直线段横穿模型。
|
|
20
|
+
*/
|
|
21
|
+
constructor(minGap: number, maxJump: number, mesh: THREE.Mesh);
|
|
15
22
|
begin(): void;
|
|
16
23
|
addSample(hit: SurfaceHit): void;
|
|
17
24
|
get vertices(): AnnotationVertex[];
|
|
@@ -6,11 +6,18 @@ import { worldHitToLocalVertex } from "./types";
|
|
|
6
6
|
* 顶点以 local 存(由 mesh 把世界命中点转 local)。
|
|
7
7
|
*/
|
|
8
8
|
export class StrokeContour {
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* @param minGap 采样最小间距(世界系),去抖
|
|
11
|
+
* @param maxJump 跳变阈值(世界系):距离 > maxJump 且法线大幅翻转时丢弃该样本,
|
|
12
|
+
* 避免笔触掠过沟缝/轮廓边时相邻点落在不同深度、直线段横穿模型。
|
|
13
|
+
*/
|
|
14
|
+
constructor(minGap, maxJump, mesh) {
|
|
10
15
|
this.minGap = minGap;
|
|
16
|
+
this.maxJump = maxJump;
|
|
11
17
|
this.mesh = mesh;
|
|
12
18
|
this.verts = [];
|
|
13
19
|
this.last = new THREE.Vector3();
|
|
20
|
+
this.lastNormal = new THREE.Vector3();
|
|
14
21
|
this.has = false;
|
|
15
22
|
}
|
|
16
23
|
begin() {
|
|
@@ -18,11 +25,19 @@ export class StrokeContour {
|
|
|
18
25
|
this.has = false;
|
|
19
26
|
}
|
|
20
27
|
addSample(hit) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
if (this.has) {
|
|
29
|
+
const d = hit.point.distanceTo(this.last);
|
|
30
|
+
if (d < this.minGap)
|
|
31
|
+
return; // 太近,去抖
|
|
32
|
+
// 跳变剔除:距离突然很大「且」法线大幅翻转(>~75°)→ 多半跳到了背面/远面,丢弃,
|
|
33
|
+
// 否则相邻两点之间的直线段会横穿模型内部。两个条件同时满足才剔除:
|
|
34
|
+
// 快速画(距离大、法线相近)不误删;画过尖锐棱边(法线变、距离近)也不误删。
|
|
35
|
+
if (d > this.maxJump && hit.normal.dot(this.lastNormal) < 0.25)
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
24
38
|
this.verts.push(worldHitToLocalVertex(hit, this.mesh));
|
|
25
39
|
this.last.copy(hit.point);
|
|
40
|
+
this.lastNormal.copy(hit.normal);
|
|
26
41
|
this.has = true;
|
|
27
42
|
}
|
|
28
43
|
get vertices() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strokeContour.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/strokeContour.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"strokeContour.js","sourceRoot":"","sources":["../../../src/Utils/surfaceAnnotation/strokeContour.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAMxB;;;;OAIG;IACH,YACU,MAAc,EACd,OAAe,EACf,IAAgB;QAFhB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAY;QAblB,UAAK,GAAuB,EAAE,CAAC;QAC/B,SAAI,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3B,eAAU,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACjC,QAAG,GAAG,KAAK,CAAC;IAWjB,CAAC;IAEJ,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,GAAe;QACvB,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,QAAQ;YACrC,8CAA8C;YAC9C,mCAAmC;YACnC,wCAAwC;YACxC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;gBAAE,OAAO;SACxE;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
|