zyf-model-engine 0.0.2 → 0.2.0
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/index.cjs +293 -0
- package/index.d.mts +1 -0
- package/index.d.ts +1 -0
- package/index.mjs +21653 -0
- package/package.json +33 -12
- package/style.css +1 -1
- package/types/components/CSvgIcon/components/SvgPathIcon.vue.d.ts +9 -0
- package/types/components/CSvgIcon/defaultIcons.d.ts +23 -0
- package/types/components/CSvgIcon/index.vue.d.ts +30 -0
- package/types/components/Empty/index.vue.d.ts +16 -0
- package/types/components/Overflow/index.vue.d.ts +11 -0
- package/types/components/UtilsMenu/components/BaseInfo/index.vue.d.ts +122 -0
- package/types/components/UtilsMenu/components/Card/index.vue.d.ts +42 -0
- package/types/components/UtilsMenu/components/ComInfo/index.vue.d.ts +128 -0
- package/types/components/UtilsMenu/components/Config/index.vue.d.ts +8 -0
- package/types/components/UtilsMenu/components/Cutting/clipping.d.ts +56 -0
- package/types/components/UtilsMenu/components/Cutting/index.vue.d.ts +128 -0
- package/types/components/UtilsMenu/components/Measure/index.vue.d.ts +122 -0
- package/types/components/UtilsMenu/components/Measure/interface/index.d.ts +5 -0
- package/types/components/UtilsMenu/components/Measure/measure.d.ts +106 -0
- package/types/components/UtilsMenu/components/ModelTree/index.vue.d.ts +875 -0
- package/types/components/UtilsMenu/components/ModelTree/interface/index.d.ts +19 -0
- package/types/components/UtilsMenu/components/ModelTree/utils/index.d.ts +13 -0
- package/types/components/UtilsMenu/components/Roam/index.vue.d.ts +125 -0
- package/types/components/UtilsMenu/components/SubMenu/index.vue.d.ts +18 -0
- package/types/components/UtilsMenu/index.vue.d.ts +15 -0
- package/types/components/UtilsMenu/interface/index.d.ts +129 -0
- package/types/index-dxf.vue.d.ts +15 -0
- package/types/index.d.ts +209 -0
- package/types/index.vue.d.ts +18 -0
- package/types/libs/CFace.d.ts +16 -0
- package/types/libs/CLabel.d.ts +13 -0
- package/types/libs/CLine.d.ts +49 -0
- package/types/libs/CText.d.ts +17 -0
- package/types/libs/MathUtils.d.ts +26 -0
- package/types/libs/ViewCube.d.ts +21 -0
- package/types/libs/materials.d.ts +4 -0
- package/types/libs/svg.d.ts +26 -0
- package/types/libs/types.d.ts +177 -0
- package/types/main.d.ts +22 -0
- package/types/manager/highLightMeshManager.d.ts +31 -0
- package/types/manager/lightManager.d.ts +35 -0
- package/types/manager/rayCasterManager.d.ts +18 -0
- package/types/tools/Events.d.ts +15 -0
- package/types/tools/math.d.ts +13 -0
- package/types/vendor/DXFPaser/BatchingKey.d.ts +25 -0
- package/types/vendor/DXFPaser/DxfFetcher.d.ts +6 -0
- package/types/vendor/DXFPaser/DxfScene.d.ts +95 -0
- package/types/vendor/DXFPaser/DxfWorker.d.ts +44 -0
- package/types/vendor/DXFPaser/DynamicBuffer.d.ts +30 -0
- package/types/vendor/DXFPaser/Entity.d.ts +18 -0
- package/types/vendor/DXFPaser/MTextFormatParser.d.ts +15 -0
- package/types/vendor/DXFPaser/MaterialKey.d.ts +8 -0
- package/types/vendor/DXFPaser/RBTree.d.ts +5 -0
- package/types/vendor/DXFPaser/TextRenderer.d.ts +43 -0
- package/types/vendor/DXFPaser/index.d.ts +26 -0
- package/types/vendor/controls/BaseArrow.d.ts +20 -0
- package/types/vendor/controls/FirstPersonControls.d.ts +32 -0
- package/types/vendor/controls/FlyControls.d.ts +18 -0
- package/types/vendor/controls/OrbitControls.d.ts +75 -0
- package/types/vendor/controls/TransformControls.d.ts +41 -0
- package/types/vendor/controls/directionControls.d.ts +26 -0
- package/types/vendor/loaders/GLTFLoader.d.ts +71 -0
- package/types/workbench/DxfViewer.d.ts +16 -0
- package/types/workbench/clickInfo.d.ts +24 -0
- package/types/workbench/clipping.d.ts +62 -0
- package/types/workbench/dxfMeasure.d.ts +92 -0
- package/types/workbench/dxfTools.d.ts +88 -0
- package/types/workbench/functionalComponent.d.ts +127 -0
- package/types/workbench/modelTree.d.ts +89 -0
- package/build/getEnv.d.ts +0 -13
- package/build/plugins.d.ts +0 -7
- package/build/proxy.d.ts +0 -11
- package/index.html +0 -7
- package/logo.png +0 -0
- package/manifest.webmanifest +0 -1
- package/registerSW.js +0 -1
- package/src/api/config/servicePort.d.ts +0 -2
- package/src/api/enums/httpEnum.d.ts +0 -29
- package/src/api/helper/axiosCancel.d.ts +0 -21
- package/src/api/helper/axiosFileCancel.d.ts +0 -27
- package/src/api/helper/checkStatus.d.ts +0 -6
- package/src/api/index.d.ts +0 -26
- package/src/api/interface/index.d.ts +0 -18
- package/src/components/CTree/interface/index.d.ts +0 -6
- package/src/components/Grid/interface/index.d.ts +0 -5
- package/src/components/ProTable/interface/index.d.ts +0 -66
- package/src/config/index.d.ts +0 -5
- package/src/config/nprogress.d.ts +0 -3
- package/src/config/piniaPersist.d.ts +0 -10
- package/src/config/serviceLoading.d.ts +0 -5
- package/src/enums/httpEnum.d.ts +0 -19
- package/src/hooks/interface/index.d.ts +0 -30
- package/src/hooks/useOnline.d.ts +0 -6
- package/src/hooks/useTable.d.ts +0 -47
- package/src/main.d.ts +0 -1
- package/src/stores/commonStore.d.ts +0 -2
- package/src/stores/index.d.ts +0 -2
- package/src/stores/interface/index.d.ts +0 -1
- package/src/utils/color.d.ts +0 -28
- package/src/utils/commonUtils.d.ts +0 -63
- package/src/utils/errorHandler.d.ts +0 -5
- package/src/utils/is.d.ts +0 -82
- package/src/utils/layoutUtils.d.ts +0 -44
- package/src/utils/localUtils.d.ts +0 -24
- package/src/utils/serviceDict.d.ts +0 -7
- package/sw.js +0 -1
- package/vite.config.d.ts +0 -2
- package/workbox-3e911b1d.js +0 -1
- package/zyf-model-engine.mjs +0 -45118
- package/zyf-model-engine.umd.js +0 -81
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Entity } from './Entity';
|
|
2
|
+
export class TextRenderer {
|
|
3
|
+
fontFetchers: Function[];
|
|
4
|
+
fonts: any[];
|
|
5
|
+
font: any;
|
|
6
|
+
options: any;
|
|
7
|
+
shapes: Map;
|
|
8
|
+
stubShapeLoaded: boolean;
|
|
9
|
+
stubShape: any;
|
|
10
|
+
constructor(fontFetchers: Function[], options: any);
|
|
11
|
+
async FetchFonts(text: string): boolean;
|
|
12
|
+
get canRender(): boolean;
|
|
13
|
+
|
|
14
|
+
*Render(obj: {
|
|
15
|
+
text: string;
|
|
16
|
+
startPos: { x: number; y: number };
|
|
17
|
+
endPos: { x: number; y: number };
|
|
18
|
+
rotation?: number;
|
|
19
|
+
widthFactor?: number;
|
|
20
|
+
hAlign?: number;
|
|
21
|
+
vAlign?: number;
|
|
22
|
+
color: any;
|
|
23
|
+
layer?: string;
|
|
24
|
+
fontSize: number;
|
|
25
|
+
}): void;
|
|
26
|
+
|
|
27
|
+
*RenderMText(obj: {
|
|
28
|
+
formattedText: MTextFormatEntity[];
|
|
29
|
+
position: { x: number; y: number };
|
|
30
|
+
fontSize: number;
|
|
31
|
+
width?: number;
|
|
32
|
+
rotation?: number;
|
|
33
|
+
direction?: { x: number; y: number };
|
|
34
|
+
attachment: number;
|
|
35
|
+
lineSpacing?: number;
|
|
36
|
+
color: number;
|
|
37
|
+
layer?: string;
|
|
38
|
+
}): Generator<Entity>;
|
|
39
|
+
|
|
40
|
+
_GetCharShape(char: any): any
|
|
41
|
+
_CreateCharShape(char: any): any
|
|
42
|
+
async _FetchFont(fontFetcher: any): Promise<any>
|
|
43
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Group, Material, PointsMaterial } from 'three';
|
|
2
|
+
import { RBTree } from './RBTree';
|
|
3
|
+
import { DxfWorker } from './DxfWorker';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export class DXFGroup extends Group {
|
|
7
|
+
dxfLayers: Map
|
|
8
|
+
constructor(): void;
|
|
9
|
+
GetLayers(): { name: string; color: number; state: boolean }[];
|
|
10
|
+
ShowLayer(name: string, show: boolean): void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class DxfParser {
|
|
14
|
+
constructor(): void;
|
|
15
|
+
clearColor: number;
|
|
16
|
+
scene: DXFGroup;
|
|
17
|
+
simpleColorMaterial: Material[];
|
|
18
|
+
simplePointMaterial: PointsMaterial[];
|
|
19
|
+
materials: RBTree;
|
|
20
|
+
layers: Map;
|
|
21
|
+
blocks: Map;
|
|
22
|
+
worker: DxfWorker | null;
|
|
23
|
+
|
|
24
|
+
async Load(object: { url: string; fonts?: string[]; progressCbk?: (phase: any, processedSize: number, totalSize: number) => void; workerFactory?: any }): Promise<DXFGroup>;
|
|
25
|
+
SetupWorker(): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ArrowHelper, Camera, Color, Object3D, Vector3 } from 'three';
|
|
2
|
+
import { ArrowControls } from './ArrowControls';
|
|
3
|
+
declare class BaseArrow {
|
|
4
|
+
direction: Vector3;
|
|
5
|
+
origin: Vector3;
|
|
6
|
+
color: Color | number | string;
|
|
7
|
+
group: Object3D;
|
|
8
|
+
arrowHelper: ArrowHelper;
|
|
9
|
+
controls: ArrowControls;
|
|
10
|
+
camera: Camera | undefined;
|
|
11
|
+
constructor(origin: Vector3, direction: Vector3, group: Object3D, camera?: Camera, color?: Color | number | string, length?: number);
|
|
12
|
+
init(length?: number): void;
|
|
13
|
+
bindControls(dom: any, initialPoint: Vector3, drag?: (data: any) => void, end?: (data: any) => void): void;
|
|
14
|
+
setDirection(direction: Vector3): void;
|
|
15
|
+
setPosition(length: number): void;
|
|
16
|
+
setOrigin(origin: Vector3): void;
|
|
17
|
+
dispose(): void;
|
|
18
|
+
visible(flag: boolean): void;
|
|
19
|
+
}
|
|
20
|
+
export { BaseArrow };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Camera, Mesh, Object3D, Vector3, EventDispatcher } from 'three';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export class FirstPersonControls extends EventDispatcher {
|
|
5
|
+
constructor(object: Object3D, camera: Camera, domElement?: HTMLElement);
|
|
6
|
+
|
|
7
|
+
object: Object3D;
|
|
8
|
+
camera: Camera;
|
|
9
|
+
domElement: HTMLElement | HTMLDocument;
|
|
10
|
+
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
movementSpeed: number;
|
|
13
|
+
lookSpeed: number;
|
|
14
|
+
lookVertical: boolean;
|
|
15
|
+
autoForward: boolean;
|
|
16
|
+
activeLook: boolean;
|
|
17
|
+
heightSpeed: boolean;
|
|
18
|
+
heightCoef: number;
|
|
19
|
+
heightMin: number;
|
|
20
|
+
heightMax: number;
|
|
21
|
+
constrainVertical: boolean;
|
|
22
|
+
verticalMin: number;
|
|
23
|
+
verticalMax: number;
|
|
24
|
+
mouseDragOn: boolean;
|
|
25
|
+
meshs: Array<Mesh>;
|
|
26
|
+
target: Vector3;
|
|
27
|
+
|
|
28
|
+
handleResize(): void;
|
|
29
|
+
lookAt(x: number | Vector3, y: number, z: number): this;
|
|
30
|
+
update(delta: number): this;
|
|
31
|
+
dispose(): void;
|
|
32
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Camera, EventDispatcher } from 'three';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export class FlyControls extends EventDispatcher {
|
|
5
|
+
constructor(object: Camera, domElement?: HTMLElement);
|
|
6
|
+
|
|
7
|
+
object: Camera;
|
|
8
|
+
domElement: HTMLElement | HTMLDocument;
|
|
9
|
+
|
|
10
|
+
movementSpeed: number;
|
|
11
|
+
rollSpeed: number;
|
|
12
|
+
dragToLook: boolean;
|
|
13
|
+
autoForward: boolean;
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
|
|
16
|
+
update(delta: number): void;
|
|
17
|
+
dispose(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Camera, MOUSE, TOUCH, Vector3 } from 'three';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export class OrbitControls {
|
|
5
|
+
constructor(object: Camera, domElement?: HTMLElement);
|
|
6
|
+
|
|
7
|
+
object: Camera;
|
|
8
|
+
domElement: HTMLElement | HTMLDocument;
|
|
9
|
+
|
|
10
|
+
// API
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
target: Vector3;
|
|
13
|
+
|
|
14
|
+
// deprecated
|
|
15
|
+
center: Vector3;
|
|
16
|
+
|
|
17
|
+
minDistance: number;
|
|
18
|
+
maxDistance: number;
|
|
19
|
+
|
|
20
|
+
minZoom: number;
|
|
21
|
+
maxZoom: number;
|
|
22
|
+
|
|
23
|
+
minPolarAngle: number;
|
|
24
|
+
maxPolarAngle: number;
|
|
25
|
+
|
|
26
|
+
minAzimuthAngle: number;
|
|
27
|
+
maxAzimuthAngle: number;
|
|
28
|
+
|
|
29
|
+
enableDamping: boolean;
|
|
30
|
+
dampingFactor: number;
|
|
31
|
+
|
|
32
|
+
enableZoom: boolean;
|
|
33
|
+
zoomSpeed: number;
|
|
34
|
+
|
|
35
|
+
enableRotate: boolean;
|
|
36
|
+
rotateSpeed: number;
|
|
37
|
+
|
|
38
|
+
enablePan: boolean;
|
|
39
|
+
panSpeed: number;
|
|
40
|
+
screenSpacePanning: boolean;
|
|
41
|
+
keyPanSpeed: number;
|
|
42
|
+
|
|
43
|
+
autoRotate: boolean;
|
|
44
|
+
autoRotateSpeed: number;
|
|
45
|
+
|
|
46
|
+
enableKeys: boolean;
|
|
47
|
+
keys: { LEFT: number; UP: number; RIGHT: number; BOTTOM: number };
|
|
48
|
+
mouseButtons: { LEFT?: MOUSE; MIDDLE?: MOUSE; RIGHT?: MOUSE };
|
|
49
|
+
touches: { ONE: TOUCH; TWO: TOUCH };
|
|
50
|
+
|
|
51
|
+
update(): boolean;
|
|
52
|
+
|
|
53
|
+
saveState(): void;
|
|
54
|
+
|
|
55
|
+
reset(): void;
|
|
56
|
+
|
|
57
|
+
dispose(): void;
|
|
58
|
+
|
|
59
|
+
getPolarAngle(): number;
|
|
60
|
+
|
|
61
|
+
getAzimuthalAngle(): number;
|
|
62
|
+
|
|
63
|
+
// EventDispatcher mixins
|
|
64
|
+
addEventListener(type: string, listener: (event: any) => void): void;
|
|
65
|
+
|
|
66
|
+
hasEventListener(type: string, listener: (event: any) => void): boolean;
|
|
67
|
+
|
|
68
|
+
removeEventListener(type: string, listener: (event: any) => void): void;
|
|
69
|
+
|
|
70
|
+
dispatchEvent(event: { type: string; target: any }): void;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export class MapControls extends OrbitControls {
|
|
74
|
+
constructor(object: Camera, domElement?: HTMLElement);
|
|
75
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Object3D, Camera, MOUSE } from 'three';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export class TransformControls extends Object3D {
|
|
5
|
+
constructor(object: Camera, domElement?: HTMLElement);
|
|
6
|
+
|
|
7
|
+
domElement: HTMLElement;
|
|
8
|
+
|
|
9
|
+
// API
|
|
10
|
+
|
|
11
|
+
camera: Camera;
|
|
12
|
+
object: Object3D | undefined;
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
axis: string | null;
|
|
15
|
+
mode: string;
|
|
16
|
+
translationSnap: number | null;
|
|
17
|
+
rotationSnap: number | null;
|
|
18
|
+
space: string;
|
|
19
|
+
size: number;
|
|
20
|
+
dragging: boolean;
|
|
21
|
+
showX: boolean;
|
|
22
|
+
showY: boolean;
|
|
23
|
+
showZ: boolean;
|
|
24
|
+
readonly isTransformControls: true;
|
|
25
|
+
mouseButtons: {
|
|
26
|
+
LEFT: MOUSE;
|
|
27
|
+
MIDDLE: MOUSE;
|
|
28
|
+
RIGHT: MOUSE;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
attach(object: Object3D): this;
|
|
32
|
+
detach(): this;
|
|
33
|
+
getMode(): string;
|
|
34
|
+
setMode(mode: string): void;
|
|
35
|
+
setTranslationSnap(translationSnap: number | null): void;
|
|
36
|
+
setRotationSnap(rotationSnap: number | null): void;
|
|
37
|
+
setScaleSnap(scaleSnap: number | null): void;
|
|
38
|
+
setSize(size: number): void;
|
|
39
|
+
setSpace(space: string): void;
|
|
40
|
+
dispose(): void;
|
|
41
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Camera, EventDispatcher, Mesh } from 'three';
|
|
2
|
+
declare class DirectionControls extends EventDispatcher {
|
|
3
|
+
private _plane;
|
|
4
|
+
private _raycaster;
|
|
5
|
+
private _mouse;
|
|
6
|
+
private _offset;
|
|
7
|
+
private _intersection;
|
|
8
|
+
private _worldPosition;
|
|
9
|
+
private _inverseMatrix;
|
|
10
|
+
private origin;
|
|
11
|
+
private direction;
|
|
12
|
+
private _selected;
|
|
13
|
+
private _hovered;
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
private events;
|
|
16
|
+
private element;
|
|
17
|
+
private camera;
|
|
18
|
+
private objects;
|
|
19
|
+
constructor(objects: Mesh[], camera: Camera, domElement: HTMLElement);
|
|
20
|
+
private activate;
|
|
21
|
+
dispose(): void;
|
|
22
|
+
private onDocumentMouseMove;
|
|
23
|
+
private onDocumentMouseDown;
|
|
24
|
+
private onDocumentMouseCancel;
|
|
25
|
+
}
|
|
26
|
+
export { DirectionControls };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { AnimationClip, Camera, Group, Loader, LoadingManager, Mesh, Object3D, Material, SkinnedMesh, Texture } from 'three';
|
|
2
|
+
import { DRACOLoader } from './DRACOLoader';
|
|
3
|
+
import { DDSLoader } from './DDSLoader';
|
|
4
|
+
import { KTX2Loader } from './KTX2Loader';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export interface GLTF {
|
|
8
|
+
animations: AnimationClip[];
|
|
9
|
+
scene: Group;
|
|
10
|
+
scenes: Group[];
|
|
11
|
+
cameras: Camera[];
|
|
12
|
+
asset: {
|
|
13
|
+
copyright?: string;
|
|
14
|
+
generator?: string;
|
|
15
|
+
version?: string;
|
|
16
|
+
minVersion?: string;
|
|
17
|
+
extensions?: any;
|
|
18
|
+
extras?: any;
|
|
19
|
+
};
|
|
20
|
+
parser: GLTFParser;
|
|
21
|
+
userData: any;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export class GLTFLoader extends Loader {
|
|
25
|
+
constructor(manager?: LoadingManager);
|
|
26
|
+
dracoLoader: DRACOLoader | null;
|
|
27
|
+
ddsLoader: DDSLoader | null;
|
|
28
|
+
imageJson: { [k: string]: string } | null;
|
|
29
|
+
|
|
30
|
+
load(
|
|
31
|
+
url: string,
|
|
32
|
+
onLoad: (gltf: GLTF) => void,
|
|
33
|
+
onProgress?: (event: ProgressEvent) => void,
|
|
34
|
+
onError?: (event: ErrorEvent) => void
|
|
35
|
+
): void;
|
|
36
|
+
setDRACOLoader(dracoLoader: DRACOLoader): GLTFLoader;
|
|
37
|
+
setDDSLoader(ddsLoader: DDSLoader): GLTFLoader;
|
|
38
|
+
|
|
39
|
+
register(callback: (parser: GLTFParser) => GLTFLoaderPlugin): GLTFLoader;
|
|
40
|
+
unregister(callback: (parser: GLTFParser) => GLTFLoaderPlugin): GLTFLoader;
|
|
41
|
+
|
|
42
|
+
setKTX2Loader(ktx2Loader: KTX2Loader): GLTFLoader;
|
|
43
|
+
setMeshoptDecoder(meshoptDecoder: /* MeshoptDecoder */ any): GLTFLoader;
|
|
44
|
+
setImageJson(json: { [k: string]: string } | null): GLTFLoader;
|
|
45
|
+
|
|
46
|
+
parse(data: ArrayBuffer | string, path: string, onLoad: (gltf: GLTF) => void, onError?: (event: ErrorEvent) => void): void;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface GLTFReference {
|
|
50
|
+
type: "materials" | "nodes" | "textures";
|
|
51
|
+
index: number;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export class GLTFParser {
|
|
55
|
+
json: any;
|
|
56
|
+
|
|
57
|
+
associations: Map<Object3D | Material | Texture, GLTFReference>;
|
|
58
|
+
|
|
59
|
+
getDependency: (type: string, index: number) => Promise<any>;
|
|
60
|
+
getDependencies: (type: string) => Promise<any[]>;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface GLTFLoaderPlugin {
|
|
64
|
+
loadMesh?: (meshIndex: number) => Promise<Group | Mesh | SkinnedMesh> | null;
|
|
65
|
+
loadBufferView?: (bufferViewIndex: number) => Promise<ArrayBuffer> | null;
|
|
66
|
+
loadMaterial?: (materialIndex: number) => Promise<Material> | null;
|
|
67
|
+
loadTexture?: (textureIndex: number) => Promise<Texture> | null;
|
|
68
|
+
getMaterialType?: (materialIndex: number) => typeof Material | null;
|
|
69
|
+
extendMaterialParams?: (materialIndex: number, materialParams: { [key: string]: any }) => Promise<any> | null;
|
|
70
|
+
createNodeAttachment?: (nodeIndex: number) => Promise<Object3D> | null;
|
|
71
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as Viewer } from '..';
|
|
2
|
+
/**
|
|
3
|
+
* @description DXF 专用 Viewer 子类,基于 Viewer 基类自动进入 2D 正交模式
|
|
4
|
+
* —— 禁用轨道旋转、切换为正交相机、相机位于 Y 轴正方向俯视,
|
|
5
|
+
* 适合 CAD/DXF 这类平面图形的浏览场景
|
|
6
|
+
*/
|
|
7
|
+
export declare class DxfViewer extends Viewer {
|
|
8
|
+
/**
|
|
9
|
+
* @param dom 承载渲染的 HTMLCanvasElement
|
|
10
|
+
* @param background 背景色(默认 0x000000 黑色)
|
|
11
|
+
*/
|
|
12
|
+
constructor(dom: HTMLCanvasElement, background?: number);
|
|
13
|
+
private _Toggle2DMode;
|
|
14
|
+
centerView(padding?: number): void;
|
|
15
|
+
private fitView;
|
|
16
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as Viewer } from '..';
|
|
2
|
+
import { blankMethod } from '../libs/types';
|
|
3
|
+
/**
|
|
4
|
+
* @description 点击构件信息拾取:在 viewer 上注册 pointerdown 射线,
|
|
5
|
+
* 命中 mesh 后高亮并把 mesh 的自定义属性通过 callback 回调出去
|
|
6
|
+
*/
|
|
7
|
+
export declare class information {
|
|
8
|
+
private cameraInfo;
|
|
9
|
+
private raysInfo;
|
|
10
|
+
private elementInfo;
|
|
11
|
+
private raycaster;
|
|
12
|
+
private funDes;
|
|
13
|
+
private objectMesh;
|
|
14
|
+
private newMesh;
|
|
15
|
+
private resultBack;
|
|
16
|
+
constructor(viewer: Viewer, params: {
|
|
17
|
+
color?: number;
|
|
18
|
+
opacity?: number;
|
|
19
|
+
callback: blankMethod;
|
|
20
|
+
});
|
|
21
|
+
private mouseClick;
|
|
22
|
+
private initEvents;
|
|
23
|
+
destory(): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Group } from 'three';
|
|
2
|
+
import { DirectionControls } from '../vendor/controls/directionControls';
|
|
3
|
+
import { blankMethod } from '../libs/types';
|
|
4
|
+
import { TransformControls } from '../vendor/controls/TransformControls';
|
|
5
|
+
import { default as Viewer } from '..';
|
|
6
|
+
/**
|
|
7
|
+
* @description 剖切管理器,支持两种模式:
|
|
8
|
+
* - global 全局剖切:用 Box 包围盒的 6 个平面裁切 scene;
|
|
9
|
+
* - local 局部剖切:用 XY / XZ / YZ 轴平面裁切指定 group。
|
|
10
|
+
* 配合 DirectionControls / TransformControls 让用户拖动交互剖切平面
|
|
11
|
+
*/
|
|
12
|
+
export declare class Clipping {
|
|
13
|
+
private renderer;
|
|
14
|
+
private element;
|
|
15
|
+
private camera;
|
|
16
|
+
private globalPlanes;
|
|
17
|
+
private localPlanes;
|
|
18
|
+
private boxVertices;
|
|
19
|
+
private planes;
|
|
20
|
+
private boxMeshs;
|
|
21
|
+
private localMesh;
|
|
22
|
+
private meshs;
|
|
23
|
+
private objects;
|
|
24
|
+
control: any;
|
|
25
|
+
group: Group;
|
|
26
|
+
dragControl: DirectionControls;
|
|
27
|
+
transControl: TransformControls;
|
|
28
|
+
clippingType: "global" | "local" | "";
|
|
29
|
+
callBack?: blankMethod;
|
|
30
|
+
setParam?: blankMethod;
|
|
31
|
+
constructor(base: Viewer, params: {
|
|
32
|
+
callBackFun?: blankMethod;
|
|
33
|
+
set?: blankMethod;
|
|
34
|
+
});
|
|
35
|
+
setClippingType(type: "global" | "local" | ""): void;
|
|
36
|
+
private setLocalClipping;
|
|
37
|
+
/**
|
|
38
|
+
* 盒剖切
|
|
39
|
+
*/
|
|
40
|
+
private computedClippingPlane;
|
|
41
|
+
private setGlobalMesh;
|
|
42
|
+
private createMesh;
|
|
43
|
+
private createLine;
|
|
44
|
+
private injectMeshsAndLine;
|
|
45
|
+
private updateMeshsAndLine;
|
|
46
|
+
changeBoxCutting(param: {
|
|
47
|
+
x: number[];
|
|
48
|
+
y: number[];
|
|
49
|
+
z: number[];
|
|
50
|
+
}, type: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* 初始化controls控件 并且注册好事件 dragstart 开始拖拽 dragend 拖拽结束 drag 拖拽过程中
|
|
53
|
+
* 初始化 transformControl 处理事件
|
|
54
|
+
*/
|
|
55
|
+
private initEvents;
|
|
56
|
+
/**
|
|
57
|
+
* 重置所有的材质透明度
|
|
58
|
+
*/
|
|
59
|
+
private resetMaterial;
|
|
60
|
+
private updateLocalPlane;
|
|
61
|
+
detory(): void;
|
|
62
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { default as Viewer } from '..';
|
|
2
|
+
/**
|
|
3
|
+
* @description DXF 测量核心类:基于 Raycaster 的射线拾取实现距离/角度/面积三种测量模式。
|
|
4
|
+
* 距离模式在两点拾取后自动完成;角度模式三点自动完成;面积模式支持左键持续加点 + 双击闭合,
|
|
5
|
+
* 右键 / ESC 取消当前测量。测量完成后创建 Line / Polygon 实体并挂到 scene。
|
|
6
|
+
*/
|
|
7
|
+
export declare class DXFMeasure {
|
|
8
|
+
private rays;
|
|
9
|
+
private step;
|
|
10
|
+
private state;
|
|
11
|
+
private element;
|
|
12
|
+
private raycaster;
|
|
13
|
+
private camera;
|
|
14
|
+
private point;
|
|
15
|
+
private currentObj;
|
|
16
|
+
private group;
|
|
17
|
+
private points;
|
|
18
|
+
private curr_line;
|
|
19
|
+
private down;
|
|
20
|
+
private pointMesh;
|
|
21
|
+
private callback?;
|
|
22
|
+
private viewer;
|
|
23
|
+
private start;
|
|
24
|
+
private end;
|
|
25
|
+
private events;
|
|
26
|
+
private plane;
|
|
27
|
+
private lastClickPos;
|
|
28
|
+
private lastClickTime;
|
|
29
|
+
UNIT: {
|
|
30
|
+
unit: string;
|
|
31
|
+
precision: string;
|
|
32
|
+
};
|
|
33
|
+
constructor(viewer: Viewer, params: {
|
|
34
|
+
callback?: (param: any) => void;
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* 初始化所有的点击 移动事件
|
|
38
|
+
*/
|
|
39
|
+
private initEvents;
|
|
40
|
+
/**
|
|
41
|
+
* move事件
|
|
42
|
+
* @param event MouseEvent
|
|
43
|
+
* @returns Undefind
|
|
44
|
+
*/
|
|
45
|
+
private mouseMoveEvent;
|
|
46
|
+
/**
|
|
47
|
+
* 鼠标抬起事件
|
|
48
|
+
* @param event MouseEvent
|
|
49
|
+
* @returns Undefind
|
|
50
|
+
*/
|
|
51
|
+
private upEvent;
|
|
52
|
+
/**
|
|
53
|
+
* 取消当前测量,清理临时状态但保留已有测量实体
|
|
54
|
+
*/
|
|
55
|
+
private cancelMeasure;
|
|
56
|
+
/**
|
|
57
|
+
* 鼠标按下事件
|
|
58
|
+
*/
|
|
59
|
+
private downEvent;
|
|
60
|
+
/**
|
|
61
|
+
* 键盘事件:ESC 取消当前测量
|
|
62
|
+
*/
|
|
63
|
+
private handleKeyDown;
|
|
64
|
+
private computeScale;
|
|
65
|
+
/**
|
|
66
|
+
* 创建距离测量线
|
|
67
|
+
* @param points 点的数组
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
private createDistanceLine;
|
|
71
|
+
/**
|
|
72
|
+
* 创建角度测量线
|
|
73
|
+
* @param points 点的数组
|
|
74
|
+
* @returns
|
|
75
|
+
*/
|
|
76
|
+
private createAngleLine;
|
|
77
|
+
/**
|
|
78
|
+
* 创建面积测量
|
|
79
|
+
* @param points 点的数组
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
private createAreaLine;
|
|
83
|
+
adjustSetting(param: {
|
|
84
|
+
unit: string;
|
|
85
|
+
precision: string;
|
|
86
|
+
}): void;
|
|
87
|
+
judeUnit(unit: string, height: number, precision: number): string;
|
|
88
|
+
judeAreaUnit(unit: string, num: number, precision: number): string;
|
|
89
|
+
setType(type: "distance" | "angle" | "area" | ""): void;
|
|
90
|
+
destory(): void;
|
|
91
|
+
clearAll(): void;
|
|
92
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { ComponentConfig } from '../libs/types';
|
|
2
|
+
import { DxfViewer } from './DxfViewer';
|
|
3
|
+
import { DXFMeasure } from './dxfMeasure';
|
|
4
|
+
/**
|
|
5
|
+
* @description DXF 工具面板容器(命令式 DOM),根据 ComponentConfig 配置
|
|
6
|
+
* 动态挂载 FitView(缩放至适应)、HandleLayers(图层显隐)、dxfMeasure(测量)、
|
|
7
|
+
* 全屏、颜色反转等子工具栏
|
|
8
|
+
*/
|
|
9
|
+
export declare class DxfTools {
|
|
10
|
+
viewer: DxfViewer;
|
|
11
|
+
content: any;
|
|
12
|
+
classWrapper: {
|
|
13
|
+
[k: string]: any;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @param view DxfViewer 实例
|
|
17
|
+
* @param options ComponentConfig 配置对象,通过布尔开关决定挂载哪些子工具栏
|
|
18
|
+
*/
|
|
19
|
+
constructor(view: DxfViewer, options: ComponentConfig);
|
|
20
|
+
private _init;
|
|
21
|
+
}
|
|
22
|
+
/** @description 「适应视图」按钮,点击后正交相机自动缩放把 DXF 图形完整呈现在画布内 */
|
|
23
|
+
export declare class FitView {
|
|
24
|
+
dom: HTMLDivElement;
|
|
25
|
+
/**
|
|
26
|
+
* @param viewer DxfViewer 实例
|
|
27
|
+
* @param obj { img? 自定义按钮图标, text? 按钮文字, padding? 边距比例(默认 0.1) }
|
|
28
|
+
*/
|
|
29
|
+
constructor(viewer: DxfViewer, obj: {
|
|
30
|
+
img?: string;
|
|
31
|
+
text?: string;
|
|
32
|
+
padding?: number;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/** @description DXF 图层面板,解析 DXFGroup 的图层元数据生成勾选列表,控制每个图层的显隐 */
|
|
36
|
+
export declare class HandleLayers {
|
|
37
|
+
private _layerShow;
|
|
38
|
+
dom: HTMLDivElement;
|
|
39
|
+
layerElement: HTMLDivElement;
|
|
40
|
+
viewer: DxfViewer;
|
|
41
|
+
time: number;
|
|
42
|
+
constructor(viewer: DxfViewer, img?: string, text?: string);
|
|
43
|
+
private _initLayerUI;
|
|
44
|
+
appendStretch(): HTMLDivElement;
|
|
45
|
+
handleLayers(): void;
|
|
46
|
+
createCheckBox(): HTMLDivElement;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @description DXF 测量面板(命令式 DOM),内嵌一个 DXFMeasure 实例处理实际的
|
|
50
|
+
* 距离/角度/面积射线拾取与多边形绘制逻辑;自身只负责渲染 UI tab 切换、
|
|
51
|
+
* 结果展示、清空、设置等 DOM 交互
|
|
52
|
+
*/
|
|
53
|
+
export declare class dxfMeasure {
|
|
54
|
+
dom: HTMLDivElement;
|
|
55
|
+
viewer: DxfViewer;
|
|
56
|
+
measure: DXFMeasure;
|
|
57
|
+
toolsWrapper: HTMLDivElement;
|
|
58
|
+
/**
|
|
59
|
+
* @param {DxfViewer} viewer
|
|
60
|
+
* @param {?String} img
|
|
61
|
+
* @param {?String} text
|
|
62
|
+
*/
|
|
63
|
+
constructor(viewer: DxfViewer, img?: string, text?: string);
|
|
64
|
+
private _initToolsWrapper;
|
|
65
|
+
private _unitAccuracy;
|
|
66
|
+
private _meaCallBack;
|
|
67
|
+
private _distanceIcon;
|
|
68
|
+
private _angleIcon;
|
|
69
|
+
private _areaIcon;
|
|
70
|
+
private _elementEvent;
|
|
71
|
+
destory(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @description 全屏切换按钮。由 DxfTools 传入 DXF 画布容器(.viewer-box)作为全屏目标,
|
|
75
|
+
* 只让 viewer 自身撑满视口,避免整个宿主文档进入全屏引发宿主应用整体 resize。
|
|
76
|
+
* fullFlag 通过 fullscreenchange 事件同步,ESC 退出后状态不错乱
|
|
77
|
+
*/
|
|
78
|
+
export declare class fullScreen {
|
|
79
|
+
dom: any;
|
|
80
|
+
fullFlag: any;
|
|
81
|
+
private target;
|
|
82
|
+
/**
|
|
83
|
+
* @param img 自定义按钮图标
|
|
84
|
+
* @param text 按钮悬浮提示文字
|
|
85
|
+
* @param target 全屏目标元素;缺省为 document.documentElement(整页全屏,保持旧行为)
|
|
86
|
+
*/
|
|
87
|
+
constructor(img?: string, text?: string, target?: HTMLElement);
|
|
88
|
+
}
|