@ccpc/snap 0.1.3
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/LICENSE +21 -0
- package/index.js +917 -0
- package/package.json +12 -0
- package/types/i_snap_result.d.ts +12 -0
- package/types/i_snap_result.d.ts.map +1 -0
- package/types/index.d.ts +12 -0
- package/types/index.d.ts.map +1 -0
- package/types/point_snap_result.d.ts +23 -0
- package/types/point_snap_result.d.ts.map +1 -0
- package/types/snap_candidates.d.ts +20 -0
- package/types/snap_candidates.d.ts.map +1 -0
- package/types/snap_context.d.ts +54 -0
- package/types/snap_context.d.ts.map +1 -0
- package/types/snap_direction.d.ts +29 -0
- package/types/snap_direction.d.ts.map +1 -0
- package/types/snap_engine.d.ts +20 -0
- package/types/snap_engine.d.ts.map +1 -0
- package/types/snap_point.d.ts +46 -0
- package/types/snap_point.d.ts.map +1 -0
- package/types/snap_result.d.ts +30 -0
- package/types/snap_result.d.ts.map +1 -0
- package/types/snap_setting.d.ts +74 -0
- package/types/snap_setting.d.ts.map +1 -0
- package/types/snap_type.d.ts +62 -0
- package/types/snap_type.d.ts.map +1 -0
- package/types/snap_util.d.ts +22 -0
- package/types/snap_util.d.ts.map +1 -0
package/package.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { GGroup, GNode } from '@ccpc/core';
|
|
2
|
+
import { EN_SNAP_TYPE } from './snap_type';
|
|
3
|
+
/**
|
|
4
|
+
* 捕捉结果
|
|
5
|
+
*/
|
|
6
|
+
export interface ISnapResult {
|
|
7
|
+
getSnapType(): EN_SNAP_TYPE;
|
|
8
|
+
getSnappedGNodes(): GNode[];
|
|
9
|
+
addSnappedGNode(snappedGNode: GNode): void;
|
|
10
|
+
getSnapPrompt(): GGroup;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=i_snap_result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i_snap_result.d.ts","sourceRoot":"","sources":["../../src/i_snap_result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;EAEE;AACF,MAAM,WAAW,WAAW;IACxB,WAAW,IAAI,YAAY,CAAC;IAE5B,gBAAgB,IAAI,KAAK,EAAE,CAAC;IAE5B,eAAe,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3C,aAAa,IAAI,MAAM,CAAC;CAC3B"}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { EN_SNAP_TYPE } from './snap_type';
|
|
2
|
+
export type { ISnapResult } from './i_snap_result';
|
|
3
|
+
export { SnapContext, EN_SNAP_HELP_OBJ } from './snap_context';
|
|
4
|
+
export { SnapResult } from './snap_result';
|
|
5
|
+
export { PtSnap } from './point_snap_result';
|
|
6
|
+
export { SnapCandidates } from './snap_candidates';
|
|
7
|
+
export { SnapSetting, EN_XY } from './snap_setting';
|
|
8
|
+
export { SnapUtil } from './snap_util';
|
|
9
|
+
export { SnapPoint } from './snap_point';
|
|
10
|
+
export { SnapDirection } from './snap_direction';
|
|
11
|
+
export { SnapEngine } from './snap_engine';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { GGroup } from '@ccpc/core';
|
|
2
|
+
import { Vec2 } from '@ccpc/math';
|
|
3
|
+
import { SnapResult } from './snap_result';
|
|
4
|
+
import { EN_SNAP_TYPE } from './snap_type';
|
|
5
|
+
export declare class PtSnap extends SnapResult {
|
|
6
|
+
private _snappedPt;
|
|
7
|
+
private _anotherPt?;
|
|
8
|
+
private _snappedDir?;
|
|
9
|
+
private _disToCursor;
|
|
10
|
+
private _anotherSnapType?;
|
|
11
|
+
constructor(snapType: EN_SNAP_TYPE, snappedPt: Vec2, disToCursor: number, snappedDir?: Vec2, anotherPt?: Vec2);
|
|
12
|
+
get snappedPt(): Vec2;
|
|
13
|
+
set snappedPt(pt: Vec2);
|
|
14
|
+
set snappedDir(snappedDir: Vec2 | undefined);
|
|
15
|
+
get snappedDir(): Vec2 | undefined;
|
|
16
|
+
set anotherSnapType(type: EN_SNAP_TYPE | undefined);
|
|
17
|
+
get anotherSnapType(): EN_SNAP_TYPE | undefined;
|
|
18
|
+
set disToCursor(val: number);
|
|
19
|
+
get disToCursor(): number;
|
|
20
|
+
getSnapPrompt(): GGroup;
|
|
21
|
+
getSnapPromptString(): string;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=point_snap_result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point_snap_result.d.ts","sourceRoot":"","sources":["../../src/point_snap_result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAY,MAAM,YAAY,CAAA;AACvD,OAAO,EAAc,IAAI,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,qBAAa,MAAO,SAAQ,UAAU;IAClC,OAAO,CAAC,UAAU,CAAM;IAExB,OAAO,CAAC,UAAU,CAAC,CAAM;IAEzB,OAAO,CAAC,WAAW,CAAC,CAAM;IAE1B,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,gBAAgB,CAAC,CAAc;gBAGnC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,IAAI,EACjB,SAAS,CAAC,EAAE,IAAI;IAapB,IAAW,SAAS,IAIK,IAAI,CAF5B;IAED,IAAW,SAAS,CAAC,EAAE,EAAE,IAAI,EAE5B;IAED,IAAW,UAAU,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,EAEjD;IAED,IAAW,UAAU,IAJa,IAAI,GAAG,SAAS,CAMjD;IAED,IAAW,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAExD;IAED,IAAW,eAAe,IAJO,YAAY,GAAG,SAAS,CAMxD;IAED,IAAW,WAAW,CAAC,GAAG,EAAE,MAAM,EAEjC;IAED,IAAW,WAAW,IAJM,MAAM,CAMjC;IAGM,aAAa,IAAI,MAAM;IAoDvB,mBAAmB,IAAI,MAAM;CA+DvC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SnapResult } from './snap_result';
|
|
2
|
+
/**
|
|
3
|
+
* 吸附候选结果
|
|
4
|
+
*/
|
|
5
|
+
export declare class SnapCandidates {
|
|
6
|
+
/**
|
|
7
|
+
* 用于tab切换吸附结果
|
|
8
|
+
*/
|
|
9
|
+
private _currentIndex;
|
|
10
|
+
private _snapResults;
|
|
11
|
+
constructor();
|
|
12
|
+
get snapResults(): SnapResult[];
|
|
13
|
+
addSnapResult(snapResult: SnapResult): void;
|
|
14
|
+
addSnapResults(snapResults: SnapResult[]): void;
|
|
15
|
+
sort(fun?: (a: SnapResult, b: SnapResult) => number): void;
|
|
16
|
+
getCurrentSnap(): SnapResult | undefined;
|
|
17
|
+
get currentIndex(): number;
|
|
18
|
+
set currentIndex(index: number);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=snap_candidates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_candidates.d.ts","sourceRoot":"","sources":["../../src/snap_candidates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C;;GAEG;AACH,qBAAa,cAAc;IACvB;;OAEG;IACH,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,YAAY,CAAc;;IAOlC,IAAW,WAAW,iBAErB;IAEM,aAAa,CAAC,UAAU,EAAE,UAAU;IAIpC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE;IAIxC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,KAAK,MAAM;IAqBnD,cAAc,IAAI,UAAU,GAAG,SAAS;IAO/C,IAAW,YAAY,IAIQ,MAAM,CAFpC;IAED,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAGpC;CACJ"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { GNode } from '@ccpc/core';
|
|
2
|
+
import type { Curve2, Vec2 } from '@ccpc/math';
|
|
3
|
+
import type { SnapResult } from './snap_result';
|
|
4
|
+
/**
|
|
5
|
+
* 吸附辅助对象类型
|
|
6
|
+
*/
|
|
7
|
+
export declare enum EN_SNAP_HELP_OBJ {
|
|
8
|
+
POINT = "point",
|
|
9
|
+
CURVE = "curve",
|
|
10
|
+
DIR = "dir"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 吸附计算的输入信息,snap引擎根据这些输入信息,计算得到吸附结果
|
|
14
|
+
*/
|
|
15
|
+
export declare class SnapContext {
|
|
16
|
+
private _snappableGNodes;
|
|
17
|
+
private _cursorWorld;
|
|
18
|
+
private _previousPoint;
|
|
19
|
+
private _previousLineDir;
|
|
20
|
+
private _firstPoint;
|
|
21
|
+
private _snapHelpers;
|
|
22
|
+
private _snapSort;
|
|
23
|
+
constructor();
|
|
24
|
+
constructor(snappableGNodes: GNode[], cursorWorld: Vec2);
|
|
25
|
+
get snappableGNodes(): GNode[];
|
|
26
|
+
set snappableGNodes(gnodes: GNode[]);
|
|
27
|
+
get cursorWorld(): Vec2;
|
|
28
|
+
set cursorWorld(cursorWorld: Vec2);
|
|
29
|
+
get previousPoint(): Vec2 | undefined;
|
|
30
|
+
set previousPoint(pt: Vec2 | undefined);
|
|
31
|
+
get previousLineDir(): Vec2 | undefined;
|
|
32
|
+
set previousLineDir(dir: Vec2 | undefined);
|
|
33
|
+
get firstPoint(): Vec2 | undefined;
|
|
34
|
+
set firstPoint(pt: Vec2 | undefined);
|
|
35
|
+
get snapSort(): ((a: SnapResult, b: SnapResult) => number) | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Function used to determine the order of the elements.It is expected to return a negative
|
|
38
|
+
* value if first argument is less than second argument, zero if they're equal and a positive value otherwise.
|
|
39
|
+
*/
|
|
40
|
+
set snapSort(snapSort: ((a: SnapResult, b: SnapResult) => number) | undefined);
|
|
41
|
+
/**
|
|
42
|
+
* 获取某类吸附辅助对象
|
|
43
|
+
*/
|
|
44
|
+
getSnapHelpers(type: EN_SNAP_HELP_OBJ): (Vec2 | Curve2[])[] | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* 设置某类吸附辅助对象
|
|
47
|
+
*/
|
|
48
|
+
setSnapHelpers(type: EN_SNAP_HELP_OBJ, snapHelper: (Vec2 | Curve2[])[]): void;
|
|
49
|
+
/**
|
|
50
|
+
* 添加吸附辅助对象
|
|
51
|
+
*/
|
|
52
|
+
addSnapHelpers(type: EN_SNAP_HELP_OBJ, snapHelper: Vec2[] | Curve2[]): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=snap_context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_context.d.ts","sourceRoot":"","sources":["../../src/snap_context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C;;GAEG;AACH,oBAAY,gBAAgB;IACxB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;CACd;AAED;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,gBAAgB,CAAU;IAElC,OAAO,CAAC,YAAY,CAAO;IAE3B,OAAO,CAAC,cAAc,CAAkB;IAExC,OAAO,CAAC,gBAAgB,CAAkB;IAE1C,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,YAAY,CAAwD;IAE5E,OAAO,CAAC,SAAS,CAAwD;;gBAI7D,eAAe,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI;IASvD,IAAW,eAAe,IAIS,KAAK,EAAE,CAFzC;IAED,IAAW,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAEzC;IAED,IAAW,WAAW,IAIc,IAAI,CAFvC;IAED,IAAW,WAAW,CAAC,WAAW,EAAE,IAAI,EAEvC;IAED,IAAW,aAAa,IAIK,IAAI,GAAG,SAAS,CAF5C;IAED,IAAW,aAAa,CAAC,EAAE,EAAE,IAAI,GAAG,SAAS,EAE5C;IAED,IAAW,eAAe,IAIM,IAAI,GAAG,SAAS,CAF/C;IAED,IAAW,eAAe,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,EAE/C;IAED,IAAW,UAAU,IAIK,IAAI,GAAG,SAAS,CAFzC;IAED,IAAW,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,SAAS,EAEzC;IAED,IAAW,QAAQ,IAQW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC,GAAG,SAAS,CANnF;IAED;;;OAGG;IACH,IAAW,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC,GAAG,SAAS,EAEnF;IAED;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,gBAAgB;IAI5C;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE;IAI7E;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE;CAoB9E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SnapContext } from './snap_context';
|
|
2
|
+
import type { PtSnap } from './point_snap_result';
|
|
3
|
+
/**
|
|
4
|
+
* 方向捕捉
|
|
5
|
+
*/
|
|
6
|
+
export declare class SnapDirection {
|
|
7
|
+
static snapDirection(snapContext: SnapContext): PtSnap[];
|
|
8
|
+
/**
|
|
9
|
+
* 捕捉过上一个点的水平/竖直方向
|
|
10
|
+
*/
|
|
11
|
+
static snapPointParallelToAxis(snapContext: SnapContext): PtSnap[];
|
|
12
|
+
/**
|
|
13
|
+
* 捕捉延长线上的点
|
|
14
|
+
*/
|
|
15
|
+
static snapExtensionPoint(snapContext: SnapContext): PtSnap[];
|
|
16
|
+
/**
|
|
17
|
+
* 捕捉参考方向
|
|
18
|
+
*/
|
|
19
|
+
static snapHelperDirections(snapContext: SnapContext): PtSnap[];
|
|
20
|
+
/**
|
|
21
|
+
* 捕捉和上一个方向垂直的方向
|
|
22
|
+
*/
|
|
23
|
+
static snapVerticalDir(snapContext: SnapContext): PtSnap[];
|
|
24
|
+
/**
|
|
25
|
+
* 连续画线时,捕捉第一点与当前鼠标点连线,与坐标轴平行情况
|
|
26
|
+
*/
|
|
27
|
+
static snapLastLineDir(snapContext: SnapContext): PtSnap[];
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=snap_direction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_direction.d.ts","sourceRoot":"","sources":["../../src/snap_direction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAKjD;;GAEG;AACH,qBAAa,aAAa;WACR,aAAa,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;IA+B/D;;OAEG;WACW,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;IA6CzE;;OAEG;WACW,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;IA2BpE;;OAEG;WACW,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;IA6BtE;;OAEG;WACW,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;IA0BjE;;OAEG;WACW,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;CAgDpE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SnapCandidates } from './snap_candidates';
|
|
2
|
+
import type { SnapContext } from './snap_context';
|
|
3
|
+
/**
|
|
4
|
+
* snap引擎,根据输入信息,计算得到捕捉结果
|
|
5
|
+
*/
|
|
6
|
+
export declare class SnapEngine {
|
|
7
|
+
/**
|
|
8
|
+
* 捕捉唯一入口方法
|
|
9
|
+
* @param snapContext 捕捉输入信息
|
|
10
|
+
* @returns 捕捉结果候选集合
|
|
11
|
+
*/
|
|
12
|
+
static snap(snapContext: SnapContext): SnapCandidates;
|
|
13
|
+
private static _snapGNode;
|
|
14
|
+
private static _combineIntersects;
|
|
15
|
+
/**
|
|
16
|
+
* 组合捕捉结果
|
|
17
|
+
*/
|
|
18
|
+
private static _combineSnaps;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=snap_engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_engine.d.ts","sourceRoot":"","sources":["../../src/snap_engine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAQjD;;GAEG;AACH,qBAAa,UAAU;IACnB;;;;OAIG;WACW,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,cAAc;IA+C5D,OAAO,CAAC,MAAM,CAAC,UAAU;IAsBzB,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAmHjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CAQ/B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { GCurve2d, GPoint2d, GPolygon, GPolycurve, type GNode } from '@ccpc/core';
|
|
2
|
+
import type { SnapContext } from './snap_context';
|
|
3
|
+
import { PtSnap } from './point_snap_result';
|
|
4
|
+
/**
|
|
5
|
+
* 点吸附计算
|
|
6
|
+
*/
|
|
7
|
+
export declare class SnapPoint {
|
|
8
|
+
/**
|
|
9
|
+
* 捕捉特征点
|
|
10
|
+
*/
|
|
11
|
+
static snapGPoint(snapContext: SnapContext, snappableGNode: GPoint2d): PtSnap[];
|
|
12
|
+
/**
|
|
13
|
+
* 捕捉两条线的交点
|
|
14
|
+
*/
|
|
15
|
+
static snapCurvesXPoint(snapContext: SnapContext, snappableGNodes: GNode[]): PtSnap[];
|
|
16
|
+
/**
|
|
17
|
+
* 捕捉“端点”、“中点”
|
|
18
|
+
*/
|
|
19
|
+
static snapCurveFeaturePoint(snapContext: SnapContext, snappableGNode: GCurve2d | GPolycurve): PtSnap[];
|
|
20
|
+
/**
|
|
21
|
+
* 捕捉参考线
|
|
22
|
+
*/
|
|
23
|
+
static snapReferenceCurve(snapContext: SnapContext): PtSnap[];
|
|
24
|
+
/**
|
|
25
|
+
* 捕捉参考点
|
|
26
|
+
*/
|
|
27
|
+
static snapReferencePoint(snapContext: SnapContext): PtSnap[];
|
|
28
|
+
/**
|
|
29
|
+
* 捕捉“端点”、“中点”
|
|
30
|
+
*/
|
|
31
|
+
static snapEndOrMidPoint(snapContext: SnapContext, snappableGNode: GCurve2d | GPolycurve): PtSnap[];
|
|
32
|
+
/**
|
|
33
|
+
* 线上的点
|
|
34
|
+
*/
|
|
35
|
+
static snapPointOnCurve(snapContext: SnapContext, snappableGNode: GCurve2d | GPolycurve): PtSnap[];
|
|
36
|
+
/**
|
|
37
|
+
* 面上的点
|
|
38
|
+
*/
|
|
39
|
+
static snapPointOnFace(snapContext: SnapContext, snappableGNode: GPolygon): PtSnap[];
|
|
40
|
+
/**
|
|
41
|
+
* 捕捉和曲线的交点
|
|
42
|
+
*/
|
|
43
|
+
private static _snapPtOnCurve;
|
|
44
|
+
private static _getNodeCurves;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=snap_point.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_point.d.ts","sourceRoot":"","sources":["../../src/snap_point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAGjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAK5C;;GAEG;AACH,qBAAa,SAAS;IAClB;;OAEG;WACW,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,GAAG,MAAM,EAAE;IAYtF;;OAEG;WACW,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE;IAqC5F;;OAEG;WACW,qBAAqB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,EAAE;IAc9G;;OAEG;WACW,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;IA2BpE;;OAEG;WACW,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE;IAmBpE;;OAEG;WACW,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,EAAE;IAuE1G;;OAEG;WACW,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,EAAE;IA2BzG;;OAEG;WACW,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,GAAG,MAAM,EAAE;IAqB3F;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B,OAAO,CAAC,MAAM,CAAC,cAAc;CAYhC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { GGroup, GNode } from '@ccpc/core';
|
|
2
|
+
import type { Curve2, Vec2 } from '@ccpc/math';
|
|
3
|
+
import type { ISnapResult } from './i_snap_result';
|
|
4
|
+
import type { EN_SNAP_TYPE } from './snap_type';
|
|
5
|
+
/**
|
|
6
|
+
* 吸附结果基类
|
|
7
|
+
*/
|
|
8
|
+
export declare class SnapResult implements ISnapResult {
|
|
9
|
+
/**吸附类型*/
|
|
10
|
+
private _snapType;
|
|
11
|
+
/**吸附到的GNodes*/
|
|
12
|
+
private _snappedGNodes;
|
|
13
|
+
/**
|
|
14
|
+
* 实际吸附到的几何对象
|
|
15
|
+
*/
|
|
16
|
+
private _snappedObjects;
|
|
17
|
+
constructor(snapType: EN_SNAP_TYPE);
|
|
18
|
+
getSnapType(): EN_SNAP_TYPE;
|
|
19
|
+
setSnapType(type: EN_SNAP_TYPE): void;
|
|
20
|
+
getSnappedGNodes(): GNode[];
|
|
21
|
+
setSnappedGNodes(gnodes: GNode[]): void;
|
|
22
|
+
addSnappedGNode(snappedGNode: GNode): void;
|
|
23
|
+
addSnappedGNodes(snappedGNodes: GNode[]): void;
|
|
24
|
+
getSnappedObjects(): (Curve2 | Vec2)[];
|
|
25
|
+
setSnappedObjects(objects: (Curve2 | Vec2)[]): void;
|
|
26
|
+
addSnappedObject(object: Curve2 | Vec2): void;
|
|
27
|
+
addSnappedObjects(objects: (Curve2 | Vec2)[]): void;
|
|
28
|
+
getSnapPrompt(): GGroup;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=snap_result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_result.d.ts","sourceRoot":"","sources":["../../src/snap_result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;GAEG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC1C,SAAS;IACT,OAAO,CAAC,SAAS,CAAc;IAE/B,eAAe;IACf,OAAO,CAAC,cAAc,CAAS;IAE/B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAmB;gBAE9B,QAAQ,EAAE,YAAY;IAM3B,WAAW,IAAI,YAAY;IAI3B,WAAW,CAAC,IAAI,EAAE,YAAY;IAI9B,gBAAgB,IAAI,KAAK,EAAE;IAI3B,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE;IAIhC,eAAe,CAAC,YAAY,EAAE,KAAK;IAInC,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE;IAIvC,iBAAiB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;IAItC,iBAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;IAI5C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,iBAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;IAI5C,aAAa,IAAI,MAAM;CAGjC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export declare enum EN_XY {
|
|
2
|
+
X = 0,
|
|
3
|
+
Y = 1
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* 捕捉选项设置,为单例类
|
|
7
|
+
* 可用于UI上设置捕捉选项
|
|
8
|
+
*/
|
|
9
|
+
export declare class SnapSetting {
|
|
10
|
+
private static _instance;
|
|
11
|
+
static instance(): SnapSetting;
|
|
12
|
+
private _backup;
|
|
13
|
+
private _pixelsPerUnit;
|
|
14
|
+
private _snapTolerance;
|
|
15
|
+
private _isSnapOff;
|
|
16
|
+
private _canSnapEndPt;
|
|
17
|
+
private _canSnapMidPt;
|
|
18
|
+
private _canSnapCenter;
|
|
19
|
+
private _canSnapPerpendicularPoint;
|
|
20
|
+
private _canSnapExtensionPoint;
|
|
21
|
+
private _canSnapVertical;
|
|
22
|
+
private _canSnapParallelToX;
|
|
23
|
+
private _canSnapParallelToY;
|
|
24
|
+
private _canSnapClosedLineParallelToX;
|
|
25
|
+
private _canSnapClosedLineParallelToY;
|
|
26
|
+
private _canSnapPointOnCurve;
|
|
27
|
+
private _canSnapPointOnFace;
|
|
28
|
+
private _canSnapHelperObject;
|
|
29
|
+
private _canSnapHelperDir;
|
|
30
|
+
private constructor();
|
|
31
|
+
/**
|
|
32
|
+
* 修改snapSetting前备份原来状态
|
|
33
|
+
*/
|
|
34
|
+
backup(): void;
|
|
35
|
+
/**
|
|
36
|
+
* 恢复上次备份的snapSetting状态
|
|
37
|
+
*/
|
|
38
|
+
restore(): void;
|
|
39
|
+
getSnapTol(): number;
|
|
40
|
+
setSnapTol(tol: number): void;
|
|
41
|
+
setPixelsPerUnit(pixelsPerUnit: number): void;
|
|
42
|
+
getPixelsPerUnit(): number;
|
|
43
|
+
getSnapTolInWorld(): number;
|
|
44
|
+
get isSnapOff(): boolean;
|
|
45
|
+
set isSnapOff(val: boolean);
|
|
46
|
+
allowAll(): void;
|
|
47
|
+
disableAll(): void;
|
|
48
|
+
get canSnapEndPt(): boolean;
|
|
49
|
+
set canSnapEndPt(val: boolean);
|
|
50
|
+
get canSnapMidPt(): boolean;
|
|
51
|
+
set canSnapMidPt(val: boolean);
|
|
52
|
+
get canSnapCenter(): boolean;
|
|
53
|
+
set canSnapCenter(val: boolean);
|
|
54
|
+
get canSnapPerpendicularPoint(): boolean;
|
|
55
|
+
set canSnapPerpendicularPoint(val: boolean);
|
|
56
|
+
get canSnapExtensionPoint(): boolean;
|
|
57
|
+
set canSnapExtensionPoint(val: boolean);
|
|
58
|
+
get canSnapVertical(): boolean;
|
|
59
|
+
set canSnapVertical(val: boolean);
|
|
60
|
+
get canSnapHelperObject(): boolean;
|
|
61
|
+
set canSnapHelperObject(val: boolean);
|
|
62
|
+
get canSnapHelperDir(): boolean;
|
|
63
|
+
set canSnapHelperDir(val: boolean);
|
|
64
|
+
getCanSnapParallelToAxis(axis: EN_XY): boolean;
|
|
65
|
+
setCanSnapParallelToAxis(axis: EN_XY, val: boolean): void;
|
|
66
|
+
getCanSnapClosedLineParallelToAxis(axis: EN_XY): boolean;
|
|
67
|
+
setCanSnapClosedLineParallelToAxis(axis: EN_XY, val: boolean): void;
|
|
68
|
+
get canSnapPointOnCurve(): boolean;
|
|
69
|
+
set canSnapPointOnCurve(val: boolean);
|
|
70
|
+
get canSnapPointOnFace(): boolean;
|
|
71
|
+
set canSnapPointOnFace(val: boolean);
|
|
72
|
+
private _reset;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=snap_setting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_setting.d.ts","sourceRoot":"","sources":["../../src/snap_setting.ts"],"names":[],"mappings":"AAEA,oBAAY,KAAK;IACb,CAAC,IAAA;IACD,CAAC,IAAA;CACJ;AAkCD;;;GAGG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAa;WAEvB,QAAQ,IAAI,WAAW;IAOrC,OAAO,CAAC,OAAO,CAA+B;IAG9C,OAAO,CAAC,cAAc,CAAQ;IAG9B,OAAO,CAAC,cAAc,CAAQ;IAG9B,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,aAAa,CAAU;IAE/B,OAAO,CAAC,aAAa,CAAU;IAE/B,OAAO,CAAC,cAAc,CAAU;IAGhC,OAAO,CAAC,0BAA0B,CAAU;IAG5C,OAAO,CAAC,sBAAsB,CAAU;IAGxC,OAAO,CAAC,gBAAgB,CAAU;IAGlC,OAAO,CAAC,mBAAmB,CAAU;IAGrC,OAAO,CAAC,mBAAmB,CAAU;IAGrC,OAAO,CAAC,6BAA6B,CAAU;IAG/C,OAAO,CAAC,6BAA6B,CAAU;IAG/C,OAAO,CAAC,oBAAoB,CAAU;IAGtC,OAAO,CAAC,mBAAmB,CAAU;IAErC,OAAO,CAAC,oBAAoB,CAAU;IAEtC,OAAO,CAAC,iBAAiB,CAAU;IAEnC,OAAO;IAOP;;OAEG;IACI,MAAM;IAqBb;;OAEG;IACI,OAAO;IAuBP,UAAU,IAAI,MAAM;IAKpB,UAAU,CAAC,GAAG,EAAE,MAAM;IAItB,gBAAgB,CAAC,aAAa,EAAE,MAAM;IAItC,gBAAgB;IAIhB,iBAAiB;IAOxB,IAAW,SAAS,IAIM,OAAO,CAFhC;IAED,IAAW,SAAS,CAAC,GAAG,EAAE,OAAO,EAEhC;IAEM,QAAQ;IAIR,UAAU;IAIjB,IAAW,YAAY,IAIM,OAAO,CAFnC;IAED,IAAW,YAAY,CAAC,GAAG,EAAE,OAAO,EAEnC;IAED,IAAW,YAAY,IAIM,OAAO,CAFnC;IAED,IAAW,YAAY,CAAC,GAAG,EAAE,OAAO,EAEnC;IAED,IAAW,aAAa,IAIM,OAAO,CAFpC;IAED,IAAW,aAAa,CAAC,GAAG,EAAE,OAAO,EAEpC;IAED,IAAW,yBAAyB,IAIM,OAAO,CAFhD;IAED,IAAW,yBAAyB,CAAC,GAAG,EAAE,OAAO,EAEhD;IAED,IAAW,qBAAqB,IAIM,OAAO,CAF5C;IAED,IAAW,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAE5C;IAED,IAAW,eAAe,IAIM,OAAO,CAFtC;IAED,IAAW,eAAe,CAAC,GAAG,EAAE,OAAO,EAEtC;IAED,IAAW,mBAAmB,IAIM,OAAO,CAF1C;IAED,IAAW,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAE1C;IAED,IAAW,gBAAgB,IAIM,OAAO,CAFvC;IAED,IAAW,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAEvC;IAEM,wBAAwB,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO;IAY9C,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO;IAalD,kCAAkC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO;IAYxD,kCAAkC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO;IAanE,IAAW,mBAAmB,IAIM,OAAO,CAF1C;IAED,IAAW,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAE1C;IAED,IAAW,kBAAkB,IAIM,OAAO,CAFzC;IAED,IAAW,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAEzC;IAED,OAAO,CAAC,MAAM;CAgBjB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 吸附类型
|
|
3
|
+
*/
|
|
4
|
+
export declare enum EN_SNAP_TYPE {
|
|
5
|
+
/** 无效 */
|
|
6
|
+
InvalidType = -1,
|
|
7
|
+
/** 端点 */
|
|
8
|
+
EndPoint = 0,
|
|
9
|
+
/** 极点 */
|
|
10
|
+
Pole = 1,
|
|
11
|
+
/** 交点 */
|
|
12
|
+
XPt = 2,
|
|
13
|
+
/** 中点 */
|
|
14
|
+
MiddlePoint = 3,
|
|
15
|
+
/** 圆心 */
|
|
16
|
+
Center = 4,
|
|
17
|
+
/**
|
|
18
|
+
* 垂足点
|
|
19
|
+
* 确定点 A 后,移动靠近参考线,计算 A 到参考线的垂足
|
|
20
|
+
*/
|
|
21
|
+
PerpendicularPoint = 5,
|
|
22
|
+
/** 点在线上 */
|
|
23
|
+
PointOnCurve = 6,
|
|
24
|
+
/** 点在参考线上 */
|
|
25
|
+
ReferCurve = 7,
|
|
26
|
+
/**
|
|
27
|
+
* 延长线上的点
|
|
28
|
+
* 先画线,再移动鼠标到延长线上
|
|
29
|
+
*/
|
|
30
|
+
ExtensionPoint = 8,
|
|
31
|
+
/**
|
|
32
|
+
* 垂直方向上的点
|
|
33
|
+
* 确定点 A 后,移动命中曲线,获取 B 使 AB 垂直于曲线
|
|
34
|
+
*/
|
|
35
|
+
VerticalToCurve = 9,
|
|
36
|
+
/**
|
|
37
|
+
* 平行于曲线方向上的点
|
|
38
|
+
*/
|
|
39
|
+
ParallelToCurve = 10,
|
|
40
|
+
/**
|
|
41
|
+
* 相对上一点,平行于 X 轴
|
|
42
|
+
*/
|
|
43
|
+
ParallelToX = 11,
|
|
44
|
+
/**
|
|
45
|
+
* 相对上一点,平行于 Y 轴
|
|
46
|
+
*/
|
|
47
|
+
ParallelToY = 12,
|
|
48
|
+
/**
|
|
49
|
+
* 闭合线相对首点平行于 X 轴
|
|
50
|
+
* 已有首点 A,当前点 B 被约束为与 A 水平
|
|
51
|
+
*/
|
|
52
|
+
ClosedLineParallelToX = 13,
|
|
53
|
+
/**
|
|
54
|
+
* 闭合线相对首点平行于 Y 轴
|
|
55
|
+
*/
|
|
56
|
+
ClosedLineParallelToY = 14,
|
|
57
|
+
/** 点在面上 */
|
|
58
|
+
PointOnFace = 15,
|
|
59
|
+
/** 点在吸附平面上 */
|
|
60
|
+
PointOnSnapPlane = 16
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=snap_type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_type.d.ts","sourceRoot":"","sources":["../../src/snap_type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,YAAY;IACpB,SAAS;IACT,WAAW,KAAK;IAChB,SAAS;IACT,QAAQ,IAAA;IACR,SAAS;IACT,IAAI,IAAA;IACJ,SAAS;IACT,GAAG,IAAA;IACH,SAAS;IACT,WAAW,IAAA;IACX,SAAS;IACT,MAAM,IAAA;IAEN;;;OAGG;IACH,kBAAkB,IAAA;IAClB,WAAW;IACX,YAAY,IAAA;IACZ,aAAa;IACb,UAAU,IAAA;IACV;;;OAGG;IACH,cAAc,IAAA;IACd;;;OAGG;IACH,eAAe,IAAA;IACf;;OAEG;IACH,eAAe,KAAA;IACf;;OAEG;IACH,WAAW,KAAA;IACX;;OAEG;IACH,WAAW,KAAA;IACX;;;OAGG;IACH,qBAAqB,KAAA;IACrB;;OAEG;IACH,qBAAqB,KAAA;IACrB,WAAW;IACX,WAAW,KAAA;IACX,cAAc;IACd,gBAAgB,KAAA;CACnB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type GNode } from '@ccpc/core';
|
|
2
|
+
import { Curve2, Vec2 } from '@ccpc/math';
|
|
3
|
+
import { PtSnap } from './point_snap_result';
|
|
4
|
+
import { EN_SNAP_TYPE } from './snap_type';
|
|
5
|
+
/**
|
|
6
|
+
* 吸附计算公共方法
|
|
7
|
+
*/
|
|
8
|
+
export declare class SnapUtil {
|
|
9
|
+
/**
|
|
10
|
+
* 点吸附
|
|
11
|
+
*/
|
|
12
|
+
static intersectPoint(cursorWorld: Vec2, pt: Vec2, snapType: EN_SNAP_TYPE): PtSnap | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* 曲线吸附
|
|
15
|
+
*/
|
|
16
|
+
static intersectCurve(cursorWorld: Vec2, curve: Curve2, snapType: EN_SNAP_TYPE, anotherPt?: Vec2): PtSnap | undefined;
|
|
17
|
+
static curveIntersectGNode(curve: Curve2, gnode: GNode): {
|
|
18
|
+
pt: Vec2;
|
|
19
|
+
c: Curve2;
|
|
20
|
+
}[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=snap_util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap_util.d.ts","sourceRoot":"","sources":["../../src/snap_util.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAO,MAAM,YAAY,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C;;GAEG;AACH,qBAAa,QAAQ;IACjB;;OAEG;WACW,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY;IAUhF;;OAEG;WACW,cAAc,CACxB,WAAW,EAAE,IAAI,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,IAAI;WAcN,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;YAWjD,IAAI;WACL,MAAM;;CAapB"}
|