gl-draw 0.17.0-beta.4 → 0.17.0-beta.41
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/cartographicToCartesian.js +1 -0
- package/dist/cartographicToCartesian.module.js +49 -0
- package/dist/constants.d.ts +0 -1
- package/dist/core/BaseObject/PointerEvent.d.ts +1 -0
- package/dist/core/BaseObject/index.d.ts +16 -4
- package/dist/core/CSSRenderer/CollisionManager.d.ts +98 -0
- package/dist/core/CSSRenderer/index.d.ts +18 -6
- package/dist/core/Composer.d.ts +5 -5
- package/dist/core/Helper.d.ts +4 -4
- package/dist/core/Lead/Pick.d.ts +35 -3
- package/dist/core/Lead/index.d.ts +5 -6
- package/dist/core/Pages/Pages.d.ts +1 -0
- package/dist/core/Pencil.d.ts +19 -5
- package/dist/core/pass/OutputPass.d.ts +1 -2
- package/dist/index.js +2 -2
- package/dist/index.module.js +708 -442
- package/dist/index.module2.js +1183 -0
- package/dist/index2.js +140 -0
- package/dist/objects/conicPolygon/geometry/index.d.ts +1 -2
- package/dist/objects/ellipsoid/createGeometry.d.ts +30 -0
- package/dist/objects/ellipsoid/index.d.ts +38 -0
- package/dist/objects/extrudePolygon/createGeometry.d.ts +2 -1
- package/dist/objects/group/index.d.ts +1 -0
- package/dist/objects/index.d.ts +1 -0
- package/dist/objects/index.js +1 -1
- package/dist/objects/index.module.js +691 -688
- package/dist/objects/node/index.d.ts +6 -2
- package/dist/objects/pie/index.d.ts +2 -1
- package/dist/plugins/Worker/getAttributes/conicLine.d.ts +1 -1
- package/dist/plugins/Worker/getAttributes/conicPolygon.d.ts +2 -3
- package/dist/plugins/Worker/getAttributes/extrudePolygon.d.ts +1 -1
- package/dist/plugins/Worker/getAttributes/getCoordinatesArr.d.ts +5 -1
- package/dist/plugins/Worker/getAttributes/line.d.ts +1 -1
- package/dist/plugins/Worker/getAttributes/line2.d.ts +1 -1
- package/dist/plugins/Worker/getAttributes/splitPolygonsByLongitudeDifference.d.ts +5 -2
- package/dist/plugins/Worker/index.d.ts +2 -3
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/index.module.js +77 -70
- package/dist/utils/Sprite2Points.d.ts +1 -1
- package/dist/utils/cartographicToCartesian.d.ts +30 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.module.js +15 -13
- package/dist/utils/proposedRaycast.d.ts +1 -0
- package/package.json +1 -1
- package/dist/WebGPULineSegments2.js +0 -140
- package/dist/WebGPULineSegments2.module.js +0 -1031
- package/dist/polar2Cartesian.js +0 -1
- package/dist/polar2Cartesian.module.js +0 -18
- package/dist/utils/polar2Cartesian.d.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var U=Math.pow;const o=require("three"),R=t=>t instanceof o.Vector3?t:new o.Vector3(...t),w=t=>t instanceof o.Vector2?t:new o.Vector2(...t),e={a:6378137,b:6356752314245179e-9,f:1/298.257223563};function x(t,p,u=0,n=1/e.a,h=!1){const s=o.MathUtils.degToRad(t),r=o.MathUtils.degToRad(p),c=Math.cos(r),i=Math.sin(r),d=Math.cos(s),T=Math.sin(s);let q,M,l;if(h){const a=(e.a+u)*n;q=a*c*T,M=a*i,l=a*c*d}else{const g=e.a,a=e.b,V=g*g,S=a*a,b=(V-S)/V,f=g/Math.sqrt(1-b*i*i);q=(f+u)*c*T*n,M=(f*(1-b)+u)*i*n,l=(f+u)*c*d*n}return new o.Vector3(q,M,l)}function y(t,p=1/e.a,u=!1){const n=t.x/p,h=t.y/p,s=t.z/p;if(u){const f=Math.sqrt(n*n+h*h+s*s),L=Math.atan2(n,s),C=Math.asin(h/f),D=f-e.a;return{longitude:o.MathUtils.radToDeg(L),latitude:o.MathUtils.radToDeg(C),height:D}}const r=e.a,c=e.b,i=r*r,d=c*c,T=(i-d)/i,q=(i-d)/d,M=Math.sqrt(n*n+s*s),l=Math.atan2(h*r,M*c),g=Math.atan2(n,s),a=Math.atan2(h+q*c*U(Math.sin(l),3),M-T*r*U(Math.cos(l),3)),V=Math.sin(a),S=r/Math.sqrt(1-T*V*V),b=M/Math.cos(a)-S;return{longitude:o.MathUtils.radToDeg(g),latitude:o.MathUtils.radToDeg(a),height:b}}exports.WGS84=e;exports.cartesianToCartographic=y;exports.cartographicToCartesian=x;exports.parseVector2=w;exports.parseVector3=R;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var x = Math.pow;
|
|
2
|
+
import { Vector3 as D, Vector2 as R, MathUtils as l } from "three";
|
|
3
|
+
const C = (t) => t instanceof D ? t : new D(...t), N = (t) => t instanceof R ? t : new R(...t), r = {
|
|
4
|
+
a: 6378137,
|
|
5
|
+
// 赤道半径
|
|
6
|
+
b: 6356752314245179e-9,
|
|
7
|
+
// 极半径
|
|
8
|
+
f: 1 / 298.257223563
|
|
9
|
+
// 扁率
|
|
10
|
+
};
|
|
11
|
+
function W(t, p, d = 0, n = 1 / r.a, i = !1) {
|
|
12
|
+
const a = l.degToRad(t), c = l.degToRad(p), s = Math.cos(c), e = Math.sin(c), M = Math.cos(a), b = Math.sin(a);
|
|
13
|
+
let q, h, u;
|
|
14
|
+
if (i) {
|
|
15
|
+
const o = (r.a + d) * n;
|
|
16
|
+
q = o * s * b, h = o * e, u = o * s * M;
|
|
17
|
+
} else {
|
|
18
|
+
const f = r.a, o = r.b, T = f * f, S = o * o, L = (T - S) / T, g = f / Math.sqrt(1 - L * e * e);
|
|
19
|
+
q = (g + d) * s * b * n, h = (g * (1 - L) + d) * e * n, u = (g + d) * s * M * n;
|
|
20
|
+
}
|
|
21
|
+
return new D(q, h, u);
|
|
22
|
+
}
|
|
23
|
+
function G(t, p = 1 / r.a, d = !1) {
|
|
24
|
+
const n = t.x / p, i = t.y / p, a = t.z / p;
|
|
25
|
+
if (d) {
|
|
26
|
+
const g = Math.sqrt(n * n + i * i + a * a), V = Math.atan2(n, a), w = Math.asin(i / g), y = g - r.a;
|
|
27
|
+
return {
|
|
28
|
+
longitude: l.radToDeg(V),
|
|
29
|
+
latitude: l.radToDeg(w),
|
|
30
|
+
height: y
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const c = r.a, s = r.b, e = c * c, M = s * s, b = (e - M) / e, q = (e - M) / M, h = Math.sqrt(n * n + a * a), u = Math.atan2(i * c, h * s), f = Math.atan2(n, a), o = Math.atan2(
|
|
34
|
+
i + q * s * x(Math.sin(u), 3),
|
|
35
|
+
h - b * c * x(Math.cos(u), 3)
|
|
36
|
+
), T = Math.sin(o), S = c / Math.sqrt(1 - b * T * T), L = h / Math.cos(o) - S;
|
|
37
|
+
return {
|
|
38
|
+
longitude: l.radToDeg(f),
|
|
39
|
+
latitude: l.radToDeg(o),
|
|
40
|
+
height: L
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
r as W,
|
|
45
|
+
N as a,
|
|
46
|
+
G as b,
|
|
47
|
+
W as c,
|
|
48
|
+
C as p
|
|
49
|
+
};
|
package/dist/constants.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export default class PointerEvent {
|
|
|
6
6
|
onPointerEvent(type: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): void;
|
|
7
7
|
onClick(cb: PickFunctionsItem['cb']): void;
|
|
8
8
|
onPointerEnter(cb: PickFunctionsItem['cb']): void;
|
|
9
|
+
onPointerEnterOnStop(cb: PickFunctionsItem['cb']): void;
|
|
9
10
|
onPointerLeave(cb: PickFunctionsItem['cb']): void;
|
|
10
11
|
onPointerMove(cb: PickFunctionsItem['cb']): void;
|
|
11
12
|
onPointerDown(cb: PickFunctionsItem['cb']): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Material, Mesh, type Object3D, Points, type SpriteMaterial, Vector3 } from 'three';
|
|
1
|
+
import { type Material, Mesh, type Object3D, Points, type SpriteMaterial, Vector3 } from 'three';
|
|
2
2
|
import type Lead from "../Lead/Lead";
|
|
3
3
|
import type MList from "../MList/MList";
|
|
4
4
|
import type Pencil from "../Pencil";
|
|
@@ -30,13 +30,24 @@ export default class BaseObject extends UseMaterial {
|
|
|
30
30
|
add(...object: Object3D[]): void;
|
|
31
31
|
remove(...object: Object3D[]): void;
|
|
32
32
|
get visible(): boolean;
|
|
33
|
-
|
|
33
|
+
/**
|
|
34
|
+
* 检查是否实际可见(自己和所有祖先都 visible)
|
|
35
|
+
*/
|
|
36
|
+
isActuallyVisible(): boolean;
|
|
34
37
|
create(): void;
|
|
35
38
|
render(): void;
|
|
36
39
|
update(_delta: number, _elapsed: number): void;
|
|
37
40
|
resize(_width: number, _height: number): void;
|
|
38
41
|
show(): this;
|
|
39
42
|
hide(): this;
|
|
43
|
+
/**
|
|
44
|
+
* 递归禁用 layers(不管子级自己的 visible 状态,全部 disable)
|
|
45
|
+
*/
|
|
46
|
+
protected _disableLayersRecursive(): void;
|
|
47
|
+
/**
|
|
48
|
+
* 递归启用 layers(只有自己 visible=true 时才 enable 并继续递归)
|
|
49
|
+
*/
|
|
50
|
+
protected _enableLayersRecursive(): void;
|
|
40
51
|
createGroup(): this;
|
|
41
52
|
createMesh(...args: ConstructorParameters<typeof Mesh>): this;
|
|
42
53
|
createPoints(...args: ConstructorParameters<typeof Points>): this;
|
|
@@ -67,9 +78,10 @@ export default class BaseObject extends UseMaterial {
|
|
|
67
78
|
}): Promise<this>;
|
|
68
79
|
erase(): void;
|
|
69
80
|
handleMaterialChange(mat: Material | null): void;
|
|
70
|
-
enableBloom(): void;
|
|
71
|
-
disableBloom(): void;
|
|
81
|
+
enableBloom(traverse?: boolean): void;
|
|
82
|
+
disableBloom(traverse?: boolean): void;
|
|
72
83
|
disposeTrack: boolean;
|
|
84
|
+
private isDispose;
|
|
73
85
|
dispose(): void;
|
|
74
86
|
}
|
|
75
87
|
export interface IBaseObject extends BaseObject {
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { Camera } from 'three';
|
|
2
|
+
import type Node from "../../objects/node";
|
|
3
|
+
interface CollisionManagerOptions {
|
|
4
|
+
/** 标签之间的最小间距(像素) */
|
|
5
|
+
padding?: number;
|
|
6
|
+
/** 是否启用碰撞检测 */
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
/** 更新节流时间(毫秒) */
|
|
9
|
+
throttleTime?: number;
|
|
10
|
+
/** 视口边距,标签超出视口多少像素后隐藏 */
|
|
11
|
+
viewportMargin?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 标签碰撞检测管理器
|
|
15
|
+
* 参考 Mapbox symbol-placement 实现
|
|
16
|
+
*
|
|
17
|
+
* 使用方式:
|
|
18
|
+
* ```ts
|
|
19
|
+
* const manager = new CollisionManager({ padding: 4 });
|
|
20
|
+
* manager.add(node, { priority: 10 });
|
|
21
|
+
* manager.update(camera); // 在渲染循环中调用
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class CollisionManager {
|
|
25
|
+
private labels;
|
|
26
|
+
private options;
|
|
27
|
+
private lastUpdateTime;
|
|
28
|
+
private camera?;
|
|
29
|
+
private animationFrameId?;
|
|
30
|
+
private isUpdating;
|
|
31
|
+
constructor(options?: CollisionManagerOptions);
|
|
32
|
+
/**
|
|
33
|
+
* 添加标签到碰撞检测系统
|
|
34
|
+
* @param node Node 实例
|
|
35
|
+
* @param options 配置项,priority 越大越优先显示,不传则使用 node.options.priority
|
|
36
|
+
*/
|
|
37
|
+
add(node: Node, options?: {
|
|
38
|
+
priority?: number;
|
|
39
|
+
}): void;
|
|
40
|
+
/**
|
|
41
|
+
* 移除标签
|
|
42
|
+
*/
|
|
43
|
+
remove(node: Node): void;
|
|
44
|
+
/**
|
|
45
|
+
* 更新标签优先级
|
|
46
|
+
*/
|
|
47
|
+
setPriority(node: Node, priority: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* 批量添加标签
|
|
50
|
+
*/
|
|
51
|
+
addBatch(nodes: Node[], priorityFn?: (node: Node, index: number) => number): void;
|
|
52
|
+
/**
|
|
53
|
+
* 启用/禁用碰撞检测
|
|
54
|
+
*/
|
|
55
|
+
setEnabled(enabled: boolean): void;
|
|
56
|
+
/**
|
|
57
|
+
* 更新碰撞检测(在渲染循环中调用)
|
|
58
|
+
*/
|
|
59
|
+
update(camera: Camera): void;
|
|
60
|
+
/**
|
|
61
|
+
* 强制立即更新
|
|
62
|
+
*/
|
|
63
|
+
forceUpdate(): void;
|
|
64
|
+
private performCollisionDetection;
|
|
65
|
+
/**
|
|
66
|
+
* 检测矩形是否与已占用区域碰撞
|
|
67
|
+
*/
|
|
68
|
+
private checkCollision;
|
|
69
|
+
/**
|
|
70
|
+
* 检测两个矩形是否相交(包含 padding)
|
|
71
|
+
*/
|
|
72
|
+
private rectsIntersect;
|
|
73
|
+
/**
|
|
74
|
+
* 设置节点可见性
|
|
75
|
+
*/
|
|
76
|
+
private setNodeVisibility;
|
|
77
|
+
/**
|
|
78
|
+
* 获取当前可见的标签数量
|
|
79
|
+
*/
|
|
80
|
+
getVisibleCount(): number;
|
|
81
|
+
/**
|
|
82
|
+
* 获取所有标签数量
|
|
83
|
+
*/
|
|
84
|
+
getTotalCount(): number;
|
|
85
|
+
/**
|
|
86
|
+
* 调试执行碰撞检测(带详细日志)
|
|
87
|
+
*/
|
|
88
|
+
debugRun(): void;
|
|
89
|
+
/**
|
|
90
|
+
* 清空所有标签
|
|
91
|
+
*/
|
|
92
|
+
clear(): void;
|
|
93
|
+
/**
|
|
94
|
+
* 销毁管理器
|
|
95
|
+
*/
|
|
96
|
+
dispose(): void;
|
|
97
|
+
}
|
|
98
|
+
export default CollisionManager;
|
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import { CSS2DRenderer } from 'three@latest/examples/jsm/renderers/CSS2DRenderer';
|
|
2
2
|
import { CSS3DRenderer } from 'three@latest/examples/jsm/renderers/CSS3DRenderer';
|
|
3
3
|
import type { PerspectiveCamera, Scene } from 'three';
|
|
4
|
+
import { CollisionManager } from './CollisionManager';
|
|
4
5
|
export interface CSSRendererParams {
|
|
5
|
-
zIndex
|
|
6
|
+
zIndex?: string;
|
|
6
7
|
container?: HTMLElement;
|
|
8
|
+
/** 碰撞检测配置 */
|
|
9
|
+
collision?: {
|
|
10
|
+
/** 是否启用碰撞检测,默认 true */
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
/** 标签之间的最小间距(像素),默认 4 */
|
|
13
|
+
padding?: number;
|
|
14
|
+
/** 更新节流时间(毫秒),默认 16 */
|
|
15
|
+
throttleTime?: number;
|
|
16
|
+
/** 视口边距,默认 50 */
|
|
17
|
+
viewportMargin?: number;
|
|
18
|
+
};
|
|
7
19
|
}
|
|
8
|
-
export declare const defaultCSSRendererParams:
|
|
9
|
-
zIndex: string;
|
|
10
|
-
};
|
|
20
|
+
export declare const defaultCSSRendererParams: CSSRendererParams;
|
|
11
21
|
export default class {
|
|
12
22
|
css2Drenderer?: CSS2DRenderer;
|
|
13
23
|
css3Drenderer?: CSS3DRenderer;
|
|
14
24
|
container: HTMLElement;
|
|
15
|
-
|
|
16
|
-
|
|
25
|
+
/** 标签碰撞检测管理器 */
|
|
26
|
+
collisionManager: CollisionManager;
|
|
27
|
+
constructor(container: HTMLElement, options?: CSSRendererParams);
|
|
28
|
+
addRenderer(type: 'css2d' | 'css3d', options?: CSSRendererParams): void;
|
|
17
29
|
setSize(width: number, height: number): void;
|
|
18
30
|
render(scene: Scene, camera: PerspectiveCamera): void;
|
|
19
31
|
dispose(): void;
|
package/dist/core/Composer.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Camera, Layers, Material, Scene, Vector2, WebGLRenderer } from 'three';
|
|
1
|
+
import { type Camera, Layers, type Material, type Scene, Vector2, type WebGLRenderer } from 'three';
|
|
2
2
|
import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer';
|
|
3
3
|
import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass';
|
|
4
4
|
import { SSAOPass } from 'three/examples/jsm/postprocessing/SSAOPass';
|
|
5
5
|
import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass';
|
|
6
6
|
import type { IBaseObject } from './BaseObject';
|
|
7
|
-
import CameraController from './Camera';
|
|
7
|
+
import type CameraController from './Camera';
|
|
8
8
|
import getMixPass from './pass/MixPass';
|
|
9
9
|
import { OutputPass } from './pass/OutputPass';
|
|
10
|
-
import RendererController from './Renderer';
|
|
11
|
-
import SceneController from './Scene';
|
|
10
|
+
import type RendererController from './Renderer';
|
|
11
|
+
import type SceneController from './Scene';
|
|
12
12
|
export interface BloomParams {
|
|
13
13
|
threshold: number;
|
|
14
14
|
strength: number;
|
|
@@ -70,7 +70,7 @@ export default class {
|
|
|
70
70
|
bloomLayer: Layers;
|
|
71
71
|
bloomMaterials: Record<string, Material | Material[]>;
|
|
72
72
|
bloomVisible: Record<string, boolean>;
|
|
73
|
-
|
|
73
|
+
checkBloomComposerActive(): void;
|
|
74
74
|
enable(): void;
|
|
75
75
|
disable(): void;
|
|
76
76
|
setSize(width: number, height: number): void;
|
package/dist/core/Helper.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Vector3, WebGLRenderer } from 'three';
|
|
1
|
+
import { type Vector3, type WebGLRenderer } from 'three';
|
|
2
2
|
import { ViewHelper } from 'three/examples/jsm/helpers/ViewHelper';
|
|
3
|
-
import ControlsController from "./Controls";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import type ControlsController from "./Controls";
|
|
4
|
+
import type CameraController from './Camera';
|
|
5
|
+
import type SceneController from './Scene';
|
|
6
6
|
interface Options {
|
|
7
7
|
sceneController: SceneController;
|
|
8
8
|
cameraController: CameraController;
|
package/dist/core/Lead/Pick.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IBaseObject } from "../BaseObject";
|
|
2
|
-
import Pencil from "../Pencil";
|
|
1
|
+
import type { IBaseObject } from "../BaseObject";
|
|
2
|
+
import type Pencil from "../Pencil";
|
|
3
3
|
export type PickFunctionsItem = {
|
|
4
4
|
objArr: IBaseObject[] | (() => IBaseObject[]);
|
|
5
|
-
type: 'move' | 'enter' | 'leave' | 'down' | 'click' | 'downOutside';
|
|
5
|
+
type: 'move' | 'enter' | 'leave' | 'down' | 'click' | 'downOutside' | 'enterOnStop';
|
|
6
6
|
cb: (data: {
|
|
7
7
|
baseObject: IBaseObject;
|
|
8
8
|
realBaseObject?: IBaseObject;
|
|
@@ -23,6 +23,19 @@ export default class Pick {
|
|
|
23
23
|
private prevActiveObjects;
|
|
24
24
|
private objCallbackMap;
|
|
25
25
|
private pickListener;
|
|
26
|
+
/** 是否有 enterOnStop 事件注册 */
|
|
27
|
+
private hasEnterOnStopEvent;
|
|
28
|
+
/** 需要检测 cursor 的物体 Map<obj, cursorStyle> */
|
|
29
|
+
private cursorObjects;
|
|
30
|
+
private cursorListenerAdded;
|
|
31
|
+
/** 用于检测鼠标停止移动 */
|
|
32
|
+
private moveStopTimer;
|
|
33
|
+
private moveStopDelay;
|
|
34
|
+
private lastMoveEvent;
|
|
35
|
+
private lastMoveActiveObjects;
|
|
36
|
+
private lastMoveRealActiveObject;
|
|
37
|
+
/** 已经触发过 enterOnStop 的物体,用于防止重复触发 */
|
|
38
|
+
private triggeredEnterOnStopObjects;
|
|
26
39
|
private domElement;
|
|
27
40
|
constructor(pencil: Pencil);
|
|
28
41
|
private addPickListener;
|
|
@@ -30,6 +43,25 @@ export default class Pick {
|
|
|
30
43
|
private processObjectHierarchy;
|
|
31
44
|
private handleLeaveEvents;
|
|
32
45
|
private handleDownOutside;
|
|
46
|
+
/** 处理鼠标停止移动事件 */
|
|
47
|
+
private handleMoveStop;
|
|
48
|
+
/** 触发 enterOnStop 事件 */
|
|
49
|
+
private triggerEnterOnStop;
|
|
50
|
+
/** 重置鼠标样式 */
|
|
51
|
+
private resetCursor;
|
|
52
|
+
/** 添加 cursor 检测监听器 */
|
|
53
|
+
private addCursorListener;
|
|
54
|
+
/**
|
|
55
|
+
* 启用物体的 cursor 检测
|
|
56
|
+
* @param obj 要检测的 BaseObject
|
|
57
|
+
* @param cursor 鼠标样式,默认 'pointer'
|
|
58
|
+
*/
|
|
59
|
+
enableCursor(obj: IBaseObject, cursor?: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* 禁用物体的 cursor 检测
|
|
62
|
+
* @param obj 要移除的 BaseObject
|
|
63
|
+
*/
|
|
64
|
+
disableCursor(obj: IBaseObject): void;
|
|
33
65
|
handlePick(objArr: PickFunctionsItem['objArr'], t: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): number;
|
|
34
66
|
removePick(key: number): void;
|
|
35
67
|
handlePickNode(objArr: PickFunctionsItem['objArr'], t: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): number;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Scene } from 'three';
|
|
2
|
-
import Lead from './Lead';
|
|
3
|
-
import Pencil from "../Pencil";
|
|
4
|
-
import Pages from "../Pages";
|
|
1
|
+
import type { Scene } from 'three';
|
|
5
2
|
import type MList from "../MList/MList";
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import Pages from "../Pages";
|
|
4
|
+
import type Pencil from "../Pencil";
|
|
5
|
+
import Lead from './Lead';
|
|
6
|
+
export type LeadParams = {};
|
|
8
7
|
export declare const defaultDrawParams: {};
|
|
9
8
|
interface Options {
|
|
10
9
|
leadParams?: LeadParams;
|
package/dist/core/Pencil.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
2
|
import Stats from 'stats-gl';
|
|
3
|
-
import { type Object3D, type PerspectiveCamera, Timer, Vector3 } from 'three';
|
|
3
|
+
import { type Object3D, type PerspectiveCamera, Raycaster, Timer, Vector3 } from 'three';
|
|
4
4
|
import CameraController, { type CameraParams } from "./Camera";
|
|
5
5
|
import ComposerController, { type BloomParams, type ComposerParams, type SSAOParams } from "./Composer";
|
|
6
6
|
import ControlsController, { type ControlsParams } from "./Controls";
|
|
@@ -58,7 +58,7 @@ export default class Pencil {
|
|
|
58
58
|
mListController: MListController;
|
|
59
59
|
stats?: Stats;
|
|
60
60
|
private resizeObserver;
|
|
61
|
-
|
|
61
|
+
raycaster: Raycaster;
|
|
62
62
|
private maxBackufferArea;
|
|
63
63
|
installPlugins: Map<string, any>;
|
|
64
64
|
getPlugin(name: 'worker'): Wk;
|
|
@@ -126,11 +126,25 @@ export default class Pencil {
|
|
|
126
126
|
};
|
|
127
127
|
css2DRenderer: boolean;
|
|
128
128
|
css2DRendererParams: {
|
|
129
|
-
zIndex
|
|
129
|
+
zIndex?: string;
|
|
130
|
+
container?: HTMLElement;
|
|
131
|
+
collision?: {
|
|
132
|
+
enabled?: boolean;
|
|
133
|
+
padding?: number;
|
|
134
|
+
throttleTime?: number;
|
|
135
|
+
viewportMargin?: number;
|
|
136
|
+
};
|
|
130
137
|
};
|
|
131
138
|
css3DRenderer: boolean;
|
|
132
139
|
css3DRendererParams: {
|
|
133
|
-
zIndex
|
|
140
|
+
zIndex?: string;
|
|
141
|
+
container?: HTMLElement;
|
|
142
|
+
collision?: {
|
|
143
|
+
enabled?: boolean;
|
|
144
|
+
padding?: number;
|
|
145
|
+
throttleTime?: number;
|
|
146
|
+
viewportMargin?: number;
|
|
147
|
+
};
|
|
134
148
|
};
|
|
135
149
|
};
|
|
136
150
|
private TweenRaf;
|
|
@@ -144,7 +158,7 @@ export default class Pencil {
|
|
|
144
158
|
removePage(index: number): void;
|
|
145
159
|
showPage(index: number): void;
|
|
146
160
|
private pageActiveIndex;
|
|
147
|
-
private
|
|
161
|
+
private pages;
|
|
148
162
|
private init;
|
|
149
163
|
private initComposer;
|
|
150
164
|
private initCSSRenderer;
|
|
@@ -11,9 +11,8 @@ declare class OutputPassFix extends OutputPass {
|
|
|
11
11
|
value: number;
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
fsQuad: FullScreenQuad | undefined;
|
|
15
15
|
_fsQuad: FullScreenQuad | undefined;
|
|
16
16
|
}
|
|
17
17
|
import { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass';
|
|
18
|
-
import { RawShaderMaterial } from 'three';
|
|
19
18
|
import { FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass';
|