@xtctwins/tctwins-core 1.1.10 → 1.1.12
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/tctwins-core.es5.js +749 -1506
- package/dist/tctwins-core.min.es5.js +4 -4
- package/package.json +1 -1
- package/types/plugins/SectionPlanesPlugin/SectionBoxControl.d.ts +36 -0
- package/types/plugins/SectionPlanesPlugin/SectionPlanesPlugin.d.ts +14 -14
- package/types/plugins/SectionPlanesPlugin/index.d.ts +1 -0
- package/types/viewer/scene/sectionPlane/SectionPlane.d.ts +14 -0
- package/types/viewer/scene/sectionBox/SectionBox.d.ts +0 -41
- package/types/viewer/scene/sectionBox/index.d.ts +0 -1
package/package.json
CHANGED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component } from "../../viewer/scene/Component";
|
|
2
|
+
|
|
3
|
+
export type SectionBoxConfiguration = {
|
|
4
|
+
/** 场景内唯一 ID;省略时自动生成。 */
|
|
5
|
+
id?: string;
|
|
6
|
+
/** 世界坐标范围,省略时自动适配模型。 */
|
|
7
|
+
aabb?: number[] | Float64Array;
|
|
8
|
+
/** 是否启用裁剪和交互,默认 true。 */
|
|
9
|
+
active?: boolean;
|
|
10
|
+
/** 是否显示控制器,默认 true;隐藏不停止裁剪。 */
|
|
11
|
+
visible?: boolean;
|
|
12
|
+
/** 最小间距,默认模型最大边长的 1%。 */
|
|
13
|
+
minSize?: number | number[] | Float64Array;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 通过 SectionPlanesPlugin 创建;不需要额外 DOM 元素。
|
|
18
|
+
*
|
|
19
|
+
* 未手动调整前会自动跟随模型集合(多个模型取并集);一旦调用 `setAABB()` 或拖动盒面,
|
|
20
|
+
* 就切换为手动模式,不再自动重新适配,直到再次调用 `fitToScene()`。
|
|
21
|
+
*/
|
|
22
|
+
export declare class SectionBoxControl extends Component {
|
|
23
|
+
readonly mode: "inside" | "outside";
|
|
24
|
+
readonly aabb: number[] | null;
|
|
25
|
+
readonly minSize: number[] | null;
|
|
26
|
+
active: boolean;
|
|
27
|
+
visible: boolean;
|
|
28
|
+
/** 原子更新范围;非法范围抛出异常。切换到手动模式。 */
|
|
29
|
+
setAABB(aabb: number[] | Float64Array): void;
|
|
30
|
+
/** 恢复初始范围或最后一次适配范围;不改变自动跟随状态。 */
|
|
31
|
+
reset(): void;
|
|
32
|
+
/** 重新适配模型集合(多个模型取并集),并恢复自动跟随;无有效模型时返回 false。 */
|
|
33
|
+
fitToScene(): boolean;
|
|
34
|
+
/** 释放控制器及其拥有的六个剖切面。 */
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Plugin, Viewer } from "../../viewer";
|
|
2
2
|
import { SectionPlane } from "../../viewer/scene/sectionPlane";
|
|
3
|
-
import {
|
|
3
|
+
import { SectionBoxControl, SectionBoxConfiguration } from "./SectionBoxControl";
|
|
4
4
|
|
|
5
5
|
export declare type SectionPlanesPluginConfiguration = {
|
|
6
6
|
/** Optional ID for this plugin, so that we can find it within {@link Viewer.plugins}. */
|
|
@@ -57,7 +57,13 @@ export declare class SectionPlanesPlugin extends Plugin {
|
|
|
57
57
|
*/
|
|
58
58
|
createSectionPlane(params?: { id?: string; pos?: number[]; dir?: number[]; active?: boolean }): SectionPlane;
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
/** 创建六面独立伸缩、保留盒内模型的剖切盒。 */
|
|
61
|
+
createClippingBox(params?: SectionBoxConfiguration): SectionBoxControl;
|
|
62
|
+
|
|
63
|
+
/** 创建固定尺寸整体平移、保留盒外模型的箱框。 */
|
|
64
|
+
createBoxFrame(params?: SectionBoxConfiguration): SectionBoxControl;
|
|
65
|
+
|
|
66
|
+
readonly clippingBox: SectionBoxControl | null;
|
|
61
67
|
|
|
62
68
|
/**
|
|
63
69
|
* 设置是否是触屏模式
|
|
@@ -67,6 +73,12 @@ export declare class SectionPlanesPlugin extends Plugin {
|
|
|
67
73
|
|
|
68
74
|
/**
|
|
69
75
|
* 设置剖切方式
|
|
76
|
+
*
|
|
77
|
+
* - `"plane"`:使用带边框的单面剖切控制器。
|
|
78
|
+
* - 其它值(含 `"control"`):使用默认单面剖切控制器。
|
|
79
|
+
*
|
|
80
|
+
* 旧的剖切盒取值 `"box"` / `"singleCtrl"` 已移除,剖切盒请使用 `createClippingBox()`。
|
|
81
|
+
*
|
|
70
82
|
* @param {string} way
|
|
71
83
|
*/
|
|
72
84
|
set sectionWay(way: string);
|
|
@@ -88,18 +100,6 @@ export declare class SectionPlanesPlugin extends Plugin {
|
|
|
88
100
|
*/
|
|
89
101
|
set sectionConfigs(cfg: any);
|
|
90
102
|
|
|
91
|
-
/**
|
|
92
|
-
* 设置剖切盒平面样式
|
|
93
|
-
* @param {any} cfg
|
|
94
|
-
* @param {number} cfg.planeSize?
|
|
95
|
-
* @param {number[]} cfg.controlSize?
|
|
96
|
-
* @param {number[]} cfg.planeOpacity?
|
|
97
|
-
* @param {number} cfg.controlFillColor?
|
|
98
|
-
*/
|
|
99
|
-
set boxPlaneConfigs(cfg: any);
|
|
100
|
-
|
|
101
|
-
get controlBox(): SectionBox;
|
|
102
|
-
|
|
103
103
|
/**
|
|
104
104
|
* 设置剖切面位置
|
|
105
105
|
* @param pos
|
|
@@ -9,6 +9,12 @@ export declare type SectionPlaneConfiguration = {
|
|
|
9
9
|
pos?: number[];
|
|
10
10
|
/** Vector perpendicular to the plane surface, indicating the SectionPlane plane orientation. */
|
|
11
11
|
dir?: number[];
|
|
12
|
+
/**
|
|
13
|
+
* 内部盒体分组标记。同一个分组对象下的六个平面按整体盒体规则裁剪:
|
|
14
|
+
* `mode` 为 `"inside"` 时只保留盒内片元,为 `"outside"` 时只保留盒外片元。
|
|
15
|
+
* 普通单面剖切不设置该字段。
|
|
16
|
+
*/
|
|
17
|
+
clipGroup?: { mode: "inside" | "outside" } | null;
|
|
12
18
|
};
|
|
13
19
|
|
|
14
20
|
/**
|
|
@@ -22,6 +28,14 @@ export declare class SectionPlane extends Component {
|
|
|
22
28
|
*/
|
|
23
29
|
constructor(owner?: Component, cfg?: SectionPlaneConfiguration);
|
|
24
30
|
|
|
31
|
+
/**
|
|
32
|
+
* 内部盒体分组标记,普通单面剖切为 `null`。
|
|
33
|
+
*
|
|
34
|
+
* 由 {@link SectionPlanesPlugin#createClippingBox} / {@link SectionPlanesPlugin#createBoxFrame}
|
|
35
|
+
* 创建的六个平面共享同一个分组对象。
|
|
36
|
+
*/
|
|
37
|
+
readonly clipGroup: { mode: "inside" | "outside" } | null;
|
|
38
|
+
|
|
25
39
|
/**
|
|
26
40
|
* Sets if this SectionPlane is active or not.
|
|
27
41
|
*
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Component } from "../Component";
|
|
2
|
-
|
|
3
|
-
export declare class SectionBox extends Component {
|
|
4
|
-
/**
|
|
5
|
-
* @constructor
|
|
6
|
-
* @param {Component} [owner] Owner component. When destroyed, the owner will destroy this SectionBox as well.
|
|
7
|
-
* @param {SectionPlaneConfiguration} [cfg] SectionBox configuration
|
|
8
|
-
*/
|
|
9
|
-
constructor(owner?: Component, cfg?: any);
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Sets if this SectionBox is active or not.
|
|
13
|
-
*
|
|
14
|
-
* Default value is ````true````.
|
|
15
|
-
*
|
|
16
|
-
* @param {Boolean} value Set ````true```` to activate else ````false```` to deactivate.
|
|
17
|
-
*/
|
|
18
|
-
set active(arg: boolean);
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Gets if this SectionBox is active or not.
|
|
22
|
-
*
|
|
23
|
-
* Default value is ````true````.
|
|
24
|
-
*
|
|
25
|
-
* @returns {Boolean} Returns ````true```` if active.
|
|
26
|
-
*/
|
|
27
|
-
get active(): boolean;
|
|
28
|
-
|
|
29
|
-
set visible(visible: boolean);
|
|
30
|
-
get visible(): boolean;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Gets this SectionPlane's distance to the origin of the World-space coordinate system.
|
|
34
|
-
*
|
|
35
|
-
* This is the dot product of {@link SectionPlane.pos} and {@link SectionPlane.dir} and is automatically re-calculated
|
|
36
|
-
* each time either of two properties are updated.
|
|
37
|
-
*
|
|
38
|
-
* @returns {Number}
|
|
39
|
-
*/
|
|
40
|
-
get dist(): number;
|
|
41
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./SectionBox";
|